Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✔️ maszyny wirtualne z systemem Windows
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 modułu Azure PowerShell. Proces przekazywania dysku zarządzanego, znany również jako bezpośrednie przekazywanie, umożliwia przekazanie 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ć zasady na poziomie konta platformy Azure lub subskrypcji, aby upewnić się, że tożsamość Microsoft Entra ma niezbędne uprawnienia do przesyłania, zanim zezwoli 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
- Zainstaluj najnowszy moduł programu Azure PowerShell.
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 programu Azure PowerShell. Aby utworzyć lub zaktualizować rolę niestandardową, zobacz Tworzenie lub aktualizowanie ról niestandardowych platformy Azure przy użyciu programu Azure PowerShell.
Rozpocznij
Istnieją dwa sposoby przesyłania VHD za pomocą modułu Azure PowerShell: możesz użyć polecenia Add-AzVHD, które automatyzuje większość procesu, lub możesz dokonać przesyłania ręcznie, używając AzCopy.
W przypadku dysków SSD w warstwie Premium oraz dysków SSD i HDD w warstwie standardowej, należy zazwyczaj używać polecenia Add-AzVHD. Jeśli jednak przesyłasz na dysk Ultra lub Premium SSD v2, lub jeśli musisz wysłać dysk VHD większy niż 50 GiB, musisz przekazać dysk VHD lub VHDX ręcznie za pomocą narzędzia AzCopy. Dyski VHD o rozmiarze 50 GiB i większe szybciej się przesyłają przy użyciu narzędzia AzCopy, a polecenie Add-AzVhd nie obsługuje obecnie przesyłania na dysk Ultra ani dysk SSD Premium v2.
Aby uzyskać wskazówki dotyczące kopiowania dysku zarządzanego z jednego regionu do innego, zobacz Kopiowanie dysku zarządzanego.
Korzystanie z polecenia Add-AzVHD
Wymagania wstępne
- Zainstaluj moduł Azure PowerShell.
- Dysk VHD został przygotowany na platformę Azure, przechowywany lokalnie.
- W systemie Windows: nie musisz konwertować dysku VHD na VHDx, konwertować go na stały rozmiar lub zmienić jego rozmiar, aby uwzględnić przesunięcie 512 bajtów.
Add-AZVHD
Wykonuje te funkcje za Ciebie.- Hyper-V musi być włączony, aby polecenie Add-AzVHD mogło wykonywać te funkcje.
- W systemie Linux: te akcje należy wykonać ręcznie. Aby uzyskać szczegółowe informacje, zobacz Zmienianie rozmiaru dysków VHD.
- W systemie Windows: nie musisz konwertować dysku VHD na VHDx, konwertować go na stały rozmiar lub zmienić jego rozmiar, aby uwzględnić przesunięcie 512 bajtów.
Przesłanie VHD
(Opcjonalnie) Udzielanie dostępu do dysku
Jeśli identyfikator Entra firmy Microsoft jest używany do wymuszania ograniczeń przekazywania na poziomie subskrypcji lub konta, polecenie Add-AzVHD powiedzie się tylko wtedy, gdy próba zostanie podjęta przez użytkownika, który ma odpowiednią rolę RBAC lub wymagane uprawnienia. Musisz przypisać uprawnienia RBAC, aby udzielić dostępu do dysku i wygenerować zapisywalną sygnaturę dostępu współdzielonego.
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName "Data Operator for Managed Disks" `
-Scope /subscriptions/<subscriptionId>
Korzystanie z polecenia Add-AzVHD
Poniższy przykład przesyła plik VHD z komputera lokalnego do nowego dysku zarządzanego platformy Azure przy użyciu polecenia Add-AzVHD. Zastąp <your-filepath-here>
, <your-resource-group-name>
, <desired-region>
i <desired-managed-disk-name>
swoimi parametrami:
Uwaga
Jeśli używasz Microsoft Entra ID do wymuszania ograniczeń przekazywania, dodaj DataAccessAuthMode 'AzureActiveDirectory'
na końcu polecenia Add-AzVhd
.
# Required parameters
$path = <your-filepath-here>.vhd
$resourceGroup = <your-resource-group-name>
$location = <desired-region>
$name = <desired-managed-disk-name>
# Optional parameters
# $Zone = <desired-zone>
# $sku=<desired-SKU>
# -DataAccessAuthMode 'AzureActiveDirectory'
# -DiskHyperVGeneration = V1 or V2. This applies only to OS disks.
# To use $Zone or #sku, add -Zone or -DiskSKU parameters to the command
Add-AzVhd -LocalFilePath $path -ResourceGroupName $resourceGroup -Location $location -DiskName $name
Przekazywanie ręczne
Wymagania wstępne
- Pobierz najnowszą wersję narzędzia AzCopy w wersji 10.
- Zainstaluj moduł Azure PowerShell.
- Dysk VHD o stałym rozmiarze, który został przygotowany dla platformy Azure, przechowywany lokalnie.
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 przyjmowania 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 załadowania, będziesz potrzebować rozmiaru pliku VHD, który chcesz załadować, w bajtach. Przykładowy kod otrzyma to za Ciebie, ale aby to zrobić samodzielnie, możesz użyć: $vhdSizeBytes = (Get-Item "<fullFilePathHere>").length
. Ta wartość jest używana podczas określania parametru -UploadSizeInBytes .
Teraz w swojej lokalnej powłoce utwórz pusty standardowy dysk HDD do przesłania, określając ustawienie Upload w parametrze -CreateOption, a także parametr -UploadSizeInBytes w cmdlet New-AzDiskConfig. Następnie wywołaj polecenie New-AzDisk , aby utworzyć dysk.
Zastąp ciąg <yourdiskname>
, <yourresourcegroupname>
, a <yourregion>
następnie uruchom następujące polecenia:
Ważne
Jeśli tworzysz dysk systemu operacyjnego, dodaj -HyperVGeneration '<yourGeneration>'
do New-AzDiskConfig
.
Jeśli używasz Microsoft Entra ID do zabezpieczania przesyłania, dodaj -dataAccessAuthMode 'AzureActiveDirectory'
do New-AzDiskConfig
.
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 VHD o rozmiarze sektora logicznego 512, dysk docelowy musi być ustawiony na 512. Jeśli używasz pliku VHDX o rozmiarze sektora logicznego 4k, dysk docelowy musi być ustawiony na 4k, a rozmiar dysku docelowego musi być zgodny z rozmiarem pliku VHDX. Należy pamiętać, że przesłanie pliku VHDX spowoduje rozszerzenie rozmiaru do następnego wyrównania 256 MiB.
Pliki VHDX o rozmiarze sektora logicznego 512 nie są obsługiwane.
$vhdSizeBytes = (Get-Item "<fullFilePathHere>").length
## For Ultra Disks or Premium SSD v2, add -LogicalSectorSize and specify either 4096 or 512, depending on if you're using a VHDX or a VHD
$diskconfig = New-AzDiskConfig -SkuName 'Standard_LRS' -OsType 'Windows' -UploadSizeInBytes $vhdSizeBytes -Location '<yourregion>' -CreateOption 'Upload'
New-AzDisk -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>' -Disk $diskconfig
Jeśli chcesz przekazać inny typ dysku, zastąp Standard_LRS na Premium_LRS, Premium_ZRS, StandardSSD_ZRS, StandardSSD_LRS lub UltraSSD_LRS.
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ć plik VHD na dysk, potrzebny będzie zapisywalny token dostępu współdzielonego, aby można było go wskazać jako miejsce docelowe przekazu.
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 sprawdzić, czy dysk ma aktywny SAS, możesz użyć interfejsu REST API, Azure CLI lub modułu Azure PowerShell, i sprawdzić właściwość DiskState.
- Aby odwołać sygnaturę dostępu współdzielonego, możesz użyć interfejsu REST API, Azure CLI lub modułu Azure PowerShell.
- Aby utworzyć SAS, możesz użyć interfejsu REST API, Azure CLI lub modułu Azure PowerShell i ustawić czas trwania dostępu na 5 184 000 sekund lub mniej.
Aby wygenerować zapisywalną sygnaturę dostępu współdzielonego (SAS) dla pustego dysku zarządzanego, zastąp znaczniki <yourdiskname>
i <yourresourcegroupname>
, a następnie użyj następujących poleceń:
$diskSas = Grant-AzDiskAccess -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>' -DurationInSecond 86400 -Access 'Write'
$disk = Get-AzDisk -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>'
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).
Uwaga
Jeśli musisz przekazać pliki VHDx większe niż 2 TB (co przekracza limit formatu VHD) i nie można przekonwertować ich na dysk VHD ze względu na ich rozmiar, należy pamiętać, że pliki VHDx są obsługiwane tylko do przekazywania do jednostek SKU dysków PremiumSSDv2 i UltraSSSD. W przypadku plików mniejszych niż 2 TB zaleca się konwersję ich na format VHD zanim je przekażesz.
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" $diskSas.AccessSAS --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. Cofnięcie SAS zmieni stan zarządzanego dysku i umożliwi jego przyłączenie do VM.
Zastąp <yourdiskname>
oraz <yourresourcegroupname>
, a następnie uruchom następujące polecenie.
Revoke-AzDiskAccess -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>'
Kopiowanie dysku zarządzanego
Bezpośrednie przekazywanie upraszcza również proces kopiowania dysku zarządzanego. Możesz skopiować dysk zarządzany w tym samym regionie lub skopiować go 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
Należy dodać przesunięcie o 512, gdy podajesz rozmiar zarządzanego dysku z Azure w bajtach. 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>
, <yourOSTypeHere>
i <yourTargetLocationHere>
(przykładem wartości lokalizacji będzie uswest2), a następnie uruchom następujący skrypt, aby wykonać kopię dysku zarządzanego.
Napiwek
Jeśli tworzysz dysk systemu operacyjnego, dodaj -HyperVGeneration '<yourGeneration>'
do New-AzDiskConfig
.
$sourceRG = <sourceResourceGroupHere>
$sourceDiskName = <sourceDiskNameHere>
$targetDiskName = <targetDiskNameHere>
$targetRG = <targetResourceGroupHere>
$targetLocate = <yourTargetLocationHere>
$targetVmGeneration = "V1" # either V1 or V2
#Expected value for OS is either "Windows" or "Linux"
$targetOS = <yourOSTypeHere>
$sourceDisk = Get-AzDisk -ResourceGroupName $sourceRG -DiskName $sourceDiskName
# Adding the sizeInBytes with the 512 offset, and the -Upload flag
$targetDiskconfig = New-AzDiskConfig -SkuName 'Standard_LRS' -osType $targetOS -UploadSizeInBytes $($sourceDisk.DiskSizeBytes+512) -Location $targetLocate -CreateOption 'Upload' -HyperVGeneration $targetVmGeneration
$targetDisk = New-AzDisk -ResourceGroupName $targetRG -DiskName $targetDiskName -Disk $targetDiskconfig
$sourceDiskSas = Grant-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName -DurationInSecond 86400 -Access 'Read'
$targetDiskSas = Grant-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName -DurationInSecond 86400 -Access 'Write'
azcopy copy $sourceDiskSas.AccessSAS $targetDiskSas.AccessSAS --blob-type PageBlob
Revoke-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName
Revoke-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName
Następne kroki
Po pomyślnym przekazaniu wirtualnego dysku twardego do dysku zarządzanego możesz dołączyć dysk do maszyny wirtualnej i rozpocząć korzystanie z niego.
Aby dowiedzieć się, jak dołączyć dysk danych do maszyny wirtualnej, zobacz nasz artykuł na ten temat: Dołączanie dysku danych do maszyny wirtualnej z systemem Windows przy użyciu programu PowerShell. Aby użyć dysku jako dysku systemu operacyjnego, zobacz Tworzenie maszyny wirtualnej z systemem Windows na podstawie wyspecjalizowanego dysku.
Jeśli masz dodatkowe pytania, zobacz sekcję dotyczącą przekazywania dysku zarządzanego w często zadawanych pytaniach.