I've just ordered two new hard drives for my main desktop and a copy of Windows 7 Professional 64-bit. I'd like to do a clean install of Windows 7 onto the new drives (leaving my old Windows XP Professional boot partition around for a while in case something goes disastrously wrong, etc.). I want to have them set up in mirrored (RAID 1) mode.

My understanding is that Windows 7 Pro can do software mirroring, but can I set this up directly at install time? If so, how? Note that I'd like the disk to be split into three partitions (OS, applications and data, and bulk data), all of which should be mirrored.

Would it be better (more reliable or faster) to use my motherboard's hardware RAID support? My motherboard is an older nVidia nForce 680i SLI, which is not the most stable of motherboards, and I'm not sure how trustworthy its RAID 1 configuration might be (or if Windows 7 could even detect and install onto a hardware-mirrored volume). Also, the performance characteristics of RAID 1 are rather different than RAID 0 or RAID 5, and I'm wondering if Windows 7's software mirroring might actually be faster than hardware RAID 1 (for example, I'm more of a Unix administrator when I have to wear the system administrator hat, and I've had great success deploying ZFS; most hardware RAID 1 implementations have to read both disks and compare results to look for data errors, but ZFS can read from only one disk in the mirror and just use the built-in checksum, meaning it can have up to 2x the number of reads in-flight, as long as there's no data corruption).

Edit: Okay, my question about whether Windows 7 can do software mirroring has been answered, and it can. I'm still unsure whether Windows software RAID or my motherboard's hardware "fake RAID" function is a better choice, though. Remember, I'm only interested in mirroring -- not the more complicated striping or parity operations that generally show the poor performance of crappy motherboard RAID solutions.

11 Answers
11

I think performance wise, your best bet is to try both and benchmark, and share the results here for everyone to see! I would suggest using the ATTO Disk Benchmark utility.

As far as which I'd choose, I hate "fake raid". Always caused me more problems than it prevented. Get a real RAID controller or do software RAID. The only reason software RAID wasn't very popular in the past is because of performance issues, but that's a thing of the past.

I don't know why I didn't think of benchmarking myself -- I guess I was asking if there were any widely known pitfalls with either approach. Turns out that if you do benchmark them... they perform just about identically; almost the same as but slightly worse than a single disk (at high queue depths and large block sizes, the single disk gets a tremendous read boost -- controller bus saturation maybe?). Benchmarking did reveal one thing, though: with hardware fake-RAID on, the system takes ~15 seconds longer to boot, which makes software RAID the more appealing choice.
–
kquinnNov 1 '09 at 5:10

Windows 7 probably requires you to convert to dynamic volumes to do mirroring. In the past, this has introduced all kinds of headaches due to compatibility with other disk utilities. Also, dynamic volumes are very easy to mess up, if you ever have to do disk recovery operations. I know this from personal experience. I usually avoid dynamic volumes "like the plague".

Mirroring on your motherboard usually retains a compatible structure on the disk, meaning as long as your onboard sata drivers are also loaded in the OS, you can move either of the mirrored drives to the regular sata port, and boot into the OS just fine, so your not really sticking your neck out in terms of recoverability.

Performance wise, they are probably both about the same: both use your CPU to do all the work.

Finally, the motherboard RAID might have additional useful features, such as automatic e-mail notification if a member fails, which comes in handy....

I wish I'd have seen this comment before I made my decision (though I'd probably have still chosen software mirroring with dynamic volumes). My motherboard's fakeraid is bare-bones, so there's no incentive there. But, as you say, Win7 dynamic disks have been a little weird. I've had to resilver the mirror four times now -- once at creation, once at re-creation (caused by me), and twice now for seemingly random reasons (maybe related to crashes?). Win7's resilvering code is retarded -- it tries to resilver all mirrored partitions on a disk at once, which absolutely kills performance.
–
kquinnNov 15 '09 at 8:24

Having had my primary IDE controller crash on a running Windows system with Software RAID -- and with my disks on separate controllers -- I'm sold on that being the right choice. When the IDE controller crashed, the visible result was a little triangle warning icon in the System Tray notifying me of the problem, but otherwise the system continued running normally. It was really quite impressive once I realized the magnitude of what had happened.

