Bagikan melalui


Melampirkan disk data ke VM Windows dengan PowerShell

Berlaku untuk: ✔️ mesin virtual Windows ✔️ Kumpulan skala fleksibel

Artikel ini menunjukkan kepada Anda cara melampirkan disk baru dan yang sudah ada ke komputer virtual Windows menggunakan PowerShell.

Pertama, tinjau tips berikut:

Artikel ini menggunakan PowerShell dalam Azure Cloud Shell, yang terus diperbarui ke versi terbaru. Untuk membuka Cloud Shell, pilih Coba dari bagian atas blok kode apa pun.

Latensi yang lebih rendah

Di wilayah tertentu, latensi pelampiran disk telah berkurang sehingga Anda akan melihat peningkatan hingga 15%. Ini berguna jika Anda telah merencanakan/membatalkan rencana failover antar-VM, menskalakan beban kerja, atau menjalankan beban kerja stateful skala tinggi seperti Azure Kubernetes Service. Namun, peningkatan ini hanya berlaku untuk perintah pelampiran disk eksplisit, Add-AzVMDataDisk. Anda tidak akan melihat peningkatan performa jika menjalankan perintah pelampiran yang implisit, seperti Update-AzVM. Anda tidak perlu mengambil tindakan apa pun selain menjalankan perintah pelampiran eksplisit untuk melihat peningkatan ini.

Penurunan latensi saat ini dapat dirasakan di setiap wilayah publik, kecuali:

  • Kanada Tengah
  • AS Tengah
  • US Timur
  • AS Timur 2
  • AS Tengah Bagian Selatan
  • US Barat 2
  • Jerman Utara
  • JIO India Barat
  • Eropa Utara
  • Eropa Barat

Menambahkan disk data kosong ke komputer virtual

Contoh ini memperlihatkan cara menambahkan disk data kosong ke komputer virtual yang ada.

Menggunakan disk terkelola

$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

Menggunakan disk terkelola dalam Zona Ketersediaan

Untuk membuat disk di Zona Ketersediaan, gunakan New-AzDiskConfig dengan parameter -Zone. Contoh berikut membuat disk di zona 1.

$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

Menginisialisasi disk

Setelah menambahkan disk kosong, Anda harus menginisialisasinya. Untuk menginisialisasi disk, Anda dapat masuk ke VM dan menggunakan manajemen disk. Jika Anda mengaktifkan WinRM dan sertifikat pada VM saat membuatnya, Anda dapat menggunakan PowerShell jarak jauh untuk menginisialisasi disk. Anda juga dapat menggunakan ekstensi skrip kustom:

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

File skrip dapat berisi kode untuk menginisialisasi disk, misalnya:

    $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++
    }

Melampirkan disk data yang ada ke VM

Anda dapat melampirkan disk terkelola yang ada ke VM sebagai disk data.

$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

Langkah berikutnya

Anda juga dapat menyebarkan disk terkelola menggunakan templat. Untuk informasi selengkapnya, lihat Menggunakan Disk Terkelola di Templat Azure Resource Manager atau templat mulai cepat untuk menyebarkan beberapa disk data.