How to proceed?


NLS
Go to solution Solved by JorgeB,

Recommended Posts

So I have an array with 11 disks + parity + cache.

I managed to kill (I'll spare you the details, but was my fault), two disks.

The problem 99.99% is the controller of the two disks (the power supply input probably), happened before the disks actually even fully powered on (heads probably parked) - so the data are 99.999% intact.

I am first of all looking into repairing the actual controllers (at least one, because then the parity will help me with the rest), but I am looking at worse case scenario (as in one of the disks I do have data I cannot find again), so I would like to know these:

 

1) Is it possibly to somehow bring online the server in some "maintenance read-only" mode with the two disks missing and access my remaining data (and possibly bring up containers and other services that don't rely on the array)? And not mess the parity (this is why I say read-only) in case I do bring the missing disks online later.

 

2) If the controller is replaced on one of the disks, I guess the disk will have different ID, yet it is potentially still the same disk and parity should stay VALID (to recover the other disk). Is it possible to tell UNRAID to actually treat that disk (with different ID) as that same disk that is missing? I am guessing there is no such mode of operation, but I would very much love if I could do that.

 

3) If I don't recover my disks and data, get two new disks, the proper way to bring the array online with the remaining data, is in the FAQ I guess?

 

Thank you.

 

Edited by NLS
Link to comment
  • Solution
21 minutes ago, NLS said:

1) Is it possibly to somehow bring online the server in some "maintenance read-only" mode with the two disks missing and access my remaining data (and possibly bring up containers and other services that don't rely on the array)? And not mess the parity (this is why I say read-only) in case I do bring the missing disks online later.

No, but you could mount the disks individually with UD in read-only mode.

 

21 minutes ago, NLS said:

Is it possible to tell UNRAID to actually treat that disk (with different ID) as that same disk that is missing?

Yes, manually, but yes.

 

21 minutes ago, NLS said:

3) If I don't recover my disks and data, get two new disks, the proper way to bring the array online with the remaining data, is in the FAQ I guess?

Tools -> New config - create a new array without the missing disks and re-sync parity.

  • Thanks 1
Link to comment
11 minutes ago, JorgeB said:

No, but you could mount the disks individually with UD in read-only mode.

 

Yes, manually, but yes.

 

Tools -> New config - create a new array without the missing disks and re-sync parity.

 

1) I understand. So this involves ignoring the disks for now (so go to #3 solution) and if I manage to "fix" the disks and comments just see them with UD and move the data manually back to array, right? (and then possibly add the disk back in the array if it is fixed) I undertstood correctly?

1b) I used to know this, but don't remember... if I manage to fix the disk later, but my array is already re-synced without the missing data in the meantime, can I add the "new" disk with its existing data? (i.e. not format it when I extend the array and instead "add" it's contents and re-sync parity again)

 

2) More details about the manual way that I can make UNRAID treat a different ID disk as a previous ID disk of the array? (if I know the platters contents are exactly as they were)

 

3) Thanks.

 

Link to comment
7 minutes ago, NLS said:

1) I understand. So this involves ignoring the disks for now (so go to #3 solution) and if I manage to "fix" the disks and comments just see them with UD and move the data manually back to array, right? (and then possibly add the disk back in the array if it is fixed) I undertstood correctly?

Not quite following, you cannot start the array with 2 missing disks and single parity, it's also not possible to start the array in read-only mode, if there's something you need now you could mount the disk(s) individually with UD in read-only mode just to access the data, if you do a new config without the missing disks and start the array parity will be invalid and it would prevent future recovery if you fix one of the missing disks.

 

10 minutes ago, NLS said:

1b) I used to know this, but don't remember... if I manage to fix the disk later, but my array is already re-synced without the missing data in the meantime, can I add the "new" disk with its existing data? (i.e. not format it when I extend the array and instead "add" it's contents and re-sync parity again)

Yes, you'd need to new another new config, add new disk(s) and re-sync parity.

 

10 minutes ago, NLS said:

2) More details about the manual way that I can make UNRAID treat a different ID disk as a previous ID disk of the array? (if I know the platters contents are exactly as they were)

See here for a recent example:

https://forums.unraid.net/topic/128492-multiple-disabled-disks/?do=findComment&comment=1170517

 

  • Thanks 1
Link to comment
31 minutes ago, JorgeB said:

 

So to bring this to my case.

I have disk 5 and disk 9 broken.
I replace disk 5 controller, so although it is the old disk 5, it shows as a new disk unknown to the array.

I make new array config, assign the new disk 5 as disk 5 again, check "parity is already valid" and "maintenance mode" and see if disk 9 is emulated ok.

If it does, it means my new disk 5 is "ok" for UNRAID to be used normally and can be used to actually rebuild disk 9 (when I replace disk 9 with a fresh one).
Right?

 

Link to comment
Just now, JorgeB said:

Correct, you also need to assign the new disk9 when you do the procedure, it must be same size or larger then old disk9.

 

You confused me again. :D

To do the test if disk9 is emulated properly, I need a disk assigned as disk9? Can't I leave it missing just for the test?

(since I will really be missing it, until I get an empty new one)


Ah! I understand. Since I make a new config, I cannot make a new config with "missing" disk9 if I don't assign anything to position 9.

It is just for the first start, to consider disk 9 initially part of the array (without looking at the contents) and then make it "missing" to see if it is emulated properly.
I get it now.

 

My only issue with this is:
If I get a new empty disk9, add it to new array just as maintenance (just to make it "missing"), bring it offline, check if emulated (old disk9 contents)... and then bring it back to array... How will the array know to sync back disk9 contents? (instead of just building parity using the empty data of new 9?)

 

Link to comment
5 minutes ago, NLS said:

To do the test if disk9 is emulated properly, I need a disk assigned as disk9?

Yes, you need a disk there, that disk won't be touched initially but needs to be assigned anyway for the procedure to work, and like mentioned it needs to be the same size or larger than the old disk.

 

7 minutes ago, NLS said:

My only issue with this is:
If I get a new empty disk9, add it to new array just as maintenance (just to make it "missing"), bring it offline, check if emulated (old disk9 contents)... and then bring it back to array... How will the array know to sync back disk9 contents? (instead of just building parity using the empty data of new 9?)

Because the initial start in maintenance mode doesn't mount the disk, it just records that a disk is there and it's capacity, once you unassign that disk it will be emulated based on parity and the remaining disks.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.