Aracılığıyla paylaş


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österilir.

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

  • Sanal makinenin boyutu, kaç veri diski ekleyebileceğinizi denetler. Daha fazla bilgi için bkz . Sanal makineler için boyutlar.
  • Premium SSD'leri kullanmak için DS serisi veya GS serisi sanal makine gibi premium depolama özellikli bir VM türüne sahip olmanız gerekir.

Bu makalede Azure Cloud Shell'de PowerShell kullanılır ve bu sürüm sürekli olarak en son sürüme güncelleştirilir. Cloud Shell'i 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 azaltıldığı için %15'e varan bir iyileştirme göreceksiniz. Vm'ler arasında planlı/plansız 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 geliş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.

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

  • Orta Kanada
  • Central US
  • Doğu ABD
  • Doğu ABD 2
  • Orta Güney ABD
  • Batı ABD 2
  • Almanya Kuzey
  • 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:

Not

Örnek betik MBR bölüm stilini kullanır. Diskiniz iki tebibayt (TiB) veya daha büyükse GPT bölümleme kullanmanız gerekir. İki TiB'nin altındaysa MBR veya GPT kullanabilirsiniz.

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