Compare this to the case with Hardware RAID where, if you lose the controller, you've lost both disks and the system obviously crashes.

Windows 7 software RAID 1 is software RAID 1, not some other technology Microsoft is calling RAID 1, so unless they've found a much better algorithm than is on your hardware RAID controller, your hardware RAID controller will probably perform better than the software RAID. However software RAID allows you more portability between different hardware setups with the same drives.

To the best of my knowledge setting up software RAID in Windows 7 can only be done after install, but it's a painless process even on the boot drive (convert the disk to dynamic under the disk management snapin, reboot, setup mirror).

"But ZFS isn't RAID1 or RAID0 or RAID5." Nope, it's all three in one :) So Win7 software RAID will probably perform worse than even a crappy motherboard RAID controller. That's good to know.
–
kquinnOct 23 '09 at 0:23

1

Motherboard RAID controllers (Intel, nVidia or AMD) are not true hardware RAID controllers. They rely on software drivers to implement the RAID functionality. Whether or not they are faster than Windows 7's implementation depends on how good a job Microsoft has done.
–
user10762Oct 23 '09 at 2:52

2

@davpen [citation needed] I'll happily say that the motherboard RAID controllers are some of the worst controllers out there, but I don't believe they're software RAID any more (well maybe somewhat more) than the nvidia GPU is software 3D acceleration, which rely on software drivers to implement the 3D acceleration.
–
TylerOct 26 '09 at 0:50

2

@Tyler - Onboard desktop RAID controllers do not have a battery-backed cache, dedicated RAM, or a dedicated XOR processor. This offloads almost all of the work to the CPU, as does Windows software RAID. In this regard they perform almost identically. The difference if that if your motherboard dies, your Windows software RAID can be moved and imported on a different machine, your psuedo-hardware solution cannot be moved, except to an identical fake-hardware controller
–
MDMarraOct 28 '09 at 21:31

2

@Tyler+MarkM - MarkM's right about battery-backed cache and dedicated RAM, although the dedicated XOR proc depends on what chipset is used. some chipsets are worse than others. if you want real HW RAID you need an add-on PCI(e) card anyway. but as MarkM says, the upside to OS-level software RAID is portability to different hardware.
–
quack quixoteOct 29 '09 at 0:00

It really depends on the motherboard's hardware RAID. A lot of cheaper (read: no-server) motherboards require you to install software RAID drivers within Windows anyway.

Also, a hardware RAID will be handled using your motherboard, and therefore can become tied to your motherboard. If your concerned about the stability of your motherboard already, I would avoid its RAID like the plague.

In this circumstance, unless your motherboard has actual hardware RAID (not the standard fake hardware RAID) you are much better off sticking with Windows 7 RAID. Even when considering pure hardware RAID vs. software RAID there are trade-offs with each system, and IMO hardware RAID is only necessary in a production environment.

The likelihood of whether you will ever need to run things like disk imaging software: some can't see through a hardware RAID controller when it is enabled.

You just purchased two drives - presumably identical drives - almost sequential serial numbers? If so and there is a problem with the batch, both may fail simultaneously. RAID won't buy you anything under this circumstance. You should buy them seperately - hopefully from different batches.

When RAIDs break, check if you need to be out of the OS to rebuild the mirror. On the software mirrors I have seen, you can boot, run the OS and remirror in the background, but it slows you down (obviously as it is reading good drive and writing to the mirror.) I'm not sure what would be required for this hardware RAID.

I have other data backup plans for important data. If the data on this array were to vanish, I'd be upset and unhappy -- but I wouldn't be screwed, because everything on it is either disposable or replaceable.
–
kquinnNov 1 '09 at 5:07

I've used motherboard RAID for a couple of years now. Horrible reliability of the controllers but remirroring has always run in the background with Windows running.
–
Loren PechtelDec 11 '09 at 5:57

On some of the systems I've worked with, the hardware raid had to be accessed through its own pre-boot program. While booting, it would come up with a special keystroke you pressed and it had a mini program to init a new hard drive, raid it, break the raid, recreate... but it was all before the boot. Those were older systems though.
–
BlackbeagleDec 12 '09 at 19:46

I could help here - I've been on the phone with Microsoft's support people and the Western Digital people. I just purchased two 1 TB drives as I wanted some assurance (due to my backup lazines) that my data would be replicated/backed up with minimal interference. Well... this is what I know:

