SMB / CIFS
Server Message Block (SMB) Protocol
SMB also known as Common Internet File System (CIFS) operates as an application-layer network protocol mainly used for providing shared access to files and miscellaneous communications between nodes on a network. SMB works through a client-server approach, where a client makes specific requests and the server responds accordingly. Microsoft introduced a new version (SMB 2.0) of the SMB protocol with Windows Vista in 2006.
The SMB 3.0 dialect extends SMB2 and is part of Microsoft Windows 8 and Windows Server 2012. The benefits of SMB 3.0 include lower CPU overhead in the compute tier with improved client caching, fault tolerance and reliability with features such as transparent failover, and high availability with scale-out and multichannel functionality.
“Choosing the SwiftTest 3000 came down to depth and breadth of the tools—granular configurability and great protocol support. And I like that SwiftTest is very NAS focused. The box does just what I want, and does it well.”
— Nigel Stolting, US QA Manager, Hitachi (formerly Blue Arc)
While SMB 3.0 promises reliability and performance at par with SAN technologies, robust validation of the protocol must take place before it can be deployed in production environments. The SwiftTest SMB 3.0 protocol package allows storage, development and QA engineers to build complex workloads that represent real product environments, emulating clients or servers acting as clients at high scale.
SwiftTest supports all SMB versions and dialects including 1.0, 2.002, 2.1, and the latest 3.0 specification.
Client Emulation / Realism
- Configurable network options supporting VLAN tagging, IPv4, IPv6 and MAC address assignment with increment schemes for emulation of millions of unique clients.
- Key authentication mechanisms including NTLMv1/v2 and Kerberos.
- SMB 3.0 Signing
Multichannel / Performance
- Ability to emulate multichannel scenarios to contrast performance gains when using different number of channels and mixed network interfaces speeds.
- Use credit, compound request, thread block and async block constructs for validation of SMB multiplexing and asynchronous behavior.
Offload / Client Caching
- Server-side copy and copy offload commands to assess performance gains and traffic reduction improvements of these operations.
- Configure emulated clients to use file/directory leasing with various oplocks to understand client caching synchronization behavior, assess increases in file server scalability and reduction in network bandwidth consumption.
Failover / High Availability
- Make use of application instance IDs to validate if SMB 3.0 file servers can maintain context when applications failover to different client nodes.
- Configure persistent/durable handles to test transparent client recovery of SMB 3.0 under negative conditions such as network or server failures.