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 128 GiB. Dado que los discos son 128 GiB, se configuran como discos P10, que proporcionan un 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 de 128 GiB y se conecta a la máquina virtual creada 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 un disco de datos en Linux

Después de conectar un disco a la máquina virtual, configure el sistema operativo para que use el disco. En los ejemplos siguientes se configura manualmente el primer disco de datos de 128 GiB que se adjuntó al crear la máquina virtual. El controlador de disco de la máquina virtual determina cómo Linux expone el disco. También puede automatizar este proceso 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

Compruebe que identificó el disco de datos correcto antes de formatearlo. Dar formato al disco incorrecto da lugar a la pérdida de datos.

En una máquina virtual con un controlador SCSI, use lsblk para identificar el disco de datos. En los ejemplos siguientes se usa /dev/sdc. Reemplace por sdc el nombre del dispositivo para el disco de datos.

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"

Particione el disco con partedy, a continuación, use partprobe para que el sistema operativo tenga en cuenta la nueva tabla de particiones.

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

Escriba un sistema de archivos en la partición con el comando mkfs.

sudo mkfs.xfs /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       128G   52M  128G   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

La salida muestra el UUID de la unidad. En una máquina virtual con un controlador SCSI, la partición podría aparecer como /dev/sdc1. En una máquina virtual con un controlador NVMe, puede aparecer como /dev/nvme0n2p1.

/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

Antes de eliminar la máquina virtual, use az vm show para almacenar los identificadores de recursos de todos sus discos de datos en la dataDiskIds variable.

dataDiskIds=$(az vm show \
   --resource-group myResourceGroupDisk \
   --name myVM \
   --query "storageProfile.dataDisks[].managedDisk.id" \
   --output tsv)

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

Volver a adjuntar discos de datos

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

Utiliza az vm disk attach con cada ID de recurso para volver a conectar todos los discos de datos.

for dataDiskId in $dataDiskIds; do
   az vm disk attach \
      --resource-group myResourceGroupDisk \
      --vm-name myVM \
      --name "$dataDiskId"
done

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.