Server Message Block (SMB), also known as Common Internet File System (CIFS, /ˈsɪfs/) operates as an application-layer network protocol mainly used for providing shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network. [Wikipedia]
The CIFS protocol is widely used in the context of a file server, where a central repository hosts the files that can be accessed by many computers over the network. Until now, the CIFS protocol was not used for applications like SQL server, Exchange or Hyper-V where the workloads are more intense than a file server. The workload profiles for applications like SQL Server, Exchange and Hyper-V required a DAS (Direct Attached Storage) or a SAN (Storage Area Network) that exposed a block device interface to achieve the high transfer rates from the storage layer for these applications. Another drawback of the CIFS protocol was that the data on the network shares could not be queiesced for backup in a consistent manner since the VSS (Volume Shadow copy Service) infrastructure was not compatible with the shared storage.
Server Message Block v3 introduced in Windows 2012 and Windows 8 changes this landscape completely.
The introduction of SMB 3.0 in Windows 2012 now enables the following (summarized):
- Ability for SMB 3.0 network shares to host application data for SQL Server databases and Hyper-V virtual machines.
- Ability to support live migration of virtual machines across hypervisor hosts that share a CIFS network share connection.
- Increased performance of network shares by using SMB over RDMA (Remote Direct Memory Access) and SMB multichannel, which utilizes all the network interfaces on the server to provide maximum throughput for data transfer across server nodes.
- VSS over SMB file shares provides the infrastructure to consistently queisce the data stored on the network shares. This allows consistent backups of the application (structured) data and file (unstructured) data that is hosted on the network share.
You can read about the changes to SMB v3 more in this blog post.
Now, most of the applications that are making use of the SMB v3 protocol are required to have a Windows 2012 / 8 server at both end-points – the computer that hosts the share as well as the computer that accesses the share. All of the major storage vendors have already begun to incorporate the SMB v3 protocol into their NAS product portfolios, since Windows 2012 now enables their storage arrays to be utilized for use cases other than just file services. The open source samba community is also actively working on incorporating the SMB 3.0 protocol into the Linux distributions, which when done will receive mass adoption of the protocol standard. I can’t wait for the mainstream Linux distributions to include support for SMB 3.0 with its rich feature set. Hopefully very soon!