Bitrot y ZFS Scrubbing: cuando los datos se pudren en silencio
"Bitrot" suena a mito de internet – pero es real, está bien documentado y afecta a todo sistema de almacenamiento. RAID solo no protege. Aquí va la explicación con probabilidades reales y cómo ZFS scrubbing lo soluciona.
Versión corta
Bitrot es el cambio silencioso de datos almacenados – bits que se voltean, sectores leídos incorrectamente. El RAID clásico a menudo no lo detecta. ZFS (y Btrfs) calcula un checksum por bloque al escribir. Scrubbing lee todos los bloques regularmente, verifica checksums y repara desde la redundancia – la única defensa fiable contra bitrot.
Qué es realmente bitrot
Varias causas físicas:
Drift magnético. La magnetización HDD se debilita con los años, puede causar bit flips.
Rayos cósmicos / TID. Partículas de alta energía voltean bits en DRAM o celdas flash. Raro, pero estadísticamente relevante en grandes volúmenes.
Bugs de controladora. Firmware con fallos en HDDs/SSDs ocasionalmente escribe datos incorrectos.
Ruido cable o energía. Errores de transmisión SATA con cables malos. Normalmente atrapados por la interfaz, pero no al 100%.
Cuán frecuente es bitrot
Los fabricantes citan tasas URE: ~1 en 10^14 bits para consumer, 10^15 para enterprise. En 16 TB:
- 16 TB ≈ 1,28 × 10^14 bits
- Por cada lectura completa: ~12% probabilidad URE en disco consumer
- Enterprise: ~1,2% por escaneo completo
Es el límite inferior – la corrupción silenciosa que no aparece como error de lectura ni siquiera llega a la mecánica. Backblaze estima 0,1-0,5% adicional al año por bits volteados no reportados como UREs.
Por qué el RAID clásico no basta
RAID 5/6 calcula paridad, pero no verifica al leer si los datos son correctos. Un bit volteado en un disco de datos pasa con la información incorrecta – la paridad sigue cuadrando matemáticamente porque se calcula de los datos (incorrectos).
En un rebuild esto puede ser catastrófico: el disco perdido se reconstruye desde los demás, incluyendo los bits volteados → archivo corrupto "restaurado".
mdadm, controladoras hardware RAID, NTFS, ext4 – todos tienen este problema. No hay mecanismo para detectar corrupción silenciosa.
Cómo lo resuelve ZFS
ZFS guarda un hash (Fletcher4 o SHA256) por cada bloque de datos (típico 128 KB) en el bloque padre – nunca en el mismo disco. Al leer:
- Se lee el bloque
- Se recalcula el hash
- Comparación con hash guardado
- Si no coincide: ZFS busca la copia en otro disco (paridad RAIDZ o espejo), la valida, devuelve datos correctos, reescribe la versión corregida
Pasa transparente en cada lectura normal. Además: scrubbing regular lo fuerza proactivamente.
Qué hace el scrubbing
Un scrub lee todos los bloques asignados del pool, valida checksums y repara donde haga falta. Corre junto a la operación normal – sin downtime.
Frecuencia recomendada:
- Discos consumer: cada 2-4 semanas
- Enterprise: cada 1-3 meses
- SSDs: cada 4-8 semanas (menor tasa de bitrot)
Synology DSM, TrueNAS y Proxmox traen scheduler. CLI: zpool scrub tank
Btrfs como alternativa
Btrfs tiene concepto similar (detección de corrupción + scrubbing). Pero: Btrfs RAID 5/6 lleva años marcado inestable y no se recomienda. Btrfs solo para RAID 1/10.
Más comparativa: ZFS vs ext4 vs Btrfs.
Setup en Synology DSM
DSM soporta Btrfs Data Scrubbing en volúmenes Btrfs:
- Storage Manager → Volumen → "Data Scrubbing"
- Programa: cada 1-3 meses
- Tipo RAID: SHR/RAID-5/RAID-6 – scrubbing aplica
En RAID 1 con ext4 el scrubbing DSM ayuda menos porque ext4 no tiene checksums. Solo verifica paridad a nivel bloque.
Setup en TrueNAS
Por defecto automático cada 35 días. Ajusta en Storage → Pools → Scrub Tasks. Recomendación: cada 14-21 días para uso doméstico.
Setup en Unraid
En Unraid con cache pool Btrfs/ZFS: plugin scrub disponible. Por defecto parity check cada 7 días (estilo RAID plano, no checksum).
Lo que el scrubbing no reemplaza
- Backup: El scrubbing no repara datos ya perdidos. Múltiples fallos o borrado accidental requieren backup. RAID no es backup.
- RAM ECC: Si el bitrot ocurre en RAM (antes de escribir), ZFS escribe datos corruptos con checksum correcto. RAM ECC lo evita.
- Protección de energía: En crash ZFS puede revertir el pool, pero escrituras no sincronizadas se pierden. SAI sigue siendo obligatorio.
Recomendación
Si la integridad de datos importa de verdad:
- ZFS RAIDZ2 o ZFS mirror como filesystem
- RAM ECC (10-20% sobrecoste, vale la pena)
- SAI contra problemas eléctricos
- Scrub mensual
- Backup off-site como última línea
Artículos relacionados
Artículos relacionados
Guía cifrado ZFS: Native Encryption bien hecho
Btrfs RAID 5/6: Por qué no debería usarse en producción en 2026