MENU

Storage Spaces Direct: Enabling S2D work with unsupported device types (BusType = NVMe, RAID, Fibre Channel). Part 1: Registry hack

Posted by Taras Shved on February 10, 2017
Share on Facebook0Share on Google+0Share on LinkedIn0Share on Reddit4Tweet about this on Twitter0
5/5 (4)
5/54

Introduction

Microsoft Storage Spaces Direct is a new storage feature introduced in Windows Server 2016 Datacenter that significantly extends the software-defined storage stack in Windows Server product family and allows users to build highly-available storage systems using directly attached drives.

Storage Spaces Direct or S2D helps to simplify the deployment and management of software-defined storage systems as well as to open the use of more classes of disk devices like SATA and NVMe drives. Previously it was not possible to use these types of storage with clustered Storage Spaces with shared disks.

Storage Spaces Direct can use drives that are locally attached to nodes in a cluster or disks that are attached to nodes using enclosure. It aggregates all the disks into a single Storage Pool and enables the creation of virtual disks on top.

Storage Spaced Direct stack

Problem

The storage hardware requirements of Microsoft Storage Spaces Direct are very clear. Locally attached SATA, SAS, or NVMe drives are supported and every drive must be physically connected to only one single server. SSDs should be “enterprise-grade”, meaning they have power-loss protection and if they are planned to be used for a cache they should have high write endurance. Drives can be 512n, 512e, or 4K native. Microsoft recommends using a separate dedicated drive for boot. Multipath IO (MPIO) or physically connecting drives via multiple paths is not supported.

The most interesting part of storage requirements is regarding host-bus adapter (HBA). Simple pass-through SAS HBA for both SAS and SATA drives is required and SCSI Enclosure Services (SES) for SAS and SATA drives is necessary. Any directly-attached storage enclosures must present Unique ID.

RAID HBA controllers or SAN (Fibre Channel, iSCSI, FCoE) devices are not supported which makes it impossible to create a Storage Spaces Direct on top of most RAID controllers even if they have HBA mode or JBOD (Pass-Through) mode switch since some controllers keep reporting drives bus-type as RAID.

Test lab configuration

My test lab consists of 2 x SuperMicro X10DRH Servers powered with 2 x Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz each. Each server has a decent 128 GB of RAM. Connectivity is provided by Mellanox ConnectX4 100 Gbe dual-port interfaces.

Each server has a single 120 GB Intel(R) SSD for Windows Server 2016 Datacenter operating system, 3 x various spindle HDDs and a single 800 GB Intel(R) P3700 NVMe card. All drives are connected to Avago 3108 MegaRAID controller that is based on LSI SAS 3108. Similar chips are used in DELL Perc and HPE Smart Array controllers and most of them support JBOD (pass-through) mode.

RAID Configuration

Creating the S2D cluster

Let us start with creating a new Microsoft Failover Cluster.

PowerShell command creating New cluster

Before creating the storage cluster, we must check whether our storage configuration fits the Storage Spaces Direct requirements on both hosts. We have to check if the drives we are going to use for S2D can be added to the storage pool (CanPool value is set to True) and if the BusType is correct.

PowerShell command adding BusType

PowerShell command adding BusType

As we can see the drives are “poolable” but the BusType of all HDD drives reports as RAID. If we try to create a cluster using these parameters we will see the “No disks with supported bus types found to be used for S2D” error message.

PowerShell command Enable Cluster S2D

Solution

The first and most obvious solution would be to replace your existing storage controller with a Storage Spaces Direct compatible one. This should be a simple pass-through SAS HBA for both SAS and SATA drives.

If your drives keep reporting the BusType as RAID despite being configured as JBOD (pass-through) like in the situation described here, you might try updating storage controller’s firmware and drives. This solution is known to be helpful on some HPE SmartArray controllers.

For many LSI controllers, there are two types of firmware that can be used. IT firmware keeps the controller working as a simple HBA while IR firmware upgrades the controller to a RAID controller. In order to be used with Storage Spaces Direct, these controllers must be flushed with IT firmware.

As a last resort, you can change the Storage Spaces Direct settings and force to allow the usage of RAID BusType drives in an S2D pool. This is done using (Get-Cluster).S2DBusTypes command.

In order to check your current settings run:

PowerShell command Get Cluster

134144 is the default value. To force S2D accepting RAID BusType you need to run following command on each cluster node:

To force S2D accepting any BusType run the following command on each cluster node:

Unfortunately, Microsoft does not support the last option, so we would strongly recommend using this workaround only for learning and testing purposes.

Conclusion

In case if you are running into a problem creating Storage Spaces Direct cluster we recommend trying to upgrade controller’s firmware and update the drivers. If these measures do not help you can forcefully change the S2D accepted BusTypes list. After applying this workaround, you will be able to successfully finish S2D cluster creation within several minutes.

Related materials:

 

Views All Time
6
Views Today
25

Please rate this

Return to all posts

Storage HA on the Cheap: Fixing Synology DiskStation flaky Performance with StarWind Free. Part 2 (Log-Structured File System)
Fighting Azure AD Connects custom installer
The following two tabs change content below.
Taras Shved
Taras Shved
Director of Sales Engineering at StarWind
Director of Sales Engineering with more than 15 years of professional IT experience. Almost 2 years of Technical Support and Engineering at StarWind. Storage and virtualization expert. IT systems engineer. Web designer as a hobby.