Conexión de un disco a una VM Windows con PowerShell
Se aplica a: ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles
En este artículo se explica cómo conectar discos nuevos y existentes a una máquina virtual Windows con PowerShell.
En primer lugar, revise estas sugerencias:
- El tamaño de la máquina virtual controla cuántos discos de datos puede conectar. Para más información, consulte Tamaños de las máquinas virtuales Linux en Azure.
- Para usar discos SSD Premium, necesitará un tipo de VM con Premium Storage habilitado, como el de las máquinas virtuales de las series DS o GS.
En este artículo se usa PowerShell dentro de Azure Cloud Shell, que se actualiza constantemente a la versión más reciente. Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior de cualquier bloque de código.
Menor latencia
En las regiones seleccionadas, se ha reducido la latencia de conexión de disco, por lo que verá una mejora de hasta un 15 %. Esto es útil si tiene conmutaciones por error planeadas o no planeadas entre máquinas virtuales, va a escalar la carga de trabajo o si ejecuta una carga de trabajo con estado a gran escala, como Azure Kubernetes Service. Sin embargo, esta mejora se limita al comando explícito de conexión de disco, Add-AzVMDataDisk
. No verá la mejora del rendimiento si llama a un comando que pueda realizar implícitamente una conexión, como Update-AzVM
. No es necesario realizar otra acción además de llamar al comando de conexión explícito para ver esta mejora.
La menor latencia está disponible actualmente en todas las regiones públicas, excepto en:
- Centro de Canadá
- Centro de EE. UU.
- Este de EE. UU.
- Este de EE. UU. 2
- Centro-sur de EE. UU.
- Oeste de EE. UU. 2
- Norte de Alemania
- India occidental
- Norte de Europa
- Oeste de Europa
Incorporación de un disco de datos vacío a una máquina virtual
En este ejemplo se muestra cómo agregar un disco de datos vacío a una máquina virtual existente.
Uso de discos administrados
$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 de discos administrados en una zona de disponibilidad
Para crear un disco en una zona de disponibilidad, use New-AzDiskConfig con el parámetro -Zone
. En el siguiente ejemplo se crea un disco en la 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
Initialize the disk
Después de agregar un disco vacío, debe inicializarlo. Para hacerlo, puede iniciar sesión en una VM y usar la administración de discos. Si habilitó WinRM y un certificado en la VM cuando la creó, puede usar PowerShell remoto para inicializar el disco. También puede utilizar una extensión de script personalizada:
$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"
El archivo de script puede contener código para inicializar los discos, por ejemplo:
Nota:
El script de ejemplo usa el estilo de partición MBR. Si el disco es de dos tebibytes (TiB) o más grande, debe usar la creación de particiones GPT. Si es menor de dos TiB, puede usar 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++
}
Incorporación de un disco de datos existente a una VM
También puede conectar un disco administrado existente a una máquina virtual como un disco de datos.
$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
Pasos siguientes
También puede implementar discos administrados mediante plantillas. Para más información, consulte Uso de Managed Disks en plantillas de Azure Resource Manager o la plantilla de inicio rápido para implementar varios discos de datos.