Sunday, June 23, 2013

Tricking Windows and create software Raid10 - I

Before Storage Spaces, RAID10 was not available as a software RAID level in windows, and till now I think it's not officially supported as I didn't find any direct method for doing this, In this post I will guide you through steps and show you the trick of how to setup Raid 10 with 4 HDDs using Windows Server 2012.

Before we can proceed further, if you are new to Windows Storage Spaces and need to know more about it, check quickly below links.

For Windows Server 2012:
Simple How To for Windows 2012:

For Windows 8:
Simple How To for Windows 8:


I am blogging this originally as I wanted to setup the all in one box solution, a server that could run all my VMs and do has the storage appliance that can store all my data and Guest VMs.
At the beginning I was using windows 8 Hyper-V client and NexentaStor CE installed (bare Metal) on another box as my SAN Storage.

The Idea of consolidating my Hypervisor and Storage server in one box would suffice all my Lab needs and will lower my Administration efforts (administering Hyper-V host and NexentaStor as separate different Storage server).
In addition to the ease of administration and the very convenient feature of sever core installation of windows, NIC teaming even if you don't have managed network switch that supports LACP and Hardware compatibility, all previous made windows sever shines into my eyes. First thing came across my mind is to virtualize NexentaStor within Hyper-V and pass-through all physical SATA disks to it, then I can export an iSCSI share to Hyper-V. And since I have already gained decent experience on NexentaStor Administration and how to make it up and running this idea looked acceptable.

NexentaStor has many good features like Hybrid storage devices support, RAM and SSD caching, synchronous writes enhancement, deduplication and data compression, snapshots and many other ZFS powerful features that make it just as professional as NetApp and perform like any powerful hardware RAID controller.

The question now is, do Hyper-V supports NexentaStor as guest OS. ?
aieee (wrong buzzer sound) . No. Solaris is not supported and hence NexentaStor which based on it is not supported too.
I insisted to prove that fact and see it with my own eyes (not always a good habit), may be its not supported but would work in a way that make it enough for a testing environment.
Again, negative results obtained, setup freeze and refused to continue.

Then I decided to give Windows Storage Spaces a hands on review since both Hyper-V and Storage Spaces are a built-in roles in Windows Server, I don't need expensive hardware to support pass-through as NexentaStor Guest won't be implemented in any ways. In my previous NexentaStor setup I ran a RAID10 layout with SSD read caching and I could obtain a very good balance between Data Protection, Throughput and IOPS. Especially when IOPS is an important factor in providing storage for your VMs.
Using the same Disks I used in NexentaStor setup and Hardware described below, I will show you how to setup Raid10 which used to be not supported in previous Windows Releases using your Windows Server 2012.

Hardware used:
4X 1TB WD Red. (Low heat, low noise and good IOPS)
1X 128GB ADATA XPG SX910 2.5" SSD. (used to be caching tier)
1X 500GB WD Blue for sys pool. (500GB is more than enough)
GA-880GM-UD2H. (Cheap but doing good job)
AMD Phenom II X4 955 Black Edition Deneb 3.2GHz. (Simple but not weak)
2X 4GB DDR3 1600MHz Kingston HyperX blu.
Noctua NH-C14 140mm x 2 SSO CPU Cooler. (one of the best Silent Coolers you can get)
HEC 500W 80+ Bronze certified power supply. (Old but Gold)



Cooler looks big and nice and since I have no more room for my SSD, Pritt multi stick used to fix it as it appears below and to isolate it from statics and case charges.







Now Let's Fool that Windows…!

DISCLAIMER:
In this series of 2 parts tutorial, i am expressing my own opinion and experience and which not necessarily assure that this is suitable for production environment.

Below is the In-Direct steps for building your Raid10 within Windows Server 2012 Storage Spaces. I said indirect as there is no way to do it directly from one management console for example.

I am supposing that you had already installed Windows server 2012 on your machine and applied the Storage Spaces Role, for how to do it please have a quick look at the appropriate link from above.


Create and Adding the Physical Disks in my Pool


Name It…!

Choosing my 4 Lovely 1TB WD Red disks to fill my pool.
[Update]
Disk configuration has to be set to manual allocation if you are going to use Storage Spaces on physical real machine with multiple Disks attached.

Review the changes and apply it, then create your very first vDisk.

Select the our newly created Pool and hit the next.

Again, Name your vDisk.

Choose Mirroring as your Layout.
I have chosen thin provisioning since it is the best way to utilize your storage and allow you to create vDisks exceeding the actual pool capacity.

Since Raid 10 is to write your data across whatever mirror sets you have, we need at least another mirror set to build our Raid10.
Following Same above steps, create another mirrored vDisk.


Now after having two Mirrored vDisks (Mirror Sets\Raid1):


We need to put them into Stripped group (Raid0), Open Computer Management and create a Stripped Volume over our Mirrored vDisks.

Of course Hit Yes.
Now you have Stripped Volume over Mirrored set a.k.a. Raid10 volume, Congratulations you have fooled your Windows…!

Move on to PART II and check if one of your disks failed, Is Windows RAID10 will be capable, repair and recover your data or not.


Wait for some benchmarks and tests for Storage Spaces in a very sooner post.


3 comments: