15. Gestión del almacenamiento y los discos en Ubuntu Server: guía sencilla

Introducción

Gestionar el almacenamiento y los discos en Ubuntu Server es una habilidad fundamental para los administradores, especialmente en entornos dinámicos como las plataformas de nube (AWS, Azure, Google Cloud) o las plataformas de virtualización (VMware, Hyper-V, Proxmox). Tareas como ampliar discos del sistema operativo, inicializar discos de datos u optimizar configuraciones de almacenamiento son escenarios habituales. Aunque las herramientas de automatización suelen simplificar estos procesos, tener una sólida comprensión de los pasos subyacentes es esencial para una resolución de problemas eficaz y una intervención manual.

En esta guía, exploraremos la gestión del almacenamiento y los discos en Ubuntu Server, incluidos los tipos de sistemas de archivos, el particionado, el formateo y la optimización de discos. Con ejemplos prácticos adaptados tanto a entornos físicos como virtualizados, esta guía te proporcionará los conocimientos necesarios para gestionar las tareas de almacenamiento de forma eficiente.


Artículos anteriores:

01. Introducción a Ubuntu Server – SysOSX: AI & Cloud

02. Cómo configurar tu primer servidor Ubuntu: guía para principiantes – SysOSX: AI & Cloud

03. Dominar la línea de comandos de Linux para Ubuntu Server – SysOSX: AI & Cloud

04. Gestión de usuarios y permisos en Ubuntu Server: guía completa – SysOSX: AI & Cloud

05. Fundamentos de redes para Ubuntu Server: guía completa – SysOSX: AI & Cloud

06. Instalación y gestión de software en Ubuntu Server: guía completa – SysOSX: AI & Cloud

07. Aplicar parches y actualizar Ubuntu Server: guía completa – SysOSX: AI & Cloud

08. Protege tu servidor Ubuntu: pasos prácticos para reforzarlo y protegerlo – SysOSX: AI & Cloud

09. Auditoría y registro del servidor Ubuntu

10. Herramientas de supervisión del sistema para Ubuntu Server: guía completa – SysOSX: AI & Cloud

11. Registro centralizado para el servidor Ubuntu: una guía imprescindible – SysOSX: AI & Cloud

12. Auditoría y cumplimiento para Ubuntu Server: mejores prácticas – SysOSX: AI & Cloud

13. Configura tu servidor Ubuntu para alojamiento y aplicaciones web: guía definitiva – SysOSX: AI & Cloud

14. Aloja varios sitios web en un solo servidor Ubuntu: consejos útiles – SysOSX: AI & Cloud



Comprender los tipos de sistemas de archivos

Un sistema de archivos define cómo se almacenan los datos y se accede a ellos en un disco. Elegir el sistema de archivos adecuado es crucial para el rendimiento, la fiabilidad y la compatibilidad. A continuación se presentan los sistemas de archivos más comunes para servidores Ubuntu:

Sistemas de archivos comunes para Ubuntu

  1. Ext4 (cuarto sistema de archivos extendido)
    • Sistema de archivos predeterminado para servidores Ubuntu.
    • Ofrece journaling, compatibilidad con archivos grandes y un rendimiento excelente.
    • Ideal para cargas de trabajo de uso general.
    • Comando para formatear: sudo mkfs.ext4 /dev/sdX1
  2. XFS
    • Sistema de archivos con journaling de alto rendimiento, diseñado para archivos grandes y cargas de trabajo de E/S intensivas.
    • Se usa habitualmente en entornos empresariales y de nube.
    • Comando para formatear: sudo mkfs.xfs /dev/sdX1
  3. Btrfs (sistema de archivos B-Tree)
    • Sistema de archivos avanzado que ofrece compatibilidad con instantáneas, compresión de datos y funciones RAID.
    • Adecuado para cargas de trabajo complejas y entornos que requieren copias de seguridad frecuentes.
  4. NTFS
    • Se usa principalmente por compatibilidad con entornos Windows.
    • Útil para sistemas de arranque dual o discos compartidos entre Linux y Windows.
  5. FAT32 y exFAT
    • Sistemas de archivos ligeros usados para unidades extraíbles y compatibilidad multiplataforma.

Elegir el sistema de archivos adecuado

  • Ext4: Cargas de trabajo de uso general.
  • XFS: Cargas de trabajo de alto rendimiento en entornos empresariales o de nube.
  • Btrfs: Funciones avanzadas como instantáneas y compresión.
  • NTFS/FAT32: Compatibilidad multiplataforma.

Particionar discos en Ubuntu Server

El particionado divide un disco físico en secciones lógicas, lo que permite una mejor organización y gestión de los datos. Esto es especialmente útil para separar archivos del sistema, copias de seguridad y datos de aplicaciones.

Pasos para particionar un disco en Ubuntu Server

  • Identifica el disco:
    Usa el comando lsblk  para enumerar todos los discos disponibles y sus particiones: lsblk
  • Crea una partición:
    Usa fdisk o parted para crear una nueva partición. Ejemplo usando fdisk: sudo fdisk /dev/sdX
    • Pulsa n para crear una nueva partición.
    • Especifica el tamaño y el tipo de la partición.
    • Pulsa w para escribir los cambios en el disco.
  • Verifica la partición:
    Ejecuta lsblk  de nuevo para confirmar que se ha creado la nueva partición.

