Bir VHD dosyasını Azure'a yükleme veya yönetilen diski başka bir bölgeye kopyalama - Azure PowerShell

Şunlar için geçerlidir: ✔️ Windows VM'leri

Bu makalede, Azure PowerShell modülünü kullanarak yerel makinenizden Azure yönetilen diskine VHD yükleme veya yönetilen diski başka bir bölgeye kopyalama açıklanmaktadır. Doğrudan yükleme olarak da bilinen yönetilen diski karşıya yükleme işlemi, boyutu 32 TiB'a kadar olan bir VHD'yi doğrudan yönetilen diske yüklemenize olanak tanır. Şu anda Ultra Diskler, Premium SSD v2, Premium SSD, Standart SSD ve Standart HDD için doğrudan karşıya yükleme desteklenmektedir.

Azure'daki IaaS VM'leri için bir yedekleme çözümü sağlıyorsanız, müşteri yedeklemelerini yönetilen disklere geri yüklemek için doğrudan karşıya yüklemeyi kullanmanız gerekir. Azure dışındaki bir kaynaktan VHD'yi karşıya yüklerken hızlar yerel bant genişliğinize bağlıdır. Azure VM'sinden karşıya yükleme veya kopyalama sırasında bant genişliğiniz standart HDD'lerle aynı olacaktır.

Microsoft Entra Id ile güvenli karşıya yüklemeler

Kaynak erişimini denetlemek için Microsoft Entra Id kullanıyorsanız artık azure tarafından yönetilen disklerin karşıya yüklenmesini kısıtlamak için kullanabilirsiniz. Bu özellik tüm bölgelerde ga teklifi olarak kullanılabilir. Kullanıcı bir diski karşıya yüklemeyi denediğinde Azure, microsoft Entra ID'de istekte bulunan kullanıcının kimliğini doğrular ve kullanıcının gerekli izinlere sahip olduğunu onaylar. Bir sistem yöneticisi, bir diskin veya disk anlık görüntüsünün karşıya yüklenmesine izin vermeden önce Microsoft Entra kimliğinin karşıya yükleme için gerekli izinlere sahip olduğundan emin olmak için Azure hesabı veya abonelik düzeyinde bir ilke ayarlayabilir. Microsoft Entra Id ile karşıya yüklemelerin güvenliğini sağlama hakkında sorularınız varsa şu e-postaya ulaşın: azuredisks@microsoft .com

Ön koşullar

Kısıtlamalar

  • VHD'ler boş anlık görüntülere yüklenemez.
  • Azure Backup şu anda Microsoft Entra ID ile güvenliği sağlanan diskleri desteklememektedir.
  • Azure Site Recovery şu anda Microsoft Entra ID ile güvenliği sağlanan diskleri desteklememektedir.

RBAC rolü atama

Microsoft Entra Id ile güvenliği sağlanan yönetilen disklere erişmek için, istekte bulunan kullanıcının Yönetilen Diskler rolü için Veri İşleci'ne veya aşağıdaki izinlere sahip özel bir role sahip olması gerekir:

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

Rol atamayla ilgili ayrıntılı adımlar için bkz . Azure PowerShell kullanarak Azure rolleri atama. Özel rol oluşturmak veya güncelleştirmek için bkz . Azure PowerShell kullanarak Azure özel rolleri oluşturma veya güncelleştirme.

Başlarken

Azure PowerShell modülüyle VHD'yi karşıya yüklemenin iki yolu vardır: İşlemin çoğunu sizin için otomatik hale getirecek Add-AzVHD komutunu kullanabilir veya yüklemeyi AzCopy ile el ile gerçekleştirebilirsiniz.

Premium SSD'ler, Standart SSD'ler ve Standart HDD'ler için genellikle Add-AzVHD kullanmalısınız. Bununla birlikte, Bir Ultra Diske veya Premium SSD v2'ye yükleniyorsanız ya da 50 GiB'den büyük bir VHD yüklemeniz gerekiyorsa, AzCopy ile VHD'yi veya VHDX'i el ile yüklemeniz gerekir. AzCopy ve Add-AzVhd kullanılarak VHD'ler 50 GiB ve daha büyük karşıya yükleme işlemleri şu anda ultra diske veya Premium SSD v2'ye yüklemeyi desteklememektedir.

