Dołączanie dysku danych do maszyny wirtualnej z systemem Windows przy użyciu programu PowerShell

Dotyczy: ✔️ Maszyny wirtualne z systemem Windows — elastyczne zestawy ✔️ skalowania

W tym artykule przedstawiono sposób dołączania nowych i istniejących dysków do maszyny wirtualnej z systemem Windows przy użyciu programu PowerShell.

Najpierw zapoznaj się z następującymi wskazówkami:

W tym artykule jest używany program PowerShell w usłudze Azure Cloud Shell, który jest stale aktualizowany do najnowszej wersji. Aby otworzyć Cloud Shell, wybierz pozycję Wypróbuj w górnej części dowolnego bloku kodu.

Mniejsze opóźnienia

W wybranych regionach opóźnienie dołączania dysku zostało zmniejszone, więc zobaczysz poprawę do 15%. Jest to przydatne w przypadku zaplanowanych/nieplanowanych trybów failover między maszynami wirtualnymi, skalowania obciążenia lub uruchamiania obciążenia stanowego o dużej skali, takiego jak Azure Kubernetes Service. Jednak to ulepszenie jest ograniczone do jawnego polecenia dołączania dysku, Add-AzVMDataDisk. Nie zobaczysz poprawy wydajności, jeśli wywołasz polecenie, które może niejawnie wykonać dołączanie, na przykład Update-AzVM. Nie musisz podejmować żadnych działań innych niż wywoływanie jawnego polecenia attach, aby zobaczyć to ulepszenie.

Mniejsze opóźnienie jest obecnie dostępne w każdym regionie publicznym, z wyjątkiem:

  • Kanada Środkowa
  • Central US
  • East US
  • Wschodnie stany USA 2
  • South Central US
  • Zachodnie stany USA 2
  • Niemcy Północne
  • Jio India West
  • Europa Północna
  • West Europe

Dodawanie pustego dysku danych do maszyny wirtualnej

W tym przykładzie pokazano, jak dodać pusty dysk danych do istniejącej maszyny wirtualnej.

Korzystanie z dysków zarządzanych

$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

Używanie dysków zarządzanych w strefie dostępności

Aby utworzyć dysk w strefie dostępności, użyj polecenia New-AzDiskConfig z parametrem -Zone . Poniższy przykład tworzy dysk w strefie 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

Inicjowanie dysku

Po dodaniu pustego dysku należy go zainicjować. Aby zainicjować dysk, możesz zalogować się do maszyny wirtualnej i użyć zarządzania dyskami. Jeśli podczas jego tworzenia włączono usługę WinRM i certyfikat na maszynie wirtualnej, możesz użyć zdalnego programu PowerShell, aby zainicjować dysk. Można również użyć niestandardowego rozszerzenia skryptu:

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

Plik skryptu może zawierać kod umożliwiający zainicjowanie dysków, na przykład:

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

Dołączanie istniejącego dysku danych do maszyny wirtualnej

Istniejący dysk zarządzany można dołączyć do maszyny wirtualnej jako dysk danych.

$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

Następne kroki

Dyski zarządzane można również wdrażać przy użyciu szablonów. Aby uzyskać więcej informacji, zobacz Using Dyski zarządzane in Azure Resource Manager Templates (Używanie Dyski zarządzane w szablonach usługi Azure Resource Manager) lub szablonu Szybkiego startu na potrzeby wdrażania wielu dysków danych.