(6.8.1) Replacing existing disks with larger ones


esbndk

Recommended Posts

First of all, sorry for posting about a question that has been asked many times before. I searched a lot, but could not find a solution that mirrored my situation. I am a total noob and I don't really know what I am doing, so thought it best to ask before I wreck my array.

 

I have (Disk1 = 1 TB) + (Disk2 = 1 TB) + (ParityDisk = 3 TB), both 1TB drives have the same 8 shares and are High Water.

 

My 2 new 3TB drives are installed and pre cleared.

I am thinking I will use the MC function and move the data from the old drives to the new ones.

I want to move everything from Disk1 and Disk2 to one  3TB disk.

Now my problem is that both 1TB disks have the same Shares but they contain different files.

Do I first copy the whole Share from Disk1 to the 3TB disk and afterwards navigate into the Share on Disk2 and move the rest of the files into the Share that now exist on the 3TB disk. And repeat for all Shares?

Is there a way to just copy a Share and have all data from both Disk1 and Disk2 get all data copied at once?

 

Alternatively I am considering just copying all the data to a USB disk and building a new Array from scratch

Link to comment

Are you saying you already added the new disks to new slots in the array?

 

The correct method would be to simply replace each original disk one at a time with a new larger disk and let each rebuild. Then the new disks would have contained the data from the old disks. No copying needed.

 

If you have already put the new disks into new slots in the array, and you don't intend to keep the original smaller disks in the array, then you have the additional problem of removing them even if you do copy the data to the new disks.

 

So, what have you done? Are the new larger disks already added to the array?

 

Go to Tools Diagnostics and attach the complete diagnostics zip file to your next post. And answer my question

 

Then, don't do anything else without further advice.

Link to comment

Ok : ) like I said I am a noob, thank you for the rescue. And sorry for the confusing explanations that follow underneath

 

Also I messed up my question. I intend to first put in one 3TB and collect all shares on that one new disk. Then put in extra 3TB disks to get more space.

 

I added the disks to the enclosure and hooked them up to SATA to the motherboard. I formatted as XFS and mounted them via Unassigned Devices.

 

I then used Terminal on my Mac to SSH in and copied:

 

/mnt/Disk1/myfiles

/mnt/Disk1/Media

/mnt/Disk1/appdata

/mnt/Disk1/domains

/mnt/Disk1/isos

/mnt/Disk1/system

 

To .../disks/WDC_WD30EFRX

 

then I copied

 

/mnt/Disk2/myfiles

/mnt/Disk2/Media

/mnt/Disk2/appdata

/mnt/Disk2/domains

/mnt/Disk2/isos

/mnt/Disk2/system

 

To .../disks/WDC_WD30EFRX

 

I accidentally copied "/appdata /domains /isos /system" from /mnt/user/ instead of /mnt to the new 3TB drive but I deleted each share and re copied from mnt/Disk1

 

I was going to do the new config thing without the old drives. My understanding was that I would still have the option of recreating the array with old drives. I am trying to learn this and not just following steps and not fully understanding what I did. So I don't mind a little extra work. I already learned to SSH and a little about how the file structure on Unraid is laid out

 

Are you saying I could have just taken out 1TB(a) and replaced it with 3TB(new), let it rebuild, then taken out 1TB(b), let it rebuild and I would have been done? Then I will do that : )

 

I did read about that method, but what I couldn't understand about the method you prescribed is that I have my shares on 2 separate disks.

And I think it would be best to have my data on one single new larger disk. If I removed disk 1TB(a), put in 3TB(new), it would take the part of the shares on 1TB(a) and put that onto 3TB(new). Could I then remove the last small disk 1TB(b) and it would now copy the rest of the data from the shares to the correct directories on the one new larger disk, 3TB(new)?

 

1TB(a)  /Share1   /Share 2   /Appdata

1TB(b)  /Share1   /Share2.   /Appdata

3TB Parity

 

3TB(new)  Rebuilds the data from 1TB(a)

1TB  /Share1   /Share2.   /Appdata

3TB Parity

 

Now my confusion starts

 

3TB  /Share1   /Share 2   /Appdata (Adds the data to the share from 1TB(b)

1TB(b) Removed

3TB Parity

 

or 

 

3TB  /Share1   /Share 2   /Appdata

3TB(new)  Rebuilds the data from 1TB(b)

3TB Parity

 

Is there a rebuild of parity in between somewhere?

 

I am trying to learn and I assume I can just recreate the whole array with the original drives, if I mess up the process on the new ones.

 

Sorry for the massive post, I tried to make it easier to read what I did by formatting it this way, hope it worked

The MC image is to show my method of copying

Screenshot 2020-01-25 at 06.42.28.png

tower-diagnostics-20200125-0616.zip

Link to comment
12 hours ago, esbndk said:

Are you saying I could have just taken out 1TB(a) and replaced it with 3TB(new), let it rebuild, then taken out 1TB(b), let it rebuild and I would have been done? Then I will do that : )

