Monday, December 13, 2010

Get started!

I recall hearing that a URL with hyphens in it is stupid. Derp!

(So there!)

I'm fiddling with RAIUFD (Redundant Array of Inexpensive USB Flash Drives.) That started with a new system I have planned. The ultimate goal is to combine a file server with another system into one case. The case is a monster Lian Lee case that has space for dozens of 3 1/2" drives. When I built it about five years ago it used a RAID of six 200GB drives (5 drives in a RAID5 configuration with a cold spare.) I've since upgraded it to use two 2TB drives configured as a RAID0 (mirror.) So I've got this huge case with an AMD Athlon 64 motherboard and lots of empty space. It idles along at about 95 watts. My plan is to combine this system with a similar desktop. The Lian Lee case will hold two systems. I'm even considering powering them both from the same power supply.

The main system will be the combination of the best of the two desktops (AMD Athlon 64 X2 processor, 4GB RAM, etc.) For now. It will own the space for the rear connections and external devices such as a USB/firewire panel, DVD burner and <shudder> floppy disk drive. For now.

Behind the main board, I'll mount a micro-ATX all in one board which will drive the two 2TB drives and support the functionality of a NAS. The board I've chosen is an Intel D510MO based on a dual core Atom. The only external connection for it will be an Ethernet cable. (I'll open the case in order to attach keyboard and monitor cables as needed.) This is where the RAIUFD comes in. The NAS drives aren't partitioned for installing an OS. The D510MO has two SATA ports. I could use an add in card for an additional SATA drive; a notebook drive would be nice. Or I could use an ATA drive. I have some laying around. But they're old and use power. I had planned on just getting a decent USB thumb drive for a boot device.

Then I ran across the idea of striping several USB drives. Google helped me find prior art. It has been done and it has provided a speed benefit over a single flash drive. I ordered four 4GB Mushkin flash drives to configure in a four way stripe set. Cost for 16GB storage is <$25 US.

I already have two 4GB Kingston flash drives so I fiddled around with them. Configuring them as RAID0 is pretty straight forward. Measuring throughput is not. I finally settled on Iozone with some arguments that seem to provide a quick test that hopefully produces indicative results.

iozone –Ra -s1024 -r 8 –i 0 –i 1 -c

Results were inconsistent from run to run, often producing a result that was double or half of the typical value. Perhaps this is a consequence of the wear leveling or blocking algorithms in the drive. It also seemed sensitive to CPU horsepower. There was less benefit on an Atom based netbook than on my laptop (Core 2 Duo.) The laptop also allowed me to get the drives on different USB busses which also had to help. In any case, before too long I'll get to install Ubuntu Server on this before too long and see what happens. Since it's going to be a file server and not something I plan for interactive use, I'm not too concerned about program load times. High traffic directories like /tmp will wind up in RAM.

More prior art... I have a remote NAS built on an Atom based all in one PC (Foxconn R20-D1) with a couple mirrored 2TB drives. It's partitioned to boot off the RAID. It uses 35W when busy and works well with wake-on-LAN so I only need to wake it up when backups are scheduled. (That's all scripted, of course.)

No comments:

Post a Comment