Tutorial: Administración de discos de Azure con la CLI de Azure

Se aplica a: ✔️ máquinas virtuales Linux ✔️ conjuntos de escalado flexibles

Las máquinas virtuales (VM) de Azure usan discos para almacenar el sistema operativo, las aplicaciones y los datos. Cuando se crea una máquina virtual es importante elegir un tamaño de disco y la configuración adecuada para la carga de trabajo esperada. En este tutorial se muestra cómo implementar y administrar los discos de una máquina virtual. Aprenderá sobre los siguientes temas:

  • Discos del SO y temporales.
  • Discos de datos.
  • Discos Estándar y Premium.
  • Rendimiento de disco.
  • Conectar y preparar los discos de datos
  • Instantáneas de disco.

Discos de Azure predeterminados

Cuando se crea una máquina virtual de Azure, se conectan dos discos automáticamente a la máquina virtual.

Disco del sistema operativo: el tamaño de los discos del sistema operativo puede llegar a los 2 TB y hospedan el sistema operativo de las máquinas virtuales. 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 se debe usar para aplicaciones o datos. Para aplicaciones y datos, use discos de datos, que se explican más adelante en este tutorial.

Disco temporal: los discos temporales usan una unidad de estado sólido que se encuentra en el mismo host de Azure que la máquina virtual. Los discos temporales son muy eficiente y se pueden usar para operaciones tales como el procesamiento temporal de los datos. Sin embargo, si la 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 máquina virtual. Los discos temporales llevan la etiqueta /dev/sdb y tienen un punto de montaje de /mnt.

Discos de datos de Azure

Para instalar aplicaciones y almacenar datos, se pueden agregar más discos de datos. Los discos de datos deben usarse en cualquier situación donde desee un almacenamiento de datos duradero y con capacidad de respuesta. El tamaño de la máquina virtual determina cuántos discos de datos se pueden conectar a una máquina virtual.

Tipos de disco de máquina virtual

Azure proporciona dos tipos de discos.

Discos estándar: respaldados por unidades de disco duro, ofrecen un almacenamiento rentable y buen rendimiento. Los discos estándar son ideales para cargas de trabajo de desarrollo y prueba rentables.

Discos Premium: respaldados por un disco de latencia reducida y alto rendimiento basado en SSD. Es perfecto para máquinas virtuales que ejecutan cargas de trabajo de producción. Los tamaños de máquina virtual con una letra S en el nombre de tamaño, normalmente admiten Premium Storage. Por ejemplo, las máquinas virtuales de las series DS, DSv2, GS y Fs admiten Premium Storage. 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 superior a 64 GB, pero inferior a 128 GB, el tipo de disco es P10.


Tamaños de SSD Premium P1 P2 P3 P4 P6 P10 P15 P20 P30 P40 P50 P60 P70 P80
Tamaño de disco en GiB 4 8 16 32 64 128 256 512 1024 2 048 4 096 8192 16 384 32 767
IOPS base aprovisionadas por disco 120 120 120 120 240 500 1 100 2,300 5\.000 7 500 7 500 16 000 18 000 20.000
**IOPS aprovisionadas expandidas por disco N/D N/D N/D N/D N/D N/D N/D N/D 8,000 16 000 20.000 20.000 20.000 20.000
Rendimiento base aprovisionado por disco 25 MB/s 25 MB/s 25 MB/s 25 MB/s 50 MB/s 100 MB/s 125 MB/s 150 MB/s 200 MB/s 250 MB/s 250 MB/s 500 MB/s 750 MB/s 900 MB/s
**Rendimiento aprovisionado ampliado por disco N/D N/D N/D N/D N/D N/D N/D N/D 300 MB/s 600 MB/s 900 MB/s 900 MB/s 900 MB/s 900 MB/s
Máximo de IOPS de ráfaga por disco 3500 3500 3500 3500 3500 3500 3500 3500 30 000* 30 000* 30 000* 30 000* 30 000* 30 000*
Capacidad de proceso máximo de ráfaga por disco 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 1000 MB/s 1000 MB/s 1000 MB/s 1000 MB/s 1000 MB/s 1000 MB/s
Duración máxima de ráfaga 30 min 30 min 30 min 30 min 30 min 30 min 30 min 30 min Sin límite* Sin límite* Sin límite* Sin límite* Sin límite* Sin límite*
Apto para reserva No No No No No No No No Sí, hasta un año Sí, hasta un año Sí, hasta un año Sí, hasta un año Sí, hasta un año Sí, hasta un año