Yönetilen diski bir bölgeden diğerine kopyalama hakkında yönergeler için bkz . Yönetilen diski kopyalama.

Add-AzVHD kullanma

Ön koşullar

VHD’yi karşıya yükleme

(İsteğe bağlı) Diske erişim izni verme

Microsoft Entra Id, bir abonelikte veya hesap düzeyinde karşıya yükleme kısıtlamalarını zorlamak için kullanılıyorsa, Add-AzVHD yalnızca uygun RBAC rolüne veya gerekli izinlere sahip bir kullanıcı tarafından denenirse başarılı olur. Diske erişim vermek ve yazılabilir bir SAS oluşturmak için RBAC izinleri atamanız gerekir.

New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName "Data Operator for Managed Disks" `
-Scope /subscriptions/<subscriptionId>

Add-AzVHD kullanma

Aşağıdaki örnek, Add-AzVHD kullanarak yerel makinenizden yeni bir Azure yönetilen diskine bir VHD yükler. , <your-resource-group-name>ve<desired-region><desired-managed-disk-name> değerlerini parametrelerinizle değiştirin<your-filepath-here>:

Dekont

Karşıya yükleme kısıtlamalarını zorunlu kılmak için Microsoft Entra Id kullanıyorsanız komutunun Add-AzVhd sonuna ekleyinDataAccessAuthMode 'AzureActiveDirectory'.

# 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

El ile karşıya yükleme

Ön koşullar

VHD'nizi Azure'a yüklemek için bu karşıya yükleme işlemi için yapılandırılmış boş bir yönetilen disk oluşturmanız gerekir. Bir tane oluşturmadan önce, bu diskler hakkında bilmeniz gereken bazı ek bilgiler vardır.

Bu tür bir yönetilen diskin iki benzersiz durumu vardır:

  • ReadyToUpload, diskin karşıya yükleme almaya hazır olduğu ancak güvenli erişim imzası (SAS) oluşturulmadığı anlamına gelir.
  • ActiveUpload, diskin karşıya yükleme almaya hazır olduğu ve SAS'nin oluşturulduğu anlamına gelir.

Dekont

Bu durumlardan herhangi birinde yönetilen disk, gerçek disk türü ne olursa olsun standart HDD fiyatlandırması ile faturalandırılır. Örneğin, bir P10 S10 olarak faturalandırılır. Bu, yönetilen diskte çağrılana kadar revoke-access geçerlidir ve bu, diski vm'ye eklemek için gereklidir.

Boş yönetilen disk oluşturma

Karşıya yükleme için boş bir standart HDD oluşturabilmeniz için önce karşıya yüklemek istediğiniz VHD'nin dosya boyutunun bayt cinsinden olması gerekir. Örnek kod bunu sizin için alır, ancak bunu kendiniz yapmak için şunları kullanabilirsiniz: $vhdSizeBytes = (Get-Item "<fullFilePathHere>").length. Bu değer - UploadSizeInBytes parametresi belirtilirken kullanılır.

Şimdi yerel kabuğunuzda, -CreateOption parametresinde Karşıya Yükle ayarını ve New-AzDiskConfig cmdlet'indeki -UploadSizeInBytes parametresini belirterek karşıya yüklemek için boş bir standart HDD oluşturun. Ardından New-AzDisk'i çağırarak diski oluşturun.

, ve <yourresourcegroupname><yourregion> yerine <yourdiskname>aşağıdaki komutları çalıştırın:

Önemli

İşletim sistemi diski oluşturuyorsanız öğesine ekleyin -HyperVGeneration '<yourGeneration>'New-AzDiskConfig.

Karşıya yüklemelerinizin güvenliğini sağlamak için Microsoft Entra Id kullanıyorsanız öğesine ekleyin -dataAccessAuthMode 'AzureActiveDirectory'New-AzDiskConfig.
Ultra Disk veya Premium SSD v2'ye yüklerken hedef diskin doğru kesim boyutunu seçmeniz gerekir. 4k mantıksal kesim boyutuna sahip bir VHDX dosyası kullanıyorsanız hedef diskin 4k olarak ayarlanması gerekir. 512 mantıksal kesim boyutuna sahip bir VHD dosyası kullanıyorsanız hedef diskin 512 olarak ayarlanması gerekir.

Mantıksal kesim boyutu 512k olan VHDX dosyaları desteklenmez.

$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

Farklı bir disk türünü karşıya yüklemek istiyorsanız Standard_LRS yerine Premium_LRS, Premium_ZRS, StandardSSD_ZRS, StandardSSD_LRS veya UltraSSD_LRS yazın.

Yazılabilir SAS oluşturma

Artık karşıya yükleme işlemi için yapılandırılmış boş bir yönetilen disk oluşturduğunuza göre, bu diske bir VHD yükleyebilirsiniz. Bir VHD'yi diske yüklemek için yazılabilir bir SAS gerekir; böylece karşıya yükleme hedefi olarak başvurabilirsiniz.

Boş yönetilen diskinizin yazılabilir SAS'sini oluşturmak için ve <yourresourcegroupname>değerini değiştirin <yourdiskname>ve ardından aşağıdaki komutları kullanın:

$diskSas = Grant-AzDiskAccess -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>' -DurationInSecond 86400 -Access 'Write'

$disk = Get-AzDisk -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>'

VHD veya VHDX yükleme

Artık boş yönetilen diskiniz için bir SAS'niz olduğuna göre, bunu kullanarak yönetilen diskinizi karşıya yükleme komutunun hedefi olarak ayarlayabilirsiniz.

Yerel VHD veya VHDX dosyanızı oluşturduğunuz SAS URI'sini belirterek yönetilen diske yüklemek için AzCopy v10 kullanın.

Bu karşıya yükleme, eşdeğer standart HDD ile aynı aktarım hızına sahiptir. Örneğin, S4'e eşit bir boyutunuz varsa 60 MiB/sn'ye kadar aktarım hızına sahip olursunuz. Ancak S70'e eşit bir boyutunuz varsa 500 MiB/sn'ye kadar aktarım hızına sahip olursunuz.

AzCopy.exe copy "c:\somewhere\mydisk.vhd" $diskSas.AccessSAS --blob-type PageBlob

Karşıya yükleme tamamlandıktan ve diske daha fazla veri yazmanıza gerek kalmadıktan sonra SAS'yi iptal edin. SAS'yi iptal etmek yönetilen diskin durumunu değiştirir ve diski bir VM'ye eklemenize olanak sağlar.

ve <yourresourcegroupname>öğesini değiştirip <yourdiskname>aşağıdaki komutu çalıştırın:

Revoke-AzDiskAccess -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>'

Yönetilen diski çoğaltma

Doğrudan karşıya yükleme, yönetilen diski kopyalama işlemini de basitleştirir. Aynı bölge içinde kopyalayabilir veya yönetilen diskinizi başka bir bölgeye kopyalayabilirsiniz.

Aşağıdaki betik bunu sizin için yapar; mevcut bir diskle çalıştığınız için işlem daha önce açıklanan adımlara benzer ve bazı farklılıklar gösterir.

Önemli

Azure'dan yönetilen diskin bayt cinsinden disk boyutunu sağlarken 512 uzaklığı eklemeniz gerekir. Bunun nedeni, Azure'ın disk boyutunu döndürürken alt bilgiyi atladığıdır. Bunu yapmazsanız kopya başarısız olur. Aşağıdaki betik bunu sizin için zaten yapar.

<sourceResourceGroupHere>, , <sourceDiskNameHere>, <targetDiskNameHere>ve <targetResourceGroupHere><yourOSTypeHere><yourTargetLocationHere> (konum değerinin bir örneği uswest2 olabilir) değerleriniz ile değiştirin, ardından yönetilen diski kopyalamak için aşağıdaki betiği çalıştırın.

Bahşiş

bir işletim sistemi diski oluşturuyorsanız öğesine ekleyin -HyperVGeneration '<yourGeneration>'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 

Sonraki adımlar

Artık bir VHD'yi yönetilen diske başarıyla yüklediğinize göre, diskinizi bir VM'ye ekleyebilir ve kullanmaya başlayabilirsiniz.

Vm'ye veri diski eklemeyi öğrenmek için, konuyla ilgili makalemize bakın: PowerShell ile Windows VM'sine veri diski ekleme. Diski işletim sistemi diski olarak kullanmak için bkz . Özelleştirilmiş bir diskten Windows VM oluşturma.

Başka sorularınız varsa SSS bölümünde yönetilen diski karşıya yükleme bölümüne bakın.