Firewire Software RAID using Oxford 911 and Windows XP

Disclaimer
This may or may not be complete garbage. I have not completed and fully tested the RAID yet. '''The actions described here could damage your Oxford 911 enclosures, hard drives, Firewire controllers, motherboard, PC, maybe even burn your house down. Everything here is at your own risk! '''

I wanted to start a place to post information I've gathered and learned about how to build a software RAID using Windows XP, Oxford 911 external firewire enclosures and a little free time.

Why would you want to do this?

 * The RAID is easy to build
 * Cost effective
 * Huge, Reliable Storage
 * Easy to expand (Sort of...)
 * Save power since it doesn't require a dedicated server
 * Works with laptops
 * Long Firewire cables allow placing the RAID in a closet to reduce noise

What applications should you use this for?
If your cabling is not perfect and your drives disconnect and reconnect, device numbers may get reassigned. Windows XP may not handle this reassignment very well. If you're lucky your volume will become inaccessible and you will be able to power down, power up and continue working. If you are not so lucky, data may get written to the wrong location producing a corrupted file or a corrupted filesystem table. A corrupted filesystem in a dynamic disk can be very hard to recover (I have been successful in retrieving files using r-tools but many other disk recovery tools failed). Note that even if you use redundancy it could easily be several drives simultaneously with errors and make recovery not possible.

External firewire raid is best suited for applications where the sustained high speed read/write bandwidth of RAID will be an important advantage but you can afford to occasionally lose your data. For example, if you are processing large video files where the original is in a safe location and at worst you lose your current editing session, the speed improvements could outweigh the occasional loss of data.

Ingredients

 * 1) Some cheap standard IDE drives. Lots of them. You'll fill them up later.
 * 2) * How many drives? Any amount you want. With software RAID 5 it doesn’t matter. Your usable space will be x * ( y – 1) where x is the capacity of the smallest drive in the array and y is the number of drives. That’s right, one drive is used for parity. Well, not really, its distributed. But this isn’t a RAID tutorial. Look that stuff up on your own. Just get some drives.
 * 3) Windows XP
 * 4) * Home or Professional or Windows 2003 Server
 * 5) * Windows 2000 may work
 * 6) * OS X is also reported to do similar things, but it is untested for this application.
 * 7) External Firewire enclosures or bridge boards. Make sure they use the Oxford 911 chipset.

''I think WindowsXP only puts "dynamic" drives into a RAID array. Does this work for external USB hard drives? Is it possible to make external USB drives "dynamic"?''

Windows XP requires dynamic disks for RAID. Basic drives can be converted to dynamic easily. However, Windows doesn't seem to allow basic to dynamic conversion on USB hard drives. There may be a registry hack for this, but I have not found it. One way to make it work might be to take the drive and put it into a PC or a firewire enclosure and convert it to a dynamic disk there. Then, return it to the USB enclosure. I believe Windows will recognize it and mount it.

As of Windows XP SP2 & Windows 2003 Server SP2, dynamic disks cannot be converted from basic via USB. Also, attempting to convert a basic to dynamic (on one computer), and then moving it to another computer will not work. Only the computer making the convert to dynamic will be able to read the dynamic drive.

It is possible to convert a USB disk to a dynamic disk ( at least in 2003 server ) by using the command line diskpart command.

Using a command line 1. Open Command prompt. 2. Type: diskpart 3. At the DISKPART prompt, type: list disk

Make note of the disk number of the disk you want to convert to dynamic.

4. At the DISKPART prompt, type: select disk n 5. At the DISKPART prompt, type: convert dynamic

