This document will explain how the SoftNAS appliance interfaces with Microsoft Windows clients using the SMB/CIFS protocol that is native to Microsoft. SoftNAS uses “Samba” as the software interface to expose the underlying filesystem to Microsoft Windows clients. Samba is the main Linux implementation of SMB, which also supports most of CIFS and Microsoft’s implementation of SMB.
SMB, which stands for Server Message Block, is a protocol for sharing files, printers, serial ports, and communications abstractions such as named pipes and mail slots between computers. CIFS (Computer Internet FileSystem ) is a more recent extension of the SMB protocol developed at IBM, and later by Microsoft. Samba interfaces the proprietary version of SMB that Microsoft uses, known as “Microsoft SMB Protocol” to non-proprietary solutions outside of the Microsoft ecosystem.
Best Practice for Scaling CIFS Performance on SoftNAS in the Cloud
If you are using SoftNAS® as the backend storage for Microsoft Windows applications that require SMB or CIFS over named pipes or UNC paths, you may find better performance by scaling your Microsoft application horizontally (or in parallel) rather than scaling your application vertically. The reason for ‘scaling out’ with more front end application threads is to get more parallel processing when dealing with Windows implementation of the SMB protocol. It behaves in such a way that all SMB requests are piped through single TCP connections. Adding more TCP connections, therefore, increases the number of threads for file pipes.
Example A: Non-Optimized
For instance, you have an application running on two Windows IIS Webservers that use a UNC path to SoftNAS storage via CIFS share for common data storage or static files hosting. You have these IIS servers behind a cloud load balancer.
Example B: Optimized
Example B shows how we can scale our IIS application horizontally to get more TCP/IP connections to process the Windows SMB piped requests. We can scale down the size of the front-end IIS application servers as well. The extra processing power on the front-end application servers has less of an impact than adding more IIS TCP/IP connections.
As we migrate our applications from private co-location and vendor proprietary solutions out to public (or private) cloud providers we must interface with shared compute and network resources as well as different software technologies than we may have used in our legacy infrastructure. SoftNAS is a great storage bridge that integrates into your architecture regardless of the underlying storage protocol.
Reach out to SoftNAS Support if you have any questions or require additional information.