RAID Vs. JBOD Vs. Standard HDDs
Ravengbc writes "I am in the process of planning and buying some hardware to build a media center/media server. While there are still quite a few things on it that I haven't decided on, such as motherboard/processor, and windows XP vs. Linux, right now my debate is about storage. I'm wanting to have as much storage as possible, but redundancy seems to be important too." Read on for this reader's questions about the tradeoffs among straight HDDs, RAID 5, and JBOD.
At first I was thinking about just putting in a bunch HDDs. Then I started thinking about doing a RAID array, looking at RAID 5. However, some of the stuff I was initially told about RAID 5, I am now learning is not true. Some of the limitations I'm learning about: RAID 5 drives are limited to the size of the smallest drive in the array. And the way things are looking, even if I gradually replace all of the drives with larger ones, the array will still read the original size. For example, say I have 3x500gb drives in RAID 5 and over time replace all of them with 1TB drives. Instead of reading one big 3tb drive, it will still read 1.5tb. Is this true? I also considered using JBOD simply because I can use different size HDDs and have them all appear to be one large one, but there is no redundancy with this, which has me leaning away from it. If y'all were building a system for this purpose, how many drives and what size drives would you use and would you do some form of RAID, or what?
At first I was thinking about just putting in a bunch HDDs. Then I started thinking about doing a RAID array, looking at RAID 5. However, some of the stuff I was initially told about RAID 5, I am now learning is not true. Some of the limitations I'm learning about: RAID 5 drives are limited to the size of the smallest drive in the array. And the way things are looking, even if I gradually replace all of the drives with larger ones, the array will still read the original size. For example, say I have 3x500gb drives in RAID 5 and over time replace all of them with 1TB drives. Instead of reading one big 3tb drive, it will still read 1.5tb. Is this true? I also considered using JBOD simply because I can use different size HDDs and have them all appear to be one large one, but there is no redundancy with this, which has me leaning away from it. If y'all were building a system for this purpose, how many drives and what size drives would you use and would you do some form of RAID, or what?
Nothing can possibly go wrong. Especially if you use, like, 10 disks.
Wikipedia has a very informative article regarding RAID and the various levels, in fact here it is. http://en.wikipedia.org/wiki/RAID
Chicken fried butter sticks? Do
That said, RAID is not a replacement for proper backup. RAID is just a first line of defense to avoid downtime.
"No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
You can just download them again, right?
This issue is a bit more complicated than you think.
Design for what you want to use today and in the near future, don't design for a few years from now, you'll never get it built.
That being said, mirroring might be the easiest solution to upgrade, but you'll sacrifice speed and space.
If you want speed and redundancy, you'll have to go with something like RAID 5 or RAID 10 and just have a painful upgrade in the future.
I'm running a few arrays, all over 1TB. Largest is 8 drives in a raid6 config. everything uses software raid. Be sure to use LVM, so that you can snapshot your drives. Once you're properly RAIDed, your more likley to lose your data by an accidental file deletion than by unfixable hardware failure.
If you have 3x500GB disks in RAID5, you only have 1TB of usable space, as one drive is used as parity (and therefore not for effective data storage). If you replace the disks with larger ones, the array is not increased in size if you replace each disk one at a time and let the array rebuild itself. However, you can just plug in your new drives (if you have enough ports), create a new array, and then copy data across to the new array. Alternatively, if you are using software RAID, as you increase the size of the drives, you can create extra partitions on the drives and RAID these. e.g. 3x500GB drives in RAID5, changed to 3x1TB drives, each with 2x500GB partitions = 2x1TB RAID5 arrays. This is not recommended however!!
Personally, I would just buy a Buffalo TeraStation or Netgear StorageStation and let that do the hard work. Just plug it into your network, then share the data. Just have a single 500GB drive on your media centre for recording TV, and then anything you want to keep just copy over to your NAS box.
It all depends on how the RAID is implemented. Most inexpensive controllers require a rebuild when you change sizes. It is not a big deal. I would never implement anything important jbod the chance of failure is too large. I have replaced too many disks. Do RAID5 or RAID1. Over 99% of my disk is RAID5 and I manage just over 500TB.
RAID 5 drives are limited to the size of the smallest drive in the array.
Yes... Duh....
And the way things are looking, even if I gradually replace all of the drives with larger ones, the array will still read the original size. For example, say I have 3x500gb drives in RAID 5 and over time replace all of them with 1TB drives. Instead of reading one big 3tb drive, it will still read 1.5tb. Is this true?
Yes... Fucking duh.... Have you even read the RAID 5 Wiki article?
I also considered using JBOD simply because I can use different size HDDs and have them all appear to be one large one, but there is no redundancy with this, which has me leaning away from it. If y'all were building a system for this purpose, how many drives and what size drives would you use and would you do some form of RAID, or what?
We've been through this a million times before and the answer is always the same. You're a cheap bastard who wants gobs of space with an acceptable amount of redundancy but aren't willing to buy two sets of drives. Buy 4 of the biggest drives you can afford and RAID 5 them. Don't expect stellar write speeds. You won't have a backup if something happens and all 4 drives blow but you'll at least have protection when one drive gives up the ghost which is mainly what most people want to protect against.
Why does stupid shit like this keep getting posted to the front page?
This is what you do: buy 2 drives exactly the same size and mirror them. End of story. If you're worried about a blown raid controller, then buy another hard drive and stick that on another computer and run a weekly cron job to copy everything. Right now you can get 500 GB hard drive for about $150. Get two of them and mirror them. (If you need more than 500 GB I would highly suggest encoding your porn into a different format than MPEG2) By the time you run out of space, you will be able to get 1 TB drives for about $150. Migrate over to the 2 1 TB hard drives. Repeat every few years.
With computers, the stupidest thing you can do is spend extra money to prepare for your needs for tomorrow. Buy for what you need now, and by the time you outgrow it, things will be cheaper, faster and larger.
By the way RAID 5 is a pain in the ass unless you have physical hotswap capability, which I highly doubt.
Out of all the details you're still working on, you decided to ask Slashdotters about storage?
Why not the "windows XP vs. Linux" bit? Do you want 100 responses or 1000?
Media Server: n. A euphamism for digital porn storage.
With Linux you can create a RAID5 md device, say /dev/md0, then run LVM on top of that (pvcreate /dev/md0 ; vgcreate MyVgName /dev/md0) and use that to carve out your storage. The key here is to create partitions on each drive, eg filling up the entire disk, and create your raid5 with those.
/dev/md1. So now you have /dev/md0, pointing to the first 500GB of each disk, and /dev/md1, pointing to the 2nd 500GB of each disk.
/dev/md1 and graft it onto your LVM volume group. (pvcreate /dev/md1 ; vgextend MyVgName /dev/md1). Now your LVM VG just doubled in size, and you can use all that new space. Whatever you do though, do NOT create any "striped" logical volumes (the "-i2" option to lvcreate; LVM's Poor Man's RAID0, basically) because you will suffer terrible performance, since you'll be striping across different volumes on the same physical spindles (a big no-no for any striped configuration). But if you use the extra space by creating new filesystems or growing existing ones, you shouldn't see any trouble.
If you buy 1TB drives further down the road, here's what you do- With each disk, create a partition identical in size to the partitions on the smaller disks, then allocate the rest of the space to a second partition.
Join the first partition of the disk to the existing RAID set. Let it rebuild. Swap the next drive, etc. etc. Then once you've done this switcharoo to all the drives, create another raid set using the 2nd partition on your new disks--call it
Take that
Just be sure that any replacement drives you have to buy... you must partition them out similarly. I'd recommend pulling back on the partition sizes a bit, maybe 5%, to account for any size differences between the drives you bought right now and some replacement drives you may purchase later on which might be slightly lower in capacity (different drive manufacturers often have differing exact capacities).
the real at&t mix
It depends on the implementation (and possibly the raid level). Some raid cards will let you expand the container after you've replaced all of the drives with new ones of a larger size. Then you have to expand the partition, or put another partition into the new space. I've done this with Compaq hardware running Win2k in a RAID 1 (mirrored pair).
The "Raid 5 can't do what I heard" isn't quite what's going on, again, depending on the implementation. Most raid cards I've used allow you to add drives to the array and expand the array to the new drive(s) without downing the server or requiring a rebuild.
So RTFM for the card you're going to use.
Go RAID5. RAID5 = Hardware failure resilience + maximum storage.
Go Linux. The Linux MD driver allows you to control how you RAID- over disks or partitions. there are advantages. We will discuss.
First, don't get suckered into a hardware RAID card. They are *NOT* really a hardware card- they rely on a software driver to do calculations on your CPU for RAID5 ops. Software RAID is JUST AS FAST. Unless you blow the big bucks for a card with a real dedicated ASIC to do the work, you're fooling yourself.
Now, you want to go Linux. By using the md driver, you can stripe over PARTITIONS, and not the whole disk. By doing this, you can get MAXIMUM storage capacity out of your disks, even in upgrades.
Say you have 3 500GB disks. You create a 1TB array, with 1 disk as parity. On each of these disks is a single partition, each the size of the drive. Now, you want to upgrade? SURE! Add 3 more disks. Create three partitions of EQUAL size to the original, and tack it on to the first array. Then, with the additional space, you can create a WHOLE NEW array, and now you have two seperate RAID5's, each redundant, each fully using your space.
Another advantage with MD is flexibility. In my setup, I use 5x 250 drives right now. On each is a 245GB partition, and a 5GB partition. I use RAID1 over the 5's, and RAID5 over the rest. Why? Because each drive is now independently bootable! Plus, I can run the array off two disks, upgrade the file system on the other 3, and if there's a problem, I can always revert to the original file system. So much flexibility, it's not even funny.
I recommend using plain old SATA, in conjunction with SATA drives, and just stick with the MD device. For increased performance, watch your motherboard selection. You could grab a server oriented board, with dedicated PCI buses for slots, and split the drives over the cards. Or, you can get a multiproc rig going, and assign processor affinity to the IRQ's- one card calls proc 1 for interrupts, the other card calls proc 0. If you have multiple buses, then performance is maximized.
The last benefit? Portability. If your hardware suffers a failure, then your software RAID can move to any other system. Using ANY hardware RAID setup will require you to use the EXACT same card no matter what to recover data. Even the firmware will have to stay stable or else your data can be kissed goodbye.
Windows? Forget about it.
Good luck!
I really can't believe this made the front page. The questions are badly written, and the question itself could have been answered with some basic Internet research. RAID isn't an esoteric topic anymore, folks!
This place has really gone downhill. I thought Firehose was supposed to stop stuff like this, not increase it!
Anyways, just to be slightly on topic: there's no one answer to this question. It depends on your budget, your motherboard, your OS, and, most importantly, your actual redundancy needs. This kind of thing is addressed by large articles/essays, not brief comments.
Plausible conjecture should not be misrepresented as proof positive.
you write that if you have 3 500G disks in a RAID 5 that you will have a 1.5T, etc. Don't you realize that (N x C) - C = Total ? i.e. (3 x 500) - 500 = 1000 or 1 terabyte. That's only the first problem with your logic...
Actually, the failed hard disk will personnaly walk to you.
No sig for now.
> either get the bigger disks you want now, or plan on rebuilding the array down the road
Not at all, these days one does have better options than rebuilding a blank array. Read up on LVM, it is powerful stuff.
Replace the drives in the array one at a time, allowing time for the array to rebuild. Then you can grow the volume to make use of the extra capacity. Yes it will require some planning and will probably take a week to slowly merge in the new set of drives, but it sure beats a bare metal restore because you can still be recording and watching video while all this rebuilding and resizing is happening.
Don't really know how much of the above applies to Windows, haven't seriously used it in a decade; so sometone else will have to supply details on it's volume management flexibility.
Democrat delenda est
Raid 0 won't protect you, man!
My understanding is that linux allows you to grow an array. Yes, it will, I just checked the manpage for mdadm. For RAID 5, and probably similar for others, the procedure is to "fail" each of your disks by unplugging them then replacing them with the bigger disks (this part isn't in the man page). You just have to make sure that you allow to RAID to rebuild after each "failure". Once they're all replaced, you can resize the array to fill up the new, larger drives. Then, of course, you'll have to resize your filesystem. During this process, however, your RAID will be vulerable to real disk failures.
GE/S/P a- e++ y-- r-- s:++ d+ h! X+++ t++ C+ P+ L++ E W++ w M-- V? PS+ P+
Hardware WILL get old, WILL die, and better stuff WILL become available. So it only makes sense to recognize this and plan for it.
Here's the way I do it (for a home storage server, not a solution for business-critical stuff):
Examine current storage needs, and forecast about two years into the future.
Build new server with reliable midrange motherboard, and a midrange RAID card. These days you could do with a $100-$300 four-port SATA card, or two.
Add four hard disks in capacities calculated to last you for two years of predicted usage, in RAID 5 mode. Don't worry about brand unless you know for a fact that a particular drive model is a lemon.
Since manufacturer's warranties are about one year, and you may have difficulty finding an unused drive of the same type for replacement, buy two more identical drives. These will be your spares in the event of a drive failure.
When the two years are up, you should be using 80 to 90 percent of your total storage.
At this point, you build an entirely new server, using whatever technology has advanced to at that time.
Transfer all your files to the new server.
Sell your entire old storage server along with any unused spare drives. A completely prebuilt hot-to-trot RAID 5 system, with new matching spare disk, only two years old, will still be very useful to someone else and you can recoup maybe 30 to 40 percent of the cost of building a new server.
Lather, rinse, repeat until storage space is irrelevant or you die.
You can put RAID 5 on varying size disks.
I had 4 300GB drives, and 2 200GB drives.
I broke them up into 100GB partitions, and layed out the RAID arrays:
A1 = [D1P1 D2P1 D3P1 D5P1]
A2 = [D1P2 D2P2 D4P1 D6P1]
A3 = [D1P3 D3P2 D4P2 D5P2]
A4 = [D2P3 D3P3 D4P3 D6P1]
Then I concatenated the arrays together, giving a little less than 1.2 TB of space from 1.6 TB of drives; if I had just RAID'd the 4 300 gig drives, and mirrored the 200's I would have only had 1.1 TB available, and the drive accesses would be imbalanced.
I could also grow the array, since it was built as concatenated, so later when I got 4 400GB drives I raided them then tacked them on for 2.4 TB total.
If you are going to do this, do it right. It will cost you some up front, however, in the long run, doing it right will be cheaper. Get a real raid card, as in hardware RAID. Get something that supports multiple volumes and at least 8 disks. I personally just got the Promise SuperTrak EX8350. Now, why do you ask do you need 8 disks? So you can upgrade, that is why. Use your current 3 or 4 disks you have now in a raid volume. In a couple years when bigger disks are dirt cheap, pick up 4 1TB+ size disks and build a second volume on the RAID array using the new disks. Now you can offload all the old data onto the new RAID volume and either ditch the old disks or keep them around (up to you, however, I recommend ditching to other computers or whatever so that you now have 4 empty slots on the RAID card so that you can rinse/repeat the whole process again in another few years...)
Again, doing it correct up front takes care of upgrade options down the line. It also gives you room to do monster sized volume if you ever need that much space (8 disk array). Most of these RAID solutions are also OS independent, so if you want dual boot, the volume would be recognized by Windows, Linux, Unix, BSD, etc., and you are also not dependent on using the exact same motherboard if you motherboard dies or wants to be upgraded (you would lose all your data if you use the built in RAID on the motherboard when changing to a new motherboard other then the exact same model).
These better cards also can be linked together (i.e. you always get a second card assuming your motherboard has a slot for it, and add more disks to the array that way as well).
We were all warned a long time ago that MS products sucked, remember the Magic 8 Ball said, "Outlook not so good"
If it is a Linux server, you're already using mdadm, which has a monitoring daemon with e-mail notification.
Get a small box, install opensolaris on it, configure your JBOD as either raidz or raidz2, configure either iSCSI or SaMBa to share the files using a gig link.
Your data should be perfectly safe, with raidz2 can lose up to 2 drives, without data loss.
Who is general failure, and why is he reading my hard drive?
> I would go RAID 5.
Yep. And if you boot something like Knoppix you can keep the OS on cdrom and storage on the raid device. Samba config goes on a usb key. I have two servers in a corporate environment running software raid 5 and booting knoppix. Updates are nearly impossible, but you can keep the updates on the usb key (tzdata) and untar right over the top of UNIONFS after boot. Either that or just download a fresh Knoppix version (I've gone through 3 versions now). The software raid in Linux is surprisingly stable. I had one drive go bad on one of the servers a couple months ago. mdadm emailed me, I informed the dept. of the downtime, and at the end of the day I replaced the drive and rebuilt the array. Everything worked like the howto said. Very nice.
boycott slashdot February 10th - 17th check out: altSlashdot.org
Why? Linux software RAID (md) does a fine job with excellent performance, assuming you are not saturating the PCI bus (solution: use PCI Express or PCI-X instead). With sufficent bus bandwidth, software RAID outperforms the majority of soft RAID (rocketraid) and hardware RAID controllers.
You can do this with md without having to deal with quirky RAID hardware that leaves you in the cold if you have a controller failure.
cat /proc/mdstat
/proc/mdstat
root @ backup (/usr/src/linux) cat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md0 : active raid5 hdj1[3] hdi1[4] hdg1[2] hdf1[1] hde1[0]
468880896 blocks level 5, 4k chunk, algorithm 2 [5/5] [UUUUU]
unused devices: <none>
[U] is Up. [_] is Down.
Serious? Seriousness is well above my pay grade.
This is what you do: buy 2 drives exactly the same size and mirror them. End of story.
NO! That's NOT the end of the story. You need to do what is called "scrubbing" the array periodically, because drives "silently" fail, where areas become unreadable for various reasons. Guess when one usually discovers the bad data? When one drive screeches to a halt, and you confidently slap in another and hit "rebuild". Surpriiiiiiiiise.
You can do it a variety of ways. The most harmless is probably to run a read-only bad-block test via cron, while monitoring each drive's SMART parameters long-term and having your cron job let you know if badblocks finds anything. An alternative is to instruct md to verify the array, if you're doing software raid.
You cannot, cannot, CANNOT just drop a bunch of drives into raid 5 and expect it to be peachy for the rest of time.
By the way, regarding controllers- skip ANYTHING made by 3ware, especially their PCI controllers. They're barely able to push 20-25MB/sec and have a couple of bad compatibility problems with certain drives. Areca units are blazing fast (especially the PCI-E cards) but priced for businesses, not home users looking for "cheap as possible."
Software raid comes in #1 for price/performance, but I strongly, strongly recommend you play around with the mdadm tool quite a bit before you put actual data on an md array. The stuff is very half-baked.
Please help metamoderate.
Negative, ghostrider.
b lack.html
With proper planning and the right skills, its not hard to build a RAID5 system that can grow with you. This solution is Linux based, but can be applied on any system that has a flexible abstracted filesystem support. The tricks: 1, a big case, 2, Linux w/ LVM.
For the case, check out: http://www.xoxide.com/cooler-master-stacker-case-
It's huge. 12 5.25" slots. Supports dual power supplies. And you can get modules with fans that hold 4 3.5" drives in 3 5.25" slots. That's up to 4x4 drives, (or more realistically 3x4 drives, since you have controller units and presumably an optical drive.)
Anyway, you could start with 4x750. RAID5, LVM on top. Later, say you fill it. You could then buy 4x1.25TB (or whatever the latest size is). RAID5 those new discs, and then put an LVM pv on the RAID, and join it to the first RAID's logical volume group. Extend your FS, and there you go. Also, you can now have up to two drives fail at the same time (so long as its just one dead per RAID5) and not lose data.
Say you want to upgrade again? Do the same thing. And keep in mind, so long as the space is there, you could work LVM and filesystem resize magic to remove the oldest set of 4 drives from the logical volume group and replace them with newer drives.
Takes a little linux skill, but its extensible. Also, flexible. You of course don't have to go 4x at a time. I just chose that since the drive cages support 4 drives apiece.
Anyway, though. Start with the largest drives you can afford starting off, otherwise you'll be getting back into administrivia earlier than you'd probably prefer. I don't know your storage needs or finances, but most geeks should be able to swing 500GB drives (or 250, if one must.)
PS - Don't forget to have at least one spare drive on hand in case one dies. Remember, it has to be the same size, or larger, than the drives in the RAID. This is especially advisable if all your drives are about the same age.
that there is no good solution I can find. Every solution is flawed for this purpose, including ZFS.
I have been giving much thought to writing yet another filesystem, which would fill the needs of home/archival/media box users. Essentially it would be like ZFS, except it would improve upon ZFS's dynamic striping. I would have dynamic parity, such that the number of disks in the stripe-set and number of recovery blocks is completely independent per-file, ala PAR2. ZFS is still just as bone-headed as older filesystem because the vdev's are still atomic, you make a raidz, and it stays that way. The integrity would be on a per-file basis only. So you could add and remove disks at will, no dangerous re-striping operations, and protection and recovery from on-disk corruption. If you lose too many disks, you only lose the information on those disks. A file need not be striped on every disk. Only when a particular file has less parity blocks than missing blocks, wherever such blocks may be, is the file gone. Files on disk should always be recoverable, regardless of "corrupt superblocks", or something similar. This could probably be done using FUSE and some quick and dirty code.
Why?
1. We want a lot of storage
2. We want it expandable, no dangerous restriping or filesystem expansion. There can be NO BACKUPS!
3. We don't want to wake up in the middle of the night and wonder if the next fsck is the last.
4. We only care about enough performance to run the media center, i.e. record TV and play movies.
"I don't know that atheists should be considered citizens, nor should they be considered patriots." George HW Bush
I did this a couple of times recently. I built a file server to supply ripped DVDs to three media centers in a house. I played around with RAID but got poor disk performance. Eventually I realized that the data is not vital information - the world won't end if you loose some movies and have to rip them again. I put four 500 GB drives in a Supermicro 8 bay server, with the OS on an internal drive.
Each drive is mapped by each the UNC path, i.e., \\movieserver\movies1 so the media centers have four drives mapped on each one.
If I lose a hard drive, oh well, some of the movies won't be available until they are re-ripped from the DVDs.
Had I used RAID5, I would have 1,500 GB and it would not have been easy to upgrade. I have ran out of room and I am adding a couple of 750 GB drives.
If you use a linux server and LVM, losing one drives loses everything.
CM www.cometenergysystems.com Blog: http://caribbeanrenewable.blogspot.com/
The advantages of RAID 0 versus RAID 1 versus RAID 5 have already been covered in detail, here, and in many books and websites.
However, allow me to address the issue of how they relate to a media center:
Firstly, when you say "media center/media server", do you mean "I just want to build myself a kickass Tivo?", or do you mean "I want to serve video for everyone in my frat house, simultaneously?"
If the former, consider that Tivos ship with 5500 RPM drives for several reasons:
1) They're cheaper than faster drives
2) They run cooler than faster drives
3) They run quieter than faster drives
4) They use less power than faster drives
5) They're more than fast enough for streaming a single video to your TV while recording another
Long story short, if you're just building a "free" Tivo with a kickass drive array, performance is *not* an issue. Keep in mind that if you're building a set-top box of sorts, the low heat and low noise features are *very* big benefits. You probably want RAID 5, and/or JBOD.
If, however, you're planning on serving video to more than a handful of stations simultaneously, you may need to consider performance. This is a vote for RAID 0 and/or RAID 10.
Now, the second axis: How important to you is this data? Really?
I've got over 300 gigs of drive space on my Tivo. Most of it is the last two weeks of television reruns (Scrubs, 6 copies of last Thursday's Daily Show, etc.), movies I recorded but won't watch, etc. There are about 10 gigs (3%) of video on there that's been saved for a few months, and frankly, I couldn't tell you a single thing on there that I'd miss if my drives went belly up tomorrow. So: do you *really* need to save all those Seinfeld reruns on a highly-redundant storage array? How *much* of the stuff on the server do you really need to keep?
Assuming it's less than 50% (in the Tivo scenario, it probably is), consider using JBOD for most of your storage, and maintaining a single backup drive, or small backup drive array. Or just backing up the good stuff to DVD.
In summary: If you're just building a Tivo, you probably don't really need the performance, or redundancy that RAID offers.
Infrant (wow, just checked their website and it looks like they were bought by NetGear) created their own version of RAID that specifically addresses the issue of capacity and expansion. It's a nice transitional blend from RAID-1 to RAID-5 and does offer the ability to increase the total capacity (albeit with a lot of drive swapping).
p hp?name=About%20X-RAID
Buy an Infrant RAID with the two biggest drives you can afford. Let's say two 750GB drives or whatever's on sale that week. It starts out acting as RAID-1 with the drives mirroring. So you have 750GB of "safe" storage. Now you add another 750GB drive. Okay, now you have 1500GB of storage with one of the drives acting as parity drive (RAID-5). Add a fourth drive and how you have 2250GB of "safe" storage. Now you come back and just replace one of the original 750GB drives witha 1TB drive. Do you get extra capacity? No...not initially. But the drive is fully formatted and integrated as X-RAID. What this means is that eventually after you have piecemeal or onesie-twosie upgraded all four drives, suddenly the X-RAID resizes itself to match the capacity of the new drives with no transfer or downtime. So in theory if you wanted to upgrade your RAID, buy four 1TB drives, swap them out one at a time (letting each one rebuilt the array) and then at the end you'll have 3TB RAID isntead of the old 2250GB RAID and all the data intact.
http://www.infrant.com/products/products_details.
I have three ReadyNAS units and love them to death. They are a little fussy about drive temperatures (I guess that's a good things but, I may get like 40 emails during the course of the day about it and it's not like I'll drive home from work to turn up the A/C in my house). My only sadness is that Infrant doesn't have a higher capacity unit than four drives (oh please oh please, eight drives with a RAID-6 type protective hotspare in one nice rack-mountable unit would be my ultimate dream).
-JoeShmoe
.
-- I wonder which will go down in history as the bigger failure: the War on Drugs or the War on Filesharing
I concur. You would be crazy not to have redundancy--without out it one disk failure will pull down a good chunk of your data.
As for growing the array. From what I understand (and I have not tested this) you can grow the size of the array if you replace all the disks (one at a time with a resync obviously). Also, as of linux 2.6.17, you can add a disk to the RAID and grow it that way.
I would caution against making your array very large (either in disks or in space). Consider the case of a 3 disk RAID array where each disk has a probability of failing in any given second of 10^-10 (you would do this analysis using the reconstruction time of your array as the time window). The probability for any two drives not failing is (1-10^-10)^2. The total number of 2 drive pairs in a 3 disk RAID is 3, thus the probability of the array not failing in any given second is (1-10^-10)^6=0.99999999940. Over a period of five years, the overall probability of no two drives failing is (1-10^-10)^(6*157680000)=0.909729. If you increase the array size to 10 disks, the overall probability of two drives failing is 0.241927 (the number of 2 drive combinations is 45 so you replace the 3 with 45).
Only 11 of those are usable bays, since they put the power switch in with the 3.5" bay module.
The 4-3 devices modules are cute, but a pain to deal with when you want to replace a drive (you have to rip apart 4 sets of cables). I'm not entirely satisfied with the 4-3 modules that I have, I prefer the older 3:2 units with a 80mm fan. Stick to only putting 2 drives in those old 3:2 units and you get superior airflow because there's no strange grillwork between the intake fan and the hard drives. You might get the same out of those 4-3 units if you install a drive in the middle upside down to create a decent gap.
But if you want maximum storage density, go look at the SuperMicro (or others) SATA 5:3 backplanes. Hot-swap (assuming your chipset supports it) SATA trays that fit (5) drives into (3) 5.25" bays. Merge that with a 4U rackcase or one of the (9) 5.25" bay cases from Lian Li (PC A16) and you have (15) SATA slots to play with. Or you could do (3) 5:3 and (1) 3:2 in that CM Stacker case for a total of (18) drives. (There are 3 types of SATA hotswap backplanes, 5:3 for cases with clean sides in the 5.25" bays, 4:3 for cases with guide-rails or tabs in between the 5.25" bays, and 3:2 units. Some cases have metal tabs designed to guide 5.25" devices into place, they'll interfere with 5:3 backplanes.)
My preferred setup for (15) drives? A (3) active disk RAID1 for the OS and misc partitions, then either a (10) disk RAID10 w/ (2) hot spares or a pair of RAID6 volumes with (2) hot spares. RAID5 is too risky once you get into the 1TB+ range. Rebuilding onto a hot-spare takes too long and leaves you vulnerable to a 2nd drive failure during the rebuild window. RAID6 is at least better in that regard, but with RAID10, rebuild times are static (they're based on the time required to rebuild a single RAID1 pair) no matter the # of spindles in the array.
Wolde you bothe eate your cake, and have your cake?
Don't bother with dedicated RAID hardware controllers. I've seen the Linux md disk driver mentioned, and while a viable option, the better option IMO is Solaris x86 using ZFS. Basically you've got an industrial-strength piece of storage software ripe with features begging to be used in this situation....for free.
If you're interested in an industrial strength hardware platform to go with the software, go for one of these.
If you're interested in rolling your own, then simply put together an x86 box with as many SATA controllers and buses you can stuff in a box and set the disk up as JBOD (just make sure the hardware is Solaris x86 compatible of course). Create some ZFS pools of whatever RAID suits your need, and sit back and enjoy data glory.
Oh, and simply pick a protocol of your choosing to serve up the data to your clients...iSCSI, SMB, NFS, whatever.
I can't believe no one has suggested an unRAID server. You get redundancy, storage that can grow by just adding another drive, low power consumption, affordability, and the ability to telnet in. (Plus it runs Linux!) I really like this solution since the data isn't spread out over a bunch of disks in a way that only the RAID controller can understand. Instead it's just a bunch of files on a bunch of disks, with an extra parity drive for reliability.
If a drive goes down, you can just pop a new one in and recover the lost data from the parity drive. If two drives simultaneously fail (unlikely), you lose the data on the drives that failed. Compare that to the nightmare if your RAID controller fails.
Here's my unRAID server, built for $400 plus the drives. I love being able to do backups by just running rsync. Once the author gets sshd built into the system, I can even do automatic incremental snapshot backups using rsync --link-dest.
Until another few years go by and you want to buy more storage. Then you're basically stuck with doubling it, clumsily -- or migrating away and essentially throwing out the old drives.
RAID 5 is better in the short run. Even with a three disc array, you're getting more storage for your money, and you can always restripe it onto a fourth disc.
It's not all porn, and some of it is high def, in h.264. And I don't even edit videos, I just watch 'em.
That is true. However, I would fill a terabyte easily, and right now, I'm guessing it's cheaper to buy three 500 gig drives than two 1 tb drives.
You highly doubt he's got SATA?
The one thing I will say is, either have another disk (even a USB thumb drive) to boot off of, or do some sort of RAID1 across them. You almost certainly want software RAID on Linux, and you don't want to try to teach a BIOS to boot off of your array.
Don't thank God, thank a doctor!
I use whatever disks I had laying arouind to build my NAS but the data is still protected. The software I use is developed by Lime-Technology http://www.lime-technology.com/. It's NOT RAID and instead is a JBOD setup with the first drive being a PARITY drive. This means that if one of my drives fails I still have access to the data. If TWO drives fail I lose TWO drives worth of data - *not* the whole damned thing. The data is not striped and is stored in a ReiserFS F/S so I can pull a drive and mount it elsewhere if I desire. This also means that if a drive isn't being acively used it can be spun down - try that with a striped RAID :-) When you write only the parity disk and the disk being written to need to be spinning, love that. The system can hold more than 12 disks if you use their top of the line software - mine only holds 12 total for a bit over 4.5TB worth of storage. Boots a customized Linux off of a memory stick and yeas source for mods is distributed but not the source for the WEB management stuff - he appears to be GPL compliant.
:-) Check out the user forums on the site, the developer is pretty responsive...
Some limitations: Parity drive must be as big or bigger than all others. Each drive is a seperate mount point unless you use a funky sort of shared folder feature. The system doesn't have as high a transfer speed as a RAID would, however it streams video for me to an XBMC XBOX1 just fine. It doesn't have a super robust system to notify you of failed drives out of the box although some users have added this functionality. Not a whole lot of security although I've met someone who has added this on and the developer is also working on expanding this in the future. Pretty decent support overall IMO and he's just moved to the 2.6 kernel - I've yet to upgrade though.
All in all this system seems to be perfect for HTPCs and I also use it to store backup images of all my workstations. All of my music and DVDs are stored on it and I'm about to build a second one as I need still more storage and have "spare" drives that I've pulled from the existing one as I've upgraded that I'd like to put to good use
Build it, Drive it, Improve it! Hybridz.org
I should've searched for unRAId in the discussion before posting my own endorsement - I'd be able to mod you up then (doh!).
:-) Not having striped data also rocks, lets me spin down everything not in use. ResierFS is easier to recover data from than damned weirdo' striped data sets too - there's a reason that recovery firms specifically mention if they can recover from RAID crashes heh. All in all it's a good system, several of my friends now run it and I'm building a second system for my used disks that get upgraded out of the primary system.
I 100% agree with you on unRAID - it rox! I'm not using any sort of background Linux stuff to do my backups but I do use an unattended backup package that works just fine with unRAID (Acronis). The speed could be better (I'm not yet on the 2.6 based version) but it keeps up stutter free with my XBMC box so it's fast enough for me.
Build it, Drive it, Improve it! Hybridz.org
First, forget hardware RAID solutions. While their effectiveness is debatable for commercial and enterprise applications, it's definitely overkill for a home solution (particularly a media server). (Unless of course you have more money than sense.) But Linux RAID (md, multi-disk) is mature, stable, and well-tested. It's portable from one machine to another. It's free. With even modest hardware, it will be plenty fast for a home media server. Don't even bother with those pseudo RAID solutions that are built into your motherboard (or implemented via firmware or a proprietary driver): Linux software RAID and true hardware RAID beat these solutions in just about every conceivable way.
Now, do you really need RAID? Many people equate RAID and backup. They are not equal. RAID is no substitute for a good backup. In the case of a media library, you do own all the media, right? :) There's your backup. Worst case, you lose the time spent ripping the media. So there's an argument to just use JBOD. However, I do use RAID5 for a bit of safety. If two drives fail simultaneously, I fall back on the media. But if only one drive fails, then I can replace the drive, rebuild the array, and lose very little time. It's quasi-backup. It's just too expensive for an individual to maintain multiple live copies of this much data.
If I were to build a fileserver for someone right now, this is what I'd use:
I have another post on this thread where I went into more detail about the choice of case. Quick summary: if you care about noise, don't cram your drives close together, or you'll have to use an obscenely loud high-speed fan to keep them cool. If you allow at least 0.5" between each drive, you can keep your drives cool with a low-speed (quiet) fan. That's why I'm buying the Lian Li case mentioned above: room for up to nine drives, with adequate spacing between each.
I actually put those (15) drive inside of a SuperMicro 4U rackmount/tower case with the triple 760W PSU (that's a $600 case). But for a backup system or less critical system where a few hours of downtime doesn't matter, the Lian-Li case is suitable along with a regular PSU. Using a modular plug PSU with a spare in the closet can be a serviceable method instead of buying a large expensive enclosure.
/boot and / and swap) as RAID1 across all 4 disks, then use the rest of the disk as a RAID5 or RAID10 volume.
I was skeptical of the 5:3 backplanes too. But the 5:3 backplanes actually do a pretty good job of cooling. They're aluminum trays, it's all metal-to-metal contact points, so the heat spreads out a bit. There's also a 80mm fan on the back of each backplane that pulls a small amount of air through the drives. Some (most?) backplanes also come with a temperature sensor that you can set for temps of 50/55/60 Celsius which causes a buzzer to go off in the unit when it gets too warm.
As for (3) way RAID1 vs (2) way RAID1 + hot-spare... Well, if I'm going to dedicate the drive to being available for the RAID as a hot-spare, why not get use out of it and make it active? Then, when a disk fails in the RAID1, I'm not depending on a single disk while the hot-spare gets synchronized.
Which is one of the downsides of Software RAID. It works at the partition level, rather then the whole disk level. So it's more difficult to share hot-spares between different types of arrays. OTOH, it provides a lot more flexibility compared to hardware RAID. If you were doing a (4) disk RAID, you could do the first few partitions (for
Wolde you bothe eate your cake, and have your cake?
I used to run both Mirroring and RAID 5 in the past (not at the same time), but I found it overly complex for simple usage, plus it doesn't allow for what happens if the controller card fails or system goes up in smoke? Plus once you build a RAID you can't just add a drive to it easily or cheaply (I'm over simplifying this I know)
I find the best is to have another computer or possibly external drives sitting somewhere, and just make weekly/daily/monthly/whatever rsync copies between them. This allows for you to recover from user error like accidental deletions, and if the entire system goes down your covered. Want more space? add a drive and presto, more space. No special configuration required. No expensive controller cards (or cheap and slow controller cards) required.
And if your like me, you have another set of drives stored offsite... but I'm pretty paranoid about such things. =P