Ejercicio: Incorporación de discos de datos a máquinas virtuales
Su bufete de abogados está ampliando su carga de casos y tiene la tarea de crear un nuevo servidor web Linux para almacenar documentos críticos de diversos orígenes: clientes, otros bufetes de abogados y oficinas de cumplimiento de la ley. El servidor web le permiten cargar documentos y almacenarlos en el disco.
Sugerencia
Este ejercicio usa Linux como ejemplo, pero el proceso básico de creación de máquinas virtuales y adición de discos es el mismo para Windows. La diferencia principal es la forma de particionar y formatear el disco. En Windows, puede conectarse a la máquina virtual a través de Escritorio remoto y usar las herramientas integradas de administración de discos o implementar un script de PowerShell que sea similar al script de Bash que usaremos aquí.
El objetivo es crear una máquina virtual Linux y asociar un nuevo disco duro virtual (VHD) llamado uploadDataDisk1 para almacenar el directorio /uploads
.
Establecer los valores predeterminados de CLI de Azure
La CLI de Azure le permite establecer valores predeterminados para que no tenga que repetirlos cada vez que ejecute un comando.
Puede especificar la ubicación o región de Azure predeterminada. Esta ubicación es donde se coloca la máquina virtual de Azure.
Lo ideal es que esta localización esté cerca de los clientes. En este caso, seleccione la región más cercana a usted de las ubicaciones disponibles para el espacio aislado de Azure.
El espacio aislado gratuito permite crear recursos en un subconjunto de las regiones globales de Azure. Seleccione una región de la lista al crear los recursos:
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
Ejecute
az configure
para establecer la ubicación predeterminada que quiera usar. Reemplace eastus con la ubicación que eligió en el paso anterior.az configure --defaults location=eastus
Sugerencia
Puede usar el botón Copiar para copiar los comandos en el Portapapeles. Para pegarlos, haga clic con el botón derecho en una nueva línea en el terminal de Cloud Shell y seleccione Pegar, o bien use el método abreviado de teclado Mayús+Insert (⌘+V en macOS).
Establezca el nombre del grupo de recursos predeterminado en el grupo de recursos preconfigurado que creó para el espacio aislado de Azure:
[grupo de recursos de espacio aislado] az configure --defaults group="<rgn>[sandbox Resource Group]</rgn>"
Creación de una máquina virtual Linux
Aquí, crea una máquina virtual Linux para hospedar el servidor web.
Ejecute el comando
az vm create
para crear la máquina virtual Ubuntu Linux.az vm create \ --name support-web-vm01 \ --image Canonical:UbuntuServer:16.04-LTS:latest \ --size Standard_DS1_v2 \ --admin-username azureuser \ --generate-ssh-keys
- El nombre de la máquina virtual es support-web-vm01.
- Su tamaño es Standard_DS1_v2.
- El nombre de usuario de administrador es azureuser. En la práctica, este nombre puede ser el que quiera.
- El argumento
--generate-ssh-keys
genera un par de claves SSH que le permiten conectarse a la máquina virtual a través de SSH.
La maquina virtual tarda unos minutos en implementarse. Cuando la máquina virtual esté preparada, obtendrá información sobre ella en formato JSON. Este es un ejemplo:
{ "fqdns": "", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Compute/virtualMachines/support-web-vm01", "location": "eastus", "macAddress": "00-0D-3A-10-63-0A", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "104.211.38.211", "resourceGroup": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e", "zones": "" }
Nota
En esta lección usará esta máquina virtual para aprender a administrar discos. En la práctica, es posible que también instale el servidor web y otro software y después ejecute
az vm open-port
para que los puertos estén disponibles para el mundo exterior.
Adición de un disco de datos vacío a la máquina virtual
Aquí, crea un disco de datos vacío y lo adjuntará a la máquina virtual. Al principio, el disco de datos tiene un tamaño de 64 GB. Más adelante, montará este disco en el directorio /uploads
en la máquina virtual.
Sugerencia
Con fines de aprendizaje, va a crear la máquina virtual y el disco de datos en pasos independientes. En la práctica, puede especificar el argumento --data-disk-sizes-gb
al comando az vm create
para agregar discos de datos cuando se cree la máquina virtual.
Ejecute el siguiente comando
az vm disk attach
para agregar un nuevo disco vacío a la máquina virtual.az vm disk attach \ --vm-name support-web-vm01 \ --name uploadDataDisk1 \ --size-gb 64 \ --sku Premium_LRS \ --new
Este comando:
- Asigna el nombre uploadDataDisk1 al disco.
- Establece el tamaño en 64 GB.
- Especifica el uso del almacenamiento prémium con redundancia local.
Para usar el disco, tiene que crear particiones y formatearlo. Lo haremos a continuación.
Inicializar y formatear el disco de datos
La unidad de datos vacía debe inicializarse y formatearse. El proceso para hacerlo es el mismo que para un disco físico.
Para tareas únicas, conéctese manualmente a la máquina virtual a través de SSH y ejecute los comandos que necesite. Sin embargo, para que el proceso sea más repetitivo y con menos tendencia a errores, puede especificar sus comandos en un script de Bash o un script de PowerShell (si está disponible).
El uso de un script para automatizar el proceso tiene una ventaja adicional: el script sirve como documentación para explicar cómo se realiza el proceso. Otros usuarios pueden leer el script para entender cómo se ha configurado el sistema. Si necesita cambiar el proceso, solo tiene que modificar el script y probarlo en una máquina virtual temporal creada desde cero antes de implementar el cambio en producción.
Para automatizar el proceso en esta lección, puede usar la extensión de script personalizado. La extensión de script personalizado es una manera fácil de descargar y ejecutar scripts en máquinas virtuales de Azure. Es solo una de las numerosas formas de configurar el sistema después de que la máquina virtual esté en funcionamiento.
Puede almacenar los scripts en el almacenamiento de Azure o en una ubicación pública como GitHub. Puede ejecutar scripts manualmente o como parte de una implementación más automatizada. Aquí, ejecuta un comando de la CLI de Azure para descargar un script de Bash prefabricado desde GitHub y ejecutarlo en su máquina virtual.
Con fines de aprendizaje, también vamos a ejecutar algunos comandos en la máquina virtual para comprobar que la máquina virtual está configurada como quería.
Ejecute
az vm show
para obtener la dirección IP pública de la máquina virtual y guarde la dirección IP como una variable de Bash.ipaddress=$(az vm show \ --name support-web-vm01 \ --show-details \ --query [publicIps] \ --output tsv)
Ejecute el siguiente comando
ssh
para ejecutar el comandolsblk
en la máquina virtual a través de una conexión SSH con los datos variables deipaddress
que creó en el paso anterior. Recuerde queazureuser
era el nombre de usuario de administrador que usamos cuando creamos la máquina virtual. Si ha elegido un nombre diferente, use ese en su lugar. Escriba sí cuando se le solicite.ssh azureuser@$ipaddress lsblk
La salida del comando debe tener el siguiente aspecto.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 7G 0 disk └─sdb1 8:17 0 7G 0 part /mnt sr0 11:0 1 628K 0 rom sdc 8:32 0 64G 0 disk sda 8:0 0 30G 0 disk ├─sda14 8:14 0 4M 0 part ├─sda15 8:15 0 106M 0 part /boot/efi └─sda1 8:1 0 29.9G 0 part /
Observe que la unidad de 64 GB (
sdc
) que creó no está montada. La unidad aparece de esta manera porque aún no se inicializa.Ejecute el siguiente comando
az vm extension set
para ejecutar el script de Bash prefabricado en la máquina virtual.Advertencia
El script modifica
/etc/fstab
. Si archivo/etc/fstab
se modifica incorrectamente, puede provocar que no se pueda arrancar el sistema. Pruebe siempre los cambios de configuración en un sistema temporal creado desde cero antes de implementar en producción. Vea la documentación sobre la distribución para obtener información sobre cómo modificar correctamente este archivo. En producción, también se recomienda crear una copia de seguridad de este archivo para restaurar la configuración si es necesario.az vm extension set \ --vm-name support-web-vm01 \ --name customScript \ --publisher Microsoft.Azure.Extensions \ --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/add-data-disk.sh"]}' \ --protected-settings '{"commandToExecute": "./add-data-disk.sh"}'
Mientras se ejecuta el comando, puede examinar el script de Bash en una pestaña independiente del explorador.
En resumen, el script:
- Crea particiones de la unidad
/dev/sdc
. - Crea un sistema de archivos ext4 en la unidad.
- Crea el directorio
/uploads
, que usamos como nuestro punto de montaje. - Adjunta el disco al punto de montaje.
- Actualiza
/etc/fstab
para que la unidad se monte automáticamente después de reiniciar el sistema.
- Crea particiones de la unidad
Para comprobar la configuración, ejecute el mismo comando
ssh
como hizo anteriormente para ejecutar el comandolsblk
en la máquina virtual a través de una conexión SSH.ssh azureuser@$ipaddress lsblk
Deberá comprobar que
sdc/sdc1
se particiona y se monta en el directorio/uploads
según lo esperado.NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 7G 0 disk └─sdb1 8:17 0 7G 0 part /mnt sr0 11:0 1 628K 0 rom sdc 8:32 0 64G 0 disk └─sdc1 8:33 0 64G 0 part /uploads sda 8:0 0 30G 0 disk ├─sda14 8:14 0 4M 0 part ├─sda15 8:15 0 106M 0 part /boot/efi └─sda1 8:1 0 29.9G 0 part /
Sugerencia
Algunos kernels de Linux admiten operaciones TRIM para descartar los bloques no usados del disco. Esta característica está disponible en los discos de Azure y puede ahorrarle dinero si crea archivos grandes y luego los elimina. En la documentación de Azure se explica cómo activar esta característica.
Resumen
Ha creado un disco de datos y lo ha adjuntado a la máquina virtual. Ha usado la extensión de script personalizado para ejecutar un script de Bash prefabricado en la máquina virtual para que el proceso sea más repetitivo. El script de Bash crea particiones del disco, lo formatea y lo monta para que el servidor web pueda escribir en él.
Ahora que el disco de datos en la máquina virtual está preparado, vamos a profundizar en varios tipos de discos que puede crear. La decisión principal es elegir entre el almacenamiento Estándar o Premium.