Este informe de caso (case study) detalla la recuperación de un pool Btrfs de 12 TB severamente dañado, y propone mejoras para la herramienta btrfs-progs. Btrfs es un sistema de archivos avanzado para Linux que ofrece características como snapshots, checksumming y RAID integrado. El incidente comenzó con un corte de energía abrupto en un pool de tres discos (uno para datos, dos para metadatos, utilizando la configuración DUP y discos SMR). Esto corrompió la estructura interna del sistema de archivos, específicamente el árbol de extensiones y el árbol de espacio libre, haciéndolo irrecuperable con las herramientas de reparación estándar de Btrfs.
El intento inicial de reparación con btrfs check --repair entró en un bucle infinito de más de 46,000 iteraciones sin progreso, lo que sugiere una corrupción profunda y un problema con la gestión de las copias de seguridad de la raíz (backup_roots). La recuperación final requirió la creación de 14 herramientas personalizadas en C, utilizando la API interna de btrfs-progs. Sorprendentemente, la pérdida de datos fue mínima: solo 7.2 MB de 4.59 TB, lo que demuestra la robustez inherente de Btrfs a pesar de la corrupción severa.
El informe analiza en detalle las causas del fallo y propone nueve áreas de mejora en btrfs-progs. Estas mejoras van desde la detección de progreso en la herramienta de reparación (para evitar bucles infinitos) hasta el manejo más preciso de estructuras de datos internas y la documentación más clara de conceptos clave como backup_roots y el cálculo del tamaño de las entradas de directorio. Se proporciona una implementación de referencia de estas herramientas y parches en GitHub (https://github.com/msedek/btrfs_fixes), con un modo de solo lectura por defecto para evitar modificaciones accidentales. El objetivo no es presentar estos cambios como parches directos, sino como puntos de partida para una discusión más amplia sobre el diseño y la mejora de btrfs-progs.
Este caso es relevante para administradores de sistemas Linux, desarrolladores de sistemas de archivos y cualquier persona que utilice Btrfs. La experiencia demuestra la importancia de comprender el funcionamiento interno de los sistemas de archivos y la necesidad de herramientas de recuperación más robustas para lidiar con fallos inesperados. Aunque la pérdida de datos fue mínima, el tiempo y el esfuerzo necesarios para la recuperación resaltan la importancia de la prevención y la mejora continua de las herramientas de gestión de sistemas de archivos.
