Delen via


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:

  • De grootte van de virtuele machine bepaalt hoeveel gegevensschijven u kunt koppelen. Zie Grootten voor virtuele machines voor meer informatie.
  • Als u Premium SSD's wilt gebruiken, hebt u een vm-type met Premium-opslag nodig, zoals de virtuele machine uit de DS-serie of de GS-serie.

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.

Lagere latentie

In bepaalde regio's is de latentie van schijfkoppeling verminderd, dus u ziet een verbetering van maximaal 15%. Dit is handig als u geplande/niet-geplande failovers hebt tussen VM's, u uw workload schaalt of 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
  • 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 gemaakt in zone 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

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 virtuele machine hebt ingeschakeld toen u deze hebt gemaakt, 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:

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

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

$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 Managed Disks gebruiken in Azure Resource Manager-sjablonen of de quickstart-sjabloon voor het implementeren van meerdere gegevensschijven voor meer informatie.