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 ✔️ med virtuella Windows-datorer ✔️ – flexibla skalningsuppsättningar
Den här artikeln beskriver hur du antingen laddar upp en virtuell hårddisk från din lokala dator till en Hanterad Azure-disk eller kopierar en hanterad disk till en annan region med hjälp av AzCopy. Med den här processen, direktuppladdning, kan du ladda upp en virtuell hårddisk upp till 32 TiB i storlek direkt till en hanterad disk. För närvarande stöds direktuppladdning för Ultra Disks, Premium SSD v2, Premium SSD, Standard SSD och Standard HDD.
Om du tillhandahåller en säkerhetskopieringslösning för virtuella IaaS-datorer i Azure bör du använda direktuppladdning för att återställa kundsäkerhetskopior till hanterade diskar. När du laddar upp en virtuell hårddisk från en extern källa till Azure beror hastigheterna på din lokala bandbredd. När du laddar upp eller kopierar från en virtuell Azure-dator är bandbredden samma som standard-HDD:er.
Säkra uppladdningar med Microsoft Entra-ID
Om du använder Microsoft Entra-ID för att styra resursåtkomsten kan du nu använda det för att begränsa uppladdningen av Azure-hanterade diskar. Den här funktionen är tillgänglig som ett GA-erbjudande i alla regioner. När en användare försöker ladda upp en disk verifierar Azure identiteten för den begärande användaren i Microsoft Entra-ID och bekräftar att användaren har de behörigheter som krävs. På en högre nivå kan en systemadministratör ange en princip på Azure-konto- eller prenumerationsnivå för att säkerställa att en Microsoft Entra-identitet har de behörigheter som krävs för uppladdning innan en disk eller en diskögonblicksbild kan laddas upp. Om du har frågor om hur du skyddar uppladdningar med Microsoft Entra-ID kan du kontakta följande e-post: azuredisks@microsoft .com
Förutsättningar
Begränsningar
- Virtuella hårddiskar kan inte laddas upp till tomma ögonblicksbilder.
- Azure Backup stöder för närvarande inte diskar som skyddas med Microsoft Entra-ID.
- Azure Site Recovery stöder för närvarande inte diskar som skyddas med Microsoft Entra-ID.
Tilldela RBAC-roll
För att få åtkomst till hanterade diskar som skyddas med Microsoft Entra-ID måste den begärande användaren ha rollen Dataoperatör för hanterade diskar eller en anpassad roll med följande behörigheter:
- Microsoft.Compute/disks/download/action
- Microsoft.Compute/disks/upload/action
- Microsoft.Compute/snapshots/download/action
- Microsoft.Compute/snapshots/upload/action
Detaljerade anvisningar om hur du tilldelar en roll finns i Tilldela Azure-roller med Hjälp av Azure CLI. Information om hur du skapar eller uppdaterar en anpassad roll finns i Skapa eller uppdatera anpassade Azure-roller med Hjälp av Azure CLI.
Kom igång
Om du föredrar att ladda upp diskar via ett GUI kan du göra det med hjälp av Azure Storage Explorer. Mer information finns i: Använda Azure Storage Explorer för att hantera Hanterade Azure-diskar
Förutsättningar
- Ladda ned den senaste versionen av AzCopy v10.
- Installera Azure CLI.
- Om du tänker ladda upp en virtuell hårddisk från en lokal plats: En virtuell hårddisk med fast storlek som har förberetts för Azure, lagrad lokalt.
- Eller en hanterad disk i Azure om du tänker utföra en kopieringsåtgärd.
Om du vill ladda upp din virtuella hårddisk 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 ingen säker åtkomstsignatur (SAS) har genererats.
- ActiveUpload, vilket innebär att disken är redo att ta emot en uppladdning och att SAS har genererats.
Kommentar
I något av dessa tillstånd debiteras den hanterade disken enligt standardpriser för HDD, oavsett vilken typ av disk som är aktuell. 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. För att få det kan du 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 att skapa disk:
Ersätt <yourdiskname>
, <yourresourcegroupname>
, <yourregion>
med de värden du väljer. Parametern --upload-size-bytes
innehåller ett exempelvärde på 34359738880
, ersätt det med ett värde som är lämpligt för dig.
Viktigt!
Om du skapar en OS-disk lägger du till --hyper-v-generation <yourGeneration>
i az disk create
.
Om du använder Microsoft Entra-ID för att skydda diskuppladdningar lägger du till -dataAccessAuthmode 'AzureActiveDirectory'
.
När du laddar upp till en Ultra Disk eller Premium SSD v2 måste du välja rätt sektorstorlek för måldisken. Om du använder en VHDX-fil med en 4k logisk sektorstorlek måste måldisken vara inställd på 4k. Om du använder en VHD-fil med en storlek på 512 logiska sektorer måste måldisken vara inställd på 512.
VHDX-filer med en logisk sektorstorlek på 512k stöds inte.
##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
Om du vill ladda upp en annan disktyp ersätter du standard_lrs med premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs eller ultrassd_lrs.
(Valfritt) Bevilja åtkomst till disken
Om du använder Microsoft Entra-ID för att skydda uppladdningar måste du tilldela RBAC-behörigheter för att bevilja åtkomst till disken och generera en skrivbar SAS.
az role assignment create --assignee "{assignee}" \
--role "{Data Operator for Managed Disks}" \
--scope "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{diskName}"
Generera skrivbar SAS
Nu när du har skapat en tom hanterad disk som har konfigurerats 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.
Viktigt!
Den 15 februari 2025 begränsas åtkomsttiden för delad åtkomst (SAS) för diskar och ögonblicksbilder till högst 60 dagar. Om du försöker generera en SAS med en giltighetstid som är längre än 60 dagar resulterar det i ett fel. Alla befintliga disk- eller ögonblicksbilds-SAS som har skapats med en giltighetstid som är längre än 60 dagar kan sluta fungera 60 dagar efter det att den skapades och resulterar i ett 403-fel under auktoriseringen.
Om en hanterad disk eller ögonblicksbild av SAS upphör att gälla längre än 60 dagar återkallar du dess åtkomst och genererar en ny SAS som begär åtkomst i 60 dagar (5 184 000 sekunder) eller mindre. Förbättra din övergripande säkerhet med hjälp av SAS med kortare förfallodatum. Gör dessa ändringar före den 15 februari 2025 för att förhindra avbrott i tjänsten. Följande länkar kan användas för att hitta, återkalla och begära en ny SAS.
- Om du vill kontrollera om en disk har en aktiv SAS kan du antingen använda REST-API:et, Azure CLI eller Azure PowerShell-modulen och undersöka egenskapen DiskState.
- Om du vill återkalla en SAS kan du använda rest-API:et, Azure CLI eller Azure PowerShell-modulen.
- Om du vill skapa en SAS kan du använda rest-API:et, Azure CLI eller Azure PowerShell-modulen och ange åtkomstvaraktigheten till 5 184 000 sekunder eller mindre.
Om du vill generera en skrivbar SAS för den tomma hanterade disken ersätter <yourdiskname>
du och <yourresourcegroupname>
använder sedan följande kommando:
az disk grant-access -n <yourdiskname> -g <yourresourcegroupname> --access-level Write --duration-in-seconds 86400
Exempel 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 eller VHDX
Nu när du har en SAS för den tomma hanterade disken 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- eller VHDX-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 har 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 och du kan ansluta disken till en virtuell dator.
Ersätt <yourdiskname>
och <yourresourcegroupname>
, använd sedan följande kommando för att göra disken användbar:
az disk revoke-access -n <yourdiskname> -g <yourresourcegroupname>
Kopiera en hanterad disk
Direktuppladdning förenklar också kopieringsprocessen för 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 de steg 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 anger 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 det. Följande skript gör redan detta åt dig.
<sourceResourceGroupHere>
Ersätt , <sourceDiskNameHere>
, <targetDiskNameHere>
, <targetResourceGroupHere>
och <yourTargetLocationHere>
(ett exempel på ett platsvärde skulle vara uswest2) med dina värden och kör sedan följande skript för att kopiera en hanterad disk.
Dricks
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 --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ästa steg
Nu när du har laddat upp 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-disk för att skapa en ny virtuell dator.
Om du har fler frågor kan du läsa avsnittet ladda upp en hanterad disk i Vanliga frågor och svar.