OpenGFS is an open-source software that replicates Sistina's Global File System.
One of the most significant advantages of OpenGFS, which makes it stand out from other file systems in the market, is its ability to allow multiple clients per server. With this feature, the server can open the block file in synchronous mode, and network receives are separated using mutexes to ensure that there are no overlaps during reads or writes. Moreover, other processes suspending IO can pause device activity, and the device can resume service once it reconnects to the server.
OpenGFS also allows transparent reconnection, which means the loss of a server does not trigger errors for programs using the device file. Instead, activity on the device pauses until gnbd gets reconnected to a server and re-issues any unfulfilled requests. Users can also set the notification of change of server and resume service easily by connecting to the server again and re-issuing any requests that did not receive replies yet.
Currently, gnbd has a kernel thread and a TCP socket for each opened block device. If either of these fails, the device stays connected, which allows users to modify some parameters via ioctl. Users can also specify the server ip and port at the module load, using the config option during insmod. More details on these features can be found in the main.c file.
In conclusion, OpenGFS is an advanced file system that offers unique features for users, including multiple clients per server, transparent reconnection, and notification of server changes. Its versatility in working with different protocols makes it a popular choice for many. While it is undergoing many changes, it remains an excellent solution for those looking for a stable and robust clustered file system.
Version 0.3.0: N/A