Tutorial: Creación y uso de discos con conjuntos de escalado de máquinas virtuales con la CLI de AzureTutorial: Create and use disks with virtual machine scale set with the Azure CLI

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.Virtual machine scale sets use disks to store the VM instance's operating system, applications, and data. 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.As you create and manage a scale set, it is important to choose a disk size and configuration appropriate to the expected workload. Este tutorial explica cómo crear y administrar discos de máquina virtual.This tutorial covers how to create and manage VM disks. En este tutorial, aprenderá a:In this tutorial you learn how to:

  • Discos del SO y temporalesOS disks and temporary disks
  • Discos de datosData disks
  • Discos Estándar y PremiumStandard and Premium disks
  • Rendimiento de discoDisk performance
  • Conexión y preparación de los discos de datosAttach and prepare data disks

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don’t have an Azure subscription, create a free account before you begin.

Uso de Azure Cloud ShellUse Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell le permite usar bash o PowerShell para trabajar con servicios de Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. 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.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Para iniciar Azure Cloud Shell:To launch Azure Cloud Shell:

OpciónOption Ejemplo o vínculoExample/Link
Seleccione Probarlo en la esquina superior derecha de un bloque de código.Select Try It in the upper-right corner of a code block. Solo con seleccionar Probar no se copia automáticamente el código en Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Ejemplo de Probarlo para Azure Cloud Shell
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell en una nueva ventanaLaunch Cloud Shell in a new window
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Botón Cloud Shell en Azure Portal

Para ejecutar el código de este artículo en Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie Cloud Shell.Launch Cloud Shell.

  2. Seleccione el botón Copiar de un bloque de código para copiar el código.Select the Copy button on a code block to copy the code.

  3. Pegue el código en la sesión de Cloud Shell con Ctrl+Mayús+V en Windows y Linux, o Cmd+Mayús+V en macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.

  4. Presione ENTRAR para ejecutar el código.Press Enter to run the code.

Si decide instalar y usar la CLI localmente, en este tutorial es preciso que ejecute la CLI de Azure 2.0.29 o versiones posteriores.If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.29 or later. Ejecute az --version para encontrar la versión.Run az --version to find the version. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.If you need to install or upgrade, see Install Azure CLI.

Discos de Azure predeterminadosDefault Azure disks

Cuando se crea o se escala un conjunto de escalado, se conectan automáticamente dos discos a cada instancia de máquina virtual.When a scale set is created or scaled, two disks are automatically attached to each VM instance.

Disco del sistema operativo: hospeda el sistema operativo de las instancias de máquina virtual. Pueden tener un tamaño de hasta 2 terabytes.Operating system disk - Operating system disks can be sized up to 2 TB, and hosts the VM instance's operating system. El disco del sistema operativo lleva de forma predeterminada la etiqueta /dev/sda .The OS disk is labeled /dev/sda by default. La configuración de almacenamiento en caché del disco del sistema operativo está optimizada para el rendimiento del sistema operativo.The disk caching configuration of the OS disk is optimized for OS performance. Debido a esta configuración, el disco del sistema operativo no debe hospedar aplicaciones o datos.Because of this configuration, the OS disk should not host applications or data. Para aplicaciones y datos, use discos de datos, que se detallan más adelante en este artículo.For applications and data, use data disks, which are detailed later in this article.

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.Temporary disk - Temporary disks use a solid-state drive that is located on the same Azure host as the VM instance. Son discos de gran rendimiento y se pueden usar para operaciones tales como el procesamiento temporal de los datos.These are high-performance disks and may be used for operations such as temporary data processing. 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.However, if the VM instance is moved to a new host, any data stored on a temporary disk is removed. El tamaño del disco temporal se determina por el tamaño de la instancia de máquina virtual.The size of the temporary disk is determined by the VM instance size. Los discos temporales llevan la etiqueta /dev/sdb y tienen un punto de montaje de /mnt.Temporary disks are labeled /dev/sdb and have a mountpoint of /mnt.

Tamaños de disco temporalTemporary disk sizes

TypeType Tamaños comunesCommon sizes Tamaño máximo de disco temporal (GiB)Max temp disk size (GiB)
Uso generalGeneral purpose Series A, B y DA, B, and D series 16001600
Proceso optimizadoCompute optimized Serie FF series 576576
Memoria optimizadaMemory optimized Series D, E, G y MD, E, G, and M series 61446144
Almacenamiento optimizadoStorage optimized Serie LL series 56305630
GPUGPU Serie NN series 14401440
Alto rendimientoHigh performance Series A y HA and H series 20002000

Discos de datos de AzureAzure data disks

