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 do rozmiaru 32 TiB bezpośrednio do dysku zarządzanego. Obecnie bezpośrednie przekazywanie jest obsługiwane w przypadku dysków twardych w warstwie Standardowa, dysków SSD w warstwie Standardowa i dysków SSD w warstwie Premium. Nie jest jeszcze obsługiwana w przypadku dysków w warstwie Ultra.

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 standardowe dyski HDD.

Zabezpieczanie przekazywania za pomocą Azure AD (wersja zapoznawcza)

Jeśli używasz usługi Azure Active Directory (Azure AD) do kontrolowania dostępu do zasobów, możesz teraz użyć jej do ograniczenia przekazywania dysków zarządzanych platformy Azure. Ta funkcja jest obecnie w wersji zapoznawczej. Gdy użytkownik próbuje przekazać dysk, platforma Azure weryfikuje tożsamość żądanego użytkownika w Azure AD 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ść Azure AD ma niezbędne uprawnienia do przekazywania przed zezwoleniem na przekazanie dysku lub migawki dysku do przekazania. Jeśli masz pytania dotyczące zabezpieczania przekazywania za pomocą Azure AD, skontaktuj się z tą wiadomością e-mail: azuredisks@microsoft .com

Wymagania wstępne

  • Zainstaluj interfejs wiersza polecenia platformy Azure.

  • Użyj następującego polecenia, aby włączyć podgląd subskrypcji:

    az feature register --name AllowAADAuthForDataAccess --namespace Microsoft.Compute
    

    Ukończenie rejestracji funkcji może zająć trochę czasu. Możesz sprawdzić, czy ma ono następujące polecenie:

    az feature show --name AllowAADAuthForDataAccess --namespace Microsoft.Compute --output table
    

Ograniczenia

  • Wirtualne dyski twarde nie mogą być przekazywane do pustych migawek.
  • Azure Backup obecnie nie obsługuje dysków zabezpieczonych za pomocą Azure AD.

Przypisywanie roli RBAC

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

  • Microsoft. Obliczenia/dyski/pobieranie/akcja
  • Microsoft. Obliczenia/dyski/przekazywanie/akcja
  • Microsoft. Obliczenia/migawki/pobieranie/akcja
  • Microsoft. Obliczenia/migawki/przekazywanie/akcja

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.

Rozpoczęcie pracy

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 do tego procesu przekazywania. Przed utworzeniem jednego należy zapoznać się z dodatkowymi informacjami na temat tych dysków.

Ten rodzaj dysku zarządzanego ma dwa unikatowe stany:

  • ReadToUpload, co oznacza, że dysk jest gotowy do odbierania przekazywania, ale nie został wygenerowany żaden bezpieczny podpis dostępu (SAS).
  • ActiveUpload, co oznacza, że dysk jest gotowy do odbierania 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 według standardowych cen hdd, niezależnie od rzeczywistego typu dysku. Na przykład opłata P10 zostanie naliczona jako S10. Będzie to prawda, dopóki revoke-access nie zostanie wywołany na dysku zarządzanym, który jest wymagany w celu 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 zarówno parametr --for-upload , jak i parametr --upload-size-bytes w poleceniu cmdlet tworzenia dysku :

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

Porada

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

Jeśli używasz Azure AD do zabezpieczania przekazywania dysków, dodaj polecenie -dataAccessAuthmode 'AzureActiveDirectory'.

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ć dysk SSD w warstwie Premium lub ssd w warstwie Standardowa, zastąp standard_lrspremium_LRS lub standardssd_lrs. Dyski w warstwie Ultra nie są obecnie obsługiwane.

(Opcjonalnie) Udzielanie dostępu do dysku

Jeśli używasz Azure AD do zabezpieczania przekazywania, musisz przypisać uprawnienia RBAC, aby udzielić dostępu do dysku i wygenerować zapisywalny 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 sygnatury dostępu współdzielonego z możliwością zapisu

Po utworzeniu pustego dysku zarządzanego skonfigurowanego na potrzeby 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 element <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

Przykład zwracana 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"
}

Przekazywanie wirtualnego dysku twardego

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 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 HDD w warstwie Standardowa. Jeśli na przykład masz rozmiar, który odpowiada S4, będziesz mieć przepływność do 60 MiB/s. Jeśli jednak 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ć żadnych danych na dysku, odwołać sygnaturę dostępu współdzielonego. Cofnięcie sygnatury dostępu współdzielonego spowoduje zmianę stanu dysku zarządzanego i umożliwi dołączenie dysku do maszyny wirtualnej.

Zastąp <yourdiskname>element i <yourresourcegroupname>, a następnie użyj następującego polecenia, aby dysk był użyteczny:

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.

Porada

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

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

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ą.