Delen via


Een gegevensschijf koppelen aan een Windows-VM met PowerShell

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

In dit artikel wordt beschreven hoe u nieuwe en bestaande schijven koppelt aan een virtuele Windows-machine met behulp van PowerShell.

Bekijk eerst deze tips:

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

Lagere latentie

In bepaalde regio's is de latentie van schijfkoppelingen verminderd, dus u ziet een verbetering van maximaal 15%. Dit is handig als u geplande/niet-geplande failovers tussen VM's hebt, uw workload schaalt of een stateful workload op grote schaal uitvoert, zoals Azure Kubernetes Service. Deze verbetering is echter beperkt tot de expliciete opdracht voor schijfkoppeling, Add-AzVMDataDisk. De prestatieverbetering wordt niet weergegeven als u een opdracht aanroept waarmee impliciet een bijlage wordt uitgevoerd, zoals Update-AzVM. U hoeft geen andere actie te ondernemen dan het aanroepen van de expliciete koppelingsopdracht 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
  • Jio India West
  • Europa - noord
  • Europa -west

Een lege gegevensschijf toevoegen aan een virtuele machine

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

Beheerde schijven gebruiken

$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

Beheerde schijven gebruiken in een beschikbaarheidszone

Als u een schijf in een beschikbaarheidszone wilt maken, gebruikt u New-AzDiskConfig met de -Zone parameter . In het volgende voorbeeld wordt een schijf in zone 1 gemaakt.

$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, kunt u zich aanmelden bij een virtuele machine en schijfbeheer gebruiken. Als u WinRM en een certificaat op de VM hebt ingeschakeld toen u deze maakte, kunt u externe PowerShell gebruiken om de schijf te initialiseren. U kunt ook een aangepaste scriptextensie gebruiken:

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

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

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

U kunt een bestaande beheerde schijf koppelen aan een virtuele machine als een gegevensschijf.

$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 beheerde schijven ook implementeren met behulp van sjablonen. Zie Using Managed Disks in Azure Resource Manager Templates (Managed Disks gebruiken in Azure Resource Manager-sjablonen) of de quickstart-sjabloon voor het implementeren van meerdere gegevensschijven voor meer informatie.