Server Message Block is the standard way Windows systems share files and folders, among other things. The origins of SMB can be traced back to IBM in the Disk Operating System (DOS) era, but Microsoft reverse-engineered it for their LAN Manager product and have been adding their own proprietary modifications to it ever since.
SMB 2.0, for instance, contained changes Microsoft made to allow (among other things) SMB to be routed more efficiently over wide-area networks (WANs), which are used more as Internet adoption grows. The biggest changes made in SMB 3.0 (formerly SMB 2.2) can be roughly divided into three overarching categories: speed, fault tolerance and miscellaneous improvements. Some features might overlap slightly between categories, but the first two rubrics are the most crucial for SMB.
Over the course of its lifetime, Server Message Block (SMB) has been revised to improve the speed of transfers across multiple network media and under adverse network conditions.
SMB Direct. This feature makes use of another Windows Server 8 feature: Remote Direct Memory Access (RDMA). With RDMA, two servers linked via the appropriate networking hardware (e.g., InfiniBand, iWARP or RDMA over Converged Ethernet [RoCE]) can transfer data in a memory-to-memory fashion. Think of it as a networked implementation of the way Direct Memory Access (DMA) worked in local machines, where a disk or network controller could access memory directly, without needing the CPU. SMB Direct extends SMB to use RDMA, allowing more data to be transferred with less overhead in the rest of the system. Note that, as with other SMB 3.0 features, both ends have to be running SMB 3.0 (and in this case, using compatible hardware) to use this feature.
SMB Multichannel. Many servers have more than one network interface, either for redundancy, multiplexing of network capacity, or both. This feature allows multiple network interfaces in a server to be used by SMB, both for improving performance with channel bonding and by using multiple network paths for fault tolerance.
SMB Directory Leasing. BranchCache users will appreciate this one. Many of them sync files with a central office over a high-latency, slower, WAN Directory Leasing takes some of the pain out of this process by caching file and directory metadata so that the branch office needs to make less round trips to the central server, and so that the apps that use those files respond more quickly.
A common element of features created for a server environment is some form of fault tolerance. Windows Server has a fault-tolerant file system and fault-tolerant clustering, so it only makes sense that SMB should add a kind of fault-tolerant functionality as well.
VSS. The Volume ShadowCopy Service (VSS) has long been used to protect local volumes from damage and to allow volume snapshotting for backups, but now its functionality has been added to SMB as well. Data available on SMB file shares are now available for any applications that are VSS-aware; for example, backup apps, which would make it easier to back up server shares that might be crucial to a local app's functionality.
Node fault tolerance. If you have an SMB share hosted on a server that's a cluster node, SMB 3.0 makes sure that failovers between nodes allow SMB shares to be handed off without issues -- especially for applications that have shares in use. Among other things, this functionality makes it easier to perform maintenance on nodes without first having to disconnect everyone from SMB shares on a given node.
The rest of the most important new SMB features don't fit easily into either of the above categories, so they're lumped together below:
SMB Scale-Out. This is another clustering-related feature -- one which mixes speed and fault-tolerance functionality. A cluster of servers that all share the same folders can have, under SMB 3.0, the aggregate bandwidth of all the nodes in the cluster that are used to satisfy demand for those shares. This feature is a cousin to the SMB Multichannel feature described above, but it's more about content distribution than mere load balancing (although Scale-Out does make certain load-balancing operations easier and more automatic).
SMB encryption. For those concerned about wire-level security, data sent over SMB can be encrypted in transit with very little work involved on the admin's side. This can be done no matter what the intervening network medium is; it doesn't matter if it's happening on a local area network (LAN) or across a WAN branch-office connection. The latter will most likely find more use than the former, although I can imagine a few scenarios where people would want to be protected from even the possibility of internal leaks using this method.
Most of the revisions SMB 3.0 delivers are aimed at making SMB that much more useful in clusters and wide-area networks, two places that might well have shied away from any reliance on SMB in the past. SMB had a (rightly deserved) reputation for being a brittle old-school technology, so it either had to be worked around or avoided entirely. These new changes may help spark a reconsideration of using SMB once Windows Server 2012 has been released and has had some time to enjoy wider acceptance than just the labs where it's currently being evaluated.
ABOUT THE AUTHOR
Serdar Yegulalp has been writing about computers and IT for more than 15 years for a variety of publications, including InformationWeek and Windows Magazine.