¿ZFS en SSDs domésticos? Por qué deberías evitarlo (y cómo salvar tu hardware)
Si eres un apasionado de Proxmox y la virtualización, es probable que hayas caído en la tentación de montar un pool ZFS utilizando SSDs de consumo ("no enterprise"). La lógica parece impecable: ZFS ofrece integridad de datos, instantáneas y compresión. Sin embargo, la realidad suele ser un golpe duro: en menos de un año, tus SSDs pueden pasar a mejor vida. Personalmente, viví esto de cerca: monté un pool ZFS con dos SSDs Patriot de 1TB para mis máquinas virtuales en Proxmox y, al año exacto, uno de ellos murió irremediablemente. ¿Por qué ocurre esto? El problema técnico: La escritura constante y el "Write Amplification" El problema no es que ZFS sea "malo", sino que está diseñado para servidores. ZFS es un sistema de archivos de copia en escritura ( Copy-on-Write o CoW ). Esto significa que, en lugar de sobrescribir bloques de datos, escribe nuevos bloques y luego actualiza los punteros. A esto debemos sumar tres factores críticos cuando usamos SSDs de consumo: Write Amplification: Debido a la naturaleza de los SSDs, la escritura es un proceso complejo. ZFS realiza muchas operaciones de escritura pequeñas y frecuentes (logs, metadatos, actualización de estados de VMs). Esto fuerza al controlador del SSD a realizar ciclos de borrado y escritura constantes, desgastando las celdas de memoria flash a un ritmo frenético. Sincronización (ZFS Intent Log - ZIL): ZFS es extremadamente estricto con la integridad de los datos. Esto obliga a realizar constantes escrituras síncronas. Los SSDs empresariales tienen condensadores (PLP - Power Loss Protection ) que permiten manejar esto con holgura. Los SSDs de consumo no, lo que dispara el nivel de desgaste ( wear ) muy por encima de lo que el fabricante predijo para un uso doméstico. Logs y telemetría de Proxmox: Por defecto, Proxmox escribe constantemente logs en el disco. En un sistema ZFS, estos pequeños cambios de estado se multiplican, convirtiendo tu SSD en una máquina de escribir incesante. ¿Cómo proteger tus SSDs en Proxmox? Si ya estás utilizando SSDs de consumo o no tienes presupuesto para unidades enterprise (como las Intel DC o las series Samsung PM/SM), el objetivo es reducir drásticamente la escritura innecesaria . 1. Reduce los logs del sistema Proxmox escribe mucha información en el diario de sistema. Puedes configurar journald para que los logs vivan solo en la RAM y no golpeen el SSD constantemente: Edita el archivo de configuración: nano /etc/systemd/journald.conf Ajusta los siguientes parámetros: MaxLevelStore=warning MaxLevelSyslog=warning Storage=volatile ForwardToSyslog=no Guarda y reinicia el servicio: systemctl restart systemd-journald.service. 2. Implementa log2ram La mejor solución para evitar escrituras en el disco es usar Log2Ram . Esto crea un punto de montaje en memoria RAM donde se escriben los logs, sincronizándolos al disco solo periódicamente. Instálalo así: echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ bookworm main" | tee /etc/apt/sources.list.d/azlux.list wget -O /usr/share/keyrings/azlux-archive-keyring.gpg https://azlux.fr/repo.gpg apt update && apt install log2ram -y reboot Verifica su estado con: systemctl status log2ram. 3. Desactiva servicios innecesarios (HA) Si no utilizas un clúster de alta disponibilidad, los servicios de monitoreo de HA (High Availability) escriben constantemente en el disco. Desactívalos: systemctl stop pve-ha-lrm.service systemctl disable pve-ha-lrm.service systemctl stop pve-ha-crm.service systemctl disable pve-ha-crm.service Monitoriza el desgaste de tus discos No esperes a que el disco falle. Utiliza smartmontools para ver cuánto le queda de vida útil a tu SSD antes de que sea tarde: apt-get install smartmontools lsblk # Reemplaza /dev/nvme0n1 por tu unidad smartctl -a /dev/nvme0n1 Busca el valor "Percentage Used" o "Media and Data Integrity Errors" en la salida del comando. Conclusión ZFS es una tecnología maravillosa, pero si usas hardware de consumo, la prevención es obligatoria . Reducir la actividad de logs mediante RAM y desactivar servicios innecesarios no hará que tu SSD de 50€ se comporte como uno de 500€, pero sí puede marcar la diferencia entre que el disco dure 1 año o 3.
Leer más