Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

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?

  • Community Expert

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/

 

  • Author

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

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.

  • Community Expert
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.

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

12 minutes ago, lionelhutz said:

Move step 3 to be step 5.5.

 

With a small note that you can only set a (new) filesystem with the array stopped. Once the array is started, the GUI offers to format the disk to the (new) filesystem.

very simple, i just did to mine, the wiki covers alot of info and it can be overwhelming but the process is quite easy.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.