GEFS llega a OpenBSD: sistema de ficheros copy-on-write y snapshots
Ori Bernstein publica una vista previa de su sistema de ficheros copy-on-write para OpenBSD, aún sin enviar al árbol y no apto para producción
Ori Bernstein ha publicado una vista previa de GEFS, Good Enough File-System, un sistema de ficheros copy-on-write con snapshots y tolerante a caídas. Lo escribió para 9front y ahora lo está portando a OpenBSD. El estado es muy temprano: el propio autor lo llama una previa tosca, con bugs y llena de problemas, y no lo ha enviado al árbol de OpenBSD.
Qué hay debajo
El diseño original es para Plan 9, y 9front es un fork de ese sistema que sigue vivo en un nicho que aprecia su modelo de todo-es-un-fichero. GEFS monta la interfaz tradicional del sistema de ficheros 9p sobre un bosque de árboles Bµ con copy-on-write. El orden de prioridades que se marca Bernstein es: no corromperse ante una caída, detectar la corrupción que aparezca, ser simple y hacer snapshots rápido. Asume también que no será óptimo en todos los ejes; la meta declarada es ser lo bastante bueno para el uso diario. El diseño original está descrito en un documento técnico.
El port y lo que queda
El port a OpenBSD no está listo para producción y tampoco se ha propuesto su inclusión en el árbol del sistema operativo. Bernstein sostiene que, salvo algunas excepciones, los problemas que quedan se entienden razonablemente: no hay incógnitas de fondo, hay trabajo pendiente. Los detalles y las discusiones van en la lista openbsd-tech.
OpenBSD arrastra desde hace años la misma carencia: en su árbol base no hay un sistema de ficheros con snapshots y copy-on-write, y quien quiere eso tiene que salir a buscar alternativas fuera. GEFS es un intento de cubrir ese hueco sin arrastrar la complejidad de las opciones que se usan por fuera.
Queda por ver si el port aguanta el escrutinio de una comunidad conservadora con todo lo que toque el almacenamiento, y si Bernstein llega a proponerlo formalmente. De momento lo que hay es código para leer y probar, no para poner en producción.
