Przekazywanie dysku VHD na platformę Azure lub kopiowanie dysku zarządzanego do innego regionu — Interfejs wiersza polecenia platformy Azure

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny wirtualne z systemem Windows — elastyczne zestawy ✔️ ✔️ skalowania

W tym artykule wyjaśniono, jak przekazać dysk VHD z komputera lokalnego do dysku zarządzanego platformy Azure lub skopiować dysk zarządzany do innego regionu przy użyciu narzędzia AzCopy. Ten proces, bezpośredni przekazywanie, umożliwia przekazanie dysku VHD o rozmiarze do 32 TiB bezpośrednio na dysk zarządzany. Obecnie bezpośrednie przekazywanie jest obsługiwane w przypadku dysków Ultra Disk, SSD w warstwie Premium w wersji 2, SSD w warstwie Premium, dysków SSD w warstwie Standardowa i hdd w warstwie Standardowa.

Jeśli udostępniasz rozwiązanie do tworzenia kopii zapasowych dla maszyn wirtualnych IaaS na platformie Azure, należy użyć bezpośredniego przekazywania w celu przywrócenia kopii zapasowych klientów na dyski zarządzane. Podczas przekazywania wirtualnego dysku twardego ze źródła zewnętrznego do platformy Azure szybkość zależy od przepustowości lokalnej. Podczas przekazywania lub kopiowania z maszyny wirtualnej platformy Azure przepustowość będzie taka sama jak dyski HDD w warstwie Standardowa.

Bezpieczne przekazywanie za pomocą identyfikatora Entra firmy Microsoft

Jeśli używasz identyfikatora Entra firmy Microsoft do kontrolowania dostępu do zasobów, możesz teraz użyć go do ograniczenia przekazywania dysków zarządzanych platformy Azure. Ta funkcja jest dostępna jako oferta ogólnie dostępna we wszystkich regionach. Gdy użytkownik próbuje przekazać dysk, platforma Azure weryfikuje tożsamość żądanego użytkownika w identyfikatorze Entra firmy Microsoft i potwierdza, że użytkownik ma wymagane uprawnienia. Na wyższym poziomie administrator systemu może ustawić zasady na poziomie konta platformy Azure lub subskrypcji, aby upewnić się, że tożsamość firmy Microsoft Entra ma niezbędne uprawnienia do przekazywania przed zezwoleniem na przekazanie dysku lub migawki dysku. Jeśli masz pytania dotyczące zabezpieczania przekazywania przy użyciu identyfikatora Microsoft Entra ID, skontaktuj się z tą wiadomością e-mail: azuredisks@microsoft .com

Wymagania wstępne

Ograniczenia

  • Dysków VHD nie można przekazać do pustych migawek.
  • Usługa Azure Backup obecnie nie obsługuje dysków zabezpieczonych za pomocą identyfikatora Entra firmy Microsoft.
  • Usługa Azure Site Recovery obecnie nie obsługuje dysków zabezpieczonych za pomocą identyfikatora Entra firmy Microsoft.

Przypisywanie roli RBAC

Aby uzyskać dostęp do dysków zarządzanych zabezpieczonych za pomocą identyfikatora Entra firmy Microsoft, użytkownik żądający musi mieć rolę operator danych dla Dyski zarządzane lub rolę niestandardową z następującymi uprawnieniami:

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

Aby uzyskać szczegółowe instrukcje dotyczące przypisywania roli, zobacz Przypisywanie ról platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure. Aby utworzyć lub zaktualizować rolę niestandardową, zobacz Tworzenie lub aktualizowanie ról niestandardowych platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure.

Rozpocznij

Jeśli wolisz przekazywać dyski za pomocą graficznego interfejsu użytkownika, możesz to zrobić przy użyciu Eksplorator usługi Azure Storage. Aby uzyskać szczegółowe informacje, zobacz: Zarządzanie dyskami zarządzanymi platformy Azure przy użyciu Eksplorator usługi Azure Storage

Wymagania wstępne

Aby przekazać dysk VHD na platformę Azure, należy utworzyć pusty dysk zarządzany skonfigurowany na potrzeby tego procesu przekazywania. Przed utworzeniem jednego z nich znajdują się dodatkowe informacje, które należy wiedzieć o tych dyskach.

Ten rodzaj dysku zarządzanego ma dwa unikatowe stany:

  • ReadToUpload, co oznacza, że dysk jest gotowy do odbierania przekazywania, ale nie wygenerowano podpisu bezpiecznego dostępu (SAS).
  • ActiveUpload, co oznacza, że dysk jest gotowy do odebrania przekazywania, a sygnatura dostępu współdzielonego została wygenerowana.

Uwaga

Mimo że w jednym z tych stanów dysk zarządzany będzie rozliczany zgodnie ze standardowymi cenami dysków HDD, niezależnie od rzeczywistego typu dysku. Na przykład wartość P10 będzie rozliczana jako S10. Będzie to prawdziwe do momentu revoke-access wywołania na dysku zarządzanym, który jest wymagany do dołączenia dysku do maszyny wirtualnej.

Tworzenie pustego dysku zarządzanego

Przed utworzeniem pustego standardowego dysku twardego do przekazania potrzebny będzie rozmiar pliku wirtualnego dysku twardego, który chcesz przekazać w bajtach. Aby to uzyskać, możesz użyć polecenia wc -c <yourFileName>.vhd lub ls -al <yourFileName>.vhd. Ta wartość jest używana podczas określania parametru --upload-size-bytes .