* Solo se aplica a los discos con la expansión a petición habilitada.
** Solo se aplica a los discos con rendimiento extra habilitado (versión preliminar).

Cuando se aprovisiona un disco de Premium Storage, a diferencia de Standard Storage, se garantizan la capacidad, las E/S por segundo y el rendimiento del mismo. Por ejemplo, si crea un disco P50, Azure aprovisiona una capacidad de almacenamiento de 4095 GB, 7500 E/S por segundo y un rendimiento de 250 MB/s para él. La aplicación puede usar toda la capacidad y el rendimiento o parte de ellos. Los discos SSD Premium están diseñados para proporcionar bajas latencias inferiores a 10 milisegundos y un IOPS y rendimiento que se describen en la tabla anterior como del 99,9 % del tiempo.

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, 64 discos de datos pueden conectarse a la máquina virtual Standard_GS5. Si cada uno de estos discos tiene un tamaño P30, se puede lograr un máximo de 80 000 IOPS. Para más información sobre el número máximo de IOPS por máquina virtual, vea los tamaños y topos de máquinas virtuales.

Inicio de Azure Cloud Shell

Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo. Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.

Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior derecha de un bloque de código. También puede ir a https://shell.azure.com/powershell para iniciar Cloud Shell en una pestaña independiente del explorador. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, luego, presione Entrar para ejecutarlos.

Creación y conexión de discos

Los discos de datos se pueden crear y conectar en el momento de creación de la máquina virtual o a una máquina virtual existente.

Conexión del disco en el momento de creación de la máquina virtual

Para crear un grupo de recursos, use el comando az group create.

az group create --name myResourceGroupDisk --location eastus

Cree una máquina virtual mediante el comando az vm create. En el ejemplo siguiente, se crea una máquina virtual denominada myVM, se agrega una cuenta de usuario denominada azureuser y se generan claves SSH, si no existen. El argumento --datadisk-sizes-gb se usa para especificar que se debe crear y conectar un disco adicional a la máquina virtual. Para crear y conectar más de un disco, use una lista delimitada por espacios de valores de tamaño de disco. En el ejemplo siguiente, se crea una máquina virtual con dos discos de datos, ambos de 128 GB. Dado que los tamaños de disco son de 128 GB, estos discos se configuran ambos como P10s, que proporcionan el número máximo de 500 IOPS por disco.

az vm create \
  --resource-group myResourceGroupDisk \
  --name myVM \
  --image Ubuntu2204 \
  --size Standard_DS2_v2 \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 128 128

Conexión del disco a máquina virtual existente

Para crear y conectar un nuevo disco a una máquina virtual existente, use el comando az vm disk attach. En el ejemplo siguiente se crea un disco Premium con un tamaño de 128 gigabytes y se conecta a la máquina virtual que creó en el último paso.

az vm disk attach \
    --resource-group myResourceGroupDisk \
    --vm-name myVM \
    --name myDataDisk \
    --size-gb 128 \
    --sku Premium_LRS \
    --new

Preparación de los discos de datos

Después de que se ha conectado un disco a la máquina virtual, es necesario configurar el sistema operativo para usar el disco. En el ejemplo siguiente se muestra cómo configurar manualmente un disco. Este proceso también se puede automatizar mediante cloud-init, que se trata en un tutorial posterior.

Cree una conexión SSH con la máquina virtual. Reemplace la dirección IP de ejemplo por la dirección IP pública de la máquina virtual:

ssh azureuser@10.101.10.10

Cree particiones del disco con parted.

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%

Escriba un sistema de archivos en la partición con el comando mkfs. Use partprobe para hacer que el sistema operativo tenga en cuenta el cambio.

sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1

Monte el disco nuevo para que sea accesible en el sistema operativo.

sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive

Ahora se puede acceder al disco mediante el punto de montaje /datadrive, lo que se puede comprobar con el comando df -h.

df -h | grep -i "sd"

El resultado muestra la nueva unidad montada en /datadrive.

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.0G   27G   7% /
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1        14G   41M   13G   1% /mnt
/dev/sdc1        50G   52M   47G   1% /datadrive

