June 4, 200818 yr I think it would be nice if we could have 2 parity drives. Since parity drives get accessed whenever any of the other drives get accessed it is most likely to fail. Adding another parity drive would make 2 good improvements. 1) If one fails you have the option of rebuilding the new hard drive by just copying the contents of the remaining parity drive a) This would make it so you don't have to access all the drives to rebuild the parity drive. 2) Better error checking. a) Right now if a bit in a file gets written wrong ( say a 0 when it was supposed to write a 1 ) then how does it know if the parity drive is wrong or if the hard drive with the actually data is wrong? b) With 3 points of reference you could compare the 3 and choose the value that 2 of the 3 have.
June 4, 200818 yr 2 parity disks wouldn't be an ideal solution. It would slow down the writes and parity checks on the server by at least 2X. And it would only offer you protection in the case of a parity disk failure. It wouldn't offer you protection from data disk failures in any way. Even with 2 parity disks, if 2 data disks fail you lose the data on both those disks. With 15 data drives and 1 parity drive, you're 15 times more likely to have a failed data disk then a parity drive. Well... maybe not 15 times since the parity disk will be run more often and be spun up and down more then any other disk in your array. But, you're much more likely to have a data disk fail. I'm all for adding more protection to the array... but 2 parity disks wouldn't really be helpful. I think the best solution would be to have a reserve drive sitting in the unRAID server that's not used at all. If one drive fails the reserve turns on and takes the failed disks place. There's a name for this time of raid backup disk but I can't remember it right now. The longer an array sits un-protected the more likely another disk will fail. I've seen people mention this as a feature request so it may be something Tom implements in the future. Your point number 1 is true though. Having a second parity drive would make rebuilding parity a snap as it just copies the contents from the other parity drive... but it's not worth the cost and the slowing down of the server to enable faster parity builds with no disks being accessed during those builds. As for number 2, it wouldn't offer any better error checking. If you're getting bits of data written wrong then you'll need to figure out what piece of hardware in your setup is causing the problem. An extra parity disk won't help save you from data corruption.
June 4, 200818 yr I agree, two parity drives on one array does not buy you much. However if you could have multiple smaller arrays then it buys you added protection for each of the smaller arrays. Still you have to ask, how many people have lost more then one drive during a fail situation. I;ve not ready any on this forum, although I suppose the condition has occured at least once. As for the spare drive sitting, waiting in the background. Hot Spare - Whereby the raid array has the intelligence to notice a drive is off line and starts to rebuild the drive onto the designated hot spare automagically. Warm Spare - Whereby you have a drive sitting idle and when a failure occurs you assign this spare drive to the slot of the failed drive rebuilding it while you diagnose the failed drive's condition. Right now we have the ability to use Warm spares in a very easy manner.
June 4, 200818 yr Perhaps the OP is suggesting that unRAID should be able to correct 2 simultaneous drive failures. The problem is that parity will only correct one - but it is certainly possible to construct an error correcting code that would be able to do correct 2. (I took a course in error correcting codes in college - where is that textbook when you need it!). The number of "parity" drives that you'd need to do double error correction would vary based on the number of drives in the array. For 8 drives I think you'd need 4 parity drives. (This was based on some quick Google searches, but may not be correct). It is definitely more than 2! I agree with others that unRAID is reliable enough with the single parity drive. Getting additional protection is prohibitively expensive. The chances of other types of failures (MB, PSU, fire, flood, ...) are likely substantially greater than the chances of 2 simultaneous hard disk failures.
June 4, 200818 yr The first "digital" computer I worked on had 40 Bit wide memory, with an additional 7 bits for "Hamming and Parity" error detection. Total of 47 Bits wide (in 1973, this was near state of the art for the Bell System Switching system) It could detect any single or double bit error. It could fix any single bit error on the fly. It could not "fix" a two bit error, since it would not have any way to know which bit to make a 1 or 0. A fair description is here: http://en.wikipedia.org/wiki/Hamming_code A second parity drive does not solve the problems of fixing errors. It is not as simple as that. The first post in this thread is incorrect, the parity drive is NOT the most used drive in our arrays. In most home use of our arrays, the parity drive is the LEAST used drive. The only time it is the most used is when you are initially loading the array with media. Once loaded with your movies, music, and pictures, the parity drive is largely idle. It is not spun up when playing music, or playing movies, unless the array has a failed disk. A "warm" spare is nice, but for many of us using the unRAID server as a home media server, wasted space. I'd rather have more movies online to choose from. Joe L.
June 4, 200818 yr A "warm" spare is nice, but for many of us using the unRAID server as a home media server, wasted space. I'd rather have more movies online to choose from. In my case, a warm spare is mandatory. especially after what just happened to me. I pulled out a drive, slid it in, clicked a button rebuilt over night and I'm online. Now after diagnosing the condition I'm finding the drive that was rebuilt from parity has corruption on one DVD, while the source drive taken off line has the DVD intact. Must do s'more investigating. $200 was well worth some peace of mind.
June 4, 200818 yr The number of "parity" drives that you'd need to do double error correction would vary based on the number of drives in the array. For 8 drives I think you'd need 4 parity drives. (This was based on some quick Google searches, but may not be correct). It is definitely more than 2! I thought RAID6 uses the capacity of two drives and can suffer two simultaneous drive failures. http://www.enhance-tech.com/press/Press%20How%20RAID%206%20Work.htm
June 4, 200818 yr I had heard of RAID6 but never read about it before. So they have designed a technique to allow for double error correction with up to 24 drives with 2 parity disks. It sounds like it carries quite a performance penalty unless done in hardware. Cool stuff!
June 4, 200818 yr The number of "parity" drives that you'd need to do double error correction would vary based on the number of drives in the array. For 8 drives I think you'd need 4 parity drives. (This was based on some quick Google searches, but may not be correct). It is definitely more than 2! I thought RAID6 uses the capacity of two drives and can suffer two simultaneous drive failures. http://www.enhance-tech.com/press/Press%20How%20RAID%206%20Work.htm RAID6 stripes the data across all the drives though... so it's able to use 2 parity drives to help re-construct data in the event of 2 drive failures. With unRAID, from what I've learned, 2 disk failures are not possible to recover from and there's not a way around it. One of the major selling points for unRAID is that if 2 disks fail, you lose the data on those disks but your other disks are still in tact. You can put them in another PC and read the data off of them. With RAID6, if you have 15 disks and 2 fail, you lose everything on all 15 the disks. Also, none of the disks can be put in another PC and have data read off of them. I did a lot of research on the different RAID's before settling on unRAID. For a home server, unRAID is better (IMO) then any other hardware/software based raid solution. If I were to do something other then unRAID I would have done RAID6 though. The only downside is I would have bought a $800 card controller as well as all 1TB drives (I wouldn't have been able to use my existing 5 drives I had on hand).
June 4, 200818 yr I had heard of RAID6 but never read about it before. So they have designed a technique to allow for double error correction with up to 24 drives with 2 parity disks. It sounds like it carries quite a performance penalty unless done in hardware. Cool stuff! Yep... you pretty much need to run a RAID6 setup with hardware. And the hardware ain't cheap either . One downside to hardware based raid is if the raid controller card fails, you better be able to get a working version of that same card back in your system or all your data is toast. You may be able to use a different card from the same manufacturer, I'm not sure on that though. People that build RAID6 always recommend you stick with the major brands for this reason. If you built a RAID6 array with some unknown companies controller card and they go out of business in 2 years, you may not be able to find one of their cards in 3-4 years if your current card were to fail.
June 4, 200818 yr The first post in this thread is incorrect, the parity drive is NOT the most used drive in our arrays. In most home use of our arrays, the parity drive is the LEAST used drive. The only time it is the most used is when you are initially loading the array with media. Once loaded with your movies, music, and pictures, the parity drive is largely idle. It is not spun up when playing music, or playing movies, unless the array has a failed disk. I think this would depend on the end user. If you rarely write files to your array and do a lot of reading from the array then yes, the parity drive would be the least used drive. But, if you constantly write to the array (nightly PC backups), new movies you buy every week, new music, new pictures you took, saved downloads that may be worthwhile to keep, ect...) then the parity drive will be the most used drive in the array. This is especially true if you have a lot of drives in your array. I can't speak for the average unRAID user here... but I know in my situation the parity drive will be one of the (if not THE) most used drives in my unRAID array.
June 4, 200818 yr I think this would depend on the end user. Based on your usage profile, you are absolutely correct. ( :-[Embarrassed in that I don't do nightly backups) Joe L.
June 4, 200818 yr I think this would depend on the end user. Based on your usage profile, you are absolutely correct. ( :-[Embarrassed in that I don't do nightly backups) Joe L. You should know better with all those years of experience.... Getting back to RAID6 vs unRAID with two parity drives.... If RAID6 could survive a two disk failure, then with the right algorithm and two parity type drives, unRAID could do it.. Possobly slower, but then again, our CPU's are underutilized.. I remember years ago when they benchmarked RAID5 Hardware vs Linux Software RAID5 and the linux machines with decent CPU's always won out.. Where the hardware controllers help is when they have caching. The higher end 3ware's, for example, have caching if you have a battery backup unit and it adds a huge performance boost as it offloads the processor and buffer cache a great deal. I remember running a whole organization's data distribution and production on a P90 and the main reason it survived the onslaught was due to a caching controller and good SCSI drives. Do I think this is a worthwhile direction for unRAID? No. What would be worthwhile is having multiple arrays of various personalities. "Protected JBOD", RAID0, RAID1. Being able to have multple Protected JBOD arrays could bring the possibility of huge arrays into the fold for unRAID.
June 4, 200818 yr I think this would depend on the end user. Based on your usage profile, you are absolutely correct. ( :-[Embarrassed in that I don't do nightly backups) Joe L. You should know better with all those years of experience.... Getting back to RAID6 vs unRAID with two parity drives.... If RAID6 could survive a two disk failure, then with the right algorithm and two parity type drives, unRAID could do it.. Possobly slower, but then again, our CPU's are underutilized.. I remember years ago when they benchmarked RAID5 Hardware vs Linux Software RAID5 and the linux machines with decent CPU's always won out.. Where the hardware controllers help is when they have caching. The higher end 3ware's, for example, have caching if you have a battery backup unit and it adds a huge performance boost as it offloads the processor and buffer cache a great deal. I remember running a whole organization's data distribution and production on a P90 and the main reason it survived the onslaught was due to a caching controller and good SCSI drives. Do I think this is a worthwhile direction for unRAID? No. What would be worthwhile is having multiple arrays of various personalities. "Protected JBOD", RAID0, RAID1. Being able to have multple Protected JBOD arrays could bring the possibility of huge arrays into the fold for unRAID. The only way unRAID could have protection for a 2nd disk crash would be to strip the data across multiple hard drives. The problem with striping is, as I mentioned above: 1.) Disks can not be taken out of the array and read from a different computer. 2.) If more then 2 disks fail you lose data on every disk (everything on unRAID would be gone forever). 3.) All the disks must be the same size. This is how it works with other RAID setups... but maybe something could be developed to duplicate data across different sized disks. unRAID is an attractive solution because it does not stripe. If I lose 2 disks I only lose the data on those 2 disks. It's much easier for me to re-rip 2 drives worth of data then 15. Cost wise, for a home based solution, the current unRAID setup can't be beat. With unRAID if you're really worried about data loss, you could create a copy of your most important files on multiple data drives. This way, even if 2 disks fail, you will still have that important file on one of the remaining data drives. Important files should be backed up on multiple hard drives, and burned to CD/DVD's and stored off-site. For your other files (like movies), don't create multiple copies of those. Those can easily be copied from DVD/HD/Blu-ray back to unRAID over a weekend. Edit: Here's an idea though... maybe Tom could implement RAID1 (mirroring) for certain drives. This way, you could say "I want disk 7 to be a mirror copy of disk 3." In the event that disk 3 fails and during parity rebuild the parity disk dies, you can replace both the parity disk and disk 3 and unRAID would be able to re-construct all the data. A RAID1 setup like this would be helpful for your most important files that you can't afford to lose. The only downside is you'll need 2 of the same size disks. If you buy 2 1TB disks for a total of 2TB worth of data, with RAID1 you'll only have 1TB available. I actually think a RAID1 setup on a disk by disk basis would be a nice addition to unRAID. It's something that Tom could use to get more users on board with "extra" security being offered. You get your standard 1 disk failure protection, and then you can assign certain disks of your choice if you'd like them to have a 2 disk data protection setup.
June 4, 200818 yr Here's an idea though... maybe Tom could implement RAID1 (mirroring) for certain drives. [...] A RAID1 setup like this would be helpful for your most important files that you can't afford to lose. [...] You get your standard 1 disk failure protection, and then you can assign certain disks of your choice if you'd like them to have a 2 disk data protection setup. Seconded.
June 5, 200818 yr The only way unRAID could have protection for a 2nd disk crash would be to strip the data across multiple hard drives. I'm not so sure this is 100% true. If 1 stripe is protected by 2 parity blocks with raid6. Then 1 stripe in unRAID (meaning 1 disk) can be protected by 2 parity blocks also. I think it depends on which gets folded (xor'ed) where and which parity drive takes precendence over the other in the event of a failure. If it works with striping it will work without, the logic will just be more complicated. Consider these thoughts.. and I'm sort of thinking out loud.. all hypothetical. If a set of drives is protected by two parity drives. 1 drive fails (and is not the parity drive), The rest of the array continues with one drive filling in the missing drive. If a second data drive fails, there is a second parity drive to fill in the missing second data drive. (Wile the first parity drive is filling in the missing data of the first failed drive). I bet things would run slow, but they would still run. The problem is that on writes parity is computed twice. I suppose almost like mirroring. Which now makes me wonder if parity can be mirrored and when a failure occurs one drive is used to build/fill in while the other is used to write/update?? Random thoughts.. but then again, that's how brainstorming works... Jeeze get me outta this lightning storm! I really don't thnk this is quite as practical as just being able to have multiple protected JBOD arrays. Food for thought.. anyone hungry?
June 5, 200818 yr I'm not 100% sure... but I'm pretty sure you can't have 2 parity disks for 2 disk protection unless you want to stripe data across all the data disks. RAID6 can rebuild from a 2 disk failure because it's able to compare data across all the drives in the array. Each disk has bits of of a file written to it and used with 2 parity disks it's able to gather the missing pieces. But under unRAID, each disk has all the bits of a file written to one disk. When compared to parity it's only able to find the missing pieces in the event of 1 hard drive failure. I can't see how it would be possible to have a second parity drive cover you from 2 data disk losses. From everything I know about RAID setups, it's not possible unless data is stripped. You could create a mirror copy (RAID1) of parity, but that would only save you from a parity failure... which is less likely then a data disk failure. Currently the best setup is an unRAID server and you simply copy important files accross multiple data disks. This gives you multiple drive protection at the expensive of less total storage. A RAID1 setup added to unRAID would make the process more seamless as you wouldn't need to copy an important file to 2 different disks manually. Simply add it to a share that is shared as a RAID1 setup, and unRAID will mirror that file across the 2 disks you choose. This would give you seamless 2 disk protection of your important files.
June 5, 200818 yr I'm not 100% sure... but I'm pretty sure you can't have 2 parity disks for 2 disk protection unless you want to stripe data across all the data disks. RAID6 can rebuild from a 2 disk failure because it's able to compare data across all the drives in the array. Each disk has bits of of a file written to it and used with 2 parity disks it's able to gather the missing pieces. It's possible, but not practical. I've seen a vision of how it would work in my mind, I just cannot put it into words or into code. It's just not practical or worth it for the unRAID environment. I don't even believe a RAID1 drive for part of the protected JBOD is worth while. RAID1 for cache or another array, yes, but not for the Protected JBOD. Instead I believe an application layer should be used like my ftwd utility. My utility continuously scans the file system, but also tracks new files and can trigger jobs when files change or new ones appear. The job can be a local rsync or an offsite rsync. Now for cache or a supplementary root file system, RAID1 is needed so that the array continues if a drive fails.
June 5, 200818 yr Author Wow all these responses have a lot of valid points. Let me point out that i never said anything about 2 data disks failing. I'm pretty sure that you cannot have two data disks that aren't stripped fail and still be able to rebuild them without some kind of raid 1. I really like WeeboTech's hot spare idea even though I'm not sure what the difference is between that and warm spare. Say.. A data drive fails at 2AM while I'm downloading stuff from bit torrent. It would be nice to have everything working and fully redundant when i wake up the next morning. O and just a quick question. Does unRAID let you hot swap disks that are active but not being written to or read from? Thanks
June 5, 200818 yr O and just a quick question. Does unRAID let you hot swap disks that are active but not being written to or read from? Thanks unRAId has no hot-swap capability at all. You must stop the array, power down, replace the drive, power up, and then re-start the array. If the drive was already powered up and cabled, but un-assigned (the "warm" spare) you just need to stop the array, assign the "warm" drive to the slot with the failed drive, then re-start the array. (A power down is not needed until you go to remove the failed drive) Joe L.
June 5, 200818 yr Author If you have to assign the warm spare isn't just a like a regular spare drive? It would be nice to have it automatically do that for you
June 5, 200818 yr If you have to assign the warm spare isn't just a like a regular spare drive? It would be nice to have it automatically do that for you The difference is modest but important. With a warm swap you don't have to open the box and plug it in, you can do the swap from the comfort of your TV room if you want. Assuming some sort of VPN setup, you could do this all remotely. There has been discussion of a nice-to-have automated feature that would use the cache drive as a spare. In the case of a disaster, the system could (if necessary) flush the cache drive to the regular drives, then auto-reassign it to the failed drive slot and rebuild - all without human intervention. The downside being that the cache drive would then need to be as large or larger than any drive you wanted to protect. Other than this sounding like a neat idea, I don't think anything more has come of it. Bill
June 5, 200818 yr Hot spares have their place, if you absolutely need maximum availability, but most of us don't. For a discussion of the downside of hot spares, see this: http://lime-technology.com/forum/index.php?topic=1731.msg12108#msg12108.
June 5, 200818 yr Two parity drives is a must have future feature in my opinion. Let me explain, and unRAID box never works harder, longer or hotter than when it is creating or restoring parity. This means should a parity drive fail not only do you have an extended period of no parity recovery ability but in this exact same period you will be pushing your box hard to make a new one. It stands to reason that the risk of a data disk breaking during this period will be higher (if not easily quantifiable) than when it is in normal protected use. With all things RAID and recovery its only really risky during the time when something you only have one of is broke. A mirrored parity drive therefore removes alot of risk.
June 5, 200818 yr Two parity drives is a must have future feature in my opinion. Let me explain, and unRAID box never works harder, longer or hotter than when it is creating or restoring parity. This means should a parity drive fail not only do you have an extended period of no parity recovery ability but in this exact same period you will be pushing your box hard to make a new one. It stands to reason that the risk of a data disk breaking during this period will be higher (if not easily quantifiable) than when it is in normal protected use. With all things RAID and recovery its only really risky during the time when something you only have one of is broke. A mirrored parity drive therefore removes alot of risk. Or... Tom could allow us to mirror any drive we'd like (Parity, data, cache) and we can all have RAID1's of what we feel is important
Archived
This topic is now archived and is closed to further replies.