Collegare un disco dati a una macchina virtuale Windows con PowerShell
Si applica a: ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili
Questo articolo illustra come collegare dischi nuovi ed esistenti a una macchina virtuale Windows tramite PowerShell.
Esaminare prima di tutto i suggerimenti seguenti:
- La dimensione della macchina virtuale controlla il numero di dischi dati che è possibile collegare. Per altre informazioni, vedere Dimensioni delle macchine virtuali in Azure.
- Per usare unità SSD Premium, è necessario un tipo di macchina virtuale abilitato per Archiviazione Premium, ad esempio una macchina virtuale serie DS o GS.
Questo articolo usa PowerShell all'interno di Azure Cloud Shell, che viene costantemente aggiornato alla versione più recente. Per aprire Cloud Shell, selezionare Prova nella parte superiore di qualsiasi blocco di codice.
Latenza più bassa
Nelle aree selezionate, la latenza di collegamento del disco è stata ridotta, quindi si noterà un miglioramento fino al 15%. Ciò è utile se sono stati pianificati o non pianificati failover tra macchine virtuali, se si ridimensiona il carico di lavoro o si esegue un carico di lavoro con stato a scalabilità elevata, ad esempio il servizio Azure Kubernetes. Tuttavia, questo miglioramento è limitato al comando di collegamento esplicito del disco, Add-AzVMDataDisk
. Non verrà visualizzato il miglioramento delle prestazioni se si chiama un comando che può eseguire in modo implicito un collegamento, ad esempio Update-AzVM
. Non è necessario eseguire alcuna azione diversa da chiamare il comando di collegamento esplicito per visualizzare questo miglioramento.
La latenza inferiore è attualmente disponibile in ogni area pubblica, ad eccezione di:
- Canada centrale
- Stati Uniti centrali
- Stati Uniti orientali
- Stati Uniti orientali 2
- Stati Uniti centro-meridionali
- West US 2
- Germania settentrionale
- India occidentale Jio
- Europa settentrionale
- Europa occidentale
Aggiungere un disco dati vuoto a una macchina virtuale
Questo esempio illustra come aggiungere un disco dati vuoto a una macchina virtuale esistente.
Uso di Managed Disks
$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
Uso di Managed Disks in una zona di disponibilità
Per creare un disco in una zona di disponibilità, usare New AzDiskConfig con il parametro -Zone
. L'esempio seguente crea un disco nella zona 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
Inizializzare il disco
Dopo aver aggiunto un disco vuoto, è necessario inizializzarlo. Per inizializzare il disco, è possibile accedere a una macchina virtuale e usare la funzionalità di gestione del disco. Se sono stati abilitati il componente WinRM e un certificato nella macchina virtuale al momento della creazione, è possibile usare PowerShell remoto per inizializzare il disco. È anche possibile usare un'estensione di script personalizzata:
$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"
Il file di script può contenere il codice per inizializzare i dischi, ad esempio:
Nota
Lo script di esempio usa lo stile di partizione MBR. Se il disco è di due tebibyte (TiB) o superiore, è necessario usare il partizionamento GPT. Se è inferiore a due TiB, è possibile usare MBR o 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++
}
Collegare un disco dati esistente a una macchina virtuale
È possibile collegare un disco gestito esistente a una macchina virtuale come disco dati.
$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
Passaggi successivi
È anche possibile distribuire dischi gestiti usando modelli. Per altre informazioni, vedere Usare i dischi gestiti nei modelli di Azure Resource Managero il modello di avvio rapido per la distribuzione di più dischi dati.