"ksmbd" est un nouveau module du noyau Linux qui implémente un serveur SMB. Il vise à être un serveur de fichiers performant, à faible encombrement, couvrant de nombreux cas d'utilisation de base, le fonctionnement sur des appareils plus petits avec des ressources limitées étant le plus apparent : OpenWRT, la distribution Linux pour les appareils embarqués, a adopté ksmbd il y a déjà 18 mois, alors que ksmbd était encore en cours de développement.
ksmbd a frappé le public en novembre 2021 dans le cadre de la prochaine version 5.15 du noyau Linux. Il n'est pas destiné à remplacer le serveur de fichiers Samba existant "smbd", mais plutôt à être une extension et s'intégrera à Samba à l'avenir. Le serveur de fichiers de Samba "smbd" a une portée beaucoup plus large et prend en charge divers cas d'utilisation et fonctionnalités que ksmbd ne prend pas en charge:
- Exécution en tant que membre du domaine Active Directory
- Scale-out clustering
- Optimiser pour des systèmes de fichiers spécifiques comme GlusterFS ou Ceph via des modules VFS dédiés
- Prise en charge de Shadow Copy
Bien qu'il s'agisse d'un serveur SMB3 majoritairement complet en termes de fonctionnalités, ne manquant que certaines fonctionnalités avancées comme les Handles durables, les baux de répertoire et le multicanal, ksmbd ne peut actuellement faire usage que des utilisateurs et des mots de passe locaux, ce qui exclut toute utilisation dans les environnements d'entreprise où l'on utilise généralement Active Directory ou des sources d'identité similaires.
ksmbd revendique des améliorations de performances sur un large éventail de benchmarks: les graphiques de cette page montrent un doublement des performances sur certains tests. Il y avait aussi l'idée qu'un serveur in-kernel est probablement un endroit plus facile pour prendre en charge SMB Direct, qui utilise RDMA pour transférer des données entre les systèmes.
Certes, ces chiffres sont impressionnants, mais en même temps, les récentes améliorations des performances IO de Samba remettent cela en perspective : en exploitant la nouvelle API Linux "io_uring", Samba est capable de fournir un débit environ 10 fois supérieur à celui de ksmbd.
Le temps nous dira s'il est préférable de résider dans l'espace noyau comme ksmbd ou dans l'espace utilisateur comme Samba afin d'extraire le dernier morceau de performance du matériel disponible.
Quelle est la maturité de ksmbd? Étant donné qu'il a été principalement développé par un ingénieur de Samsung, il est probable qu'il soit utilisé dans les produits Samsung aujourd'hui. Cependant, la version de novembre est une version .0 avec toutes les mises en garde qui l'accompagnent. Certains des détails, y compris divers problèmes de sécurité qui ont été trouvés et corrigés assez tardivement, sont décrits dans un article sur LWN.
Tout compte fait, ksmbd est un travail impressionnant et afin de faciliter et d'encourager la collaboration, le principal développeur de ksmbd, Namjae Jeon, a été invité à rejoindre l'équipe l'équipe internationale Samba. ksmbd ajoute déjà des capacités intéressantes au mélange et l'équipe SerNet de Samba est impatiente de travailler avec et sur ksmbd!