if you are going to buy a software raid solution then just buy a raid controller and put the issue to bed...
This is a way to have cheap (read free) Raid 1 or 5. Raid controllers that can do Raid 5 are somewhat high-end, at least they used to be.
There are some things to consider before you attempt this. You will surely be violating the EULA - I doubt Microsoft approves of people modifying their dll's. This may be in fact why the information was removed from the StorageReview.com website - pure speculation on this point though.
Next, it is possible for Microsoft to issue a patch at some point that overwrites these system files, though it hasn't happened yet. I am not curious enough to try replacing the altered files with the originals just to see what happens to the Raid.
Just a report - the XP software RAID 1 and RAID 5 patch also works with SP2. I successfully converted a SP1 array comprising both RAID 1 (OS), and RAID 5 (data) partitions to SP2. More information on the patch can be found here. Also, Tom's Hardware did an article recently discussing the patch. Tom's shows the SP1 files though, not the SP2 files. The technique to modify is the same but a couple of the files are different lengths and the data is at a different offset within the files.
To convert the existing SP1 array:
- break the RAID 1 partition
- copy in the original (unmodified) system files
- update to SP2
- copy in the modified SP2 system files
- rebuild the RAID 1 partition
Despite what is commonly stated, it is possible to run Software Raid 1 and Raid 5 on XP. It does however require the hex editing of three system files to do so.
Great thread. I have some follow-up comments and questions:
A previous version of Windows that I used (I think it was 2000 Pro) could access already created arrays but couldn't create them itself. I had an array from a previous install and while it couldn’t create arrays like it, it could access the one I already had without a problem. Does anyone know if XP Pro works that way?
I'm trying to do a similar thing as the original poster with my machine. I’m building a new computer and I have 2x 300 GB drives in it. I’ve decided I want the OS boot portion to be a standalone partition (for compatibility) but I also want a mirrored partition to safely store the files I create and a striped portion for speed to store games and programs.
I had no problem with the striped portion and standlone partitions, XP did this without trouble, but it wouldn’t create the mirrored partition. I installed Server 2003 on a separate drive, booted that, imported my dynamic disks, and created a mirrored set. Rebooted into XP and it could see the mirrored array but labeled it “failed” and both the disks had “!” icons over them The only option for the disks was “Reactivate Disk” but it didn’t do anything (even after multiple reboots.) The only option for the “failed” mirrored array was to break the mirror. It would appear from this that unmodified XP can’t access mirrored partitions created in Server 2003. Has anyone else tried this? Has anyone tried with arrays created in 2000 Server? I may try that next.
I like this design because the machine should remain bootable even if something goes wrong with the ability to access the mirror (e.g. another service pack). I can also install another OS on the “boot2” partition then just change which drive is the first to boot in the BIOS and I have a second OS. It works as a low level unobtrusive boot manager. That is the best kind of fault tolerance in my opinion because I can get to my important data easily, even if my OS gets corrupted or my motherboard dies. It will also let me do the modifications to the dll’s Bradley99 pointed out without resorting to rescue mode on the disks. Just boot the second OS and I have full access to mess with the files of the first one. Having a second OS you can boot is also nice when your machine gets riddled with stubborn spyware or virus’s. The second OS will be clean and able to remove infected files from the first one.
I want to point out for all the people who suggest using a "hardware" raid card: All ide raid cards (except 3Ware cards) are actually just software raid implemented in drivers. All the work is done in the driver on the CPU just like software raid done by the OS, the hardware portion simply stores the settings for the driver and has bios routines to support bootstrapping the drives. That's why you can get $25 "raid" cards that obviously have no chips on them capable of significant computational power and why they can be switched into regular controller mode so easily. An array created on these things won't work unless they are hooked up to the same type of controller that created them and they won't work unless the raid driver is loaded. You can easily wipe them by accessing them without the driver loaded and an improperly written driver can destroy their data itself. In my opinion, raid arrays done this way are buggy and dangerous. I have 2 raid controllers on my new motherboard (1 promise and 1 via) and I won’t use them. I’ve had too much trouble with them in the past.
You also can’t mix raid types on the same disks with hardware raid like I’m doing where a portion of each disk is standalone, a portion is mirrored and a portion is striped. I’m not saying nobody should use hardware raid, but there are good reasons to use software raid instead. It’s as fast if not faster, much more flexible, and arguably safer.
But your missing the differance in hardware raid and software raid. You can't boot or have the OS on a software raided volume. Thats your problem. Which mucks up a bunch of what you thought were advantges of mixing differant raid volumes.
its not faster or safer but is more flexible. I'll give ya that one.
If the controller uses the computers ram and cpu to handle the striping, they are not hardware raid just fancy drivers but they are just like the software raid built into XP/Win2k etc...
REAL hardware raid controllers are much safer and much faster. And more expensive also needless to say.
But your missing the difference in hardware RAID and software RAID. You can't boot or have the OS on a software raided volume.
True. But do I really care? I can reinstall my OS from CD. It's the files unique to my machine that I care about keeping safe. Those are the ones I want mirrored not the OS. I also don't want the OS partition to be striped since it's risky and it would make little difference in the speed of the machine.
From my standpoint, having 2 separate bootable os partitions is more useful than having the OS on a partition that is on RAID.
REAL hardware RAID controllers are much safer and much faster.
I’ve actually done a lot of reading about the speed of hardware vs software RAID. I’d be interested in knowing what comparisons you know about. The reading I’ve done seems to confirm a sneaking suspicion I’ve had lately that software RAID is getting to be faster than hardware RAID.
I don't know much about the speed of Windows's software RAID, my advanced storage experience is mostly on Linux. My most important stuff is on a big RAID5 array attached to a 3Ware controller and has nightly backups. The array is getting to the point I want to replace it though. It is horribly slow at writing so I've been looking carefully at what to use on my next array. There isn't a lot of glossy marketing comparing the speeds of hardware RAID with software RAID (which is itself telling) but I did manage to find this guy's tests of a 3Ware 8506-8 hardware vs software RAID-5:
There's also the Tomshardware reviews involving raidcore cards which are driver based RAID cards which show the raidcore's can keep up with and in some cases surpass the performance of the best 3Ware card available:
A comparison of Windows’s software RAID in there would have been nice but they didn't do it. I'd say that it’s not a given that hardware RAID is faster than software RAID. The big argument people usually use against software RAID is it uses too much CPU time but you need to think of how much CPU time a slow array takes up? Granted it's not using the CPU while it's writing but whatever application is writing the data is stalled waiting for the write to finish. Is it better for your massively fast expensive CPU to be idling while a cheap slow co-processor churns through data writing it to disk? If the CPU has something else to do (e.g. a database server or application server) the answer is probably yes. If the machine is a dedicated file server, probably not. If it’s a desktop, there are tradeoffs and my guess is most of the time software RAID would win but there doesn’t seem to be much information about it.
Clearly the performance profile of software RAID is different than hardware RAID and neither is better all the time. The impact of this, though, is that there are times when dumping good money into a good hardware RAID card will slow your machine down, something that most people find hard to believe.
As far as "safer", 2 copies are 2 copies. Sure, the OS can go haywire and corrupt a software RAID partition but the same OS can corrupt a hardware RAID partition. A hardware RAID controller can die though and you have to buy another one to get to the data where as I could pop one of my drives into any other computer and read the data off of a software mirrored partition. Again, there are different aspects to “safer”. To me, being able to get to my data should something go wrong with my machine feels “safer” to me.
I have also run into a problem with a striped array on a 2 port controller before. One of the drives started giving SMART warnings that the drive was failing so I bought replacement drives. Unfortunately there was no way to copy data off the old drives on to the new ones because I couldn't hook them both up at the same time. Using a hardware controller is also pain because you need floppies around to install windows and need the floppies again if you ever need to do a rescue session.
I know software RAID can do what I want (I’m used to Linux’s which is very capable fast and compatible) but it appears that Windows XP Pro's software RAID is rather crappy and I plan to be running XP Pro on this box. You’d think with 4 billion a year in revenue they could give me an OS that I can play Doom 3 on that will also store my documents safely.
I may simply just setup something to periodically back-up all the files from my important partition to what was going to be it’s mirror or I may try the hack to enable mirroring in XP Pro. Or I may even (gasp) get a hardware RAID controller. Any recommendations?
I’ve actually done a lot of reading about the speed of hardware vs software RAID. I’d be interested in knowing what comparisons you know about.
My viewpoints come from a differant angle. I have been building PC's and servers since the early 80's. I build and tune high performance disk subsystems for a living.
if you want high performance the first step is flush IDE and software raid.
here is an atto from a real hardware disk controller btw.. Oh yeah and its got ONE 4 year old drive attached also not 4 or 8 disks high perofrmance disks.
Quit quoting B.S reviews and listen to folks that have actually used the products and do this for a living. There is more B.S. posted by nitwit wantabe's on the internet that have no clue then I have breath to even argue with.
Sure. You just gotta come over to the dark side and do scsi. (grin)
And really if you look close its not the top ends thats awesome but look at the top few lines. thats scary fast!
I mean some guys running raid-0 with two drives would love to see the peak score be as high as the THIRD line on that atto for a single drive.
Welcome to the world of HARDWARE raid. You can do things with real hardware raid with a single drive that no software raid with a dozen drives can equal.
Tex
The differance between hardware raid and software raid also is that software raid won't ever lower the access time of the array. Look at the access time of this sandra score on hardware raid. I mean the sandra score is pretty hot too but check the access time for the array. And this has NO CACHE on the controller enabled.
2 friggin ms. I can boot from the xp cd, and format the disk and install XP and boot to the desktop clean on that array in 11 minutes.
I just checked the pricing of that controller card and it is a wee bit out of my price range, But being that Christmas is right around the corner it would be a great time to send me that setup as a gift.
I paid a little over $350 new if that helps. If its not THE fastest its one of the two or three fastest u320 dual channel controllers made in the world today. Guys here blow more then that on a AGP card. (grin) And will never realize what a differance 2ms access and 300mb STR make on a disk subsystem versus a AGP card on how a system feels.
Comments
This is a way to have cheap (read free) Raid 1 or 5. Raid controllers that can do Raid 5 are somewhat high-end, at least they used to be.
There are some things to consider before you attempt this. You will surely be violating the EULA - I doubt Microsoft approves of people modifying their dll's. This may be in fact why the information was removed from the StorageReview.com website - pure speculation on this point though.
Next, it is possible for Microsoft to issue a patch at some point that overwrites these system files, though it hasn't happened yet. I am not curious enough to try replacing the altered files with the originals just to see what happens to the Raid.
To convert the existing SP1 array:
- break the RAID 1 partition
- copy in the original (unmodified) system files
- update to SP2
- copy in the modified SP2 system files
- rebuild the RAID 1 partition
Great thread. I have some follow-up comments and questions:
A previous version of Windows that I used (I think it was 2000 Pro) could access already created arrays but couldn't create them itself. I had an array from a previous install and while it couldn’t create arrays like it, it could access the one I already had without a problem. Does anyone know if XP Pro works that way?
I'm trying to do a similar thing as the original poster with my machine. I’m building a new computer and I have 2x 300 GB drives in it. I’ve decided I want the OS boot portion to be a standalone partition (for compatibility) but I also want a mirrored partition to safely store the files I create and a striped portion for speed to store games and programs.
Here’s the layout I want:
|---boot1--|---mirror---|----stripe---|
|---boot2--|---mirror---|----stripe---|
I had no problem with the striped portion and standlone partitions, XP did this without trouble, but it wouldn’t create the mirrored partition. I installed Server 2003 on a separate drive, booted that, imported my dynamic disks, and created a mirrored set. Rebooted into XP and it could see the mirrored array but labeled it “failed” and both the disks had “!” icons over them The only option for the disks was “Reactivate Disk” but it didn’t do anything (even after multiple reboots.) The only option for the “failed” mirrored array was to break the mirror. It would appear from this that unmodified XP can’t access mirrored partitions created in Server 2003. Has anyone else tried this? Has anyone tried with arrays created in 2000 Server? I may try that next.
I like this design because the machine should remain bootable even if something goes wrong with the ability to access the mirror (e.g. another service pack). I can also install another OS on the “boot2” partition then just change which drive is the first to boot in the BIOS and I have a second OS. It works as a low level unobtrusive boot manager. That is the best kind of fault tolerance in my opinion because I can get to my important data easily, even if my OS gets corrupted or my motherboard dies. It will also let me do the modifications to the dll’s Bradley99 pointed out without resorting to rescue mode on the disks. Just boot the second OS and I have full access to mess with the files of the first one. Having a second OS you can boot is also nice when your machine gets riddled with stubborn spyware or virus’s. The second OS will be clean and able to remove infected files from the first one.
I want to point out for all the people who suggest using a "hardware" raid card: All ide raid cards (except 3Ware cards) are actually just software raid implemented in drivers. All the work is done in the driver on the CPU just like software raid done by the OS, the hardware portion simply stores the settings for the driver and has bios routines to support bootstrapping the drives. That's why you can get $25 "raid" cards that obviously have no chips on them capable of significant computational power and why they can be switched into regular controller mode so easily. An array created on these things won't work unless they are hooked up to the same type of controller that created them and they won't work unless the raid driver is loaded. You can easily wipe them by accessing them without the driver loaded and an improperly written driver can destroy their data itself. In my opinion, raid arrays done this way are buggy and dangerous. I have 2 raid controllers on my new motherboard (1 promise and 1 via) and I won’t use them. I’ve had too much trouble with them in the past.
You also can’t mix raid types on the same disks with hardware raid like I’m doing where a portion of each disk is standalone, a portion is mirrored and a portion is striped. I’m not saying nobody should use hardware raid, but there are good reasons to use software raid instead. It’s as fast if not faster, much more flexible, and arguably safer.
its not faster or safer but is more flexible. I'll give ya that one.
If the controller uses the computers ram and cpu to handle the striping, they are not hardware raid just fancy drivers but they are just like the software raid built into XP/Win2k etc...
REAL hardware raid controllers are much safer and much faster. And more expensive also needless to say.
Cheers and best of luck !
Tex
True. But do I really care? I can reinstall my OS from CD. It's the files unique to my machine that I care about keeping safe. Those are the ones I want mirrored not the OS. I also don't want the OS partition to be striped since it's risky and it would make little difference in the speed of the machine.
From my standpoint, having 2 separate bootable os partitions is more useful than having the OS on a partition that is on RAID.
I’ve actually done a lot of reading about the speed of hardware vs software RAID. I’d be interested in knowing what comparisons you know about. The reading I’ve done seems to confirm a sneaking suspicion I’ve had lately that software RAID is getting to be faster than hardware RAID.
I don't know much about the speed of Windows's software RAID, my advanced storage experience is mostly on Linux. My most important stuff is on a big RAID5 array attached to a 3Ware controller and has nightly backups. The array is getting to the point I want to replace it though. It is horribly slow at writing so I've been looking carefully at what to use on my next array. There isn't a lot of glossy marketing comparing the speeds of hardware RAID with software RAID (which is itself telling) but I did manage to find this guy's tests of a 3Ware 8506-8 hardware vs software RAID-5:
http://www.chemistry.wustl.edu/~gelb/castle_raid.html
I graphed some of the results in excel to make them easier for me to compare:
http://www.ericgarland.com/help/raid/
There's also the Tomshardware reviews involving raidcore cards which are driver based RAID cards which show the raidcore's can keep up with and in some cases surpass the performance of the best 3Ware card available:
http://www.tomshardware.com/storage/20041006/raidcore32-05.html
http://www.tomshardware.com/storage/20040831/sata-raid-controller-20.html
http://www.tomshardware.com/storage/20031114/raidcore-26.html
A comparison of Windows’s software RAID in there would have been nice but they didn't do it. I'd say that it’s not a given that hardware RAID is faster than software RAID. The big argument people usually use against software RAID is it uses too much CPU time but you need to think of how much CPU time a slow array takes up? Granted it's not using the CPU while it's writing but whatever application is writing the data is stalled waiting for the write to finish. Is it better for your massively fast expensive CPU to be idling while a cheap slow co-processor churns through data writing it to disk? If the CPU has something else to do (e.g. a database server or application server) the answer is probably yes. If the machine is a dedicated file server, probably not. If it’s a desktop, there are tradeoffs and my guess is most of the time software RAID would win but there doesn’t seem to be much information about it.
Clearly the performance profile of software RAID is different than hardware RAID and neither is better all the time. The impact of this, though, is that there are times when dumping good money into a good hardware RAID card will slow your machine down, something that most people find hard to believe.
As far as "safer", 2 copies are 2 copies. Sure, the OS can go haywire and corrupt a software RAID partition but the same OS can corrupt a hardware RAID partition. A hardware RAID controller can die though and you have to buy another one to get to the data where as I could pop one of my drives into any other computer and read the data off of a software mirrored partition. Again, there are different aspects to “safer”. To me, being able to get to my data should something go wrong with my machine feels “safer” to me.
I have also run into a problem with a striped array on a 2 port controller before. One of the drives started giving SMART warnings that the drive was failing so I bought replacement drives. Unfortunately there was no way to copy data off the old drives on to the new ones because I couldn't hook them both up at the same time. Using a hardware controller is also pain because you need floppies around to install windows and need the floppies again if you ever need to do a rescue session.
I know software RAID can do what I want (I’m used to Linux’s which is very capable fast and compatible) but it appears that Windows XP Pro's software RAID is rather crappy and I plan to be running XP Pro on this box. You’d think with 4 billion a year in revenue they could give me an OS that I can play Doom 3 on that will also store my documents safely.
I may simply just setup something to periodically back-up all the files from my important partition to what was going to be it’s mirror or I may try the hack to enable mirroring in XP Pro. Or I may even (gasp) get a hardware RAID controller. Any recommendations?
My viewpoints come from a differant angle. I have been building PC's and servers since the early 80's. I build and tune high performance disk subsystems for a living.
if you want high performance the first step is flush IDE and software raid.
here is an atto from a real hardware disk controller btw.. Oh yeah and its got ONE 4 year old drive attached also not 4 or 8 disks high perofrmance disks.
Quit quoting B.S reviews and listen to folks that have actually used the products and do this for a living. There is more B.S. posted by nitwit wantabe's on the internet that have no clue then I have breath to even argue with.
Tex
Now that is some ATTO scores!!
Sure. You just gotta come over to the dark side and do scsi. (grin)
And really if you look close its not the top ends thats awesome but look at the top few lines. thats scary fast!
I mean some guys running raid-0 with two drives would love to see the peak score be as high as the THIRD line on that atto for a single drive.
Welcome to the world of HARDWARE raid. You can do things with real hardware raid with a single drive that no software raid with a dozen drives can equal.
Tex
The differance between hardware raid and software raid also is that software raid won't ever lower the access time of the array. Look at the access time of this sandra score on hardware raid. I mean the sandra score is pretty hot too but check the access time for the array. And this has NO CACHE on the controller enabled.
2 friggin ms. I can boot from the xp cd, and format the disk and install XP and boot to the desktop clean on that array in 11 minutes.
I just checked the pricing of that controller card and it is a wee bit out of my price range, But being that Christmas is right around the corner it would be a great time to send me that setup as a gift.
Tex