Configuración de dispositivos de almacenamiento

LinuxBeginner
Practicar Ahora

Introducción

Bienvenido al laboratorio sobre la configuración de dispositivos de almacenamiento en Linux. La gestión del almacenamiento es una habilidad fundamental para cualquier administrador de sistemas Linux. Cuando añades un nuevo disco duro o una unidad de estado sólido (SSD) a un sistema, no está disponible para su uso de inmediato. Primero debes prepararlo creando un sistema de archivos y luego hacerlo accesible conectándolo al árbol de directorios.

En este laboratorio, recorrerás el ciclo de vida completo de la adición de un nuevo dispositivo de almacenamiento. Aprenderás a:

  • Identificar un disco recién conectado.
  • Crear un sistema de archivos estándar de Linux (ext4) en el disco.
  • Montar el disco en un directorio para hacerlo accesible.
  • Verificar su uso y escribir datos en él.
  • Desmontar y desconectar el disco de forma segura.

Utilizaremos comandos como lsblk, mkfs.ext4, mount, df y umount. Al finalizar este laboratorio, tendrás una comprensión sólida de cómo gestionar dispositivos de almacenamiento básicos en un entorno Linux.

Conectar el disco virtual

En este entorno de laboratorio, se ha creado un disco virtual para ti mediante un proceso de configuración automatizado. Esto simula la adición de un nuevo dispositivo de almacenamiento a un sistema. El script de configuración crea un archivo de disco virtual de 100 MB y lo asocia con un dispositivo de bucle (loop device), luego crea un enlace simbólico /dev/sdb para mantener la consistencia.

Tu primera tarea es confirmar que el sistema operativo puede ver este nuevo disco. El comando lsblk (list block devices) es perfecto para esto. Muestra información sobre todos los dispositivos de bloque disponibles en un formato de árbol.

Ejecuta el siguiente comando en tu terminal para listar los dispositivos de bloque:

lsblk

Deberías ver una salida similar a la siguiente. Busca un dispositivo de bucle de 100 MB (podría llamarse loop4, loop14 u otro número de dispositivo de bucle disponible) que no esté montado y no tenga puntos de montaje listados.

NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  91.4M  1 loop /snap/lxd/35819
...
loop4    7:4    0   100M  0 loop
...
vda    252:0    0    40G  0 disk
├─vda1 252:1    0     1M  0 part
├─vda2 252:2    0   200M  0 part /boot/efi
└─vda3 252:3    0  39.8G  0 part /

Esto confirma que el disco es reconocido por el sistema y está listo para el siguiente paso: el formateo.

Si no ves el dispositivo de bucle, puedes ejecutar el siguiente comando para crearlo:

## Create a 100MB file to act as our virtual disk
dd if=/dev/zero of=/tmp/disk.img bs=1M count=100 &> /dev/null
## Find the next available loop device
LOOP_DEVICE=$(sudo losetup -f)
## Associate the file with a loop device, simulating a physical disk
sudo losetup $LOOP_DEVICE /tmp/disk.img
## Create a symbolic link for consistency in the lab
sudo ln -sf $LOOP_DEVICE /dev/sdb

Luego ejecuta el comando lsblk nuevamente para confirmar que el dispositivo de bucle se ha creado.

Formatear el disco con el comando mkfs.ext4 /dev/sdb

En este paso, formatearás el nuevo disco. Un disco sin formato es como una pizarra en blanco; el sistema operativo no sabe cómo almacenar archivos en él. El formateo, también conocido como creación de un sistema de archivos, escribe una estructura de datos en el disco que le permite organizar y almacenar archivos.

Utilizaremos el sistema de archivos ext4, que es un estándar fiable y ampliamente utilizado para sistemas Linux. El comando para crear un sistema de archivos ext4 es mkfs.ext4.

Advertencia: Este comando es destructivo. Borrará todos los datos en el dispositivo especificado. Comprueba siempre el nombre del dispositivo antes de ejecutarlo.

Ahora, formatea el disco /dev/sdb. Dado que esta es una operación privilegiada que modifica un dispositivo, debes usar sudo.

sudo mkfs.ext4 /dev/sdb

El comando mostrará información sobre el sistema de archivos que está creando, incluyendo el número de inodos y bloques. La salida se verá algo así:

mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 25600 4k blocks and 25600 inodes

Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done

El disco /dev/sdb ahora está formateado con un sistema de archivos ext4 y está listo para ser montado.

Montar el disco en el directorio /mnt/data

En este paso, harás que el disco formateado sea accesible para el sistema de archivos. Este proceso se llama "montaje" (mounting). El montaje conecta el sistema de archivos de un dispositivo a un directorio específico, conocido como "punto de montaje". Una vez montado, puedes leer y escribir en el dispositivo accediendo al directorio del punto de montaje.

Primero, necesitamos crear un directorio que sirva como punto de montaje. Es una convención común usar subdirectorios dentro de /mnt para montajes temporales. Vamos a crear un directorio llamado /mnt/data.

sudo mkdir /mnt/data

