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.