Een gegevensschijf koppelen aan een Windows-VM met PowerShell

Van toepassing op: ✔️ Flexibele schaalsets voor Windows-VM's ✔️

In dit artikel leest u hoe u zowel nieuwe als bestaande schijven koppelt aan een virtuele Windows-machine met behulp van PowerShell.

Bekijk eerst deze tips:

In dit artikel wordt PowerShell gebruikt in Azure Cloud Shell, dat voortdurend wordt bijgewerkt naar de nieuwste versie. Als u de Cloud Shell wilt openen, selecteert u Probeer het bovenaan een willekeurig codeblok.

Latentie van gegevensschijfkoppeling verminderen

In bepaalde regio's wordt de latentie van schijfkoppeling verminderd, zodat u een verbetering van maximaal 15%ziet. Deze verbetering is handig als u geplande of niet-geplande failovers tussen VM's hebt gepland, uw workload schaalt of als u een stateful workload met hoge schaal uitvoert, zoals Azure Kubernetes Service. Deze verbetering is echter beperkt tot de opdracht voor expliciete schijfkoppeling, Add-AzVMDataDisk. U ziet de prestatieverbetering niet als u een opdracht aanroept die impliciet een bijlage kan uitvoeren, zoals Update-AzVM. U hoeft geen andere actie te ondernemen dan het aanroepen van de expliciete bijlageopdracht om deze verbetering te zien.

Lagere latentie is momenteel beschikbaar in elke openbare regio, met uitzondering van:

  • Canada - midden
  • VS - centraal
  • VS - oost
  • VS - oost 2
  • VS - zuid-centraal
  • VS - west 2
  • Duitsland - noord
  • India West
  • Europa - noord
  • West-Europa

Een lege gegevensschijf toevoegen aan een virtuele machine

In dit voorbeeld ziet u hoe u een lege gegevensschijf toevoegt aan een bestaande virtuele machine.

Een beheerde schijf maken en koppelen

Stel waarden in voor de resourcegroep, DE VM, de locatie, het opslagtype en de naam van de gegevensschijf. De cmdlet New-AzDiskConfig maakt een configuratie voor een lege beheerde schijf met 128 GiB en New-AzDisk maakt de schijf. Vervolgens haalt Get-AzVM de VM-configuratie op, Add-AzVMDataDisk voegt u de schijf eraan toe en Update-AzVM past u de bijgewerkte configuratie toe op de virtuele machine.

$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

Een beheerde schijf maken en koppelen in een beschikbaarheidszone

Stel waarden in voor de resourcegroep, DE VM, de locatie, het opslagtype en de naam van de gegevensschijf. Als u een beheerde schijf in een beschikbaarheidszone wilt maken, gebruikt u New-AzDiskConfig met de parameter -Zone. In het volgende voorbeeld wordt een lege beheerde schijf met 128 GiB in zone 1 gemaakt, toegevoegd aan de VM-configuratie en wordt de bijgewerkte configuratie toegepast op de virtuele machine.

$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

De schijf initialiseren

Nadat u een lege schijf hebt toegevoegd, moet u deze initialiseren. Als u de schijf wilt initialiseren, meldt u zich aan bij een virtuele machine en gebruikt u schijfbeheer. Als u WinRM en een certificaat op de virtuele machine inschakelt wanneer u deze maakt, kunt u externe PowerShell gebruiken om de schijf te initialiseren.

U kunt ook de cmdlet Set-AzVMCustomScriptExtension gebruiken om een aangepaste scriptextensie toe te voegen aan de virtuele machine. In het volgende voorbeeld worden de resourcegroep- en VM-namen uit de bijlageprocedure gebruikt, samen met waarden voor de VM-locatie, de extensienaam, het initialisatiescriptbestand, de naam van het opslagaccount, de sleutel van het opslagaccount en de containernaam. Sla het script op in de opgegeven Azure Storage container voordat u de opdracht uitvoert:

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

Het scriptbestand kan code bevatten om de schijven te initialiseren, bijvoorbeeld:

Notitie

In het voorbeeldscript wordt de PARTITIEstijl MBR gebruikt. Als uw schijf twee tebibytes (TiB) of groter is, moet u GPT-partitionering gebruiken. Als deze onder twee TiB valt, kunt u MBR of GPT gebruiken.

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

Een bestaande gegevensschijf koppelen aan een VIRTUELE machine

Stel waarden in voor de resourcegroep, DE VM en de bestaande naam van de beheerde schijf. Gebruik Get-AzDisk om de beheerde schijf op te halen en Get-AzVM om de VM-configuratie op te halen. Gebruik vervolgens Add-AzVMDataDisk om de bestaande schijf toe te voegen aan de VM-configuratie en Update-AzVM om de bijgewerkte configuratie toe te passen op de virtuele machine.

$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

Volgende stappen

U kunt ook beheerde schijven implementeren met behulp van sjablonen. Zie Beheerde schijven gebruiken in Azure Resource Manager-sjablonen of de quickstart-sjabloon voor het implementeren van meerdere gegevensschijven voor meer informatie.