Se pueden agregar discos de datos adicionales si necesita instalar aplicaciones y almacenar datos.Additional data disks can be added if you need to install applications and store data. Los discos de datos deben usarse en cualquier situación donde desee un almacenamiento de datos duradero y con capacidad de respuesta.Data disks should be used in any situation where durable and responsive data storage is desired. Cada disco de datos tiene una capacidad máxima de 4 TB.Each data disk has a maximum capacity of 4 TB. El tamaño de la instancia de máquina virtual determina cuántos discos de datos se pueden conectar.The size of the VM instance determines how many data disks can be attached. Para cada vCPU de la máquina virtual, se pueden asociar dos discos de datos.For each VM vCPU, two data disks can be attached.

Discos de datos máximos por máquina virtualMax data disks per VM

TypeType Tamaños comunesCommon sizes Discos de datos máximos por máquina virtualMax data disks per VM
Uso generalGeneral purpose Series A, B y DA, B, and D series 6464
Proceso optimizadoCompute optimized Serie FF series 6464
Memoria optimizadaMemory optimized Series D, E, G y MD, E, G, and M series 6464
Almacenamiento optimizadoStorage optimized Serie LL series 6464
GPUGPU Serie NN series 6464
Alto rendimientoHigh performance Series A y HA and H series 6464

Tipos de disco de máquina virtualVM disk types

Azure proporciona dos tipos de disco.Azure provides two types of disk.

Disco estándarStandard disk

Standard Storage está respaldado por unidades de disco duro y ofrece un almacenamiento rentable con un buen rendimiento.Standard Storage is backed by HDDs, and delivers cost-effective storage and performance. Los discos estándar son ideales para cargas de trabajo de desarrollo y prueba rentables.Standard disks are ideal for a cost effective dev and test workload.

Disco PremiumPremium disk

Los discos Premium están respaldados por un disco de latencia reducida y alto rendimiento basado en SSD.Premium disks are backed by SSD-based high-performance, low-latency disk. Estos discos se recomiendan para las máquinas virtuales que ejecutan cargas de trabajo de producción.These disks are recommended for VMs that run production workloads. Premium Storage es compatible con las máquinas virtuales de las series DS, DSv2, GS y FS.Premium Storage supports DS-series, DSv2-series, GS-series, and FS-series VMs. Al seleccionar el tamaño de un disco, el valor se redondea al alza al siguiente tipo.When you select a disk size, the value is rounded up to the next type. Por ejemplo, si el tamaño del disco es inferior a 128 GB, el tipo de disco es P10.For example, if the disk size is less than 128 GB, the disk type is P10. Si el tamaño de disco está entre 129 y 512 GB, el tamaño es un P20.If the disk size is between 129 GB and 512 GB, the size is a P20. Cualquier tamaño por encima de 512 GB equivale a un tipo P30.Over, 512 GB, the size is a P30.

Rendimiento del disco PremiumPremium disk performance

Tipo de disco de Premium StoragePremium storage disk type P4P4 P6P6 P10P10 P20P20 P30P30 P40P40 P50P50
Tamaño del disco (redondeo hacia arriba)Disk size (round up) 32 GB32 GB 64 GB64 GB 128 GB128 GB 512 GB512 GB 1024 GB (1 TB)1,024 GB (1 TB) 2048 GB (2 TB)2,048 GB (2 TB) 4095 GB (4 TB)4,095 GB (4 TB)
Máximo de IOPS por discoMax IOPS per disk 120120 240240 500500 2,3002,300 5.0005,000 75007,500 75007,500
Rendimiento de discoThroughput per disk 25 MB/s25 MB/s 50 MB/s50 MB/s 100 MB/s100 MB/s 150 MB/s150 MB/s 200 MB/s200 MB/s 250 MB/s250 MB/s 250 MB/s250 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.While the above table identifies max IOPS per disk, a higher level of performance can be achieved by striping multiple data disks. Por ejemplo, una máquina virtual Standard_GS5 puede conseguir 80 000 IOPS como máximo.For instance, a Standard_GS5 VM can achieve a maximum of 80,000 IOPS. 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 Linux.For detailed information on max IOPS per VM, see Linux VM sizes.

Creación y conexión de discosCreate and attach disks

Puede crear y conectar discos durante la creación de un conjunto de escalado o a un conjunto de escalado existente.You can create and attach disks when you create a scale set, or with an existing scale set.

Conexión de discos durante la creación del conjunto de escaladoAttach disks at scale set creation

En primer lugar, cree un grupo de recursos con el comando az group create.First, create a resource group with the az group create command. En este ejemplo se crea un grupo de recursos denominado myResourceGroup en la región eastus.In this example, a resource group named myResourceGroup is created in the eastus region.

az group create --name myResourceGroup --location eastus

