Ladda upp en virtuell hårddisk till Azure eller kopiera en hanterad disk till en annan region – Azure PowerShell

Gäller för: ✔️ Windows virtuella datorer

I den här artikeln beskrivs hur du överför en virtuell hård disk från din lokala dator till en Azure-hanterad disk eller kopierar en hanterad disk till en annan region med hjälp av AzCopy. Den här processen, direkt överföring, gör det möjligt att ladda upp en virtuell hård disk på upp till 32 TiB i storlek direkt till en hanterad disk. För närvarande stöds direkt uppladdning för standard hård diskar, standard SSD och Premium SSD-hanterade diskar. Den stöds inte för Ultra disks än.

Om du tillhandahåller en säkerhets kopierings lösning för virtuella IaaS-datorer i Azure rekommenderar vi att du använder direkt överföring för att återställa kundens säkerhets kopior till hanterade diskar. När du laddar upp en virtuell hård disk från en källa som är extern till Azure, är hastigheten beroende av din lokala bandbredd. När du laddar upp eller kopierar från en virtuell Azure-dator skulle bandbredden vara densamma som standard hård diskar.

Förutsättningar

Komma igång

Om du föredrar att ladda upp diskar via ett grafiskt användargränssnitt kan du göra det med Azure Storage Explorer. Mer information finns i: Använda Azure Storage Explorer för att hantera Azure-hanterade diskar

Om du vill ladda upp den virtuella hårddisken till Azure måste du skapa en tom hanterad disk som är konfigurerad för den här uppladdningsprocessen. Innan du skapar en finns det ytterligare information som du bör känna till om dessa diskar.

Den här typen av hanterad disk har två unika tillstånd:

  • ReadyToUpload, vilket innebär att disken är redo att ta emot en uppladdning men att ingen signatur för säker åtkomst (SAS) har genererats.
  • ActiveUpload, vilket innebär att disken är redo att ta emot en uppladdning och att SAS har genererats.

Anteckning

I båda dessa tillstånd debiteras den hanterade disken enligt standardpris för HDD,oavsett vilken typ av disk det gäller. Till exempel debiteras en P10 som en S10. Detta gäller tills revoke-access anropas på den hanterade disken, vilket krävs för att ansluta disken till en virtuell dator.

Skapa en tom hanterad disk

Innan du kan skapa en tom standard-HDD för uppladdning behöver du filstorleken för den virtuella hårddisk som du vill ladda upp i byte. Exempelkoden hämtar den åt dig, men om du vill göra det själv kan du använda: $vhdSizeBytes = (Get-Item "<fullFilePathHere>").length . Det här värdet används när du anger parametern -UploadSizeInBytes.

Skapa nu en tom standard HDD för uppladdning i det lokala gränssnittet genom att ange Upload-inställningen i parametern -CreateOption samt parametern -UploadSizeInBytes i cmdleten New-AzDiskConfig. Anropa sedan New-AzDisk för att skapa disken.

Ersätt <yourdiskname> <yourresourcegroupname> , och kör sedan <yourregion> följande kommandon:

Tips

Om du skapar en OS-disk lägger du till -HyperVGeneration '<yourGeneration>' i New-AzDiskConfig .

$vhdSizeBytes = (Get-Item "<fullFilePathHere>").length

$diskconfig = New-AzDiskConfig -SkuName 'Standard_LRS' -OsType 'Windows' -UploadSizeInBytes $vhdSizeBytes -Location '<yourregion>' -CreateOption 'Upload'

New-AzDisk -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>' -Disk $diskconfig

Om du vill ladda upp antingen en Premium SSD eller en standard SSD ersätter du Standard_LRS med antingen Premium_LRS eller StandardSSD_LRS. Ultradiskar stöds inte ännu.

Nu när du har skapat en tom hanterad disk som är konfigurerad för uppladdningsprocessen kan du ladda upp en virtuell hårddisk till den. Om du vill ladda upp en virtuell hårddisk till disken behöver du en skrivbar SAS, så att du kan referera till den som mål för uppladdningen.

