Software Storage Bus Overview

Applies To: Windows Server 2016

The Software Storage Bus is a virtual storage bus spanning all the servers that make up the cluster. Software Storage Bus essentially makes it possible for each server to see all disks across all servers in the cluster providing full mesh connectivity. Software Storage Bus consists of two components on each server in the cluster; ClusPort and ClusBlft. ClusPort implements a virtual host bus adapter (HBA) that allows the node to connect to disk devices in all the other servers in the cluster. ClusBlft implements virtualization of the disk devices and enclosures in each server for ClusPort in other servers to connect to.

A diagram showing how two cluster nodes use the Software Storage Bus to share storage over an Ethernet connection

SMB as transport

Software Storage Bus uses SMB3 and SMB Direct as the transport for communication between the servers in the cluster. Software Storage Bus uses a separate named instance of SMB in each server, which separates it from other consumers of SMB, such as CSVFS, to provide additional resiliency. Using SMB3 enables Software Storage Bus to take advantage of the innovation we have done in SMB3, including SMB Multichannel and SMB Direct. SMB Multichannel can aggregate bandwidth across multiple network interfaces for higher throughput and provide resiliency to a failed network interface. For more information about SMB Multichannel, see Deploy SMB Multichannel. SMB Direct enables use of RDMA enabled network adapters, including iWARP and RoCE, which can dramatically lower the CPU overhead of doing IO over the network and reduce the latency to disk devices. For more information about SMB Direct, see Improve Performance of a File Server with SMB Direct. To view a demonstration of the IOPS difference in a system with and without RDMA enabled , see Enabling Private Cloud Storage Using Servers with Local Disks.

Software Storage Bus Bandwidth Management

Software Storage Bus also implements a fair access algorithm that ensures fair device access from any server to protect against one server starving out other servers. It also implements an algorithm for IO prioritization that prioritizes Application IO, which usually is IO from virtual machines, over system IO, which usually would be rebalance or repair operations. However, at the same time it ensures that rebalance and repair operations can make forward progress.

See Also