Cree un conjunto de escalado de máquinas virtuales con el comando az vmss create.Create a virtual machine scale set with the az vmss create command. En el ejemplo siguiente se crea un conjunto de escalado llamado myScaleSet y se generan claves SSH si estas no existen aún.The following example creates a scale set named myScaleSet, and generates SSH keys if they do not exist. Se crean dos discos con el parámetro --data-disk-sizes-gb.Two disks are created with the --data-disk-sizes-gb parameter. Es el primer disco tiene un tamaño de 64 GB y, el segundo disco, de 128 GB:The first disk is 64 GB in size, and the second disk is 128 GB:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image UbuntuLTS \
  --upgrade-policy automatic \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 64 128

Se tardan unos minutos en crear y configurar todos los recursos del conjunto de escalado y las instancias de máquina virtual.It takes a few minutes to create and configure all the scale set resources and VM instances.

Conexión de un disco a un conjunto de escalado existenteAttach a disk to existing scale set

También puede conectar discos a un conjunto de escalado existente.You can also attach disks to an existing scale set. Use el conjunto de escalado creado en el paso anterior para agregar otro disco con az vmss disk attach.Use the scale set created in the previous step to add another disk with az vmss disk attach. En el ejemplo siguiente, se conecta un disco adicional de 128 GB:The following example attaches an additional 128 GB disk:

az vmss disk attach \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --size-gb 128

Preparación de los discos de datosPrepare the data disks

Los discos que se crean y conectan a las instancias de máquina virtual del conjunto de escalado son discos sin formato.The disks that are created and attached to your scale set VM instances are raw disks. Para poder usarlos con sus aplicaciones y datos, los discos deben prepararse.Before you can use them with your data and applications, the disks must be prepared. Para preparar los discos, cree una partición, cree un sistema de archivos y móntelos.To prepare the disks, you create a partition, create a filesystem, and mount them.

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.To automate the process across multiple VM instances in a scale set, you can use the Azure Custom Script Extension. Esta extensión puede ejecutar scripts localmente en cada instancia de máquina virtual, por ejemplo, para preparar los discos de datos conectados.This extension can execute scripts locally on each VM instance, such as to prepare attached data disks. Para obtener más información, consulte Información general de la extensión de script personalizado.For more information, see the Custom Script Extension overview.

En el ejemplo siguiente, se ejecuta un script desde un repositorio de ejemplo de GitHub en cada instancia de máquina virtual con az vmss extension set, que prepara todos los discos de datos conectados sin formato:The following example executes a script from a GitHub sample repo on each VM instance with az vmss extension set that prepares all the raw attached data disks:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.sh"],"commandToExecute":"./prepare_vm_disks.sh"}'

Para confirmar que los discos se han preparado correctamente, conéctese mediante SSH a una de las instancias de máquina virtual.To confirm that the disks have been prepared correctly, SSH to one of the VM instances. Para mostrar la información de conexión del conjunto de escalado, use az vmss list-instance-connection-info:List the connection information for your scale set with az vmss list-instance-connection-info:

az vmss list-instance-connection-info \
  --resource-group myResourceGroup \
  --name myScaleSet

Use su propia dirección IP pública y número de puerto para conectarse a la primera instancia de máquina virtual, tal y como se muestra en el ejemplo siguiente:Use your own public IP address and port number to connect to the first VM instance, as shown in the following example:

ssh azureuser@52.226.67.166 -p 50001

Examine las particiones en la instancia de máquina virtual, tal y como se indica a continuación:Examine the partitions on the VM instance as follows:

sudo fdisk -l

La salida del ejemplo siguiente muestra que los tres discos están conectados con la instancia de máquina virtual: /dev/sdc, /dev/sdd, and /dev/sde.The following example output shows that three disks are attached to the VM instance - /dev/sdc, /dev/sdd, and /dev/sde. Cada uno de esos discos tiene una única partición que usa todo el espacio disponible:Each of those disks has a single partition that uses all the available space:

Disk /dev/sdc: 64 GiB, 68719476736 bytes, 134217728 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa47874cb

Device     Boot Start       End   Sectors Size Id Type
/dev/sdc1        2048 134217727 134215680  64G 83 Linux

Disk /dev/sdd: 128 GiB, 137438953472 bytes, 268435456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd5c95ca0

Device     Boot Start       End   Sectors  Size Id Type
/dev/sdd1        2048 268435455 268433408  128G 83 Linux

Disk /dev/sde: 128 GiB, 137438953472 bytes, 268435456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9312fdf5

Device     Boot Start       End   Sectors  Size Id Type
/dev/sde1        2048 268435455 268433408  128G 83 Linux

Examine los sistemas de archivos y los puntos de montaje en la instancia de máquina virtual, de la siguiente manera:Examine the filesystems and mount points on the VM instance as follows:

sudo df -h