Om du vill generera en skrivbar SAS för din tomma hanterade disk ersätter <yourdiskname> du och och använder sedan följande <yourresourcegroupname> kommandon:

$diskSas = Grant-AzDiskAccess -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>' -DurationInSecond 86400 -Access 'Write'

$disk = Get-AzDisk -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>'

Ladda upp en virtuell hårddisk

Nu när du har en SAS för din tomma hanterade disk kan du använda den för att ange den hanterade disken som mål för uppladdningskommandot.

Använd AzCopy v10 för att ladda upp din lokala VHD-fil till en hanterad disk genom att ange DEN SAS-URI som du genererade.

Den här uppladdningen har samma dataflöde som motsvarande standard HDD. Om du till exempel har en storlek som motsvarar S4 får du ett dataflöde på upp till 60 MiB/s. Men om du har en storlek som motsvarar S70 har du ett dataflöde på upp till 500 MiB/s.

AzCopy.exe copy "c:\somewhere\mydisk.vhd" $diskSas.AccessSAS --blob-type PageBlob

När uppladdningen är klar och du inte längre behöver skriva mer data till disken återkallar du SAS. Om du återkallar SAS ändras tillståndet för den hanterade disken så att du kan ansluta disken till en virtuell dator.

Ersätt <yourdiskname> och och kör sedan följande <yourresourcegroupname> kommando:

Revoke-AzDiskAccess -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>'

Kopiera en hanterad disk

Direktuppladdning förenklar också kopieringen av en hanterad disk. Du kan antingen kopiera inom samma region eller kopiera den hanterade disken till en annan region.

Följande skript gör detta åt dig. Processen liknar stegen som beskrevs tidigare, med vissa skillnader, eftersom du arbetar med en befintlig disk.

Viktigt

Du måste lägga till en förskjutning på 512 när du tillhandahåller diskstorleken i byte för en hanterad disk från Azure. Det beror på att Azure utelämnar sidfoten när diskstorleken returneras. Kopieringen misslyckas om du inte gör detta. Följande skript gör redan detta åt dig.

Ersätt , , , och (ett exempel på ett platsvärde är <sourceResourceGroupHere> <sourceDiskNameHere> <targetDiskNameHere> <targetResourceGroupHere> <yourOSTypeHere> uswest2) med dina värden och kör sedan följande skript för att kopiera <yourTargetLocationHere> en hanterad disk.

Tips

Om du skapar en OS-disk lägger du till -HyperVGeneration '<yourGeneration>' i New-AzDiskConfig .


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

$sourceDisk = Get-AzDisk -ResourceGroupName $sourceRG -DiskName $sourceDiskName

# Adding the sizeInBytes with the 512 offset, and the -Upload flag
$targetDiskconfig = New-AzDiskConfig -SkuName 'Standard_LRS' -osType $targetOS -UploadSizeInBytes $($sourceDisk.DiskSizeBytes+512) -Location $targetLocate -CreateOption 'Upload'

$targetDisk = New-AzDisk -ResourceGroupName $targetRG -DiskName $targetDiskName -Disk $targetDiskconfig

$sourceDiskSas = Grant-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName -DurationInSecond 86400 -Access 'Read'

$targetDiskSas = Grant-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName -DurationInSecond 86400 -Access 'Write'

azcopy copy $sourceDiskSas.AccessSAS $targetDiskSas.AccessSAS --blob-type PageBlob

Revoke-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName

Revoke-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName 

Nästa steg

Nu när du har laddat upp en virtuell hårddisk till en hanterad disk kan du ansluta disken till en virtuell dator och börja använda den.

Information om hur du kopplar en datadisk till en virtuell dator finns i vår artikel om ämnet: Koppla en datadisk till en Windows virtuell dator med PowerShell. Information om hur du använder disken som OS-disk finns i Skapa en Windows virtuell dator från en specialiserad disk.