Introducción

Hola Fronters 👋

Llegamos a la cuarta entrega de nuestra serie sobre monitorización de hardware en Linux. Hoy toca el turno del almacenamiento — discos, particiones, uso de espacio, rendimiento de I/O y salud de los dispositivos.

Un buen monitoreo de almacenamiento te permite anticipar falta de espacio, detectar discos defectuosos antes de que fallen y optimizar el rendimiento de lecturas/escrituras. Vamos a cubrir las herramientas esenciales.

1. df — Espacio en sistemas de archivos

El comando rey para ver el uso de disco a nivel de sistema de archivos:

Flags útiles:

  • -h → formato humano (MB/GB)
  • -T → muestra el tipo de sistema de archivos
  • --total → suma total al final
  • -i → muestra uso de inodos (importante en sistemas con muchos archivos pequeños)

Tip: Un sistema puede tener espacio libre pero quedarse sin inodos. Siempre revisa ambos con df -hi.

2. du — Uso de espacio por directorio

Para encontrar qué directorios están consumiendo más espacio:

Comandos prácticos:

  • du -sh * → resumen de cada directorio en el directorio actual
  • du -sh /* | sort -rh | head -10 → los 10 directorios que más pesan en raíz
  • du -sh /var/log/*.gz → espacio usado por logs comprimidos

Tip: du puede tardar en discos grandes. Combínalo con ncdu para una interfaz interactiva mucho más rápida.

3. lsblk — Dispositivos de bloque

Muestra todos los discos y particiones en un árbol:

Flags útiles:

  • lsblk -f → muestra sistema de archivos y UUID
  • lsblk -m → muestra permisos y propietario

4. fdisk — Gestión de particiones

Para un vistazo detallado a las tablas de particiones:

5. blkid — UUID y tipo de sistema de archivos

Esencial para configurar /etc/fstab correctamente.

6. iostat — Rendimiento de I/O

iostat es la herramienta estrella para medir el rendimiento de los discos:

Columnas clave:

  • r/s / w/s: Operaciones de lectura/escritura por segundo
  • rkB/s / wkB/s: Kilobytes leídos/escritos por segundo
  • await: Tiempo promedio de respuesta (ms) — incluye cola
  • svctm: Tiempo de servicio promedio (ms)
  • %util: Porcentaje de tiempo que el disco estuvo ocupado

Regla de oro: Si %util se acerca a 100% y await es alto (>30ms para HDD, >5ms para SSD), el disco es un cuello de botella.

7. iotop — I/O por proceso

¿Qué procesos están escribiendo o leyendo del disco? iotop te lo muestra en tiempo real:

Tip: Usa iotop -o para mostrar solo procesos con actividad activa de I/O.

8. smartctl — Salud del disco (SMART)

Los discos modernos tienen tecnología SMART que permite predecir fallos:

Qué monitorear:

  • Reallocated_Sector_Ct: Sectores reasignados. Si crece o es > 0, el disco está degradándose.
  • Temperature_Celsius: Temperatura del disco. > 55°C sostenido es preocupante.
  • Wear_Leveling_Count (SSD): Desgaste del SSD. Cerca de 0 = fin de vida útil.
  • Power_On_Hours: Horas encendido.

Para un test rápido de salud:

9. /proc/diskstats — Estadísticas del kernel

Como siempre, el kernel expone toda la información en /proc:

Campos (por dispositivo): major, minor, nombre, reads completadas, reads mergeadas, sectores leídos, tiempo de lectura (ms), writes completadas, writes mergeadas, sectores escritos, tiempo de escritura (ms), I/Os en progreso, tiempo de I/O (ms), weighted time de I/O (ms).

Útil para scripts de monitoreo personalizados.

10. fsck — Revisión del sistema de archivos

Para verificar la integridad del sistema de archivos:

Importante: El disco debe estar desmontado o montado como solo lectura para ejecutar fsck.

11. dmesg — Errores de disco del kernel

El kernel reporta errores de disco en el ring buffer:

Si ves mensajes como estos, el disco está fallando o el cable tiene problemas. Actúa de inmediato.

Conclusión

Hemos cubierto las herramientas fundamentales para monitorizar el almacenamiento en Linux:

  • Uso de espacio con df y du
  • Identificación de dispositivos con lsblk, fdisk, blkid
  • Rendimiento de I/O con iostat e iotop
  • Salud del disco con smartctl
  • Integridad del sistema de archivos con fsck
  • Estadísticas crudas del kernel via /proc/diskstats y errores con dmesg

Con todo esto, estás preparado para mantener cualquier servidor Linux funcionando sin problemas de almacenamiento. ¡Un sysadmin informado vale por dos!

No olvides dejar tu ❤️, comentar y compartir para que llegue a más Fronters 💪