January 3, 201610 yr I have an array with 3TB parity & four drives (3TB, 3TB, 3TB, 1TB) then a cache drive of 1.5TB. The cache drive is showing age so I want to add another drive to the cache (creating a pool) so there is redundancy for the drive that's getting old. I've ordered a new 2TB drive (arrives Tue). Mythtv uses the cache drive for recording TV, currently using about 700GB of that drive. Should I.... 1) replace the 1TB drive in the array with the new 2TB drive, then add the 1TB drive to the cache pool 2) add the 2TB drive to the cache pool and leave the 1TB drive where it is in the array I'm concerned there doesn't seem to be a method for moving/replacing/etc the 1TB drive without leaving the array vulnerable since it is unprotected while rebuilding parity or unprotected while rebuilding the replaced drive. I saw a thread from 2008 where this was discussed, I'm surprised a "remove disk from array" feature hasn't been added since then.
January 3, 201610 yr Don't understand what you mean about removing a drive. In neither of the options you listed are you removing a drive. If you rebuild a drive to a larger drive, you still have the original drive, and parity is valid for both the original and the rebuild. Don't know why you bring up rebuilding parity since neither of the 2 options you listed involve a parity rebuild.
January 3, 201610 yr Author I brought up removing the drive since I don't have the 2tb drive now, I could remove the 1tb drive and rebuild parity then add it to the cache pool before the new drive arrives on Tuesday. If you rebuild a drive to a larger drive, you still have the original drive, and parity is valid for both the original and the rebuild. Is it the case that if another drive (3TB) fails while rebuilding (the 1tb->2tb) the 3TB drive is still protected by parity? - if so I'm sorry I don't understand how that works, As I understand it, if another drive (3TB fails while the drive is being replaced (1tb->2tb) the newly failed drive (3tb) was not protected. Could you point me to where someone has walked through this scenario since I must me missing something? Maybe the part I'm missing is that the rebuild is really quick or doesn't involve exercising the other drives in the array (minimizing the chance another drive will fail). I've already moved everything off the 1TB drive so still having the original drive seems irrelevant. PS. I'm NOT speaking bad of unRAID, I'm a FIRM believer this is the best product for my home server. I'm very thankful to Frank (my neighbor) for telling me about it, for everyone who works on developing and supporting it and especially for everyone who contributes to the forums. I'm am trying to understand the best option here and accommodate my phobia of loosing data.
January 3, 201610 yr I brought up removing the drive since I don't have the 2tb drive now, I could remove the 1tb drive and rebuild parity then add it to the cache pool before the new drive arrives on Tuesday. If you rebuild a drive to a larger drive, you still have the original drive, and parity is valid for both the original and the rebuild. Is it the case that if another drive (3TB) fails while rebuilding (the 1tb->2tb) the 3TB drive is still protected by parity? - if so I'm sorry I don't understand how that works, As I understand it, if another drive (3TB fails while the drive is being replaced (1tb->2tb) the newly failed drive (3tb) was not protected. Could you point me to where someone has walked through this scenario since I must me missing something? Maybe the part I'm missing is that the rebuild is really quick or doesn't involve exercising the other drives in the array (minimizing the chance another drive will fail). I've already moved everything off the 1TB drive so still having the original drive seems irrelevant. PS. I'm NOT speaking bad of unRAID, I'm a FIRM believer this is the best product for my home server. I'm very thankful to Frank (my neighbor) for telling me about it, for everyone who works on developing and supporting it and especially for everyone who contributes to the forums. I'm am trying to understand the best option here and accommodate my phobia of loosing data. You are right. It is true that parity only protects you from a single failure at a time. And rebuilding a drive requires all of the drives, including parity, to be read. The rebuild reads all bits of all drives to calculate the bits for the rebuild, so not quick and it does exercise the other drives quite a bit. Actually, what I said about parity being valid for the original and the rebuilt drive is only true if no other writes to any data disks (which would update parity of course) occur during the rebuild. There is a way to clear a drive while it's in the array by using the dd command to write zeros to the entire disk, using the md device, not the sd device, so parity gets updated to reflect the zeros written to that disk. Then if the disk is removed, parity is still valid because that all zeros disk had no affect on parity anyway. Then you New Config without the disk and trust parity. I will leave it up to you to search for the threads where that is discussed. See search tips in my sig.
January 3, 201610 yr Author Thanks! As for manually writing zeros and trusting parity, I understand the process but I'm reluctant to follow that procedure. My main reluctance is that it hasn't been added to unraid as a feature. It seems to be a strait forward process that's been discussed here for years so I figure there must be a problem with the process and that's why it hasn't been implemented, at minimum, as a plugin. Have you removed a drive this way? I think one could follow that process then run a parity check after to verify. It would still exercise all the drives the same amount as a rebuild but in this scenario one is never without protection, right? If the second (3TB) drive fails during/after the zero write it would be protected by parity. If one of the 3tb drive failed during the parity check after trusting parity then with the manual procedure it may not be handled right but if this were written into a plugin, the plugin could monitor the parity check and would be able to determine if the discrepancy it finds (while checking parity) is the fault of a mis-trusted parity (then trust the 3tb drive & update/correct parity) or disc 3tb malfunction (then trust parity). So overall what would you do, put the new 2tb in cache pool or move 6 month old 1tb to cache pool? 2tb is double what I need in cache but I'm only using 7.05TB of 10TB in the array so I don't need the extra TB there either. If you think I should move 1tb to cache pool, I could 1) start now by removing it from the array and rebuild parity 2) writing zeros to the drive & trust then test parity or 3) wait till Tue & rebuild the 1tb to the 2tb disk? Which would you do? thanks Everend
January 3, 201610 yr I have not personally used that procedure for removing a drive. I would just wait for the new drive and do things the normal way. As for whether to use the new drive as cache or data, are you aware of the btrfs disk usage calculator? Since either scenario will leave you with mismatched drive sizes in the btrfs raid1 pool, there will be some wasted space.
Archived
This topic is now archived and is closed to further replies.