Ahora, usa el comando mount para conectar el dispositivo /dev/sdb al directorio /mnt/data. La sintaxis es sudo mount [dispositivo] [punto_de_montaje].

sudo mount /dev/sdb /mnt/data

El comando debería ejecutarse sin ninguna salida si tiene éxito. Para verificar que el disco está montado, puedes usar el comando lsblk nuevamente.

lsblk

Observa en la salida a continuación que el dispositivo de bucle (al que apunta /dev/sdb) ahora muestra /mnt/data como su MOUNTPOINT.

NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  91.4M  1 loop /snap/lxd/35819
...
loop4    7:4    0   100M  0 loop /mnt/data
...
vda    252:0    0    40G  0 disk
├─vda1 252:1    0     1M  0 part
├─vda2 252:2    0    200M  0 part /boot/efi
└─vda3 252:3    0  39.8G  0 part /

El disco ya está listo para su uso.

Comprobar el uso del disco con el comando df -h

En este paso, verificarás que el disco montado sea utilizable y comprobarás su espacio disponible. El comando df (disk free) se utiliza para informar sobre el uso del espacio en disco del sistema de archivos. El uso del indicador -h (--human-readable) hace que la salida sea más fácil de leer al imprimir los tamaños en potencias de 1024 (por ejemplo, K, M, G).

Ejecuta el comando df -h para ver todos los sistemas de archivos montados, incluido el nuestro:

df -h

Busca la línea correspondiente a /dev/sdb en la salida. Mostrará el tamaño total, el espacio utilizado, el espacio disponible y el punto de montaje.

Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sdb         98M  2.5M   89M   3% /mnt/data
...

Ahora que el disco está montado, el directorio /mnt/data actúa como la raíz del nuevo disco. Vamos a escribir un archivo en él para confirmar que funciona. Usaremos tee con sudo porque el punto de montaje es propiedad de root.

echo "Hello LabEx" | sudo tee /mnt/data/test.txt

Puedes verificar que el archivo se creó listando el contenido del directorio:

ls /mnt/data

La salida debería mostrar tu nuevo archivo:

test.txt

Has formateado, montado y escrito datos con éxito en tu nuevo dispositivo de almacenamiento.

Desmontar y desconectar el disco

En este paso final, aprenderás cómo desmontar y desconectar el dispositivo de almacenamiento de forma segura. Es fundamental desmontar un sistema de archivos antes de retirar el dispositivo subyacente del sistema. Esto garantiza que todos los datos pendientes se escriban en el disco, evitando la pérdida o corrupción de datos.

El comando para desmontar un sistema de archivos es umount. Puedes especificar el nombre del dispositivo o el punto de montaje. Usaremos el punto de montaje.

sudo umount /mnt/data

Para confirmar que el disco se ha desmontado, ejecuta lsblk una vez más. Verás que el dispositivo de bucle ya no tiene un punto de montaje asociado.

lsblk
NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
loop1    7:1    0  91.4M  1 loop /snap/lxd/35819
...
loop4    7:4    0   100M  0 loop
...
vda    252:0    0    40G  0 disk
├─vda1 252:1    0     1M  0 part
├─vda2 252:2    0    200M  0 part /boot/efi
└─vda3 252:3    0  39.8G  0 part /

Ahora que el sistema de archivos está desmontado, podemos "desconectar" el disco virtual. En nuestro entorno simulado, esto significa desasociar el dispositivo de bucle. Dado que /dev/sdb es un enlace simbólico al dispositivo de bucle real, debemos resolverlo a la ruta del dispositivo real para desconectarlo correctamente.

## Detach the loop device by resolving the symbolic link
sudo losetup -d $(readlink -f /dev/sdb)
## Remove the symbolic link
sudo rm /dev/sdb

Finalmente, limpiemos eliminando el directorio del punto de montaje que creamos.

sudo rmdir /mnt/data

Has completado con éxito el ciclo completo de añadir, usar y eliminar un dispositivo de almacenamiento.

Resumen

¡Felicidades por completar el laboratorio! Has aprendido con éxito el flujo de trabajo esencial para configurar un nuevo dispositivo de almacenamiento en un entorno Linux.

En este laboratorio, practicaste las siguientes habilidades clave:

  • Identificar nuevos dispositivos de bloque usando el comando lsblk.
  • Crear un sistema de archivos en un disco sin formato con mkfs.ext4.
  • Crear un punto de montaje con mkdir.
  • Montar un sistema de archivos para hacerlo accesible usando el comando mount.
  • Comprobar el uso del disco con df -h.
  • Desmontar de forma segura un sistema de archivos con el comando umount.
  • Desconectar un dispositivo de bucle con losetup -d para simular la extracción del disco.

Estas son operaciones fundamentales para gestionar el almacenamiento en cualquier servidor o estación de trabajo Linux. Ahora puedes aplicar este conocimiento para gestionar discos duros reales, SSD o unidades USB. Te animamos a seguir explorando temas de almacenamiento más avanzados, como la Gestión de Volúmenes Lógicos (LVM), RAID y diferentes tipos de sistemas de archivos.