Ladda upp en virtuell hårddisk till Azure eller kopiera en hanterad disk till en annan region – Azure CLI
Gäller för: ✔️ Virtuella Linux-datorer:heavy_check_mark: Windows:heavy_check_mark: Flexibla skalningsuppsättningar
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
- Ladda ned den senaste versionen av AzCopy v10.
- Installera Azure CLI.
- Om du planerar att ladda upp en virtuell hårddisk från en lokal plats: En vhd med fast storlek som har förberetts för Azurelagras lokalt.
- Eller en hanterad disk i Azure om du tänker utföra en kopieringsåtgärd.
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:
- ReadToUpload, 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. Du kan hämta det genom att använda antingen wc -c <yourFileName>.vhd eller ls -al <yourFileName>.vhd . Det här värdet används när du anger parametern --upload-size-bytes.
Skapa en tom standard hdd för uppladdning genom att ange både parametern --for-upload och parametern --upload-size-bytes i en cmdlet för disk create:
Ersätt <yourdiskname> , , med värden som du väljer <yourresourcegroupname> <yourregion> själv. Parametern --upload-size-bytes innehåller exempelvärdet . Ersätt 34359738880 det med ett värde som passar dig.
Tips
Om du skapar en OS-disk lägger du till --hyper-v-generation <yourGeneration> i az disk create .
az disk create -n <yourdiskname> -g <yourresourcegroupname> -l <yourregion> --os-type Linux --for-upload --upload-size-bytes 34359738880 --sku standard_lrs
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 för tillfället.
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 <yourdiskname> <yourresourcegroupname> ersätter du och och använder sedan följande kommando:
az disk grant-access -n <yourdiskname> -g <yourresourcegroupname> --access-level Write --duration-in-seconds 86400
Exempel på returnerat värde:
{
"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"
}
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" "sas-URI" --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 använd sedan följande kommando för att göra disken <yourresourcegroupname> användbar:
az disk revoke-access -n <yourdiskname> -g <yourresourcegroupname>
Kopiera en hanterad disk
Direktuppladdning förenklar också kopieringen av en hanterad disk. Du kan antingen kopiera inom samma region eller mellan regioner (till en annan region).
Följande skript gör detta åt dig. Processen liknar stegen som beskrivs ovan, 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. Kopian 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> 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 --hyper-v-generation <yourGeneration> i az disk create .
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 -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ästa steg
Nu när du har överfört en virtuell hårddisk till en hanterad disk kan du koppla disken som en datadisk till en befintlig virtuell dator eller ansluta disken till en virtuell dator som en OS-diskför att skapa en ny virtuell dator.