Formatear discos de datos en Ubuntu Server

El formateo prepara una partición para su uso creando un sistema de archivos.

Pasos para formatear un disco de datos en Ubuntu Server

  • Instala las herramientas necesarias:
    Asegúrate de tener instalada la utilidad mkfs  (incluida por defecto en la mayoría de las distribuciones).
  • Formatea la partición:
    Usa el comando mkfs para formatear la partición. Ejemplo: sudo mkfs.ext4 /dev/sdX1
  • Crea un punto de montaje:
    Nota importante: En entornos de nube, evita usar /mnt como punto de montaje. El directorio /mnt suele estar reservado para discos temporales en plataformas de nube (como Azure o AWS), que pueden borrarse durante reinicios o actualizaciones del sistema. En su lugar, usa un directorio personalizado como /data o /storage. Ejemplo:
sudo mkdir /data
  • Monta la partición:
    Monta la partición formateada en el directorio recién creado:
sudo mount /dev/sdX1 /data
  • Persiste el montaje:
    Para garantizar que la partición se monte automáticamente al arrancar, añádela al archivo /etc/fstab:
echo '/dev/sdX1 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab  

Persistir el montaje: usar UUID en entornos de nube

Para garantizar que la partición se monte automáticamente al arrancar, añadirla al archivo /etc/fstab es esencial. Sin embargo, en entornos de nube, se recomienda usar el UUID (identificador único universal) para montar discos en lugar de referenciar directamente el nombre del dispositivo (por ejemplo, /dev/sdX1). Los nombres de dispositivo pueden cambiar tras un reinicio del sistema, especialmente en entornos virtualizados o de nube, lo que podría provocar fallos de montaje. Usar UUID garantiza un montaje coherente y fiable.

Pasos para persistir el montaje con UUID

  • Encuentra el UUID de la partición:
    Usa el comando blkid para obtener el UUID de la partición:
sudo blkid
  • Ejemplo de salida:
/dev/sdX1: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="ext4"
  • Edita el archivo /etc/fstab:
    Añade una entrada al archivo /etc/fstab usando el UUID en lugar del nombre del dispositivo.
    Ejemplo: echo 'UUID=123e4567-e89b-12d3-a456-426614174000 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab
  • Verifica la configuración:
    Prueba la configuración desmontando la partición y volviéndola a montar con el comando mount -a:
sudo umount /data  
sudo mount -a  

  • Reinicia y confirma:
    Reinicia el sistema para asegurarte de que el disco se monta correctamente durante el arranque: sudo reboot

¿Por qué usar UUID en entornos de nube?

  • Coherencia: Los nombres de dispositivo como /dev/sdX pueden cambiar tras un reinicio debido a la enumeración dinámica de dispositivos en las plataformas de nube.
  • Fiabilidad: Los UUID son únicos para cada partición y permanecen constantes, lo que garantiza un montaje fiable.
  • Buena práctica: Proveedores de nube como AWS, Azure y Google Cloud recomiendan usar UUID o etiquetas para montar discos en entornos de producción.

Escenarios de nube y virtualización: ampliación e inicialización de discos

Escenario 1: ampliación del disco del SO

En plataformas de nube como AWS, Azure o Google Cloud, los discos del sistema operativo se pueden ampliar desde la capa física. Muchas plataformas detectan y amplían automáticamente el disco del SO. Sin embargo, puede ser necesaria una intervención manual para redimensionar el sistema de archivos y aprovechar el nuevo espacio.

Pasos para ampliar el disco del SO en Ubuntu Server:

  1. Comprueba el espacio en disco:
    Verifica el espacio en disco ampliado con lsblk: lsblk
  2. Redimensiona el sistema de archivos:
    Usa resize2fs  para sistemas de archivos Ext4: sudo resize2fs /dev/sdX1

Escenario 2: inicialización del disco de datos, consulta la sección anterior


Supervisar y optimizar el uso del disco

Supervisar el uso del disco

  1. Comprueba el uso del espacio en disco:
    Usa el comando df para mostrar el uso del espacio en disco: df -h
  2. Analiza el uso de los directorios:
    Usa el comando du para comprobar el tamaño de directorios específicos: du -sh /var/log
  3. Supervisión avanzada:
    Instala ncdu para el análisis interactivo del uso del disco:
sudo apt install ncdu 
ncdu /

Optimizar el uso del disco

  • Elimina archivos temporales:
sudo apt-get autoclean  
sudo apt-get clean  
sudo apt-get autoremove  

  • Encuentra archivos grandes que consumen espacio en disco
    Localiza archivos grandes con el find comando:
sudo find / -type f -size +100M

Referencias

En el próximo artículo, nos adentraremos en la configuración de un servidor de bases de datos en servidores Ubuntu. Aprenderás a:

  • Instala y configura MySQL o MariaDB para tus aplicaciones.
  • Protege tu servidor de bases de datos para salvaguardar los datos confidenciales.
  • Optimiza el rendimiento de la base de datos para entornos de producción.

Tanto si despliegas bases de datos en la nube como en las instalaciones, esta guía te proporcionará información práctica para ayudarte a gestionar eficazmente tu infraestructura de bases de datos.

¡No te lo pierdas, mantente atento!