failed data disk - replace with 2 smaller disks


zakna

Recommended Posts

Hello,

I have 3 disks unraid array (parity: 3TB, disk1: 3TB, disk2: 2TB) with failed data disk1. I would like to ask you if there is an option to replace disk1 (3TB) with 2 smaller disks (2x2TB)?

 

I've read Wiki ( https://lime-technology.com/wiki/index.php/Replacing_a_Data_Drive ) and as I understand it is only possible to replace failed disk with same or larger drive.

 

story behind: failed drive was under guarantee and I got money back instead of new drive. At a moment I have few spare 2TB disks which I could use in the array. Currently the array is down and I do not have possibility to borrow any 3TB or larger disk to recover my data (have only 4x2TB drives available).

Link to comment

No. There is no way to rebuild to a smaller disk. The data should still be available on the server if parity is current.

 

Do you have backups of your data? Do you care if it all gets lost?

 

There is a risky way of moving data around with a failed disk, risky because if another drive fails while the array is running degraded, you will lose all the data on both failed disks.

 

If you accept that risk, you could copy all the data from the emulated failed disk to a couple of your 2TB drives across the network to a local desktop, then once the data was copied you could set a new config with the OTHER couple of 2TB disks and the 3TB parity with the existing 2TB data disks. Then copy the data back across the network to the newly formatted disks in unraid.

 

There are a several permutations of the above strategy utilizing a single cache slot or unassigned devices depending on the hardware you have available to you, but they all involve running at risk for an extended period of time.

 

The safest option is to rebuild to another 3TB.

Link to comment

I haven't tried to run the array as data disk1 is missing. I thought that data is available only in case parity drive failes and in case of data drive fails you are unable to access the data unless recalculation is done to a new drive (from remaining drive(s) and parity drive).

 

Thanks a lot for this info. I see the risk of this action, but I will take my chances.

Link to comment

I haven't tried to run the array as data disk1 is missing. I thought that data is available only in case parity drive failes and in case of data drive fails you are unable to access the data unless recalculation is done to a new drive (from remaining drive(s) and parity drive).

 

Thanks a lot for this info. I see the risk of this action, but I will take my chances.

If you start the array with the disk missing, unRAID will emulate the disk by calculating its data from parity plus all other disks, in just the same way that it calculates its data to rebuild it to another disk.

 

Can you read the data from the emulated disk or not? If not then we need to figure out why.

Link to comment
  • 4 weeks later...

It works like you said. When I started the array (with missing disk), all data were available and not corrupted.


Here what I did:
- built a new unraid array (parity: 2TB, disk1: 2TB, disk2: 2TB)

- run rsync server on new array. Followed this thread.

- isolated both servers from my LAN (so nobody would write/read/modify any files during the recovery)

- copied all data (around 3TB) from broken array to new array via rsync. Transfer speed was around 40M/s (took around 20h in total). Used disk shares with rsync, not user shares:

rsync -av --stats --progress /mnt/disk1/photo/ rsync://192.168.1.6/mnt/disk1/backup/photo/
rsync -av --stats --progress /mnt/disk1/video/ rsync://192.168.1.6/mnt/disk2/backup/video/
...

- copied Dynamix file integrity files (integrity files were created before the disk crashed) from broken array (\\192.168.1.16\flash\config\plugins\dynamix.file.integrity\export) to new array. But before I run integrity check, I had to modified the integrity files - change path of the share folders/files (e.g. /mnt/disk1/video/ to /mnt/disk2/backup/video/). Used notepad++ to do so.

- fixed broken array (added new 2TB HDD, set new config and formatted disks) and did same excercise one more time (copy data from new array to fixed array)

Link to comment

Glad you got it all resolved -- but there was an easier way :D

 

Once you had copied all of the data from the emulated 3TB drive to your new array, the two 2TB data disks on that array had all of your data on them in the proper format for UnRAID.    At that point you could have simply shut down your arrays; moved the two 2TB data disks from the new array to your original array; and then done a New Config with the original disks from that array (a 3TB and a 2TB) and the two additional 2TB drives (with the data you copied) assigned as data drives; and your current 3TB parity drive assigned as parity.    Then you could have simply started the array and done a parity sync.

 

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.