All about MoSMB Architecture – Part I
We are pleased to present excerpts from an interview with Dr. Sunu Engineer, CTO of Ryussi Technologies who is talking about his vision for “MoSMB – SMB with Mojo” architecture and how it will enable storage companies to embrace SMB 3.0 in their systems easily in a very short time.
How would you describe MoSMB in brief?
MoSMB is designed to be a fully compliant, light-weight, low footprint, proprietary license bearing SMB (Server Message Block) server component in user space which can be integrated into other storage stacks quickly and efficiently.
What versions of SMB protocol will MoSMB support?
We are going to support SMB 3.x and 2.x protocols and we will also support latest revision of SMB protocol – SMB 3.11.
What is the license type for MoSMB?
MoSMB is a proprietary, closed source (and not open source) software thus eliminating open source issues. There is absolutely no encumbrance related to GPL or third party software.
Can you please give a quick overview of MoSMB architecture?
MoSMB is architected as distributed software and can be run as a single process as well as a set of multiple processes. Furthermore, it has been designed as a set of libraries and can be used by anyone and integrated with their storage systems easily.
The library is designed to provide SMB protocol compatibility for any type of storage – it can be POSIX file system or object storage or even a row of blocks
The architecture is such that the server comprises of the multiple components:
- The core protocol engine which does the SMB protocol handling.
- The Connection manager which does the multichannel connection management. We will support full multichannel including RDMA. Our connection manager is event based which allows us to scale out infinitely. This received the events and passes the events to the core protocol handler. This in turn delegates the event to the
- The IO subsystem supporting synchronous and asynchronous mechanisms.
The IO subsystem manages the IO with the file systems through the IO driver. We have a pluggable IO driver framework that can work with the IO driver created for a particular IO system.
The other critical design element is the ability to create multiple instances of the MoSMB server which helps it to scale – this ability to create clustered framework is being done by the clustering manager. However, if the customers have their own ways of synchronizing data we have an interface with the cluster manager can synchronize using their shared buses for customers who are already building scale out devices.