Why Windows Server 2012 Parity Storage Spaces Might Perform Slowly

Why Windows Server 2012 Parity Storage Spaces Might Perform Slowly

  • Comments 4
  • Likes

 


Summary: Gregg O’Brien, a Microsoft Premier Field Engineer from Canada, walks us through some lessons he learned when testing Storage Spaces, a new feature in Windows Server 2012 that’s meant to provide enterprise-level storage performance, flexibility, and scale. The moral of his story:  for heavy workloads requiring high speed, random I/O and the best resiliency possible, use mirrored space instead of parity spaces.  Enjoy!


Windows Server 2012 LogoI was recently building a lab based around Storage Spaces, a new feature in Windows Server 2012.  My plan was to host a Hyper-V over SMB configuration for some virtual machines. I decided to build the configuration with a Parity Stripe so that I could maximize the use of the storage I had, while still maintaining some form of resiliency.  I installed 3 x 1TB SATA drives and configured the storage space as required.  I created the share for the VMs and started using the share to store VMs from a Hyper-V cluster I had built previously.

Through the process of using the VMs, I noticed that these were very slow. I started investigating and saw that the VMs all had performance issues writing to disk.  With even further investigation, I found that it had to do with slow disk performance on the storage space. I tested this by copying a 1.5GB file unbuffered (xcopy /J) to the parity space. Speed topped out at 25MB/s. I decided that I would test each disk individually, so I broke the stripe and tested each disk with the same 1.5GB file.  Speeds reached as high as 140MB/s.  Quite the difference. I tried a mirrored space and that also performed at speeds of roughly 140MB/s.

It seemed to be that everything I could think of worked flawlessly, except for the parity space.  But why?
Well, I asked around within Microsoft and was pointed to this document:  Storage Spaces - Designing for Performance.  Within this document I found the following key piece of info:

The caveat of a parity space is low write performance compared to that of a simple or mirrored storage space, since existing data and parity information must be read and processed before a new write can occur. Parity spaces are an excellent choice for workloads that are almost exclusively read-based, highly sequential, and require resiliency, or workloads that write data in large sequential append blocks (such as bulk backups).”

So really, the product is working as intended, I was just attempting to use it for the wrong thing! The article does go on to say that a parity space of 3 drives could be improved by using two dedicated SSD drives for the journal, but at this point the space would more than likely exceed the cost of the mirrored space and still may not approach the same speed that the mirrored space would provide.

Moral of the story: For heavy workloads requiring high speed, random I/O and the best resiliency possible, use the mirrored space as opposed to the parity space.

 


Written by Gregg O’Brien;  Posted by Frank Battiston, MSPFE Editor

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Storage Spaces in the RTM versions of Win8/Server2012, is simply broken.  I have proven this with 50-100 hours of my testing on Server2012 - a complete waste of my time.   I am sure many others are performing the same tests.  I sure wish that MS or other industry organizations had bothered to spend a similar amount of time, considering all the hype over Storage Spaces and Thin Provisioning.  Is true technical journalism in this industry dead?  I can read 1000+ articles on how cool, or miserable that Metro is, yet the guts of the new storage layer, simple doesn't work!  Only a handful of us have dared to say out loud, that that Storage Spaces (in RTM), does not work.

    Storage Spaces Example (in lose terms):

    Build a 3-drive (same-size) parity array and note the usable space (67% of the total drive size).  Now add a 4th (same-size) drive, sit back and do the math, and look at the mess MS has created.  You will not get a 50% increase in available space (meaning 75% of drives summed) instead you get nothing of an increase.  The dirty secret.....you must add 3 more drives, on top of the original 3, for a total of 6, to get a 100% increase - this is a silly waste that nobody could really afford.   MS was to have figured this out (while complex, it is doable).  Nobody is going to build a 12-drive Storage Space and give up 4 drives for parity, unless they choose to, and that parity is "evenly" distribute across the entire array.  So even if one chose to do that (start with 3 drives, then add 9 more), in this case, you wouldn't have the ability to lose 4 drives, you can only lose 1 out of each set of 3-drives (yes, you can lose 4 drives, if you win the lottery too).   You start with 3 drives, you must keep building out in groups of 3.  This is a terrible implementation of something that on the surface is relatively simple.   Add 1 drive to 3, spread the parity and data out to the 4th drive - just like Online Capacity Expansion on real RAID controllers.   Add another 5th drive, and continue the pattern (2/3, 3/4, 4/5, 5/6...).  One should only need to give up one drive's worth of space for single (RAID5-like) parity.  If desired, one should have the ability to use 2 drive's worth of parity space, and so on (like RAID6).   For those that will initially argue about all of this, and run to the defense of MS, just try using the technology first, and you will see, failure (literal data-loss failure happens too).

    The few products that tried to fill the gap after the WHS Drive Extender fiasco, are a good effort, are interesting, and do somewhat work, but they don't seem to get what is really needed.  With Microsoft and Storage Spaces, they [MS] got it, but hasn't delivered it, yet.

    Just putting my 2 cents out there to hopefully save some others a lot of time.  Also, IF, MS fixes it, others can be fair and note that here for others to see.

    Best wishes

  • This is really sad I have tried software raid on Windows before and it is garbage. I don't understand why a Linux box can pretty much perform close to the speed of a hardware raid controller doing raid 5.

  • <h2> Koala Mini Storage provides you peace of mind when taking a trip</h2>

    <p>If you're going away traveling, you want to know your <a href="koalaministorage.com/.../individual-storage">personal possessions</a> and <a href="koalaministorage.com/.../individual-storage">valuable items</a> are being well looked after. So, whether you're renting out your home while you go away, or you've sold up altogether to go around the world, take advantage of our incredibly flexible rental policy that allows you to rent however long you want. And don't worry if your itinerary changes - you can extend or shorten your rental any time.</p>

  • Uhm, Microsoft, buddies: -------------------------------- “The caveat of a parity space is low write performance compared to that of a simple or mirrored storage space, since existing data and parity information must be read and processed before a new write can occur. Parity spaces are an excellent choice for workloads that are almost exclusively read-based, highly sequential, and require resiliency, or workloads that write data in large sequential append blocks (such as bulk backups).” -------------------------------- ZFS doesn't have *** write performance in RAIDZ-1 or 2 and they actually dump parity information on every freaking single block of data, not just the metadata.