Anexar um disco de dados a uma VM do Windows com o PowerShell
Aplica-se a: ✔️ Conjuntos de dimensionamento flexíveis de VMs ✔️ do Windows
Este artigo mostra-lhe como anexar discos novos e existentes a uma máquina virtual do Windows com o PowerShell.
Primeiro, reveja estas sugestões:
- O tamanho da máquina virtual controla o número de discos de dados que pode anexar. Para obter mais informações, veja Tamanhos para máquinas virtuais.
- Para utilizar SSDs premium, precisará de um tipo de VM com capacidade de armazenamento premium, como a série DS ou a máquina virtual da série GS.
Este artigo utiliza o PowerShell no Cloud Shell do Azure, que é constantemente atualizado para a versão mais recente. Para abrir o Cloud Shell, selecione Experimentar na parte superior de qualquer bloco de código.
Latência mais baixa
Em regiões selecionadas, a latência de anexação do disco foi reduzida, pelo que verá uma melhoria de até 15%. Isto é útil se tiver ativações pós-falha planeadas/não planeadas entre VMs, estiver a dimensionar a carga de trabalho ou estiver a executar uma carga de trabalho com estado de alta escala, como Azure Kubernetes Service. No entanto, esta melhoria está limitada ao comando de anexação de disco explícito, Add-AzVMDataDisk
. Não verá a melhoria de desempenho se chamar um comando que possa executar implicitamente um anexo, como Update-AzVM
. Não precisa de efetuar qualquer ação que não seja chamar o comando de anexação explícito para ver esta melhoria.
A latência mais baixa está atualmente disponível em todas as regiões públicas, exceto em:
- Canadá Central
- E.U.A. Central
- E.U.A. Leste
- E.U.A. Leste 2
- E.U.A. Centro-Sul
- E.U.A. Oeste 2
- Norte da Alemanha
- Jio, Oeste da Índia
- Europa do Norte
- Europa Ocidental
Adicionar um disco de dados vazio a uma máquina virtual
Este exemplo mostra como adicionar um disco de dados vazio a uma máquina virtual existente.
Utilizar discos geridos
$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
Utilizar discos geridos numa Zona de Disponibilidade
Para criar um disco numa Zona de Disponibilidade, utilize New-AzDiskConfig com o -Zone
parâmetro . O exemplo seguinte cria um disco na 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
Inicializar o disco
Depois de adicionar um disco vazio, terá de o inicializar. Para inicializar o disco, pode iniciar sessão numa VM e utilizar a gestão de discos. Se ativou o WinRM e um certificado na VM quando o criou, pode utilizar o PowerShell remoto para inicializar o disco. Também pode utilizar uma extensão de script personalizado:
$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"
O ficheiro de script pode conter código para inicializar os discos, por exemplo:
$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++
}
Anexar um disco de dados existente a uma VM
Pode anexar um disco gerido existente a uma VM como um disco de dados.
$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
Passos seguintes
Também pode implementar discos geridos com modelos. Para obter mais informações, veja Using Managed Disks in Azure Resource Manager Templates or the quickstart template for deploying multiple data disks (Utilizar Managed Disks nos Modelos de Resource Manager do Azure ou o modelo de início rápido para implementar vários discos de dados).