Udostępnij za pośrednictwem


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.

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 w wersji GA 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ć politykę na poziomie konta platformy Azure lub subskrypcji, aby upewnić się, że tożsamość Microsoft Entra ma niezbędne uprawnienia do przesyłania, zanim zezwoli się na przesłanie dysku lub migawki dysku. Jeśli masz pytania dotyczące zabezpieczenia przekazywania plików przy użyciu identyfikatora Microsoft Entra ID, skontaktuj się pod tym adresem e-mail: azuredisks@microsoft.com

Wymagania wstępne

Ograniczenia

  • Nie można przesyłać VHD-ów 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ą Microsoft Entra ID, użytkownik żądający musi mieć rolę Operatora danych dla dysków zarządzanych 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 przesyłania, ale nie wygenerowano podpisu bezpiecznego dostępu (SAS).
  • ActiveUpload, co oznacza, że dysk jest gotowy do odebrania przesyłania, a SAS (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 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

Zanim utworzysz pusty standardowy dysk twardy do przesyłania, potrzebujesz rozmiaru pliku dysku VHD, który chcesz przesłać, 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 wysyłania, określając parametr --for-upload i parametr --upload-size-bytes w poleceniu disk create cmdlet.

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 -dataAccessAuthmode '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 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 na 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 zapisywalnego SAS

Teraz, kiedy utworzyłeś pusty dysk zarządzany, przygotowany do przesyłania, możesz przesłać na niego dysk VHD. Aby przekazać dysk VHD na dysk, potrzebny jest zapisywalny sygnatura dostępu współdzielonego, aby można było odwoływać się do niego jako miejsce docelowe 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 upload ma taką samą przepustowość jak równoważny standardowy 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.exe copy "c:\somewhere\mydisk.vhd" "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 dysk był używalny.

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.

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 zarządzanego dysku w FAQ.