PowerShell ile Windows VM'sine veri diski ekleme

Şunlar için geçerlidir: ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri

Bu makalede, PowerShell kullanarak bir Windows sanal makinesine hem yeni hem de mevcut disklerin nasıl eklenip eklendiği gösterilmektedir.

İlk olarak şu ipuçlarını gözden geçirin:

Bu makalede Azure Cloud Shell powershell kullanılır ve bu sürüm sürekli olarak en son sürüme güncelleştirilir. Cloud Shell açmak için herhangi bir kod bloğunun üst kısmından Deneyin'i seçin.

Daha düşük gecikme süresi

Belirli bölgelerde disk ekleme gecikme süresi azaldığından %15'e varan bir iyileştirme görürsünüz. VM'ler arasında planlanmış/planlanmamış yük devretmeleriniz varsa, iş yükünüzü ölçeklendiriyorsanız veya Azure Kubernetes Service gibi yüksek ölçekli durum bilgisi olan bir iş yükü çalıştırıyorsanız bu yararlı olur. Ancak, bu geliştirme açık disk ekleme komutuyla sınırlıdır. Add-AzVMDataDisk gibi Update-AzVMörtük olarak ekleme gerçekleştirebilecek bir komut çağırırsanız performans iyileştirmesini görmezsiniz. Bu geliştirmeyi görmek için açık ekleme komutunu çağırmak dışında herhangi bir işlem yapmanız gerekmez.

Daha düşük gecikme süresi şu anda aşağıdakiler dışında tüm genel bölgelerde kullanılabilir:

  • Orta Kanada
  • Central US
  • Doğu ABD
  • Doğu ABD 2
  • Orta Güney ABD
  • Batı ABD 2
  • Kuzey Almanya
  • Jio Hindistan Batı
  • Kuzey Avrupa
  • West Europe

Sanal makineye boş veri diski ekleme

Bu örnekte, var olan bir sanal makineye boş veri disklerinin nasıl ekleneceği gösterilmektedir.

Yönetilen diskleri kullanma

$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US'
$storageType = 'Premium_LRS'
$dataDiskName = $vmName + '_datadisk1'

$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName

$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1

Update-AzVM -VM $vm -ResourceGroupName $rgName

Kullanılabilirlik Alanında yönetilen diskleri kullanma

Kullanılabilirlik Alanında disk oluşturmak için New-AzDiskConfig parametresini -Zone kullanın. Aşağıdaki örnek 1. bölgede bir disk oluşturur.

$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US 2'
$storageType = 'Premium_LRS'
$dataDiskName = $vmName + '_datadisk1'

$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128 -Zone 1
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName

$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1

Update-AzVM -VM $vm -ResourceGroupName $rgName

Diski başlatma

Boş bir disk ekledikten sonra diski başlatmanız gerekir. Diski başlatmak için vm'de oturum açabilir ve disk yönetimini kullanabilirsiniz. WinRM'yi ve vm'yi oluştururken bir sertifikayı etkinleştirdiyseniz, diski başlatmak için uzak PowerShell'i kullanabilirsiniz. Özel betik uzantısı da kullanabilirsiniz:

    $location = "location-name"
    $scriptName = "script-name"
    $fileName = "script-file-name"
    Set-AzVMCustomScriptExtension -ResourceGroupName $rgName -Location $locName -VMName $vmName -Name $scriptName -TypeHandlerVersion "1.4" -StorageAccountName "mystore1" -StorageAccountKey "primary-key" -FileName $fileName -ContainerName "scripts"

Betik dosyası diskleri başlatmak için kod içerebilir, örneğin:

    $disks = Get-Disk | Where partitionstyle -eq 'raw' | sort number

    $letters = 70..89 | ForEach-Object { [char]$_ }
    $count = 0
    $labels = "data1","data2"

    foreach ($disk in $disks) {
        $driveLetter = $letters[$count].ToString()
        $disk |
        Initialize-Disk -PartitionStyle MBR -PassThru |
        New-Partition -UseMaximumSize -DriveLetter $driveLetter |
        Format-Volume -FileSystem NTFS -NewFileSystemLabel $labels[$count] -Confirm:$false -Force
	$count++
    }

Vm'ye mevcut bir veri diski ekleme

Vm'ye mevcut bir yönetilen diski veri diski olarak ekleyebilirsiniz.

$rgName = "myResourceGroup"
$vmName = "myVM"
$dataDiskName = "myDisk"
$disk = Get-AzDisk -ResourceGroupName $rgName -DiskName $dataDiskName

$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName

$vm = Add-AzVMDataDisk -CreateOption Attach -Lun 0 -VM $vm -ManagedDiskId $disk.Id

Update-AzVM -VM $vm -ResourceGroupName $rgName

Sonraki adımlar

Yönetilen diskleri şablonları kullanarak da dağıtabilirsiniz. Daha fazla bilgi için bkz. Azure Resource Manager Şablonları'nda Yönetilen Diskler kullanma veya birden çok veri diski dağıtmak için hızlı başlangıç şablonu.