This week, I want to write about hidden software gems. My first example is an NFS server. When you search the internet for NFS server and Linux, inevitably, you will end up reading about the kernel-NFS server integrated with the Linux kernel. But there is a second implementation that gets much less attention: the NFS-Ganesha userspace NFS server.
My other example, of course, is also on the storage side: the iSCSI target implementation. We had a number of those, most of which are of only historical relevance these days. Here too, the first hit will almost always be the kernel’s LIO target. But in my opinion, the unsung hero is the SCST target.
I had to learn the hard way about all the problems associated with the LIO target that come to light when you try to use it in a scenario with VMware hypervisors as iSCSI initiators. I have seen it fail due to kernel lockups, aborted iSCSI sessions, and more problems I suppressed for my own mental well-being. It was a big mess. At a conference, I met the current maintainer, who was quite frank about how they are doing their best to keep the project alive while touching the code as little as possible, since altering one part may inadvertently cause issues elsewhere. This approach is typical for a project where the initial developer has left.
The gem, the SCST target, turned out to shine under the same workloads. That is what we use with the LINSTOR gateway by default.
LINSTOR gateway also offers NFS exports. Up to now, they have been based on the mainstream kernel-NFS server. We are in the process of switching to NFS-ganesha to enable it to offer multiple highly available NFS exports from a single LINSTOR gateway installation.
Moving over to the latest LINBIT content, our most recent LINSTOR blog post is Kubernetes-related. In ‘Using Volume Group Snapshots with LINSTOR in Kubernetes,’ we cover the ‘volume group snapshots’ feature introduced in version 2.10.0 of the LINSTOR Operator for Kubernetes. As the post concludes, using LINSTOR to take and restore volume group snapshots is a straightforward way to have crash-consistent multi-volume backups in Kubernetes, without requiring application-level quiescence or coordination.
‘GitLab High Availability With DRBD & Pacemaker’ demonstrates one method to achieve an HA GitLab environment. DRBD and Pacemaker can be a fairly simple, cost-effective way to make any service highly available, and you can learn more about the subject by reading the blog post.
For our German-speaking readers, you may be interested in a recent webinar I joined with Christian Buzanich from An.io and Christoph Fürstaller from SALK. In ‘Sichere, autarke und hochverfügbare Backup Umgebungen mit ANIO und LINBIT’ we discuss how to build secure and highly available backup environments, using the Salzburg State Hospitals as an example. For more information, you can read a new LINBIT + An.io case study here, too.
Regarding the latest software updates, the team has released python-linstor/linstor-client 1.28.0 since I last wrote.