I have a Windows Server 2012 R2 cluster running storage spaces against a SAS JBOD. Each host has an HBA, and the VMs are running off of a CSV. This all works well, but we have two issues:

  1. All reads and writes to the CSV are getting redirected to the owner node since we are using SSD tiering.
  2. To compensate for issue #1, we tried setting a virtual disk as a passthrough disk for a VM. That helps on IO, as it does go direct and performance as good as access from the host. However, optimization does not work and defrag /g does not show the volume - presumably because it is offline to the host.

Is there a way to expose full performance disk access to a guest VM using Storage Spaces and Hyper-V?

  • You need to look @ Windows Server 2016 if you really want to unlock your full SSDs I/O potential. The reality is the issue you're talking about isn't the only one, much bigger concern is a single per-volume I/O queue MSFT has so you won't get reasonable amount of IOPS unless you either disable I/O scheduler or spawn multiple vLUNs / CSVs. – BaronSamedi1958 Oct 3 '16 at 1:42

You can try setting up an iSCSI target on top of Storage Spaces which will allow you to connect to it from the virtual machine potentially gaining the performance boost by avoiding .vhdx abstraction layer.

But, unfortunately, this option does not seem to be suitable for your scenario as you will lose the benefits of CSV and high availability for your compute nodes in particular.

I'm afraid, there aren't any other ways to avoid an overhead.

You can also try some third party SDS solutions like HPE Store Virtual VSA or StarWind vSAN to get use of "true" network striping with MPIO in "Round Robin". This will definitely boost the read performance and save an ability to build the fully-featured Failover Cluster.

You can also turn on RAM cache feature in StarWind vSAN that gives significant write performance increase as well.

Nevertheless, this approach would only do the job if you have 2 storage servers with independent RAID / Storage Spaces array in each.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.