Let's get down to work

 * 1) First step. Get Windows XP ready for RAID. Here are nice instructions which I will not repeat. http://www.tomshardware.com/2004/11/19/using_windowsxp_to_make_raid_5_happen/ Now you can create RAID volumes. However...
 * 2) By default, Windows XP will not allow you to convert a FireWire-connected disk to a dynamic disk. However, you can make a simple registry change to accomplish such an upgrade. To convert a FireWire-connected disk to a dynamic disk, perform the following steps:
 * 3) Start a registry editor (e.g., regedit.exe).
 * 4) Navigate to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmadmin\Parameters registry subkey.
 * 5) Double-click EnableDynamicConversionFor1394, set this value to 1, then click OK.
 * 6) Close the registry editor.
 * 7) Reboot the machine for the change to take effect.
 * 8) If you have decided to use one drive per enclosure, you’re done now. Just put your drives in the enclosures, daisy chain them together, create the array and you’re set. (Ok, that isn't a trivial matter, but this will be elaborated on later...)
 * 9) -This registry key does not appear to work under Windows 2000 SP5.

Two drives per bridge/enclosure??
It turns out it is possible to connect two drives in a master/slave configuration to each Oxford 911 bridge. That cuts down the cost, since you now have to buy half as many enclosures as you have drives.


 * 1) Go here: http://www.fwdepot.com/firewiredepot/firmware/firmware.html
 * 2) Get updated firmware for your Oxford 911 chipset. http://fwdepot.com/firewiredepot/firmware/FW911_V4_00_0000_Release.bin The file is called: FW911_V4_00_0000_Release.bin
 * 3) Get the uploader tool which will allow you to flash the Oxford 911 bridge and tweak settings to enable the slave device. http://fwdepot.com/firewiredepot/xp_updater_1_64.1.zip You may also need JRE. Follow their instructions to get that.
 * 4) Start the uploader program and flash your Oxford 911 bridge to the latest firmware.
 * 5) * I suggest you download and read the users guide for the Oxford Semiconductor software. It is helpful. http://www.oxsemi.co.uk/cgi-bin/general/prodhome.cgi?911 - Link not available - Try http://www.datoptic.com/PDF/Oxford_Semiconductor_Uploader_UG.pdf
 * 6) Here is the main screen of the program: http://web.archive.org/20090821071228/www.geocities.com/phrozenphreak2001/mainscreen.gif Yours should look something like that after flashing.
 * 7) Next, click on ‘Modify Configuration Information’. Enable the Slave details and fill in some values that might make sense. Set the device type for both Master and Slave to hard disk drive. http://web.archive.org/20090820182840/www.geocities.com/phrozenphreak2001/modify_configuration_information.gif
 * 8) Click on 'advanced'. In there, enable all the UDMA modes for both the master and the slave. http://web.archive.org/20090820163136/www.geocities.com/phrozenphreak2001/advanced_options.gif Select the following options below the pull-downs:
 * 9) * Enable GPI drive detect
 * 10) * Detect drives with non-std signature
 * 11) * Enable ATAPI UDMA on Master
 * 12) * Enable ATAPI UDMA on Slave
 * 13) Do not select other options. Some of them may render your bridge useless. It may be recoverable, though. I killed mine at first, but then was able to recover it by reloading the firmware through the force-flash mode. See the users manual.
 * 14) Ok. Once that’s done. Click OK. And click ‘Upload changes’ back at the 'Modify Configuration Information' screen.
 * 15) The bridge should upload the new changes and reboot.

Minor Details that need to be worked out
I forgot to mention. How do you connect these drives? Well, you’ll need a standard 80-pin IDE cable that is capable of ATA/100. Use whatever you like. Set the drive at the end of the cable to be the MASTER and the drive in the middle to be the SLAVE. Don’t rely on CABLE-SELECT, it doesn’t work. Tried it.

Next big question. How do you mount and power these drives? They obviously won’t fit in the enclosure, so you’re on your own there. I haven’t gotten that far yet. I’m thinking of finding some case with a good power supply and pulling the bridge boards from the enclosures and using them separately. Anyway, that’s up to you.

Disclaimer, again
'''The actions described here could damage your Oxford 911 enclosures, hard drives, Firewire controllers, motherboard, PC, maybe even burn your house down. Everything here is at your own risk! '''

I’m just saying it is possible and here are some hints.

This is all in development stage and will hopefully improve as I finish the project and get input from others.