HD Doctor Logo

TrueNAS con Pool Offline: Cómo Recuperar los Datos

Por el Equipo Técnico HD Doctor

Respuesta directa

Un pool de TrueNAS en UNAVAIL o FAULTED casi nunca significa datos perdidos. ZFS marca todo el pool como no disponible en cuanto se acaba la redundancia — incluso cuando los discos siguen legibles. En la mayoría de los casos que recibimos, el 90% o más de los sectores estaba íntegro y lo que faltaba era orden de diagnóstico, no hardware nuevo.

Las tres capas de TrueNAS que pueden fallar

Entender qué se rompió evita el cambio de disco que destruye el caso. (1) El boot-pool está separado del storage: vive en el SSD o pendrive de instalación y no guarda ni un byte de sus datos. Un boot-pool muerto tumba el sistema, no el pool — reinstalar TrueNAS y subir el archivo de configuración devuelve datasets, shares y permisos. (2) El data pool es un conjunto de vdevs. La unidad de fallo es el vdev, no el disco: en RAIDZ1, el segundo disco fuera del mismo vdev ya tumba todo el pool; perder un vdev special (metadatos) tumba el pool incluso con todos los demás sanos. (3) La configuración del middleware vive en /data/freenas-v1.db — y ahí también están las claves de datasets cifrados. Perder esa base sin haber exportado las claves vuelve el dato cifrado irrecuperable, incluso para un laboratorio. Vale además la diferencia de línea: TrueNAS CORE (FreeBSD, cifrado GELI heredado) terminó con la 13.3-U1.2 y el desarrollo siguió en SCALE, hoy TrueNAS Community Edition (Linux, cifrado nativo de ZFS). Una migración mal hecha entre ambas líneas es causa frecuente de ticket. Los orígenes más comunes de pool offline: HBA o expander defectuoso, cable SAS/SATA marginal, fuente inestable, discos del mismo lote envejeciendo juntos, RAM sin ECC corrompiendo escrituras y, muy frecuente, export o destroy accidental desde la interfaz.

Qué nunca hacer con un pool TrueNAS caído

  1. 1.
    Cambiar disco 'para probar'. La sustitución dispara resilver, que escribe en todos los miembros. En un pool sin redundancia restante, es la causa número uno de pérdida definitiva.
  2. 2.
    Ejecutar zpool import -f como primer intento. El -f ignora la protección de hostid y puede montar el pool para escritura desde un estado inconsistente. Primero readonly=on, siempre.
  3. 3.
    Aceptar zpool clear o scrub en pool degradado. El scrub lee todos los discos a carga máxima. Con un disco ya muriendo, suele terminar de tumbar al miembro que aún respondía.
  4. 4.
    Reinstalar TrueNAS antes de salvar el freenas-v1.db. La reinstalación recrea el boot-pool y se lleva la configuración y las claves de cifrado. Datasets cifrados sin clave son pérdida total.
  5. 5.
    Usar controladora RAID en vez de HBA en modo IT. La controladora RAID esconde los discos y su SMART del ZFS, mantiene caché propia y corrompe el pool en corte de energía. Si el pool se montó así, informe al laboratorio — cambia todo el procedimiento.
  6. 6.
    Confiar en snapshot como si fuera backup. El snapshot ZFS vive dentro del mismo pool. Pool perdido, snapshots perdidos con él. Solo la replicación a otro sistema cuenta como backup.

Cómo diagnosticar un pool TrueNAS offline, en 7 pasos