La siguiente salida de ejemplo muestra que los tres discos tienen sus sistemas de archivos montados correctamente en /datadisks:The following example output shows that the three disks have their filesystems correctly mounted under /datadisks:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        30G  1.3G   28G   5% /
/dev/sdb1        50G   52M   47G   1% /mnt
/dev/sdc1        63G   52M   60G   1% /datadisks/disk1
/dev/sdd1       126G   60M  120G   1% /datadisks/disk2
/dev/sde1       126G   60M  120G   1% /datadisks/disk3

Los discos en cada instancia de máquina virtual del conjunto de escalado se preparan automáticamente de la misma manera.The disks on each VM instance in your scale are automatically prepared in the same way. A medida que conjunto de escalado escale verticalmente, se conectan los discos de datos necesarios a las nuevas instancias de máquina virtual.As your scale set would scale up, the required data disks are attached to the new VM instances. La extensión de script personalizado también se ejecuta para preparar automáticamente los discos.The Custom Script Extension also runs to automatically prepare the disks.

Cierre la conexión SSH a la instancia de máquina virtual:Close the SSH connection to your VM instance:

exit

Enumeración de los discos conectadosList attached disks

Para ver información acerca de los discos conectados a un conjunto de escalado, use az vmss show y consulte virtualMachineProfile.storageProfile.dataDisks:To view information about disks attached to a scale set, use az vmss show and query on virtualMachineProfile.storageProfile.dataDisks:

az vmss show \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --query virtualMachineProfile.storageProfile.dataDisks

Se muestra información sobre el tamaño del disco, la capa de almacenamiento y el LUN (número de unidad lógica).Information on the disk size, storage tier, and LUN (Logical Unit Number) is shown. La salida del ejemplo siguiente muestra los tres discos de datos conectados con el conjunto de escalado:The following example output details the three data disks attached to the scale set:

[
  {
    "additionalProperties": {},
    "caching": "None",
    "createOption": "Empty",
    "diskSizeGb": 64,
    "lun": 0,
    "managedDisk": {
      "additionalProperties": {},
      "storageAccountType": "Standard_LRS"
    },
    "name": null
  },
  {
    "additionalProperties": {},
    "caching": "None",
    "createOption": "Empty",
    "diskSizeGb": 128,
    "lun": 1,
    "managedDisk": {
      "additionalProperties": {},
      "storageAccountType": "Standard_LRS"
    },
    "name": null
  },
  {
    "additionalProperties": {},
    "caching": "None",
    "createOption": "Empty",
    "diskSizeGb": 128,
    "lun": 2,
    "managedDisk": {
      "additionalProperties": {},
      "storageAccountType": "Standard_LRS"
    },
    "name": null
  }
]

Desconexión de un discoDetach a disk

Cuando ya no se necesita un disco determinado, se puede desconectar del conjunto de escalado.When you no longer need a given disk, you can detach it from the scale set. El disco se quita de todas las instancias de máquina virtual del conjunto de escalado.The disk is removed from all VM instances in the scale set. Para desconectar un disco de un conjunto de escalado, use az vmss disk detach y especifique el LUN del disco.To detach a disk from a scale set, use az vmss disk detach and specify the LUN of the disk. Los LUN se muestran en la salida de az vmss show, en la sección anterior.The LUNs are shown in the output from az vmss show in the previous section. En el ejemplo siguiente, se desconecta el LUN 2 del conjunto de escalado:The following example detaches LUN 2 from the scale set:

az vmss disk detach \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --lun 2

Limpieza de recursosClean up resources

Para quitar el conjunto de escalado y los discos, elimine el grupo de recursos y todos sus recursos con az group delete.To remove your scale set and disks, delete the resource group and all its resources with az group delete. El parámetro --no-wait devuelve el control a la petición de confirmación sin esperar a que finalice la operación.The --no-wait parameter returns control to the prompt without waiting for the operation to complete. El parámetro --yes confirma que desea eliminar los recursos sin pedir confirmación adicional.The --yes parameter confirms that you wish to delete the resources without an additional prompt to do so.

az group delete --name myResourceGroup --no-wait --yes

Pasos siguientesNext steps

En este tutorial, aprendió a crear y utilizar discos con conjuntos de escalado con la CLI de Azure:In this tutorial, you learned how to create and use disks with scale sets with the Azure CLI:

  • Discos del SO y temporalesOS disks and temporary disks
  • Discos de datosData disks
  • Discos Estándar y PremiumStandard and Premium disks
  • Rendimiento de discoDisk performance
  • Conexión y preparación de los discos de datosAttach and prepare data disks

Vaya al siguiente tutorial para aprender a usar una imagen personalizada para las instancias de máquina virtual de su conjunto de escalado.Advance to the next tutorial to learn how to use a custom image for your scale set VM instances.