(SOLVED) Converting File Systems


Recommended Posts

I’m finally getting around to converting file systems on my ancient Atlas build from reiserfs to btrfs or xfs (haven’t decided yet). I currently have 12 disks in my array, 10x 3TB WD Greens and 2x 3TB Seagate Barracudas for parity.

 

One of the data drives is having read errors so I’m going to replace it. I picked up 5x 6TB WD Red Pro’s the other day when Amazon was having a sale. My plan, eventually, is to replace the parity drives with these, add a cache drive and keep a couple precleared and ready to go in case of drive failures. Here’s the order I’m planning to do things in:

 

1. Replace parity drive 1 with new 6TB Red Pro

2. Unassign parity drive 2

3. Replace data drive having read errors with 6TB Red

4. Use mirroring method to upgrade array to new file system

5. Add 2nd parity back to array

6. Add cache drive

 

Does this order make the most sense? I would also like to eventually convert to running unraid bare metal. As it stands I have it running as one of 4 VMs under esxi.

Edited by lazant
Link to comment

OK, I forgot about that part of the procedure!  For those interest, here is that reason:

Quote

System assumptions before you begin

 <snip>

You have one Parity drive, not two! If you have dual parity, this procedure will invalidate the second parity drive. You can still use this procedure, but you might as well unassign the second parity drive until you have finished converting all of the drives you wish to convert. Then you can reassign it and let it rebuild. Why? The first parity drive does not care about drive positioning within the array, so we can freely swap the drives around. The second parity drive *does* care, so no drives can move or be swapped, at all!

As I recall, to unassign Parity2, simply stop the array and unassign the drive.  Now restart the array and you are done.  You should also realize that there is no point in swapping in the new 6GB Parity2 drive until you have finished the conversion.  You just going to unassign it and when you reassign it, Parity will have to be rebuilt on the Parity2 drive at that time anyway.  

 

Another point.  After you unassign Parity2 in preparation to doing the conversion , be sure to run a non-correcting parity check as the first step.  If you don't have zero errors, stop at this point and take a deep breath.  

 

EDIT: I found it most helpful to built a table of the steps with the drive designations involved for each step.  I then checked off each step as I went along.  Also, I used the console to do the conversion as using a SSH session can result problems if the session gets terminated.  

 

Edited by Frank1940
  • Like 1
Link to comment
1 hour ago, Frank1940 said:

You should also realize that there is no point in swapping in the new 6GB Parity2 drive until you have finished the conversion.  You just going to unassign it and when you reassign it, Parity will have to be rebuilt on the Parity2 drive at that time anyway.  

Yea I'll add the 2nd parity after I finish all the mirroring. Thanks for the help.

Edited by lazant
Link to comment
On 5/31/2019 at 3:33 PM, Frank1940 said:

OK, I forgot about that part of the procedure!  For those interest, here is that reason:

As I recall, to unassign Parity2, simply stop the array and unassign the drive.  Now restart the array and you are done.  You should also realize that there is no point in swapping in the new 6GB Parity2 drive until you have finished the conversion.  You just going to unassign it and when you reassign it, Parity will have to be rebuilt on the Parity2 drive at that time anyway.  

 

Another point.  After you unassign Parity2 in preparation to doing the conversion , be sure to run a non-correcting parity check as the first step.  If you don't have zero errors, stop at this point and take a deep breath.  

 

EDIT: I found it most helpful to built a table of the steps with the drive designations involved for each step.  I then checked off each step as I went along.  Also, I used the console to do the conversion as using a SSH session can result problems if the session gets terminated.  

 

Ok so I finally finished preclearing new drives and I’m ready to proceed.

 

I have a 6TB parity 1 drive, 3 TB parity 2 drive, and 10 x 3 TB data drives. Drive 10 is failing and I want to replace it with a 6TB drive and then proceed to converting all the drives to XFS using the “mirroring” method, which requires there to be only one parity drive.

 

I just unassigned the 2nd parity disk, powered down, removed the disk, powered on, tried to assign a precleared 6TB drive to disk 10 and it said invalid configuration and that parity 2 was missing. Is there something else I need to do to have unraid forget about parity 2?

Edited by lazant
Link to comment
33 minutes ago, lazant said:

Ok so I finally finished preclearing new drives and I’m ready to proceed.

 

I have a 6TB parity 1 drive, 3 TB parity 2 drive, and 10 x 3 TB data drives. Drive 10 is failing and I want to replace it with a 6TB drive and then proceed to converting all the drives to XFS using the “mirroring” method, which requires there to be only one parity drive.

 

I just unassigned the 2nd parity disk, powered down, removed the disk, powered on, tried to assign a precleared 6TB drive to disk 10 and it said invalid configuration and that parity 2 was missing. Is there something else I need to do to have unraid forget about parity 2?

After you have unassigned parity2 you need to start the array to get Unraid to ‘commit’ the change.

  • Like 1
Link to comment

I'm currently at step 15 of the mirroring method process for converting the file system of my first drive (disk10). I started with 10 disks formatted using RFS, added a disk11 and formatted it using XFS and used rsync to copy all data from disk 10 to disk 11. I've swapped the drive assignments of disk10 and disk11 (swap) and clicked on the disk names to swap the file system formats, however, both say "auto" for file system. 

 

I just want to make sure I don't mess this up. Should I set disk10 to xfs and disk11 to rfs? Since the other 9 disks are all set to auto, do I need to go through and set them to rfs as described at the end of step 11? Thanks.

Edited by lazant
Link to comment
7 minutes ago, lazant said:

I just want to make sure I don't mess this up. Should I set disk10 to xfs and disk11 to rfs? Thanks.

As I recall, Auto should work with the latest releases....  HOWEVER, I did set the to the appropriate (XFS or rfs) as I did not want to take a chance on something going wrong... gooing wrong...going wroong.  🙄

Edited by Frank1940
  • Like 1
Link to comment
10 minutes ago, lazant said:

I’m curious why we don’t add BOTH disks to the excluded list to ensure nothing is written to them during the copy? The wiki says to just add the swap disk (disk 11 in the example).

IF you don't get an answer within a couple of days, ask this question in this thread:

 

 

Link to comment
  • 2 weeks later...

Well I just finished the migration to xfs without any issues! I ended up adding all of my unconverted disks to the global exclude list and then removed them one by one after each cycle through the instructions on the wiki between steps 17 and 18. The files on the excluded disks were unavailable for a short time but I didn't need to worry about accidentally changing the source disk during the rsync copy in step 8. 

 

Thanks to everyone in this community for their help! I'm truly grateful.

Link to comment
  • lazant changed the title to (SOLVED) Converting File Systems
  • 2 weeks later...

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.