Microsoft is about to release the third major revision to their ubiquitous network storage protocol, SMB. Windows Server 2012 and Hyper-V 3 will really highlight this technology, and I predict it will transform the way people think about networked storage for Windows systems. But SMB 3 is big in another way, too: there are tons of new features, and not all will be implemented by everyone.
SMB Part 3
SMB 3.0 is just loaded with new features. In development, this was going to be SMB 2.2. But Microsoft added so much, it really deserves the major version number recently assigned.
As you may recall, SMB 2.0 was a complete rewrite of the classic Windows protocol sometimes known as CIFS. Released along with Windows Vista, SMB 2.0 addressed most of the issues storage geeks like me had with that much-maligned protocol. SMB 2.1, released with Windows 7 and Server 2008 R2, included features improving performance over WAN links, as well as BranchCache, which helped with remote offices.
Now we have SMB 3.0, which includes all this and much more. Slated to be part of Windows 8 and Server 2012, SMB 3.0 is backwards compatible with 2.0 and 2.1. New to the protocol is intelligent negotiation of features supported by clients and servers, a necessity given the veritable smorgasbord of new options added.
Big New Features Let SMB 3 Support Applications
Although SMB has traditionally been a protocol for client and end-user computing, SMB 3.0 is all about application server storage. This seems to be the message out of Microsoft right now: Using file server storage for applications including Exchange, SQL Server, and Hyper-V. This is a very different mission for any storage protocol, and required quite a bit of reengineering. As you will see, nearly every added feature supports this new mission.
Perhaps the most important new feature is transparent failover of client access. This means that clients can remain connected even if the server they are talking to fails, and they can recover and continue talking to different server in a cluster if needed.
SMB multichannel is another massive new feature added to the protocol. It allows you to use multiple network links if they are available, scaling performance and adding additional fault-tolerant connections. Microsoft talks about consolidating four 10 GbE links into a 40 Gb channel between a client and file server. Pretty impressive, if you ask me!
If you want even more performance, SMB Direct enables communication over RDMA adapters, including InfiniBand, RoCE, and iWARP. These ultralow latency networks should allow massive performance, in the gigabyte per second range. Who would have thought that SMB would beat Fibre Channel for throughput and latency?
SMB 3.0 also includes Remote VSS support, allowing snapshots to be made on the fileserver instead of the local server. Microsoft’s familiar Volume Shadowcopy Services (VSS) are the standard mechanism in Windows for application-consistent snapshots, and this now works for file server storage too.
And More For Clients
There’s a whole lot more in SMB 3.0 besides application server support. On-the-fly encryption of data traffic is huge, and directory leases and BranchCache improvements accelerate remote client performance. There’s even more, but I’m not sure if I’m allowed to talk about it all yet!
Encryption is one of those funny things that people don’t think about when it comes to storage protocols. Even when it is supported, it’s not often used except outside the local network. But with SMB increasingly able to deal with WAN links, it was a good idea to add encryption to the menu.
Some of the big changes in SMB 2.1 revolve around “leases” to improve file access over unreliable networks. SMB 3.0 adds directory leases to the mix, so clients should stay connected and active even as networks drop and reconnect. This is especially important for WiFi networks and tablets.
BranchCache is another often-overlooked technology in Windows 7. It enables peer-to-peer offload of file server connections in remote office scenarios. SMB 3.0 adds extensions for the next version of BranchCache, supporting deduplication, another exciting new storage feature in Windows Server 2012.
My days of not taking Windows file servers seriously are definitely at an end. File protocols are dramatically improving, even as end users are looking for alternatives to the tired block protocols they have been using for decades. Microsoft has a real opportunity to push application server storage forward, and I am excited to be able to watch these developments. I’ll be writing a lot more about SMB 2.0, 2.1, and 3.0 in the coming months. But for now, I recommend downloading the beta and trying out some of these new features for yourself!
Special thanks to Jose Barreto of Microsoft for the protocol image and lots more info!