Die Aufzeichnungen der Storage Developer Conference 2021 sind nun online, darunter auch die des SerNet Samba Teams. Ralph Böhme sprach über "Das neue Samba VFS" und Stefan Metzmacher präsentierte ein Status Update zu "Samba Multi-Channel/io_uring".
Das Video zu "Das neue Samba VFS" von Ralph Böhme ist auf YouTube zu sehen: https://youtu.be/D9EZO3gkT9U, ebenfalls verfügbar sind die Folien.
Abstract: Beginnend mit Version 4.14 bietet Samba einen Core Infrastructure Code, der es erlaubt, alle Zugriffe auf das Dateisystem des Servers auf Filehandles und nicht auf Pfaden zu basieren. Ein Beispiel dafür ist die Verwendung von fstat() anstelle von stat(), oder SMB_VFS_FSTAT() anstelle von SMB_VFS_STAT() in der Samba-Sprache. In der Vergangenheit hatte der Fileserver-Code von Samba viel mit der Verarbeitung von pfadbasierten SMB-Anfragen zu tun. Während das SMB-Protokoll selbst gestrafft wurde, um ab SMB2 rein handle-basiert zu sein, blieben große Teile des Infrastrukturcodes bestehen, die handle-basierte SMB2-Anfragen zu pfadbasiertem Dateisystemzugriff "degradieren". Um die handle-basierte Natur des SMB2-Protokolls voll auszunutzen, haben wir einen einfachen Weg gefunden, diesen Infrastrukturcode zu konvertieren, so dass er in eine rein handle-basierte VFS-Schnittstelle umgewandelt werden kann. Der Vortrag zeigt, was wir bisher erreicht haben und was noch zu tun ist. Er richtet sich an alle, die am Samba Fileserver Code und an den Samba VFS Modulen arbeiten.
Das"Samba Multi-Channel/io_uring Status Update" von Stefan Metzmacher gibt es auch auf YouTube: https://youtu.be/fnA4imgBsUo, Slides sind verfügbar.
Abstract: Samba hatte bereits eine ganze Weile experimentelle Unterstützung für Multi-Channel. SMB3 hat ein paar Konzepte, um Anfragen sicher wiederzugeben. Wir implementieren sie nun vollständig (und teilweise besser als ein Windows Server). Der Vortrag erklärt, wie wir die fehlenden Funktionen implementiert haben. Mit dem zunehmenden Netzwerkdurchsatz werden wir einen Punkt erreichen, an dem eine Datenkopie für einen einzelnen CPU-Kern zu viel ist, um sie zu verarbeiten. Dieser Vortrag gibt einen Überblick darüber, wie die io_uring-Infrastruktur des Linux-Kernels genutzt werden kann, um das Kopieren von Daten zu vermeiden und die Last auf die CPU-Kerne zu verteilen. Ein Prototyp hierfür existiert und zeigt hervorragende Ergebnisse.