Tutorial: Creación y uso de discos con conjuntos de escalado de máquinas virtuales con Azure PowerShell
Se aplica a: ✔️ máquinas virtuales Linux ✔️ máquinas virtuales Windows ✔️ conjuntos de escalado uniformes
Los conjuntos de escalado de máquinas virtuales usan discos para almacenar el sistema operativo, las aplicaciones y los datos de las máquinas virtuales. Al crear y administrar un conjunto de escalado, es importante elegir un tamaño de disco y la configuración adecuada para la carga de trabajo esperada. Este tutorial explica cómo crear y administrar discos de máquina virtual. En este tutorial, aprenderá a:
- Discos del SO y temporales.
- Discos de datos.
- Discos Estándar y Premium.
- Rendimiento de disco.
- Conexión y preparación de los discos de datos
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Nota
En este artículo se usa el módulo Az de PowerShell, que es el módulo de PowerShell que se recomienda para interactuar con Azure. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Uso de Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
| Opción | Ejemplo o vínculo |
|---|---|
| Seleccione Pruébelo en la esquina superior derecha de un bloque de código. Solo con seleccionar Pruébelo no se copia automáticamente el código en Cloud Shell. | ![]() |
| Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | ![]() |
| Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. | ![]() |
Para ejecutar el código de este artículo en Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar de un bloque de código para copiar el código.
Pegue el código en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Entrar para ejecutar el código.
Discos de Azure predeterminados
Cuando se crea o se escala un conjunto de escalado, se conectan automáticamente dos discos a cada instancia de máquina virtual.
Disco del sistema operativo: hospeda el sistema operativo de las instancias de máquina virtual. Pueden tener un tamaño de hasta 2 terabytes. El disco del sistema operativo lleva de forma predeterminada la etiqueta /dev/sda . La configuración de almacenamiento en caché del disco del sistema operativo está optimizada para el rendimiento del sistema operativo. Debido a esta configuración, el disco del sistema operativo no debe hospedar aplicaciones o datos. Para aplicaciones y datos, use discos de datos, que se detallan más adelante en este artículo.
Disco temporal: los discos temporales usan una unidad de estado sólido que se encuentra en el mismo host de Azure que la instancia de máquina virtual. Son discos de gran rendimiento y se pueden usar para operaciones tales como el procesamiento temporal de los datos. Sin embargo, si la instancia de máquina virtual se mueve a un nuevo host, los datos almacenados en un disco temporal se eliminarán. El tamaño del disco temporal se determina por el tamaño de la instancia de máquina virtual. Los discos temporales llevan la etiqueta /dev/sdb y tienen un punto de montaje de /mnt.
Tamaños de disco temporal
| Tipo | Tamaños comunes | Tamaño máximo de disco temporal (GiB) |
|---|---|---|
| Uso general | Series A, B y D | 1600 |
| Proceso optimizado | Serie F | 576 |
| Memoria optimizada | Series D, E, G y M | 6144 |
| Almacenamiento optimizado | Serie L | 5630 |
| GPU | Serie N | 1440 |
| Alto rendimiento | Series A y H | 2000 |
Discos de datos de Azure
Se pueden agregar discos de datos adicionales si necesita instalar aplicaciones y almacenar datos. Los discos de datos deben usarse en cualquier situación donde desee un almacenamiento de datos duradero y con capacidad de respuesta. Cada disco de datos tiene una capacidad máxima de 4 TB. El tamaño de la instancia de máquina virtual determina cuántos discos de datos se pueden conectar. Para cada vCPU de la máquina virtual, se pueden asociar dos discos de datos.
Discos de datos máximos por máquina virtual
| Tipo | Tamaños comunes | Discos de datos máximos por máquina virtual |
|---|---|---|
| Uso general | Series A, B y D | 64 |
| Proceso optimizado | Serie F | 64 |
| Memoria optimizada | Series D, E, G y M | 64 |
| Almacenamiento optimizado | Serie L | 64 |
| GPU | Serie N | 64 |
| Alto rendimiento | Series A y H | 64 |
Tipos de disco de máquina virtual
Azure proporciona dos tipos de disco.
Disco estándar
Standard Storage está respaldado por unidades de disco duro y ofrece un almacenamiento rentable con un buen rendimiento. Los discos estándar son ideales para cargas de trabajo de desarrollo y prueba rentables.
Disco Premium
Los discos Premium están respaldados por discos de latencia reducida y alto rendimiento basados en SSD. Estos discos se recomiendan para las máquinas virtuales que ejecutan cargas de trabajo de producción. Premium Storage es compatible con las máquinas virtuales de las series DS, DSv2, GS y FS. Al seleccionar el tamaño de un disco, el valor se redondea al alza al siguiente tipo. Por ejemplo, si el tamaño del disco es inferior a 128 GB, el tipo de disco es P10. Si el tamaño de disco está entre 129 y 512 GB, el tamaño es un P20. Cualquier tamaño por encima de 512 GB equivale a un tipo P30.
Rendimiento del disco Premium
| Tipo de disco de Premium Storage | P4 | P6 | P10 | P20 | P30 | P40 | P50 |
|---|---|---|---|---|---|---|---|
| Tamaño del disco (redondeo hacia arriba) | 32 GB | 64 GB | 128 GB | 512 GB | 1024 GB (1 TB) | 2048 GB (2 TB) | 4095 GB (4 TB) |
| Máximo de IOPS por disco | 120 | 240 | 500 | 2,300 | 5.000 | 7 500 | 7 500 |
| Rendimiento de disco. | 25 MB/s | 50 MB/s | 100 MB/s | 150 MB/s | 200 MB/s | 250 MB/s | 250 MB/s |
Aunque la tabla anterior identifica las IOPS máximas por disco, se puede obtener un mayor nivel de rendimiento dividiendo varios discos de datos. Por ejemplo, una máquina virtual Standard_GS5 puede conseguir 80 000 IOPS como máximo. Para más información sobre el número máximo de IOPS por máquina virtual, consulte los tamaños de máquinas virtuales Windows.
Creación y conexión de discos
Puede crear y conectar discos durante la creación de un conjunto de escalado o a un conjunto de escalado existente.
A partir versión 2019-07-01 de la API, puede establecer el tamaño del disco del sistema operativo en un conjunto de escalado de máquinas virtuales con la propiedad storageProfile.osDisk.diskSizeGb. Después del aprovisionamiento, es posible que tenga que expandir o volver a particionar el disco para hacer uso de todo el espacio. Obtenga más información sobre la expansión del disco aquí.
Conexión de discos durante la creación del conjunto de escalado
Cree un conjunto de escalado de máquinas virtuales con New-AzVmss. Cuando se le solicite, escriba el nombre de usuario y la contraseña de las instancias de máquina virtual. Para distribuir el tráfico a las instancias individuales de VM, también se crea un equilibrador de carga. El equilibrador de carga incluye reglas para distribuir el tráfico en el puerto TCP 80, y permitir el tráfico de Escritorio remoto en el puerto TCP 3389 y la conexión remota de PowerShell en el puerto TCP 5985.
Se crean dos discos con el parámetro -DataDiskSizeGb. El primer disco tiene un tamaño de 64 GB y, el segundo disco, de 128 GB: Cuando se le solicite, proporcione sus propias credenciales administrativas para las instancias de máquina virtual en el conjunto de escalado:
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Location "EastUS" `
-VMScaleSetName "myScaleSet" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer" `
-UpgradePolicyMode "Automatic" `
-DataDiskSizeInGb 64,128
Se tardan unos minutos en crear y configurar todos los recursos del conjunto de escalado y las instancias de máquina virtual.
Conexión de un disco a un conjunto de escalado existente
También puede conectar discos a un conjunto de escalado existente. Use el conjunto de escalado creado en el paso anterior para agregar otro disco con Add-AzVmssDataDisk. En el ejemplo siguiente, se conecta un disco adicional de 128 GB a un conjunto de escalado existente:
# Get scale set object
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
# Attach a 128 GB data disk to LUN 2
Add-AzVmssDataDisk `
-VirtualMachineScaleSet $vmss `
-CreateOption Empty `
-Lun 2 `
-DiskSizeGB 128
# Update the scale set to apply the change
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-VirtualMachineScaleSet $vmss
Preparación de los discos de datos
Los discos que se crean y conectan a las instancias de máquina virtual del conjunto de escalado son discos sin formato. Para poder usarlos con sus aplicaciones y datos, los discos deben prepararse. Para preparar los discos, cree una partición, cree un sistema de archivos y móntelos.
Para automatizar el proceso en varias instancias de máquina virtual en un conjunto de escalado, puede usar la extensión de script personalizado de Azure. Esta extensión puede ejecutar scripts localmente en cada instancia de máquina virtual, por ejemplo, para preparar los discos de datos conectados. Para obtener más información, consulte Información general de la extensión de script personalizado.
En el ejemplo siguiente se ejecuta un script desde un repositorio de ejemplo de GitHub en cada instancia de máquina virtual con Add-AzVmssExtension, que prepara todos los discos de datos conectados sin formato:
# Get scale set object
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
# Define the script for your Custom Script Extension to run
$publicSettings = @{
"fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.ps1");
"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File prepare_vm_disks.ps1"
}
# Use Custom Script Extension to prepare the attached data disks
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
-Name "customScript" `
-Publisher "Microsoft.Compute" `
-Type "CustomScriptExtension" `
-TypeHandlerVersion 1.8 `
-Setting $publicSettings
# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-VirtualMachineScaleSet $vmss
Para confirmar que los discos se han preparado correctamente, conéctese mediante RDP a una de las instancias de máquina virtual.
En primer lugar, obtenga el objeto de equilibrador de carga con Get-AzLoadBalancer. Después, consulte las reglas NAT de entrada con Get-AzLoadBalancerInboundNatRuleConfig. Las reglas NAT muestran el valor de FrontendPort para cada instancia de máquina virtual en la que RDP escucha. Por último, consiga la dirección IP pública del equilibrador de carga con Get-AzPublicIpAddress:
# Get the load balancer object
$lb = Get-AzLoadBalancer -ResourceGroupName "myResourceGroup" -Name "myLoadBalancer"
# View the list of inbound NAT rules
Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort
# View the public IP address of the load balancer
Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" -Name myPublicIPAddress | Select IpAddress
Para conectar con su máquina virtual, especifique su propia dirección IP pública y el número de puerto de la instancia de máquina virtual necesaria, tal y como se muestra en los comandos anteriores. Cuando se le solicite, escriba las credenciales usadas al crear el conjunto de escalado. Si se utiliza Azure Cloud Shell, realice este paso desde un símbolo del sistema local de PowerShell o un cliente de Escritorio remoto. En el ejemplo siguiente, se realiza una conexión a una instancia de máquina virtual 1:
mstsc /v 52.168.121.216:50001
Abra una sesión de PowerShell local en la instancia de máquina virtual y examine los discos conectados con Get-Disk:
Get-Disk
La salida del ejemplo siguiente muestra que los tres discos de datos están conectados con la instancia de máquina virtual.
Number Friendly Name HealthStatus OperationalStatus Total Size Partition Style
------ ------------- ------------ ----------------- ---------- ---------------
0 Virtual HD Healthy Online 127 GB MBR
1 Virtual HD Healthy Online 14 GB MBR
2 Msft Virtual Disk Healthy Online 64 GB MBR
3 Msft Virtual Disk Healthy Online 128 GB MBR
4 Msft Virtual Disk Healthy Online 128 GB MBR
Examine los sistemas de archivos y los puntos de montaje en la instancia de máquina virtual, de la siguiente manera:
Get-Partition
La salida del ejemplo siguiente muestra que los tres discos de datos tienen asignadas letras de unidad:
DiskPath: \\?\scsi#disk&ven_msft&prod_virtual_disk#000001
PartitionNumber DriveLetter Offset Size Type
--------------- ----------- ------ ---- ----
1 F 1048576 64 GB IFS
DiskPath: \\?\scsi#disk&ven_msft&prod_virtual_disk#000002
PartitionNumber DriveLetter Offset Size Type
--------------- ----------- ------ ---- ----
1 G 1048576 128 GB IFS
DiskPath: \\?\scsi#disk&ven_msft&prod_virtual_disk#000003
PartitionNumber DriveLetter Offset Size Type
--------------- ----------- ------ ---- ----
1 H 1048576 128 GB IFS
Los discos en cada instancia de máquina virtual del conjunto de escalado se preparan automáticamente de la misma manera. A medida que conjunto de escalado escale verticalmente, se conectan los discos de datos necesarios a las nuevas instancias de máquina virtual. La extensión de script personalizado también se ejecuta para preparar automáticamente los discos.
Cierre la sesión de conexión a Escritorio remoto con la instancia de máquina virtual.
Enumeración de los discos conectados
Para ver información acerca de los discos conectados a un conjunto de escalado, use Get-AzVmss de la siguiente manera:
Get-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet"
En la propiedad VirtualMachineProfile.StorageProfile, se muestra la lista de DataDisks. Se muestra información sobre el tamaño del disco, la capa de almacenamiento y el LUN (número de unidad lógica). La salida del ejemplo siguiente muestra los tres discos de datos conectados con el conjunto de escalado:
DataDisks[0] :
Lun : 0
Caching : None
CreateOption : Empty
DiskSizeGB : 64
ManagedDisk :
StorageAccountType : PremiumLRS
DataDisks[1] :
Lun : 1
Caching : None
CreateOption : Empty
DiskSizeGB : 128
ManagedDisk :
StorageAccountType : PremiumLRS
DataDisks[2] :
Lun : 2
Caching : None
CreateOption : Empty
DiskSizeGB : 128
ManagedDisk :
StorageAccountType : PremiumLRS
Desconexión de un disco
Cuando ya no se necesita un disco determinado, se puede desconectar del conjunto de escalado. El disco se quita de todas las instancias de máquina virtual del conjunto de escalado. Para desconectar un disco de un conjunto de escalado, use Remove-AzVmssDataDisk y especifique el LUN del disco. Los LUN se muestran en la salida de Get-AzVmss, en la sección anterior. En el ejemplo siguiente, se desconecta el LUN 3 del conjunto de escalado:
# Get scale set object
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
# Detach a disk from the scale set
Remove-AzVmssDataDisk `
-VirtualMachineScaleSet $vmss `
-Lun 2
# Update the scale set and detach the disk from the VM instances
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-VirtualMachineScaleSet $vmss
Limpieza de recursos
Para quitar el conjunto de escalado y los discos, elimine el grupo de recursos y todos sus recursos con Remove-AzResourceGroup. El parámetro -Force confirma que desea eliminar los recursos sin pedir confirmación adicional. El parámetro -AsJob devuelve el control a la petición de confirmación sin esperar a que finalice la operación.
Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob
Pasos siguientes
En este tutorial, aprendió a crear y utilizar discos con conjuntos de escalado con Azure PowerShell:
- Discos del SO y temporales.
- Discos de datos.
- Discos Estándar y Premium.
- Rendimiento de disco.
- Conexión y preparación de los discos de datos
Vaya al siguiente tutorial para aprender a usar una imagen personalizada para las instancias de máquina virtual de su conjunto de escalado.