Orden de diagnóstico de HD Doctor para pools ZFS. No cambie ni sustituya ningún disco antes de concluir el paso 3.

  1. 1

    No sustituya disco ni fuerce resilver

    Un zpool replace en un pool que ya perdió redundancia inicia escritura en todos los miembros y es la forma más rápida de perder un caso recuperable. Mientras el diagnóstico no termine, el pool debe quedar quieto, sin escritura y sin sustituciones.

  2. 2

    Lea el estado real del pool sin importar

    Ejecute zpool import sin argumentos: lista los pools visibles, el estado de cada vdev y por qué falla la importación. Complemente con zdb -l /dev/disk/by-id/<disco> en cada miembro para ver si los labels ZFS aún existen. Es lectura pura, no altera nada.

  3. 3

    Evalúe la salud física de todos los discos

    smartctl -a en cada miembro, mirando sectores reasignados, pending sectors y errores UDMA/CRC (que suelen indicar cable o backplane, no disco). Si dos o más discos muestran problema físico, el caso es de laboratorio: cada intento extra de importación reduce lo que aún se lee.

  4. 4

    Haga imagen de los discos sospechosos antes de cualquier importación

    Los discos con sectores inestables empeoran con cada lectura. Clone con ddrescue o hardware de imagen, con log de progreso, y trabaje sobre las copias. Si todos los discos están físicamente sanos y el problema es lógico, se puede ir directo al paso 5 — con importación de solo lectura.

  5. 5

    Importe en solo lectura, corrigiendo la ruta de los discos

    zpool import -o readonly=on -d /dev/disk/by-id <pool>. El -d resuelve la mayoría de los casos en que el pool 'desapareció' tras cambiar la HBA o reinstalar, porque los discos cambiaron de nombre. Si el rechazo es por hostid de otra máquina, el -f junto con readonly=on es seguro; solo, no lo es.

  6. 6

    Recupere la configuración y las claves de cifrado

    Antes de reinstalar cualquier cosa, rescate /data/freenas-v1.db del boot-pool — es lo que devuelve shares, datasets y, en pools cifrados, las claves. En TrueNAS CORE antiguo con GELI, el archivo de clave y la passphrase son obligatorios: sin ellos, ni el laboratorio recupera.

  7. 7

    Extraiga los datos antes de intentar reparar el pool

    Con el pool importado en solo lectura, copie el contenido a storage externo, preferentemente con zfs send de los datasets o rsync con verificación. Solo después de tener copia validada tiene sentido intentar rewind de transacción (zpool import -F o -X) o sustitución de disco — operaciones que, si fallan, dejan el pool peor de lo que estaba.

Preguntas frecuentes

Mi pool TrueNAS aparece como UNAVAIL. ¿Se perdieron los datos?

Probablemente no. UNAVAIL significa que faltan miembros suficientes para montar con seguridad, no que los datos desaparecieron. Discos desconectados, HBA defectuosa, cable malo o nombres de dispositivo cambiados producen exactamente ese mensaje con 100% de los datos intactos. Diagnostique antes de tocar hardware.

Perdí el pendrive de arranque de TrueNAS. ¿Perdí todo?

No. El boot-pool no guarda datos. Reinstale la misma versión de TrueNAS, importe el pool y, si guardó el archivo de configuración, súbalo para restaurar shares y permisos. Sin la configuración el pool igual importa — solo rehace los recursos compartidos a mano. La excepción es un dataset cifrado sin clave exportada.

¿Cuántos discos puedo perder en un pool ZFS antes de perder todo?

Depende del vdev, no del pool: un mirror de 2 discos tolera 1; RAIDZ1 tolera 1; RAIDZ2 tolera 2; RAIDZ3 tolera 3 — por vdev. Como los vdevs se suman en stripe, perder un vdev entero tumba todo el pool aunque los demás estén perfectos. Por eso RAIDZ1 con discos grandes es arriesgado: la probabilidad de un segundo fallo durante el resilver es real.

¿Se puede recuperar un pool ZFS exportado o destruido por error?

En la mayoría de los casos sí, si no se escribió nada después. El destroy no borra los datos, solo invalida los labels. La recuperación usa zpool import -D o reconstrucción de labels desde uberblocks antiguos, siempre sobre imágenes de los discos. Cada escritura nueva reduce esa ventana — apague el equipo.

¿TrueNAS CORE sigue siendo seguro en 2026?

Funciona, pero está en fin de vida: la 13.3-U1.2 fue la última versión de la línea CORE y el desarrollo siguió en SCALE, hoy TrueNAS Community Edition. Para producción, planifique la migración — y haga backup completo antes, porque la conversión de pool y el cambio de cifrado (GELI a nativo de ZFS) son momentos de riesgo.

¿Recuperan TrueNAS con datasets cifrados?

Sí, siempre que exista la clave o la passphrase. El cifrado nativo de ZFS y GELI son matemáticamente sólidos: sin material de clave no hay recuperación, en ningún laboratorio. Si tiene el archivo de clave o el freenas-v1.db, el caso se trata normalmente.

¿Necesito enviar el servidor entero o solo los discos?

En general solo los discos, identificados en el orden original de las bahías — fotografíelos antes de retirarlos. Guarde también el boot-pool o una copia de la configuración. Si el pool usa vdev special o SLOG en NVMe, esos dispositivos deben venir también: sin el special, el pool no reconstruye.

¿TrueNAS fuera de servicio? No cambie disco antes de diagnosticar.

Diagnóstico en 24h para pools ZFS, TrueNAS CORE y SCALE. NDA antes del envío.

Próximas lecturas