Para asegurarse de que la unidad se vuelve a montar tras un reinicio, se debe agregar al archivo /etc/fstab. Para ello, obtenga el UUID del disco con la utilidad blkid.

sudo -i blkid

El resultado muestra el UUID de la unidad, en este caso /dev/sdc1.

/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs"

Nota

La edición incorrecta del archivo /etc/fstab puede tener como resultado un sistema que no se pueda arrancar. Si no está seguro, consulte la documentación de distribución para obtener información sobre cómo editar correctamente ese archivo. También se recomienda realizar una copia de seguridad del archivo /etc/fstab antes de editarlo.

Abra el archivo /etc/fstab en un editor de texto tal y como se indica a continuación:

sudo nano /etc/fstab

Agregue una línea similar a la siguiente al archivo /etc/fstab y reemplace el valor de UUID por el suyo propio.

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive  xfs    defaults,nofail   1  2

Cuando haya terminado de editar el archivo, use Ctrl+O para escribir el archivo y Ctrl+X para salir del editor.

Ahora que se ha configurado el disco, cierre la sesión de SSH.

exit

Tomar una instantánea de disco

Cuando se toma una instantánea de un disco, Azure crea una copia de solo lectura y de un momento dado del disco. Las instantáneas de máquina virtual de Azure resultan útiles para guardar rápidamente el estado de una máquina virtual antes de realizar cambios en la configuración. Si se produce un error, se puede restaurar la máquina virtual mediante una instantánea. Cuando una máquina virtual tiene más de un disco, se toma una instantánea de cada uno con independencia de los demás. Para realizar copias de seguridad coherentes con la aplicación, considere la posibilidad de detener la máquina virtual antes de tomar instantáneas de disco. Como alternativa, use el servicio Azure Backup, que permite realizar copias de seguridad automatizadas mientras se ejecuta la máquina virtual.

Create snapshot

Antes de crear una instantánea, necesita el identificador o el nombre del disco. Utilice az vm show para mostrar el identificador del disco. En este ejemplo, el identificador del disco se almacena en una variable para que se pueda usar en un paso posterior.

osdiskid=$(az vm show \
   -g myResourceGroupDisk \
   -n myVM \
   --query "storageProfile.osDisk.managedDisk.id" \
   -o tsv)

Ahora que tiene el identificador, utilice az snapshot create para crear una instantánea del disco.

az snapshot create \
    --resource-group myResourceGroupDisk \
    --source "$osdiskid" \
    --name osDisk-backup

Creación del disco a partir de la instantánea

Esta instantánea se puede convertir en un disco mediante az disk create, que se puede usar para volver a crear la máquina virtual.

az disk create \
   --resource-group myResourceGroupDisk \
   --name mySnapshotDisk \
   --source osDisk-backup

Restauración de la máquina virtual a partir de la instantánea

Para demostrar la recuperación de la máquina virtual, elimine la máquina virtual existente con az vm delete.

az vm delete \
--resource-group myResourceGroupDisk \
--name myVM

Cree una nueva máquina virtual en el disco de instantáneas.

az vm create \
    --resource-group myResourceGroupDisk \
    --name myVM \
    --attach-os-disk mySnapshotDisk \
    --os-type linux

Reconexión de un disco de datos

Todos los discos de datos se deben volver a conectar a la máquina virtual.

Busque el nombre del disco de datos con el comando az disk list. En este ejemplo se coloca el nombre del disco en una variable denominada datadisk, que se usa en el paso siguiente.

datadisk=$(az disk list \
   -g myResourceGroupDisk \
   --query "[?contains(name,'myVM')].[id]" \
   -o tsv)

Use el comando az vm disk attach para adjuntar el disco.

az vm disk attach \
   –g myResourceGroupDisk \
   --vm-name myVM \
   --name $datadisk

Pasos siguientes

En este tutorial, ha aprendido sobre temas relacionados con los discos de máquina virtual; por ejemplo:

  • Discos del SO y temporales.
  • Discos de datos.
  • Discos Estándar y Premium.
  • Rendimiento de disco.
  • Conectar y preparar los discos de datos
  • Instantáneas de disco.

Siga con el siguiente tutorial para aprender sobre la automatización de la configuración de la máquina virtual.