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średnie przekazywanie, umożliwia przesyłanie dysku VHD o rozmiarze do 32 TiB bezpośrednio na dysk zarządzany. Obecnie obsługiwane jest bezpośrednie przekazywanie dla dysków Ultra, dysków SSD w wersji Premium 2, dysków SSD w warstwie Premium, dysków SSD w warstwie Standardowa i dysków 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 przesyłania VHD ze źródła zewnętrznego do platformy Azure szybkość zależy od przepustowości łącza lokalnego. Podczas przesyłania lub kopiowania z maszyny wirtualnej Azure, przepustowość będzie taka sama jak w przypadku standardowych dysków HDD.

Jeśli używasz identyfikatora Entra firmy Microsoft do kontrolowania dostępu do zasobów, możesz go użyć do ograniczenia przekazywania dysków zarządzanych platformy Azure. Aby uzyskać szczegółowe informacje, zobacz Bezpieczne pobieranie i przekazywanie dysków zarządzanych platformy Azure .

Przygotowanie do przekazania lub skopiowania dysku zarządzanego

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:

  • ReadyToUpload, co oznacza, że dysk jest gotowy do przyjęcia przekazywanych danych, ale nie wygenerowano sygnatury dostępu współdzielonego (SAS).
  • ActiveUpload, co oznacza, że dysk jest gotowy do odebrania przesyłania, a SAS (sygnatura dostępu współdzielonego) została wygenerowana.

Uwaga

W którymkolwiek z tych stanów, dysk zarządzany będzie rozliczany w cenach standardowego HDD na poziomie Standard, niezależnie od rzeczywistego typu dysku. Na przykład P10 będzie rozliczane jako S10. Będzie to prawdziwe aż do momentu, gdy revoke-access zostanie wywołane na zarządzanym dysku, co jest konieczne do dołączenia dysku do maszyny wirtualnej.

Tworzenie pustego dysku zarządzanego

Przed utworzeniem pustego dysku twardego HDD w warstwie Standardowej do przesyłania, potrzebny jest rozmiar pliku dysku VHD, który chcesz przesłać, w bajtach. Aby uzyskać te wartości, użyj polecenia wc -c <yourFileName>.vhd lub ls -al <yourFileName>.vhd. Użyj tej wartości podczas określania parametru --upload-size-bytes .

Utwórz pusty dysk HDD typu Standard do przekazania, określając parametry --for-upload i --upload-size-bytes w poleceniu az disk create:

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> do az disk create.

Jeśli używasz identyfikatora Entra firmy Microsoft do zabezpieczania przekazywania dysków, dodaj element --data-access-auth-mode AzureActiveDirectory.

Gdy ładujesz dane do dysku Ultra Disk lub do Premium SSD wersja 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 512 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 na premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs lub ultrassd_lrs.

Opcjonalnie: Przypisywanie uprawnień RBAC dla Microsoft Entra ID

Jeśli używasz Microsoft Entra ID do bezpiecznego przekazywania dysków, musisz przypisać uprawnienia RBAC, aby przyznać dostęp do dysku i wygenerować zapisywalny identyfikator URI SAS.

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

Wygeneruj sygnaturę SAS z uprawnieniami do zapisu

Po utworzeniu pustego dysku zarządzanego skonfigurowanego na potrzeby procesu przekazywania, możesz przekazać do niego plik VHD. Aby przekazać plik VHD na dysk, potrzebny jest token SAS z uprawnieniami do zapisu, aby można było użyć go jako miejsca docelowego przekazywania.

Ważne

15 lutego 2025 r. maksymalny czas ważności Podpisu Dostępu Współdzielonego (SAS) dla dysków i migawek będzie ograniczony do 60 dni. Próba wygenerowania współdzielonej sygnatury dostępu z wygaśnięciem dłuższym niż 60 dni spowoduje błąd. Każda istniejąca sygnatura dostępu współdzielonego dysku lub migawki utworzona z wygaśnięciem dłuższym niż 60 dni może przestać działać 60 dni po dacie utworzenia i spowoduje wystąpienie błędu 403 podczas autoryzacji.

Jeśli wygaśnięcie zarządzanego dysku lub momentu sygnatury dostępu współdzielonego (SAS) migawki jest dłuższe niż 60 dni, odwołaj dostęp i wygeneruj nową sygnaturę dostępu współdzielonego (SAS), żądającą dostępu trwającego 60 dni (5 184 000 sekund) lub mniej. Zwiększ ogólne bezpieczeństwo systemu przy użyciu podpisu dostępu współdzielonego z krótszymi datami wygaśnięcia. Wprowadź te zmiany przed 15 lutego 2025 r., aby zapobiec przerwom w działaniu usługi. Poniższe linki mogą służyć do znajdowania, unieważniania i żądania nowego adresu SAS.

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

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

Przykładowa zwrócona wartość:

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

Prześlij dysk VHD lub VHDX

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

Użyj narzędzia AzCopy w wersji nr 10, aby przesłać lokalny plik VHD lub VHDX na dysk zarządzany, podając wygenerowany identyfikator URI sygnatury dostępu współdzielonego (SAS).

Ten przesył ma taką samą przepustowość jak równoważny Standardowy dysk HDD. 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 copy "<path-to-vhd-or-vhdx>" "<sas-uri>" --blob-type PageBlob

Po zakończeniu przekazywania i kiedy nie trzeba już zapisywać więcej danych na dysku, odwołaj sygnaturę dostępu współdzielonego. Odwołanie sygnatury dostępu współdzielonego zmienia stan dysku zarządzanego i umożliwia dołączenie dysku do maszyny wirtualnej.

Zastąp <yourdiskname> i <yourresourcegroupname>, a następnie użyj następującego polecenia, aby można było używać dysku:

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 wykonuje to za Ciebie. Proces jest podobny do opisanych wcześniej kroków, z pewnymi różnicami, ponieważ pracujesz z istniejącym dyskiem.

Skrypt używa az disk show, aby uzyskać rozmiar dysku źródłowego, i dodaje wymagane przesunięcie o 512 bajtów. Następnie używa polecenia az disk create do utworzenia dysku docelowego gotowego do przekazania danych oraz polecenia az disk grant-access w celu wygenerowania identyfikatorów URI SAS dla dysku źródłowego i docelowego. Po skopiowaniu danych dysku jako obiektu blob strony przez AzCopy polecenie az disk revoke-access unieważnia oba identyfikatory URI sygnatury dostępu współdzielonego (SAS).

Ważne

Musisz dodać przesunięcie o 512 bajtów, gdy udostępniasz rozmiar dysku w bajtach zarządzanego dysku 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.

Wskazówka

Jeśli tworzysz dysk systemu operacyjnego, dodaj --hyper-v-generation <yourGeneration> 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 więcej pytań, zobacz sekcję Przekazywanie dysku zarządzanego w często zadawanych pytaniach.