« T-Mobile First Walk-Thru and Benchmark Outside of CTIA | Main | Apple iOS 5 Wish List - Give Us Features to Avoid Jailbreaking »
Wednesday
Apr132011

Upgrade to RAID Without Reinstalling Windows

About a couple months ago, I found out my SSD drive had 13% life left. It's been used for a year as the system drive of my file server. I also have a Hyper-V virtual machine, which virtual hard drive (VHD) is on the same SSD on a different partition.

In hindsight, that was a very bad idea. The guest OS does not know the VHD is an SSD, and thus does not make any provisions such as using TRIM on it. It led to a very short life. I new the risks, but I didn't think it would shorten its life that bad!

So a few days ago, I finally decided to move over to a mirrored RAID of two 500 GB laptop drives. The reason I went with a SSD was for power consumption and performance, so I decided laptop drives would help on power consumption side, and RAID 0 (mirror) will help with read performance while maintaining some kind of failsafe redundancy.

How it Works
Moving Windows to a drive on a different disk controller is like replacing the very floor you're standing on. It's doable, but very tricky.

It doesn't matter if you're moving from a single drive to RAID, or if you're simply moving from a Silicon SATA controller to an Intel controller. The concept is the same. Windows is standing on the controller driver from when it was first installed.

Unlike other hardware, where you can change the driver at will, the drive controller is what holding up your hard drive. And from there, your hard drive is holding up Windows. When you just move your hard drive to a new controller, Windows will not recognize it, and therefore won't boot. You might go into a rebooting cycle of doom.

So how do we get around this?

In my case, my RAID controller wasn't another physical controller. That would be too simple. No. My current SATA controller can be set as a RAID controller, and Windows sees it as two completely different controllers! Like Superman, Clark Kent can't exist in the same room.

The Solution
You need to have a driver installed for the new controller. In my case, I had to install the RAID driver first. This is also tricky. You cannot install a driver for a hardware that does not exist. After all, if Clark Kent was here, I couldn't fit a suit for Superman. Okay, well, you get the idea.

If you were simply moving from one controller to another on the same PC, it's easier. The other controller is already installed on the same PC, and therefore, if you install the correct driver for it, you can simply move the drive over to the new controller.

In my case, I was on the Intel controller that's built into the 965 Express chipset (ICH8R). Depending on how you set it in your BIOS, it can act as a standard SATA AHCI controller, a legacy EIDE controller, or a RAID controller. Even though it is the same hardware, each of those controller settings require a different driver. Ouch!

Here's the solution. First, a list of what we need:

 

  • Intel RST driver (download from Intel's site)
  • 2nd disk controller (I used a Silicon Image controller)
  • 2nd disk controller driver (download from Silicon Image's site)
  • Hard drives for the RAID volume (buy from NewEgg or Amazon)
  • Disk cloning software (Symantec Ghost, TrueImage, etc)

 

 

Here's what I did:

 

  1. Download the Intel Rapid Storage Technology (RST) driver/software (formerly known as Intel Matrix Storage Manager).
  2. Install a 2nd drive controller (my motherboard had a Silicon Image controller built-in).
  3. Install the driver for the 2nd drive controller. Make sure it shows up in Device Manager.
  4. Shut down Windows, move the hard drive to the 2nd controller.
  5. Go into BIOS and change the Intel Controller type to RAID.
  6. Boot into Windows that's now on the 2nd controller.
  7. Windows will detect a new RAID controller. Install driver (RST in my case). Make sure it shows up in Device Manager. Shut down Windows.
  8. Install your new hard drives for the RAID volume on the Intel controller.
  9. Boot up your PC, and get into the Intel RAID configuration (for me, I had to hit CTRL-I when prompted).
  10. Set up your RAID volume. For me, I wanted a RAID 0 mirror volume.
  11. Use your disk cloning software to clone the single drive on your 2nd controller to your new RAID volume on your 1st controller (which is now a RAID controller - YEAH!)
  12. When done, remove the single hard drive and see if your PC will boot from the RAID volume.

 

You might need to repair the boot partition or sector using the Windows install CD (repair the start up, but do not do a repair install!).

I was able to move Windows from a single failing SSD to a RAID 0 mirrored volume on the same Intel controller that's built into the chipset of my motherboard.

Mission complete!

Now some may ask why would you want to go through all this trouble if you had to buy a 2nd controller that probably has RAID functionality. I guess you can do that, too. However, I didn't want any extra hardware (I could remove the 2nd controller after I'm done), and I wanted the built-in Intel controller as my RAID controller for my system drive.

If you don't already have a 2nd controller, you can buy one for around $20 or less (heck, check out eBay and Craigslist for even less). You can also try to put the single hard drive on a SATA-to-USB device, but I'm not sure if Windows would boot from a USB controller, but you'd have to buy THAT if you didn't have one laying around (or maybe use an external drive enclosure).

Again, there is simply no way of replacing the floor you're standing on without a temporary platform to stand on while you work.

Reader Comments (2)

Now, I am not sure of the facts with your specific SSD drive, but your usage scenario should not have shortened its life at all. Rather it should have caused performance issues due to the lack of "trim" support. "Trimming" is simply a process where the SSD is told to go ahead and erase blocks marked as deleted now, when the computer thinks it won't be needing to access the drive, versus later when the computer wants to write a block but can't because there are no erased blocks available and it has to wait for a rather long time for the erase of a block to complete.

More likely that you just had a flaky drive and you used it up. Initial specs were as low as 10,000 writes to any particular "block". While good SSD firmware will level out wear by swapping out more heavily used blocks with those more lightly used there is a limit to that. Running a server on a consumer SSD MLC drive isn't going to work well. Trim or not there simple are only so many writes that an SSD drive is going to do. Enterprise SLC SSD drives will probably last 10 times longer. Of course they aren't as big and will cost a lot more though.

Again, I might be wrong but a RAID 0 "mirror" does not help one bit with performance, read or otherwise. You are reading the data off of one drive just as you would be in a single drive system. On the other hand it might actually slow write performance depending on what sort of controller you are using. The RAID controller on your 965 board is a "Software RAID" type. Most of the RAID work is being done in the Intel driver and is actrually slower than a single drive system by a bit. RAID 0 is strictly for redundancy, period.

May 11, 2013 | Unregistered CommenterTim

My mistake in an earlier post. Intel RAID 1 is supposed to read from both disks to inprove read speeds and on recent chipsets such as X79 it seems to work. For the rest of us, I am reading reports that it seems that lesser chipsets are reading slower than a single drive!

I have also read statements in Intel documentation that they are only reading back from the primary drive but can't find the reference. So who knows...

May 12, 2013 | Unregistered CommenterTim

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>