Hochladen einer VHD in Azure oder Kopieren eines verwalteten Datenträgers in eine andere Region – Azure-Befehlszeilenschnittstelle

Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen

In diesem Artikel wird erläutert, wie Sie mithilfe von AzCopy eine VHD von Ihrem lokalen Computer auf einen verwalteten Azure-Datenträger hochladen oder einen verwalteten Datenträger in eine andere Region kopieren. Im Rahmen dieses Vorgangs (des direkten Uploads) können Sie eine VHD mit einer Größe von bis zu 32 TiB direkt auf einen verwalteten Datenträger hochladen. Derzeit wird der direkte Upload für Disk Ultra, SSD Premium v2, SSD Premium, SSD Standard und HDD Standard unterstützt.

Wenn Sie eine Sicherungslösung für IaaS-VMs in Azure bereitstellen, sollten Sie einen direkten Upload verwenden, um Kundensicherungen auf verwalteten Datenträgern wiederherzustellen. Beim Hochladen einer VHD von einem Computer, der sich außerhalb von Azure befindet, hängt die Geschwindigkeit von der lokalen Bandbreite ab. Beim Hochladen oder Kopieren von einer Azure-VM entspricht die Bandbreite der von Standard-Festplattenlaufwerken.

Schützen von Uploads mit Microsoft Entra ID

Wenn Sie Microsoft Entra ID zur Steuerung des Ressourcenzugriffs verwenden, können Sie damit nun das Hochladen von in Azure verwalteten Datenträgern einschränken. Dieses Feature ist als GA-Angebot in allen Regionen verfügbar. Beim Versuch, einen Datenträger hochzuladen, überprüft Azure die Identität der anfordernden Benutzer*innen in Microsoft Entra ID, um sicherzustellen, dass sie über die erforderlichen Berechtigungen verfügen. Auf höherer Ebene können Systemadministrator*innen eine Richtlinie auf Ebene des Azure-Kontos oder -Abonnements festlegen, um sicherzustellen, dass eine Microsoft Entra-Identität über die erforderlichen Berechtigungen zum Hochladen verfügt, bevor ein Datenträger oder eine Datenträgermomentaufnahme hochgeladen werden kann. Wenn Sie Fragen zum Schützen von Uploads mit Microsoft Entra ID haben, wenden Sie sich an folgende E-Mail-Adresse: azuredisks@microsoft.com.

Voraussetzungen

Beschränkungen

  • VHDs können nicht in leere Momentaufnahmen hochgeladen werden.
  • Azure Backup unterstützt derzeit keine mit Microsoft Entra ID geschützten Datenträger.
  • Azure Site Recovery unterstützt derzeit keine mit Microsoft Entra ID geschützten Datenträger.

Zuweisen einer RBAC-Rolle

Um auf mit Microsoft Entra ID geschützte verwaltete Datenträger zuzugreifen, müssen anfordernde Benutzer*innen entweder die Rolle Datenoperator für verwaltete Datenträger oder eine benutzerdefinierte Rolle mit den folgenden Berechtigungen haben:

  • Microsoft.Compute/disks/download/action
  • Microsoft.Compute/disks/upload/action
  • Microsoft.Compute/snapshots/download/action
  • Microsoft.Compute/snapshots/upload/action

Ausführliche Schritte zum Zuweisen einer Rolle finden Sie unter Zuweisen von Azure-Rollen mithilfe der Azure CLI. Informationen zum Erstellen oder Aktualisieren einer benutzerdefinierten Rolle finden Sie unter Erstellen oder Aktualisieren benutzerdefinierter Azure-Rollen mithilfe der Azure CLI.

Erste Schritte

Wenn Sie es vorziehen, Datenträger über eine grafische Benutzeroberfläche hochzuladen, können Sie dazu Azure Storage-Explorer verwenden. Ausführliche Informationen finden Sie unter: Verwenden von Azure Storage-Explorer zum Verwalten von verwalteten Azure-Datenträgern

Voraussetzungen

Wenn Sie Ihre VHD in Azure hochladen möchten, müssen Sie einen leeren verwalteten Datenträger erstellen, der für diesen Hochladevorgang konfiguriert ist. Bevor Sie einen solchen Datenträger erstellen, sollten Sie einige zusätzliche Informationen über diese Datenträger wissen.

Diese Art des verwalteten Datenträgers verfügt über zwei eindeutige Zustände:

  • „ReadyToUpload“: Der Datenträger ist für den Upload bereit, jedoch wurde keine SAS (Shared Access Signature) generiert.
  • „ActiveUpload“: Der Datenträger ist für den Upload bereit, und die SAS wurde generiert.

Hinweis

Für den verwalteten Datenträger fallen in beiden Zuständen Kosten an, die sich aus den Preisen für HDD Standard-Datenträger ergeben. Welcher Art von Datenträger verwendet wird, spielt keine Rolle. Das bedeutet, dass beispielsweise der Abrechnungsvorgang für P10 und S10 identisch ist. Dies ist solange der Fall, bis revoke-access für den verwalteten Datenträger aufgerufen wird. Dieser Vorgang ist erforderlich, um den Datenträger an eine VM anzufügen.

Erstellen eines leeren verwalteten Datenträgers

Bevor Sie eine leere HDD Standard zum Hochladen erstellen können, benötigen Sie die Dateigröße der VHD in Byte, die Sie hochladen möchten. Um diese abzurufen, können Sie wc -c <yourFileName>.vhd oder ls -al <yourFileName>.vhd verwenden. Dieser Wert wird verwendet, wenn der Parameter --upload-size-bytes angegeben wird.

Erstellen Sie für das Hochladen eine leere HDD Standard, indem Sie in einem Datenträgererstellungs-Cmdlet sowohl den --for-upload- als auch den --upload-size-bytes-Parameter angeben:

Ersetzen Sie <yourdiskname>, <yourresourcegroupname>, <yourregion> durch Werte Ihrer Wahl. Der Parameter --upload-size-bytes enthält einen Beispielwert von 34359738880, ersetzen Sie ihn durch einen für Sie geeigneten Wert.

Wichtig

Wenn Sie einen Betriebssystemdatenträger erstellen, fügen Sie --hyper-v-generation <yourGeneration> zu az disk create hinzu.

Wenn Sie Microsoft Entra ID zum Schützen von Datenträgeruploads verwenden, fügen Sie -dataAccessAuthmode 'AzureActiveDirectory' hinzu. Beim Hochladen auf Disk Ultra oder SSD Premium v2 müssen Sie die richtige Sektorgröße des Zieldatenträgers auswählen. Wenn Sie eine VHDX-Datei mit einer logischen Sektorgröße von 4k verwenden, muss der Zieldatenträger auf 4k festgelegt werden. Wenn Sie eine VHD-Datei mit einer logischen Sektorgröße von 512 verwenden, muss der Zieldatenträger auf 512 festgelegt werden.

VHDX-Dateien mit einer logischen Sektorgröße von 512k werden nicht unterstützt.

##For Ultra Disk or Premium SSD v2, add --logical-sector-size and specify either 512 or 4096, depending on if you're using a VHD or VHDX

az disk create -n <yourdiskname> -g <yourresourcegroupname> -l <yourregion> --os-type Linux --for-upload --upload-size-bytes 34359738880 --sku standard_lrs

Wenn Sie einen anderen Datenträgertyp hochladen möchten, ersetzen Sie standard_lrs durch premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs oder ultrassd_lrs.

(Optional) Gewähren des Zugriffs auf den Datenträger

Wenn Sie Microsoft Entra ID zum Schützen von Uploads verwenden, müssen Sie RBAC-Berechtigungen zuweisen, um Zugriff auf den Datenträger zu gewähren, und eine beschreibbare SAS generieren.

az role assignment create --assignee "{assignee}" \
--role "{Data Operator for Managed Disks}" \
--scope "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{diskName}"

Generieren einer schreibbaren SAS

Nachdem Sie einen leeren verwalteten Datenträger erstellt haben, der für den Hochladevorgang konfiguriert ist, können Sie jetzt eine VHD auf diesen Datenträger hochladen. Um eine VHD auf den Datenträger hochzuladen, benötigen Sie eine beschreibbare SAS, mit der Sie auf den Datenträger als Hochladeziel verweisen können.

Ersetzen Sie <yourdiskname> und <yourresourcegroupname>, und verwenden Sie dann den folgenden Befehl, um eine beschreibbare SAS für Ihren leeren verwalteten Datenträger zu generieren:

az disk grant-access -n <yourdiskname> -g <yourresourcegroupname> --access-level Write --duration-in-seconds 86400

Beispiel eines Rückgabewerts:

{
  "accessSas": "https://md-impexp-t0rdsfgsdfg4.blob.core.windows.net/w2c3mj0ksfgl/abcd?sv=2017-04-17&sr=b&si=600a9281-d39e-4cc3-91d2-923c4a696537&sig=xXaT6mFgf139ycT87CADyFxb%2BnPXBElYirYRlbnJZbs%3D"
}

