Ejercicio: Incorporación de discos de datos a máquinas virtuales
Su bufete de abogados está ampliando la carga de casos y se le ha encargado instalar un nuevo servidor web Linux para almacenar documentos críticos de una variedad de orígenes: clientes, otros bufetes de abogados y oficinas de seguridad pública. El servidor web permite a los usuarios 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 sería 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 aquí 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 permite establecer valores predeterminados para no tener que repetirlos cada vez que ejecute un comando.
Aquí especificará la ubicación o región predeterminada de Azure. Esta es la ubicación donde se colocará la máquina virtual de Azure.
Lo ideal es que 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 elegida en el paso anterior.az configure --defaults location=eastus
Sugerencia
Puede usar el botón Copiar para copiar los comandos en el Portapapeles. Para pegar, haga clic con el botón derecho en una nueva línea en la ventana de Cloud Shell y seleccione Pegar o 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í creará 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 máquina virtual tarda en aparecer unos minutos. Cuando la máquina virtual esté preparada, verá información sobre ella en formato JSON. Aquí tiene un ejemplo.
{ "fqdns": "", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/680469d8-edB7-42ec-b118-cd80d51741e7/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": "680469d8-edB7-42ec-b118-cd80d51741e7", "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í creará un disco de datos vacío y lo adjuntará a la máquina virtual. El disco de datos tendrá inicialmente 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, está creando 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 que use el almacenamiento Premium con redundancia local.
Para usar el disco, tiene que crear particiones y formatearlo. Lo haremos ahora después.
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. Para que el proceso sea más repetitivo y con menos tendencia a errores, puede usar un script de Bash (o un script de PowerShell cuando esté disponible) que especifique los comandos que necesita.
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, deberá 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 en que puede configurar el sistema una vez que la máquina virtual esté en funcionamiento.
Puede almacenar los scripts en Azure Storage o en una ubicación pública, como GitHub. Puede ejecutar scripts manualmente o como parte de una implementación más automatizada. Aquí, ejecutará 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, aquí también 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 usando los datos variables deipaddress
que acaba de crear. 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. Indique "Sí" cuando se le pida.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 14G 0 disk └─sdb1 8:17 0 14G 0 part /mnt sr0 11:0 1 628K 0 rom sdc 8:32 0 64G 0 disk sda 8:0 0 30G 0 disk └─sda1 8:1 0 30G 0 part /
Verá la unidad de 64 GB,
sdc
, que acaba de crear. Verá que no está montada. Esto es porque aún no se ha inicializado.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 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.
- Crear 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
Verá 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 14G 0 disk └─sdb1 8:17 0 14G 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 └─sda1 8:1 0 30G 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 ha preparado el disco de datos en la máquina virtual, vamos a profundizar en varios tipos de discos que puede crear. La decisión principal es elegir entre el almacenamiento Estándar o Premium.
¿Necesita ayuda? Consulte nuestra guía de solución de problemas o notifique un problema para enviar comentarios específicos.