"ksmbd" ist ein neues Linux-Kernelmodul, das einen SMB-Server implementiert. Es zielt darauf ab, ein leistungsfähiger Dateiserver mit geringem Overhead und geringem Platzbedarf zu sein, der viele grundlegende Anwendungsfälle abdeckt. Von diesen ist der Betrieb auf kleineren Geräten mit begrenzten Ressourcen der offensichtlichste: OpenWRT, die Linux-Distribution für eingebettete Geräte, hat ksmbd bereits vor 18 Monaten übernommen, als ksmbd noch in der Entwicklung war.
ksmbd wird ab November 2021 als Teil der nächsten Linux-Kernel-Version 5.15 der Öffentlichkeit zugänglich gemacht. Er soll den bestehenden Samba-Fileserver "smbd" nicht ersetzen, sondern eher eine Erweiterung sein und sich in Zukunft in Samba integrieren. Der Samba-Fileserver smbd ist viel breiter angelegt und unterstützt verschiedene Anwendungsfälle und Funktionen, die ksmbd nicht bedient:
- Ausführung als Mitglied einer Active-Directory-Domäne
- Scale-out-Clustering
- Optimierung für bestimmte Dateisysteme wie GlusterFS oder Ceph über dedizierte VFS-Module
- Unterstützung von Shadow Copy
Auch wenn es sich bei ksmbd um einen SMB3-Server handelt, dem nur einige fortgeschrittene Funktionen wie Durable Handles, Directory Leases und Multi-Channel fehlen, kann er derzeit nur lokale Benutzer und Passwörter verwenden. Das schließt den Einsatz in Unternehmensumgebungen aus, in denen normalerweise Active Directory oder ähnliche ID-Ressourcen verwendet werden.
ksmbd verspricht Leistungsverbesserungen bei einer Vielzahl von Benchmarks: Die Diagramme auf dieser Seite zeigen eine Verdoppelung der Leistung bei einigen Tests. Es wird außerdem darauf verwiesen, dass ein In-Kernel-Server wahrscheinlich einfacher SMB Direct unterstützen kann, das RDMA für die Datenübertragung zwischen Systemen verwendet.
Natürlich sind diese Zahlen beeindruckend, aber gleichzeitig relativieren sich die jüngsten Verbesserungen der IO-Leistung von Samba: Durch die Nutzung der neuen "io_uring"-Linux-API ist Samba in der Lage, einen etwa 10-fachen Durchsatz im Vergleich zu ksmbd zu bieten.
Die Zeit wird zeigen, ob es besser ist, im Kernel-Space wie ksmbd oder im User-Space wie Samba zu operieren, um das letzte Quäntchen Leistung aus der verfügbaren Hardware herauszuquetschen.
Wie ausgereift ist ksmbd? Da es hauptsächlich von einem Samsung-Ingenieur entwickelt wurde, ist es wahrscheinlich, dass es heute in Samsung-Produkten verwendet wird. Bei der Novemberversion handelt es sich jedoch um eine .0-Version mit allen damit verbundenen Vorbehalten. Einige der Details, einschließlich verschiedener Sicherheitsprobleme, die erst recht spät gefunden und behoben wurden, sind in einem Artikel bei LWN beschrieben.
Alles in allem ist ksmbd eine beeindruckende Arbeit, und um die Zusammenarbeit zu erleichtern und zu fördern, wurde der Hauptentwickler von ksmbd, Namjae Jeon, eingeladen, dem internationalen Samba Team beizutreten. ksmbd fügt dem Mix bereits interessante Fähigkeiten hinzu, und das SerNet Samba-Team freut sich auf die Arbeit mit und an ksmbd!