Dela via


Koppla en datadisk till en virtuell Windows-dator med PowerShell

Gäller för: ✔️ Virtuella Windows-datorer ✔️ – flexibla skalningsuppsättningar

Den här artikeln visar hur du kopplar både nya och befintliga diskar till en virtuell Windows-dator med hjälp av PowerShell.

Granska först de här tipsen:

Den här artikeln använder PowerShell i Azure Cloud Shell, som ständigt uppdateras till den senaste versionen. Öppna Cloud Shell genom att välja Prova längst upp i ett kodblock.

Kortare svarstider

I utvalda regioner har svarstiden för diskanslutningen minskat, så du ser en förbättring på upp till 15 %. Detta är användbart om du har planerade/oplanerade redundansväxlingar mellan virtuella datorer, om du skalar din arbetsbelastning eller kör en tillståndskänslig arbetsbelastning i hög skala, till exempel Azure Kubernetes Service. Den här förbättringen är dock begränsad till det explicita kommandot för diskanslutning, Add-AzVMDataDisk. Prestandaförbättringen visas inte om du anropar ett kommando som implicit kan utföra en koppling, till exempel Update-AzVM. Du behöver inte vidta någon annan åtgärd än att anropa det explicita attach-kommandot för att se den här förbättringen.

Kortare svarstider är för närvarande tillgängliga i alla offentliga regioner förutom:

  • Kanada, centrala
  • Central US
  • East US
  • USA, östra 2
  • USA, södra centrala
  • USA, västra 2
  • Tyskland, norra
  • Jio Indien, västra
  • Europa, norra
  • Europa, västra

Lägga till en tom datadisk till en virtuell dator

Det här exemplet visar hur du lägger till en tom datadisk till en befintlig virtuell dator.

Använda hanterade diskar

$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

Använda hanterade diskar i en tillgänglighetszon

Om du vill skapa en disk i en tillgänglighetszon använder du New-AzDiskConfig med parametern -Zone . I följande exempel skapas en disk i zon 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

Initiera disken

När du har lagt till en tom disk måste du initiera den. Om du vill initiera disken kan du logga in på en virtuell dator och använda diskhantering. Om du aktiverade WinRM och ett certifikat på den virtuella datorn när du skapade det kan du använda fjärr-PowerShell för att initiera disken. Du kan också använda ett anpassat skripttillägg:

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

Skriptfilen kan innehålla kod för att initiera diskarna, till exempel:

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

Koppla en befintlig datadisk till en virtuell dator

Du kan ansluta en befintlig hanterad disk till en virtuell dator som en datadisk.

$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

Nästa steg

Du kan också distribuera hanterade diskar med hjälp av mallar. Mer information finns i Använda Managed Disks i Azure Resource Manager-mallar eller snabbstartsmallen för att distribuera flera datadiskar.