RAID question (RAID 1 with 4 drives?)

I’ve never set up a RAID array before, but I’m ready to try. I’ve got 2 1-TB drives and 2 500-GB drives and my goal is to have a 1.5-TB RAID 1 array.

The motherboard supports RAID 0, 1, and 10 (which I assume is actually RAID 1+0). It’s the best I could afford right now, so please don’t laugh too hard.

Will I be able to achieve my goal?

That’s going to be difficult. You can RAID 1 the two 1 TB drives and the two 500 GB drives, but because they’re different capacities, you can’t stripe them. So you’ll end up with two drives.

The biggest RAID1 array you could create would be 500GB, even if you used all four drives. A RAID1 array, by definition, is a mirroring of one drive to one or more other drives.

The best you can probably do here is a 1TB RAID10 array. You’ll end up having the two 500GB drives mirrored, the two 1TB drives mirrored, and stripe between them. The two 1TB drives will only contribute 500GB of space though, as the members of a stripe set need to be the same size.

What is your intended use of these drives? Are they hosting the OS and all the data, or is the OS on another drive? What OS are you running?

You can haev 2 Raid 1 Arrays, 1TB and 500GB, and Windows might be able to make them into one contiguous logical drive, but I wouldn’t recommend doing that. I would just set up 2 separate arrays and leave them as separate physical drives.

Thanks for the replies. This is pretty much what I was figuring, so no sweat.

FWIW, my plan is to install Ubuntu 10.04 on this box, not Windows. I doubt that will make much difference in the answer, though.

I guess what I’m actually trying to accomplish is spanning then mirroring.

Yes, with Windows you could create a spanned volume set using the two mirrored pairs to give you 1.5TB of space. I can’t speak to your capabilities with Ubuntu though.

You might be more successful if you mirrored then spanned.

Don’t even bother trying to use the RAID to put all 4 drives together if you are going linux - just do the 500GB raid 1 and another 1TB raid 1. There is no real need to span or stripe the drives in linux - you can just mount your arrays as whatever folders you want and it will be seamless. IE make your 1TB your main filesystem and mount your 500GB as /usr or /lib or whatever you need space in and you shouldn’t really be able to tell that you have two different arrays at all I would think.

Well, seamless except the mounted filesystem is still limited to the volume size of 500GB. You can’t put any more than than in that directory. You can do precisely the same thing under Windows, btw, with volume mount points.

Create a Linux software RAID 1 with the two 1TB drives, and another with the two 500GB drives, and then use the logical volume manager (LVM) to use both of the RAID devices as physical volumes (PVs) inside a single volume group (VG). On that VG, then create logical volumes (LVs) for your different filesystems. Ignore any BIOS options to create RAIDs. Those are fakeraids, and the Linux software RAID will perform just as well or better.

The LVM concept can be a bit complicated if you haven’t encountered it before. Basically, PVs are just disks, partitions on disks, or RAIDs—pretty much anything which is a real physical storage device. VGs are created using one or more PVs, and you can think of them kind of like a “disk” in that they can be broken up into multiple “partitions,” which are the LVs. The LVs are then formatted and mounted like any other file system. There are many advantages to using LVM in a multi disk system. For one, it will allow you to treat your 1.5TB (1TB+.5TB RAIDs) as a single contiguous storage area. Also, a VG doesn’t care which PVs it is made of, as long as there is adequate space to hold all of its space which is allocated to LVs.

For example, today you have 1.5TB of space, but later you decide that you need more. You buy two 2TB disks, and create a RAID from those, and a PV from that RAID. Then add the new 2TB PV to your existing VG, which will grow to 3.5TB of space. You can now remove your old 500GB RAID and retire those disks, leaving you with 3TB of space. You can then expand your existing LVs (and underlying file systems) to use the new space which is available. Or, you could grow to fill the whole 3.5TBs, or remove all four old disks, etc.

It’s much too complicated to explain it all here, but there are online tutorials and documentation.

During the Ubuntu install, select the pairs of disks to be members of RAIDs, and create the RAIDs. Then select the RAID volumes (probably md0 and md1) to be members of a VG or LVM. I don’t know exactly how the Ubuntu installer phrases these things. The advantage to starting with a new system is you can mess it up a couple of times without losing any data. If you’re trying to install Ubuntu onto an existing system, then it’s much more complicated…

For a simpler, but less versatile setup, you can create the two RAID 1s during the install, and then put those two devices (md0 and md1) into a RAID 0 or a linear RAID. The Linux software RAID system can create a RAID 0 from different sized devices. It will stripe where it can, and not stripe where it can’t.

That’s awesome info, echoreply. Thanks!