yes

 

12 hours ago, esbndk said:

And I think it would be best to have my data on one single new larger disk.

why?

 

12 hours ago, esbndk said:

If I removed disk 1TB(a), put in 3TB(new), it would take the part of the shares on 1TB(a) and put that onto 3TB(new). Could I then remove the last small disk 1TB(b) and it would now copy the rest of the data from the shares to the correct directories on the one new larger disk, 3TB(new)?

no. It doesn't copy or move anything. Parity doesn't know or care about files. Each disk is just a bunch of bits.

 

The rebuild itself doesn't actually copy or move anything for even that 1TB(a) disk. In fact, usually the original disk isn't even installed during the rebuild. Often the original disk doesn't even work.

 

Its data is calculated from parity plus all remaining disks and written to the new disk. Once that has been done, it's finished and nothing is done with any other disks.

12 hours ago, esbndk said:

Now my confusion starts

If I am interpreting you correctly, then if you understood what I said above, the obvious answer is:

12 hours ago, esbndk said:

3TB  /Share1   /Share 2   /Appdata

3TB(new)  Rebuilds the data from 1TB(b)

3TB Parity

 

And no parity rebuild is needed. Why would it? Parity was used to rebuild the data disks, so the data disks match parity.

 

Here is the wiki on parity:

 

https://wiki.unraid.net/UnRAID_6/Overview#Parity-Protected_Array

 

I wanted the diagnostics to see if I could understand what you had already done, but since you explained it, I didn't look at them.

 

There are methods to get data from multiple smaller disks onto a single larger disk, but that is for the purpose of ending up with fewer disks and that doesn't sound like what you intend.

 

Let me know if I can clarify anything.

 

 

  • Thanks 1
Link to comment

OK,  the word "copy" is not correct in relation to rebuild from parity. I can see it is not a strict "copy" but it would recreate the data that was on 1TB(a) from the parity disk onto the new disk. I'll get the hang of the terminology at some point, Thanks for pointing it out.

 

I understand your advice to be take out 1TB(a), put in 3TB(a), rebuild, take out 1TB(b), put in 3TB(b), rebuild. 

Ending up with 2 larger instead of 2 smaller.

 

And then I am done. No need to make new config?

 

I was thinking it would be best to have the date on one single disk, so that only that disk would have to spin up. Leaving the other disks in the array "unused" ( for lack of better word) until needed. But not important, if you say it isn't.

 

Thanks for taking the time tot answer my questions, really appreciate it.

6 hours ago, trurl said:

And no parity rebuild is needed. Why would it? Parity was used to rebuild the data disks, so the data disks match parity.

Yes I understand now. I was not sure if the parity would update itself in this process, but it only does that if I tell it to, or have it scheduled.

Link to comment
2 hours ago, esbndk said:

it would recreate the data that was on 1TB(a) from the parity disk

It would read parity PLUS ALL remaining disks and use the parity calculation to recreate the data for the rebuilt disk.

 

2 hours ago, esbndk said:

And then I am done. No need to make new config?

All New Config does is allow you to assign any disks however you want, and then optionally (and by default) rebuild parity. The rebuild has already assigned the new disk to replace the old disk.

 

2 hours ago, esbndk said:

I was thinking it would be best to have the date on one single disk, so that only that disk would have to spin up. Leaving the other disks in the array "unused" ( for lack of better word) until needed.

You could make an argument for not having that unused disk in the array at all. Each additional disk is an additional point of failure. If you really wanted to you could go to the trouble to get all the data moved to a single disk, then you could New Config without the unused disk and rebuild parity. But simpler, less trouble, and less likely to cause problems to just keep the disk and keep using it with the data already on it.

 

2 hours ago, esbndk said:

I was not sure if the parity would update itself in this process, but it only does that if I tell it to, or have it scheduled.

Parity always updates in realtime. For the rebuild, there is nothing to update since parity is already correct for the data being rebuilt (that is how the rebuild is able to be correct). It is possible, though, to continue to write to disks in the array during the rebuild, including the one being rebuilt, and parity would be updated for those writes.

 

Parity check, whether you do it manually or on schedule, is just about checking (and optionally, correcting) parity. But parity is maintained all the time whether a check is done or not.

 

 

 

 

  • Thanks 1
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.