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 sistema operativo y discos temporales.
  • Discos de datos.
  • Tipos de disco y opciones de rendimiento
  • 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 disco del sistema operativo (SO) hospeda el sistema operativo de la máquina virtual y puede ser de hasta 4095 gibibytes (GiB), aunque muchos sistemas operativos están particionados con registros de arranque maestros (MBR) de forma predeterminada. Un MBR limita el tamaño utilizable a 2 TiB. Si necesita más de 2 TiB, cree y adjunte discos de datos y utilícelos para el almacenamiento de datos. Los nombres de dispositivo varían según la generación de máquinas virtuales y el tipo de controlador de disco, por lo que no se basan en una ruta de acceso fija, como /dev/sda. El almacenamiento en caché del disco del sistema operativo está optimizado para el rendimiento del sistema operativo, por lo que no almacene los datos de la aplicación en el disco del sistema operativo. Use discos de datos para el almacenamiento de aplicaciones y datos.

Disco temporal - El almacenamiento temporal utiliza el almacenamiento local del mismo host de Azure que la máquina virtual. En función del tamaño y la generación de la máquina virtual, este almacenamiento puede aparecer como un disco temporal o un disco NVMe local. Es de alto rendimiento, pero no persistente. Si la máquina virtual se mueve a un nuevo host, se quitan los datos del almacenamiento temporal. El tamaño disponible depende del tamaño de la máquina virtual.

discos de datos

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 discos administrados ofrecen cinco tipos de disco:

En general, utilice Premium SSD v2 o Premium SSD para las cargas de trabajo de producción, Standard SSD para las cargas de trabajo de desarrollo y pruebas y las cargas de trabajo menos sensibles al rendimiento, y Ultra Disks para las cargas de trabajo de datos con uso intensivo de E/S. Los discos Ultra y SSD Premium v2 son opciones de solo disco de datos y no se pueden usar como discos del sistema operativo. Para obtener información detallada sobre los límites, la disponibilidad por región y las directrices de tamaño, consulte tipos de discos administrados de Azure.

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 Probar desde la esquina superior derecha de un bloque de código. También puede iniciar Cloud Shell en una pestaña independiente del explorador en https://shell.azure.com. Seleccione Copy para copiar un bloque de código, péguelo en Cloud Shell y presione Entrar para ejecutarlo.

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 aún no existen. El --data-disk-sizes-gb argumento especifica discos de datos adicionales para crear y adjuntar. Para crear y conectar más de un disco, use una lista delimitada por espacio de tamaños 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 [email protected]

Particione el 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. En caso de un problema o error, puede restaurar una 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 disco de forma independiente. 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 Azure Backup, que admite copias de seguridad automatizadas mientras se ejecuta la máquina virtual.

Creación de instantáneas

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 a partir del 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 \
   --resource-group 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 sistema operativo y discos temporales.
  • Discos de datos.
  • Tipos de disco y opciones de rendimiento
  • 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.