You can setup mirroring to happen (which is like RAID 1) but not really by doing the following - with a pitfall.

You have to install Windows 7 in order to mirror - so given that you have done that

I typically like to partition off my disk 0 into a C and D where C is for OS stuff and programs and D is for data. Each drive disk 0 and 1 must be set to Dynamic. (DO NOT format disk 1 - leave it unformatted - otherwise the next step will not work).

Right click on drive D from disk 0 and left click on Add Mirror - when you do this you will see disk 1 appear and click on it. The software found disk 1 as it is completely unallocated and see's it as a free drive to mirror on.

Click OK and in a few moments you will see the same drive space allocated for disk 0 drive D on disk 1 and it names it the same - drive D and resynchronising with a percentage showing progress. This can take some time even with no data to synchronise.

When the resynchronising is complete - no further action is needed - except you might have to rescan the drive by left clicking it and choosing Action from the menu then Scan Disks - takes just a moment and you're done.

The ONLY problem is - you can't mirror disk 0 - drive C! I'm so frustrated - it attempts it, but gets only so far and then you get a failure message on the disk 0 area and sometimes you get Virtual Disk Manager Error "No Extents Were Found For The Plex". What is the matter with that?! I have tried researching and perhaps not enough but neither Microsoft or Western Digital could help me. They don't know what it means and perhaps Windows 7 is not quite ready yet to take advantage of the driving mirroring capabilities.

How to get around this? - I would really appreciate knowing how you did it! Please email me at freeman.jeffrey@verizon.net.

That's all I got - took me antire day working with Microsoft an Western Digital do get this information.

I had no problem mirroring my System and C: partitions on Windows 7 Professional x64. I followed essentially the same instructions as you give, and mirrored without any issues.
–
kquinnNov 15 '09 at 8:21

The "plex" thing seems to happen if you already have another partition there. Really annoying.
–
romkynsSep 11 '11 at 13:28

I have a hunch that Windows wants the mirrored boot partitions to be on the same sectors on each drive (for bootability reasons, perhaps). After getting a "plex" error when I first tried to mirror my boot partition, I moved the existing first partition on the target drive out into the big block of free space at the end to get it out of the way, and then tried the mirroring again and it was successful.
–
raksliceJun 14 '12 at 2:13

I have just gone through 3 months of drama with a software RAID 5 and Windows 7 (64-bit Premium). When the RAID was working it wasn't that quick. The system kept dropping hard disk drives - 6 in total. The last straw was when 2 hard disk drives were dropped, leaving the system in a very poor state. I have just de-RAIDed the system now and have 3 x 1 TB hard disk drives there (as b4 with the RAID) and the system is no slower and much more reliable.

Software RAID works fine for RAID 0 and RAID 1 - maybe even RAID 10. If you want to go with RAID 5 or RAID 6, get a good hardware controller (ARECA, 3Ware, etc.). Be careful as quite a few of the RAID cards on the market are also "fake RAID", like the motherboards.

I don't really need 1.5 TB on my desktop, when I've got a few TB in NAS boxes.

mirroring is much safer

in mirroring, there is little to no work to do by the processor. There is non-XORing. Of course there's no XORing in RAID 0 either. Processor utilization should only really come into play with RAID 5 or RAID 6 or RAID 3.

I had no problems mirroring C: either. And I did have the main disk of C: fail and Windows 7 did keep right on running until reboot. Now, in order to reboot, I had to then scroll down and pick the boot entry for the other disk (Secondary Plex) to boot back up. Disk Management showed C: but in failed redundancy. I got a replacement disk and installed it. I had to break the mirror by right clicking on the Mirror Volume C: (not the physical Disk 1) and “Remove Mirror”. Now I could add a mirror back to C: and picked the new Disk 0. After resync it showed healthly. But, with ONE caveat. For whatever reason, it did NOT rewrite the boot sector to the replaced Disk 0. When rebooting, when I pick the original boot entry for Disl 0 (the default) it does not boot or even display boot menu. So, the mirror rebuild did not apparently add back the boot sector. I could still boot the Disk 1 (Secondary Plex).

So, any suggestions here?? Is there some command/util on Win7 that will re-init the boot sector???