JimBob Posted February 6, 2018 Posted February 6, 2018 Hi, I recently experienced a HBA failure that caused a bit of havoc on my array, causing one of my parity drives to fail, and one of my data drives. At first I did not realize this was a HBA issue and attempted to rebuilt the data drive off my existing working parity drive, then once that was done rebuild my 2nd parity. This did not work The issue I then ran into was the whole HBA failing causing write errors to all drives, before I could rebuilt my failed data drive and then rebuild my second parity. I have now replaced the HBA with a working one but my once working parity drive, with correct parity information, is now showing as unassigned. "Screenshot" of my array before the total failure, with a failed data drive and a failed parity. This is where I attempted to rebuild my data drive then my parity off my working single parity: Screenshot of my current array status now I have my new HBA: As you can see, my previously valid 10TB parity drive, ending in 1DB is now unassigned. meaning I have no parity data to rebuild my data drive off. My hope is, can I tell unraid that the data on the parity drive 1DB is, in fact valid and to add it to my array without wiping the parity data, as that is currently the only drive I have that has valid data on it so I need that to rebuild my failed data drive ending in 2Y9. Is this possible? Or am I out of luck having both parity drives down and 1 data. Hope this makes sense, if not I'm happy to explain more. Thanks!
JorgeB Posted February 6, 2018 Posted February 6, 2018 There's a way but it will start rebuild and overwriting disk5 at array start, is disk5 a new disk or the existing old disk? If it's the old it might be best to do a new config to re-enable it, assuming no new data was written once it got disabled.
JimBob Posted February 6, 2018 Author Posted February 6, 2018 Disk 5 is an old disk, but currently has no data on it as it was mid rebuild when the HBA failed first time. I think when it was disabled at forst and running emulated, some data was written to it. If i do have to start afresh with that drive, losing the data I can get the data back by other backups of mine. Just thought best to see if I can use parity.
trurl Posted February 6, 2018 Posted February 6, 2018 You should be able to go to Tools - New Config. There it will let you change any drive assignments, including assigning that parity drive. Then when you go to start the array there should be a checkbox you can check to tell it parity is valid. After that, you should be able to get it to rebuild disk5 by stopping array, unassign disk5, start array, stop array, reassign disk5, start array to rebuild. But your 2nd screenshot seems to indicate parity2 and disk5 are new??? Maybe I am misunderstanding something about this scenario. Maybe johnnie will have more to say.
trurl Posted February 6, 2018 Posted February 6, 2018 If you think parity1 is valid then you should probably unassign parity2 during the New Config until you get your data rebuilt.
JorgeB Posted February 6, 2018 Posted February 6, 2018 OK, if the disk failed mid rebuild you can use the invalid slot command: -Tools -> New Config -> Retain current configuration: All -> Apply -Assign any missing disk(s) -Important - leave the browser on that page -Open a SSH session and type: mdcmd set invalidslot 5 29 -Do not check the "parity is already valid" and start the array, disk5 will rebuild and parity2 re-sync
JimBob Posted February 6, 2018 Author Posted February 6, 2018 So parity 2 and disk5 are both from my original array and are not new. Parity 2 drive listed in the 2nd screenshot used to be my working parity drive from screenshot 1. and disk 5 was the failed drive in screenshot 1. I'm not sure what happened for these two to now show as new. The drive that is parity2 in the 2nd screenshot is in fact the parity drive that used to be working, and has correct parity data I want to build off.
JimBob Posted February 6, 2018 Author Posted February 6, 2018 6 minutes ago, johnnie.black said: OK, if the disk failed mid rebuild you can use the invalid slot command: -Tools -> New Config -> Retain current configuration: All -> Apply -Assign any missing disk(s) -Important - leave the browser on that page -Open a SSH session and type: mdcmd set invalidslot 5 29 -Do not check the "parity is already valid" and start the array, disk5 will rebuild and parity2 re-sync Will this allow disk5 to rebuild off the now parity2 drive? Also, I really appreciate the help here guys!
trurl Posted February 6, 2018 Posted February 6, 2018 So are you saying parity1 is actually invalid for rebuilding disk5, but parity2 is valid for rebuilding disk5?
trurl Posted February 6, 2018 Posted February 6, 2018 Just now, JimBob said: Will this allow disk5 to rebuild off the now parity2 drive? Also, I really appreciate the help here guys! No, the command johnnie gave will rebuild disk5 and parity2 using parity1.
JorgeB Posted February 6, 2018 Posted February 6, 2018 Just now, JimBob said: Will this allow disk5 to rebuild off the now parity2 drive? No, this would rebuild from Parity1 which I understood was the valid one.
trurl Posted February 6, 2018 Posted February 6, 2018 Wait, you are saying parity2 is actually a valid parity1 disk??? That is even more complicated since parity2 calculation is different and a parity1 disk isn't a valid parity2 disk.
JimBob Posted February 6, 2018 Author Posted February 6, 2018 1 minute ago, trurl said: So are you saying parity1 is actually invalid for rebuilding disk5, but parity2 is valid for rebuilding disk5? Afraid so! Screenshot1 shows the before broken HBA state of my array, with parity2 operational, but parity1 down. So by my logic I'd need to rebuild disk5 off parity2, but parity2 is showing as unassigned and new to unraid
JorgeB Posted February 6, 2018 Posted February 6, 2018 If parity2 is the valid one you'd use intead: mdcmd set invalidslot 0 5
JorgeB Posted February 6, 2018 Posted February 6, 2018 But note that you can't swap parity disks, it won't be valid.
trurl Posted February 6, 2018 Posted February 6, 2018 It sounds like he is going to have to put parity2 back into the parity 1 slot. And to avoid further confusion, leave parity2 out of it completely, then see if disk5 can be rebuilt. I am beginning to doubt we have enough of the full picture here to hope for the best.
trurl Posted February 6, 2018 Posted February 6, 2018 OK, I get it now after looking at screenshot 1 again. Parity2 has always been parity2. So OK let's go back to this post from johnnie. Sorry for my confusion. 7 minutes ago, johnnie.black said: If parity2 is the valid one you'd use intead: mdcmd set invalidslot 0 5
JimBob Posted February 6, 2018 Author Posted February 6, 2018 It is a pretty confusing situation, so I hope I can explain it right. The only parity drive I know had valid parity data on it is the one with the serial number ST10000VN0004-1ZD101_ZA2191DB. This is Parity2 as seen in the first picture. This now is showing as unassigned. What I would like is to get the drive ST10000VN0004-1ZD101_ZA2191DB back into the array and rebuild disk5 off of it.
trurl Posted February 6, 2018 Posted February 6, 2018 So it would become: 25 minutes ago, johnnie.black said: -Tools -> New Config -> Retain current configuration: All -> Apply -Assign any missing disk(s) -Important - leave the browser on that page -Open a SSH session and type: mdcmd set invalidslot 0 5
JimBob Posted February 6, 2018 Author Posted February 6, 2018 Right'o, I'll try what jonnie said with that new command. Just to clarify I'll: -Tools -> New Config -> Retain current configuration: All -> Apply -Assign any missing disk(s) -Important - leave the browser on that page -Open a SSH session and type: mdcmd set invalidslot 0 5 This should then start my array with all attached drives, and claim parity2 (ST10000VN0004-1ZD101_ZA2191DB ) as the valid parity?
trurl Posted February 6, 2018 Posted February 6, 2018 1 minute ago, JimBob said: Right'o, I'll try what jonnie said with that new command. Just to clarify I'll: -Tools -> New Config -> Retain current configuration: All -> Apply -Assign any missing disk(s) -Important - leave the browser on that page -Open a SSH session and type: mdcmd set invalidslot 0 5 This should then start my array with all attached drives, and claim parity2 (ST10000VN0004-1ZD101_ZA2191DB ) as the valid parity? Yes, basically the command is saying parity and disk5 are the invalid disks and all others are OK.
JimBob Posted February 6, 2018 Author Posted February 6, 2018 Great, I'll run through the processes now. What is the worst case scenario with this? IF this somehow goes wrong, or parity2 some how is having issues, could I potentially lose my whole array, or only disk5 worst comes to worse?
JorgeB Posted February 6, 2018 Posted February 6, 2018 If parity2 isn't valid it will rebuild a corrupt, possibly unmountable disk5.
trurl Posted February 6, 2018 Posted February 6, 2018 1 minute ago, JimBob said: Great, I'll run through the processes now. What is the worst case scenario with this? IF this somehow goes wrong, or parity2 some how is having issues, could I potentially lose my whole array, or only disk5 worst comes to worse? Only parity and disk5 will be written during the rebuild. All other disks including parity2 will only be read so they will be just as before. And since all data disks are independent filesystems in unRAID, each of them will be intact with their own files and can be read without any of the other disks.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.