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 zarówno nowych, jak 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ć usługę Cloud Shell, wybierz pozycję Wypróbuj w górnej części dowolnego bloku kodu.

Zmniejszanie opóźnienia dołączania dysku danych

W wybranych regionach opóźnienie dołączania dysku zostanie zmniejszone, więc zostanie wyświetlona poprawa do 15%. To usprawnienie jest przydatne w sytuacjach, gdy masz planowane lub nieplanowane przejścia w tryb failover między maszynami wirtualnymi, skalujesz swoje obciążenie lub uruchamiasz obciążenie stanowe o dużej skali, takie jak w usłudze Azure Kubernetes Service. Jednak to ulepszenie jest ograniczone do jawnego polecenia dołączania dysku Add-AzVMDataDisk. Nie widzisz poprawy wydajności, jeśli wywołasz polecenie, które może niejawnie wykonać dołączanie, takie jak Update-AzVM. Nie musisz podejmować żadnych działań innych niż wywoływanie jawnego polecenia dołączania, aby zobaczyć to ulepszenie.

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

  • Kanada Środkowa
  • Środkowe stany USA
  • Wschodnie stany USA
  • Wschodnie stany USA 2
  • Południowo-środkowe stany USA
  • Zachodnie stany USA 2
  • Niemcy Północne
  • Indie Zachodnie
  • Europa Północna
  • Europa Zachodnia

Dodawanie pustego dysku danych do maszyny wirtualnej

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

Tworzenie i dołączanie dysku zarządzanego

Ustaw wartości dla grupy zasobów, maszyny wirtualnej, lokalizacji, typu magazynu i nazwy dysku danych. Polecenie cmdlet New-AzDiskConfig tworzy konfigurację pustego dysku zarządzanego 128 GiB, a polecenie New-AzDisk tworzy dysk. Następnie polecenie Get-AzVM pobiera konfigurację maszyny wirtualnej, Add-AzVMDataDisk dodaje do niego dysk i Update-AzVM stosuje zaktualizowaną konfigurację do maszyny wirtualnej.

$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

Tworzenie i dołączanie dysku zarządzanego w strefie dostępności

Ustaw wartości dla grupy zasobów, maszyny wirtualnej, lokalizacji, typu magazynu i nazwy dysku danych. Aby utworzyć dysk zarządzany w strefie dostępności, użyj New-AzDiskConfig z parametrem -Zone. Poniższy przykład tworzy pusty dysk zarządzany 128 GiB w strefie 1, dodaje go do konfiguracji maszyny wirtualnej i stosuje zaktualizowaną konfigurację do maszyny wirtualnej.

$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, zaloguj się do maszyny wirtualnej i użyj zarządzania dyskami. Jeśli włączysz usługę WinRM i certyfikat na maszynie wirtualnej podczas jej tworzenia, możesz zainicjować dysk za pomocą zdalnego programu PowerShell.

Możesz również użyć polecenia cmdlet Set-AzVMCustomScriptExtension , aby dodać rozszerzenie niestandardowego skryptu do maszyny wirtualnej. W poniższym przykładzie użyto nazw grup zasobów i maszyn wirtualnych z procedury załącznika wraz z wartościami lokalizacji maszyny wirtualnej, nazwy rozszerzenia, pliku skryptu inicjowania, nazwy konta magazynu, klucza konta magazynu i nazwy kontenera. Przed uruchomieniem polecenia zapisz skrypt w określonym kontenerze Azure Storage:

    $location = "location-name"
    $scriptName = "script-name"
    $fileName = "script-file-name"
    Set-AzVMCustomScriptExtension -ResourceGroupName $rgName -Location $location -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:

Uwaga

Przykładowy skrypt używa stylu partycji MBR. Jeśli dysk ma dwa tebibajty (TiB) lub większy, należy użyć partycjonowania GPT. Jeśli jest mniejsze niż dwa TiB, możesz użyć MBR lub GPT.

    $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

Ustaw wartości dla grupy zasobów, maszyny wirtualnej i istniejącej nazwy dysku zarządzanego. Użyj polecenia Get-AzDisk , aby uzyskać dysk zarządzany i Get-AzVM uzyskać konfigurację maszyny wirtualnej. Następnie użyj polecenia Add-AzVMDataDisk , aby dodać istniejący dysk do konfiguracji maszyny wirtualnej i Update-AzVM zastosować zaktualizowaną konfigurację do maszyny wirtualnej.

$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

Dalsze kroki

Dyski zarządzane można również wdrażać przy użyciu szablonów. Aby uzyskać więcej informacji, zobacz Używanie dysków zarządzanych w szablonach usługi Azure Resource Manager lub szablon szybkiego startu do wdrażania wielu dysków danych.