How do you convert ReiserFS to XFS with share based, no inclusions, preserving parity strategy?


Recommended Posts

Quote
Share based, no inclusions, preserving parity
Note: only for systems with no share inclusions and exclusions, that is, all shares are allowed to use all data drives
Use rsync or unBALANCE or MC to save all of the data on a ReiserFS drive to the other data drives; then format it with XFS, and repeat on another data drive, continuing until all drives are converted
Advantages: simpler to understand, no drive swapping
Disadvantages: some planning and space management needed; small shares may be scattered across the drives; some data may be moved multiple times, slowing down the overall speed; normal system operation is possible

Reference:

https://wiki.lime-technology.com/File_System_Conversion#Share_based.2C_no_inclusions.2C_preserving_parity

 

 

I want a simple method to convert my ReiserFS unraid to XFS. This is the method that I prefer. But how do you exactly do it?

 

Here's what I understand.

1. Bought a new HDD. Preclear it.

2. Make sure parity is valid.

3. Format new HDD with XFS.

4. Stop array. 

5. Add new hdd to array. Start array.

6. Choose a drive with ReiserFS that you want to convert(old drive). Set this drive in the excluded disk in all user shares.

7. Move all data in old drive to new drive using unbalanced.

8. Once move is done, stop the array.

9. Format old drive with XFS. This drive is now considered as 'new drive'.

10. Goto step 5.

 

I think im missing something. What happen to the parity? Can we do it like this?

Link to comment

As I understand it, any write to any drive that is the array will result in parity being updated to reflect the change in contents of that drive.

 

Actually,

I think you want to be using the steps outlined in this procedure:

 

    https://wiki.lime-technology.com/File_System_Conversion#Mirroring_procedure_to_convert_drives

 

And you might want to look through this thread as I believe that there is a discussion on using the unbalance plugin to do it.

 

     https://forums.lime-technology.com/topic/54769-format-xfs-on-replacement-drive-convert-from-rfs-to-xfs/

 

Link to comment
49 minutes ago, publicENEMY said:

Can somebody explain in detail the steps in Share based, no inclusions, preserving parity? Mirroring procedures to convert drives is too complicated for me.

 

The concept is very simple. You need a disk as big or bigger than largest data disk. You add it to the array, format it as XFS, and copy all your data from largest RFS disk to this disk. Now you can format the RFS disk you just converted to XFS, and copy your second disk there. Repeat until all disks are converted. May need to tweak your share settings. 

 

Over time the documented procedure got tweaked to ensure data integrity and reduce user error, but sort of lost the conceptual simplicity.

 

There is no substitute for this type of data lauding, as tools to convert a filesystem in place do not exist.

Link to comment
On 10/10/2017 at 10:03 AM, publicENEMY said:

1. Bought a new HDD. Preclear it.

2. Make sure parity is valid.

3. Format new HDD with XFS.

4. Stop array. 

5. Add new hdd to array. Start array.

6. Choose a drive with ReiserFS that you want to convert(old drive). Set this drive in the excluded disk in all user shares.

7. Move all data in old drive to new drive using unbalanced.

8. Once move is done, stop the array.

9. Format old drive with XFS. This drive is now considered as 'new drive'.

10. Goto step 5.

Step 3 you have here is wrong. You must let unRAID format the drive after it is added to the array. If you add an already formatted drive to an array with parity, unRAID will clear it.

 

So forget about this step 3. unRAID will let you format the new disk as part of step 5.

 

The key to all this is understanding that unRAID parity is realtime. Any time a disk in the array is written, unRAID updates parity at the same time. And, except for simple reads, everything is a write.

 

Deleting a file is a write. It writes the file system to mark the file as deleted.

 

Moving a file to another disk is a write. The destination disk is written, then the file is deleted from the source, and as mentioned, a delete is a write.

 

Moving a file to another folder on the same disk is a write. The file system is written to update the new location of the file.

 

And, most importantly for understanding how it works for changing filesystems: Formatting a disk is a write. It writes an empty filesystem to the disk. Note that formatting a disk is not at all the same as deleting all of its files, nor is it the same as clearing it. All format really does is write an empty top level folder in the filesystem.

 

All of these writes result in parity being updated. So, after formatting a disk to a new filesystem, parity is preserved.

Link to comment

Move step 3 to be step 5.5.

 

I used rsync to do the heavy work instead of the plugin but either can work just fine. I did use the plugin to move a few things around later to free up space on some of my mostly full drives.

 

I would also recommend you experiment with turning turbo write mode on or off.  You get to it on the Settings tab under Disk Settings. It's called "Tunable (md_write_method):"  and you set it to reconstruct write to use turbo mode. On my system it was way faster moving between disks with it set on.

 

Don't worry about parity, it is always and immediately updated when you do any file system reading or writing.

Edited by lionelhutz
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.