Utwórz pusty standardowy dysk twardy do przekazywania, określając parametr --for-upload i parametr --upload-size-bytes w poleceniu cmdlet create dysku:

Zastąp ciąg <yourdiskname>, <yourresourcegroupname><yourregion> wybranymi wartościami. Parametr --upload-size-bytes zawiera przykładową wartość 34359738880, zastąp ją wartością odpowiednią dla Ciebie.

Ważne

Jeśli tworzysz dysk systemu operacyjnego, dodaj --hyper-v-generation <yourGeneration> go do pliku az disk create.

Jeśli używasz identyfikatora Entra firmy Microsoft do zabezpieczania przekazywania dysków, dodaj element -dataAccessAuthmode 'AzureActiveDirectory'. Podczas przekazywania do dysku Ultra Disk lub SSD w warstwie Premium w wersji 2 należy wybrać prawidłowy rozmiar sektora dysku docelowego. Jeśli używasz pliku VHDX o rozmiarze sektora logicznego 4k, dysk docelowy musi być ustawiony na 4k. Jeśli używasz pliku VHD o rozmiarze sektora logicznego 512, dysk docelowy musi być ustawiony na 512.

Pliki VHDX o rozmiarze sektora logicznego 512k nie są obsługiwane.

##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

Jeśli chcesz przekazać inny typ dysku, zastąp standard_lrs premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs lub ultrassd_lrs.

(Opcjonalnie) Udzielanie dostępu do dysku

Jeśli używasz identyfikatora Entra firmy Microsoft do zabezpieczania przekazywania, musisz przypisać uprawnienia RBAC, aby udzielić dostępu do dysku i wygenerować zapisywalną sygnaturę dostępu współdzielonego.

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

Generowanie zapisywalnej sygnatury dostępu współdzielonego

Po utworzeniu pustego dysku zarządzanego skonfigurowanego dla procesu przekazywania możesz przekazać do niego dysk VHD. Aby przekazać dysk VHD na dysk, potrzebny będzie zapisywalny sygnatura dostępu współdzielonego, aby można było odwoływać się do niego jako miejsce docelowe przekazywania.

Aby wygenerować zapisywalną sygnaturę dostępu współdzielonego pustego dysku zarządzanego, zastąp wartości <yourdiskname>, a <yourresourcegroupname>następnie użyj następującego polecenia:

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

Zwrócona wartość przykładu:

{
  "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"
}

Przekazywanie dysku VHD lub VHDX

Teraz, gdy masz sygnaturę dostępu współdzielonego dla pustego dysku zarządzanego, możesz użyć go do ustawienia dysku zarządzanego jako miejsca docelowego dla polecenia przekazywania.

Użyj narzędzia AzCopy w wersji 10, aby przekazać lokalny plik VHD lub VHDX na dysk zarządzany, określając wygenerowany identyfikator URI sygnatury dostępu współdzielonego.

Ten przekazywanie ma taką samą przepływność jak równoważny dysk TWARDY w warstwie Standardowa. Na przykład jeśli masz rozmiar, który odpowiada S4, przepływność będzie wynosić do 60 MiB/s. Jednak jeśli masz rozmiar, który odpowiada S70, będziesz mieć przepływność do 500 MiB/s.

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

Po zakończeniu przekazywania i nie trzeba już zapisywać więcej danych na dysku, odwoływanie sygnatury dostępu współdzielonego. Odwołanie sygnatury dostępu współdzielonego spowoduje zmianę stanu dysku zarządzanego i umożliwi dołączenie dysku do maszyny wirtualnej.

Zastąp <yourdiskname>wartości i <yourresourcegroupname>, a następnie użyj następującego polecenia, aby dysk był dostępny:

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

Kopiowanie dysku zarządzanego

Bezpośrednie przekazywanie upraszcza również proces kopiowania dysku zarządzanego. Możesz skopiować w tym samym regionie lub między regionami (do innego regionu).

Poniższy skrypt wykona to dla Ciebie, proces jest podobny do opisanych wcześniej kroków, z pewnymi różnicami, ponieważ pracujesz z istniejącym dyskiem.

Ważne

Musisz dodać przesunięcie 512, gdy udostępniasz rozmiar dysku w bajtach dysku zarządzanego z platformy Azure. Dzieje się tak, ponieważ platforma Azure pomija stopkę podczas zwracania rozmiaru dysku. Kopiowanie zakończy się niepowodzeniem, jeśli tego nie zrobisz. Poniższy skrypt już to robi.

Zastąp wartości <sourceResourceGroupHere>, , <sourceDiskNameHere><targetDiskNameHere>, <targetResourceGroupHere>i <yourTargetLocationHere> (przykładem wartości lokalizacji będzie uswest2), a następnie uruchom następujący skrypt, aby skopiować dysk zarządzany.

Napiwek

Jeśli tworzysz dysk systemu operacyjnego, dodaj --hyper-v-generation <yourGeneration> element do .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

Następne kroki

Po pomyślnym przekazaniu wirtualnego dysku twardego do dysku zarządzanego możesz dołączyć dysk jako dysk danych do istniejącej maszyny wirtualnej lub dołączyć dysk do maszyny wirtualnej jako dysk systemu operacyjnego, aby utworzyć nową maszynę wirtualną.

Jeśli masz dodatkowe pytania, zobacz sekcję Przekazywanie dysku zarządzanego w często zadawanych pytaniach.