SoFS, Storage Spaces, and Primordial Pools

So I’ve been toying around in a lab with SoFS and Hyper-V 2012. My hosts are old desktops of the HP DC5800 variety with Core 2 Duo procs (blech! But hey, it works) and 8 GB of RAM each. The one piece that makes it okay is the Intel quad-port NIC in each of four machines, giving me five ports per host of external connectivity into a Cisco 3750G switch. I’ve used NIC teaming in WS2012R2 to split the four ports into two teams in an attempt to test multichannel even though I don’t have 10 Gig. I’m using the on board NIC for host and guest connectivity.

I have one machine setup with Hyper-V and four HDDs, one for the OS and three for storage. I’m storing the VMs on the C: drive. Since the host OS doesn’t do much this should be okay and I wanted to use the three extra disks in a storage pool for an SMB 3.0 CSV.

So I’ve installed two VMs, SOFS01 and SOFS02, and on those VMs I installed failover clustering and Hyper-V. I created my Hyper-V switches – one per NIC team, one for OS access, and a private network for cluster communication. There will be no migrating of these VMs to any other host.

For storage I could have just as easily used pass-through disks, but I wanted to play with storage spaces and see what kind of options I had. I took the three 250GB HDDs and created a single volume. I then used Hyper-V to create three different VHDs of 200 GBs each and enabled the physical disk in the parent OS for sharing (follow these instructions). Then I attached each of the VHDX files to both the VMs and enabled VHD sharing (more here). Don’t forget your witness disk in this step – you should only need a 1 GB VHD for that.

Cool – now I have two VMs, shared storage (required for clustering) and what should be plenty of bandwidth for a small lab. I installed the failover clustering role on each of the two VMs and validated the configuration. You can add storage before or after you install clustering. In this case I configured the witness disk by bringing it online, formatting it, and then installed failover clustering.

But I need to do something a bit different for the storage shares these SOFS VMs I will use to present the storage to my Hyper-V cluster. The disks must not be formatted and must be online. If you format them you can see them and use them individually as CSVs, but you cannot pool them. I made the mistake of activating them and formatting them and as a result they would not show up in the cluster management console under pools, but they would under disks. So inside the VMs I brought the disks online and deleted the volumes on them. At that point they were able to show up in that VM’s primordial pool and that’s where I left them. When I opened the cluster management console and tried to add a new pool they showed up. I created two CSVs of equal size and used the parity option. I’m not sure how this will perform, but I’m just fooling around with all of this. I want to see what kind of resiliency I can get along with performance.

With my hardware I’m not sure if SMB 3.0 and RDMA will work (I’m thinking it won’t) but if nothing else I have a way to at least look at this stuff.

Leave a comment