Hochladen einer VHD oder VHDX

Sie verfügen nun über eine SAS für Ihren leeren verwalteten Datenträger und können diese verwenden, um diesen Datenträger als Ziel für den Uploadbefehl anzugeben.

Verwenden Sie AzCopy v10, um Ihre lokale VHD- oder VHDX-Datei auf einen verwalteten Datenträger hochzuladen. Dabei müssen Sie den von Ihnen generierten SAS-URI angeben.

Der Durchsatz für diesen Upload entspricht dem des gleichwertigen HDD Standard-Datenträgers. Wenn Sie beispielsweise als Größe S4 verwenden, beträgt der Durchsatz bis zu 60 MiB/s. Verwenden Sie hingegen als Größe S70, beträgt der Durchsatz bis zu 500 MiB/s.

AzCopy.exe copy "c:\somewhere\mydisk.vhd" "sas-URI" --blob-type PageBlob

Nachdem der Upload abgeschlossen wurde und Sie keine Daten mehr auf den Datenträger schreiben müssen, widerrufen Sie die SAS. Dadurch ändert sich der Zustand des verwalteten Datenträgers, und Sie können den Datenträger an eine VM anfügen.

Ersetzen Sie <yourdiskname>und <yourresourcegroupname>, und verwenden Sie dann den folgenden Befehl, damit der Datenträger verwendet werden kann:

az disk revoke-access -n <yourdiskname> -g <yourresourcegroupname>

Kopieren eines verwalteten Datenträgers

Der direkte Upload vereinfacht auch das Kopieren eines verwalteten Datenträgers. Sie können entweder innerhalb der gleichen Region oder regionsübergreifend (in eine andere Region) kopieren.

Das folgende Skript übernimmt das für Sie. Dies läuft ähnlich ab wie in den zuvor beschriebenen Schritten, da Sie nun mit einem vorhandenen Datenträger arbeiten.

Wichtig

Sie müssen ein Offset von 512 hinzufügen, wenn Sie die Datenträgergröße eines verwalteten Datenträgers aus Azure in Byte bereitstellen. Dies liegt daran, dass Azure die Fußzeile beim Zurückgeben der Datenträgergröße auslässt. Der Kopiervorgang schlägt fehl, wenn Sie nicht so vorgehen. Das folgende Skript fügt dieses Offset bereits für Sie ein.

Ersetzen Sie <sourceResourceGroupHere>, <sourceDiskNameHere>, <targetDiskNameHere>, <targetResourceGroupHere> und <yourTargetLocationHere> (ein Beispiel für einen Standortwert ist „uswest2“) durch Ihre Werte, und führen Sie dann das folgende Skript aus, um einen verwalteten Datenträger zu kopieren.

Tipp

Wenn Sie einen Betriebssystemdatenträger erstellen, fügen Sie --hyper-v-generation <yourGeneration> in az disk create hinzu.

sourceDiskName=<sourceDiskNameHere>
sourceRG=<sourceResourceGroupHere>
targetDiskName=<targetDiskNameHere>
targetRG=<targetResourceGroupHere>
targetLocation=<yourTargetLocationHere>
#Expected value for OS is either "Windows" or "Linux"
targetOS=<yourOSTypeHere>

sourceDiskSizeBytes=$(az disk show -g $sourceRG -n $sourceDiskName --query '[diskSizeBytes]' -o tsv)

az disk create -g $targetRG -n $targetDiskName -l $targetLocation --os-type $targetOS --for-upload --upload-size-bytes $(($sourceDiskSizeBytes+512)) --sku standard_lrs

targetSASURI=$(az disk grant-access -n $targetDiskName -g $targetRG  --access-level Write --duration-in-seconds 86400 --query [accessSas] -o tsv)

sourceSASURI=$(az disk grant-access -n $sourceDiskName -g $sourceRG --duration-in-seconds 86400 --query [accessSas] -o tsv)

azcopy copy $sourceSASURI $targetSASURI --blob-type PageBlob

az disk revoke-access -n $sourceDiskName -g $sourceRG

az disk revoke-access -n $targetDiskName -g $targetRG

Nächste Schritte

Nachdem Sie nun erfolgreich eine VHD auf einen verwalteten Datenträger hochgeladen haben, können Sie den Datenträger als Datenträger für Daten an eine vorhandene VM anfügen oder den Datenträger als Betriebssystemdatenträger an eine VM anfügen, um eine neue VM zu erstellen.

Wenn Sie weitere Fragen haben, lesen Sie den Abschnitt Hochladen eines verwalteten Datenträgers in den häufig gestellten Fragen.