Desarrolladores de ZFS en Linux agregaron soporte para FreeBSD
Los desarrolladores que están a cargo del código base “ZFS en Linux” el cual es desarrollado bajo los auspicios del proyecto OpenZFS como implementación de referencia de ZFS, dieron a conocer hace poco la noticia de que adoptaron algunos cambios que agregan soporte para el sistema operativo FreeBSD.
El código agregado a “ZFS on Linux” se probó en las ramas FreeBSD 11 y 12. Por lo tanto, los desarrolladores de FreeBSD ya no necesitan mantener su propia rama sincronizada de “ZFS on Linux” y el desarrollo de todos los cambios relacionados con FreeBSD se llevará a cabo en el proyecto principal.
Además, el rendimiento en FreeBSD de la rama principal “ZFS on Linux” durante el desarrollo se probará en un sistema de integración continua.
Hay que recordar que en diciembre de 2018, los desarrolladores de FreeBSD tomaron la iniciativa de cambiar a la implementación de ZFS desde el proyecto ZFS en Linux (ZoL), en torno al cual se ha centrado recientemente toda la actividad relacionada con el desarrollo de ZFS.
La razón de la migración fue el estancamiento de la base de código ZFS del proyecto Illumos (bifurcación de OpenSolaris), que anteriormente se usaba como base para transferir los cambios relacionados con ZFS a FreeBSD.
Hasta hace poco, Delphix, una compañía de desarrollo para el sistema operativo DelphixOS, hizo la principal contribución al soporte de la base de código ZFS en Illumos (fork de Illumos). Hace dos años, Delphix decidió cambiar a ZFS en Linux, lo que provocó el estancamiento de ZFS del proyecto Illumos y la concentración de todas las actividades relacionadas con el desarrollo en el proyecto ZFS en Linux, que ahora se considera la implementación principal de OpenZFS.
Dado que la implementación de ZFS de Illumos ya está significativamente detrás de “ZFS on Linux” en términos de funcionalidad, los desarrolladores de FreeBSD se dieron cuenta de que la comunidad de FreeBSD no tenía la fuerza suficiente para mantener y desarrollar de forma independiente la base de código existente. Si continúa usando Illumos, la brecha en la funcionalidad solo crecerá y la transferencia de correcciones requerirá más y más recursos.
En lugar de tratar de aferrarse a Illumos, el equipo de soporte de ZFS en FreeBSD decidió adoptar “ZFS on Linux” como el principal proyecto de desarrollo colaborativo de ZFS, dirigir los recursos existentes para aumentar la portabilidad de su código y usar su base de código como base para la implementación de ZFS para FreeBSD . El soporte de FreeBSD se integrará directamente en el código “ZFS en Linux” y se desarrollará principalmente en los repositorios de este proyecto (el tema del desarrollo conjunto en un único repositorio ya ha sido acordado con Brian Behlendorf, líder del proyecto ZFS en Linux).
Los desarrolladores de FreeBSD decidieron seguir un ejemplo común y no tratar de aferrarse a Illumos, ya que esta implementación ya está muy rezagada en funcionalidad y requiere grandes recursos para mantener el código y transferir los cambios.
“ZFS on Linux” se ve ahora como el principal proyecto de desarrollo colaborativo único de ZFS.
Entre las características que están disponibles en “ZFS on Linux” para FreeBSD, pero no están disponibles en la implementación de ZFS de Illumos, se destaca un modo multihost ( MMP, Multi Modifier Protection), un sistema de cuotas extendido, encriptación de conjuntos de datos, selección separada de clases de asignación para bloques (clases de asignación), el uso de instrucciones de procesador de vectores para acelerar la implementación de RAIDZ y el cálculo de sumas de verificación, herramientas mejoradas de línea de comandos y muchas correcciones de errores relacionadas con las race conditions.
Con ello el soporte de FreeBSD a ZoL facilitará el movimiento de los cambios entre FreeBSD y Linux, ademas de que los desarrolladores mencionan que se recibirán algunas mejoras, de las cuales mencionan:
- importar SPL de FreeBSD
- agregar ifdefs en el código común donde tenga más sentido hacerlo que duplicar el código en archivos separados
Finalmente si quieres conocer más al respecto, puedes consultar los detalles en el siguiente enlace.