Se ha propuesto una implementación del servidor SMB en el kernel de Linux
Hace pocos dias se dio a conocer una propuesta para su inclusión en la próxima versión del kernel de Linux en la cual se sugiere una implementación del servidor de archivos utilizando el protocolo SMB3.
Lo que se contempla es que el servidor está diseñado como un módulo de kernel ksmbd y complementa el código de cliente SMB previamente disponible, además de que se observa que, a diferencia de un servidor SMB que se ejecuta en el espacio del usuario, la implementación a nivel del kernel es más eficiente en términos de rendimiento, consumo de memoria e integración con capacidades avanzadas del kernel.
La familia de protocolos SMB es la más ampliamente implementada en el sistema de archivos de red y es el predeterminado en Windows y Mac (e incluso en muchos teléfonos y tabletas), con clientes y servidores en las principales sistemas operativos, pero carecía de un servidor kernel para Linux.
Los principales autores del código ksmbd son Namjae Jeon de Samsung y Hyunchul Lee de LG, además de que el acompañamiento ksmbd como parte del kernel se ocupará de Steve French de Microsoft y que anteriormente trabajó durante muchos años en IBM, además de que tambien trabajo en los subsistemas de mantenimiento CIFS/SMB2/SMB3 en el kernel de Linux y es miembro del equipo de Samba desde hace mucho tiempo y quien tambien hizo una contribución significativa a la implementación del Protocolo de Soporte SMB / CIFS en Samba y Linux.
Para muchos casos, las opciones actuales del servidor de espacio de usuario no eran óptimas ya sea debido a la huella de memoria, el rendimiento o la dificultad para integrar bien con funciones avanzadas de Linux.
ksmbd es un nuevo módulo del kernel que se implementa el lado del servidor del Protocolo SMB3. El objetivo es proporcionar un rendimiento optimizado, mejor manejo de concesiones (almacenamiento en caché distribuido).
Lo que se destaca de ksmbd es el soporte mejorado para la tecnología de almacenamiento en caché de archivos distribuidos (arrendamientos SMB) en sistemas locales, lo que puede reducir significativamente el tráfico.
En el futuro, se planea agregar nuevas características, como soporte para RDMA («smbdirect»), así como extensiones de protocolo relacionadas con la mejora de la fuerza del cifrado y la verificación mediante firmas digitales.
Cabe señalar que dichas extensiones son mucho más fáciles de implementar en un servidor compacto y bien optimizado que se ejecuta a nivel de kernel que en el paquete Samba. Dicho esto, ksmbd no pretende ser un reemplazo completo de Samba, que va más allá de las capacidades de un servidor de archivos y proporciona herramientas que abarcan servicios de seguridad, LDAP y un controlador de dominio.
La implementación del servidor de archivos de Samba es multiplataforma y está diseñada para usos más amplios, lo que dificulta la optimización para algunos entornos Linux, como el firmware para dispositivos con recursos limitados.
El objetivo más grande es agregar nuevas características rápidamente (por ejemplo, RDMA también conocido como «smbdirect» y cifrado reciente y firma de mejoras al protocolo) que son más fáciles de desarrollar en un servidor kernel más pequeño y optimizado que, por ejemplo, en Samba. El proyecto Samba tiene un alcance mucho más amplio (herramientas, servicios de seguridad, LDAP, controlador de dominio de Active Directory y un servidor de archivos multiplataforma para una variedad más amplia de propósitos) pero la porción del servidor de archivos del espacio de usuario de Samba ha demostrado ser difícil de optimizar para algunas cargas de trabajo de Linux, incluidas para dispositivos más pequeños.
Se menciona que Ksmbd no se ve como un producto independiente, sino más bien como una extensión de Samba lista para dispositivos integrados y de alto rendimiento que se integra con las herramientas y bibliotecas de Samba según sea necesario. Por ejemplo, los desarrolladores de Samba ya han acordado usar archivos de configuración compatibles con smbd y atributos extendidos (xattrs) en ksmbd, lo que facilitará el cambio de smbd a ksmbd y viceversa.
Finalmente si estás interesado en poder conocer más al respecto sobre la propuesta de esta implementación, puedes consultar los detalles en el siguiente enlace.