GUÍA: Configuración de un Nodo de Almacenamiento NVMe de Alto Rendimiento
En esta guía vamos a romper la barrera de los 1,000 MB/s. No construiremos un simple disco duro en red; vamos a montar un nodo de datos capaz de saturar un enlace de 10GbE sin despeinarse.
Fase 1: El Hardware (El Silicio importa)
Para un nodo de estas características, no nos sirve cualquier placa base. Necesitamos líneas PCIe suficientes para que los discos no peleen por el ancho de banda.
• RAM: 32GB DDR4/DDR5 (ZFS devora RAM para caché de lectura).
• Storage: 4x Unidades NVMe M.2 de nivel Enterprise.
• NIC: Tarjeta Intel X520-DA1 o similar para SFP+ 10Gb.
Fase 2: Preparación del Entorno en Ubuntu
Una vez instalado Ubuntu Server (mínimo versión 22.04 LTS), lo primero es preparar el sistema para gestionar sistemas de archivos avanzados. Vamos a instalar el soporte para ZFS, que nos permitirá crear un pool de discos con tolerancia a fallos.
sudo apt update && sudo apt upgrade -y
sudo apt install zfsutils-linux -y
Fase 3: Creación del Pool de Datos (RAID-Z)
Aquí es donde ocurre la magia. Vamos a agrupar nuestras unidades NVMe. Supongamos que tus discos están en /dev/nvme0n1 y /dev/nvme1n1. Crearemos un 'Mirror' (espejo) para que, si un disco falla, tus datos sigan intactos.
sudo zpool create igt_storage mirror /dev/nvme0n1 /dev/nvme1n1
# Verificar el estado del nodo
zpool status
Fase 4: Compartir en la Red (Samba)
Para que este almacenamiento sea accesible desde Windows, Mac o Linux, instalamos Samba y configuramos los permisos. Queremos velocidad, así que desactivaremos protocolos antiguos.
El archivo de configuración en /etc/samba/smb.conf debe priorizar el rendimiento de red sobre la compatibilidad con sistemas heredados.
Fase 5: Benchmarking (Prueba de Fuego)
Un servidor de InfoGraTech no se asume rápido, se demuestra. Vamos a usar fio para medir los IOPS (operaciones de entrada/salida por segundo) y asegurar que nuestras unidades NVMe están entregando lo que prometen.
sudo apt install fio -y
# Ejecutar test de lectura aleatoria
sudo fio --name=igt_test --filename=/igt_storage/testfile --size=2G --rw=randread --bs=4k --ioengine=libaio --iodepth=64 --runtime=30 --time_based --group_reporting
Conclusión
Tener un nodo propio bajo Ubuntu no solo te ahorra costos de licencia, sino que te otorga el control total sobre la latencia de tus datos. En el próximo artículo, veremos cómo monitorear este tráfico en tiempo real desde una dashboard externa.
> SYSTEM_READY
> NODE_ONLINE