reiserfs filesystem is deprecated and scheduled to be removed from the kernel in 2025


Recommended Posts

Just been checking my log and noticed this. My server is very old and has gone through V4, 5 and now 6 of Unraid and as such 7 disks are REISERFS. I have never dared attempt to replace my file structures as the only way i can think of doing it would be to move all the data off a drive via something like the unbalance plugin, remove the drive from the array, rebuild the array, add it back in and then rebuild the array again. Doing that 7 times on an array with 14tb drives doesn't appeal to me 🤣 and so although the date is 2025, will Limetech work on any sort of array manipulation GUI tools?

 

i would also like to get rid of some of my old 3TB drives and replace with fewer 14TB and cut down on my energy consumption. I even bought a second license key with the idea of just building a new server and copying over 96TB of data, but again that doesn't really appeal to me either!

 

As technology and storage tech improves, it would nice to be able to upgrade the array just like we can with mobos and processors etc.

 

kernel: REISERFS warning:  read_super_block: reiserfs filesystem is deprecated and scheduled to be removed from the kernel in 2025

 

Link to comment
4 hours ago, Ockingshay said:

the only way i can think of doing it would be to move all the data off a drive via something like the unbalance plugin, remove the drive from the array, rebuild the array, add it back in and then rebuild the array again.

Half right (maybe just a quarter)

No need to remove drives and rebuild the array, but you do need to copy the data elsewhere, either another data drive in the array, or whatever.

 

There is a whole thread sticky'ed on doing the transition, but in a nutshell, accumulate enough free space to copy the content of your largest ReiserFS drive, format it to a newer format, copy the next victim to the freshly formatted drive, format it, lather, rinse repeat until the last drive is formatted.

 

Notice there was no drive removal, no rebuilding, nothing like that. Everything is done with the drives assigned where they are.

 

Now, since you said...

4 hours ago, Ockingshay said:

i would also like to get rid of some of my old 3TB drives and replace with fewer 14TB

my plan of attack would be, assuming you have at least a single vacant physical drive slot open and your parity drive(s) are currently smaller than 14TB

 

1. Purchase 2ea 14TB drives.

2. Run a noncorrecting parity check, proceed if zero errors and healthy SMART on all existing drives. If either thing is false, my whole strategy changes.

3. Replace the parity drive with one of the 14TB drives, or if your risk tolerance is low, add it as Parity2. After parity is done building, another parity check.

4. If you kept parity1 and added parity2, remove the parity1 drive now. Parity2 has to stay as parity2 to be valid, so you'll just have to deal with the OCD of not having a parity1.

5. Add the second 14TB as a new data drive. Run another parity check to be sure everything is still stable after all the horsing around.

6. Copy the content of as many ReiserFS drives as you wish to the new drive. NOTE. I said COPY. on purpose. 4ea 3TB drives would be good if they were all full, if not, maybe more would fit. I'd shoot to keep 2 or 3TB empty on a 14TB for now.

7. Once you are satisfied the copy went well, verifying by comparing content to whatever your risk tolerance and OCD require, then format any of the source drives that you want to keep in the array, and use those as targets to copy the rest of your ReiserFS drives.

8. When the only ReiserFS drives in the array are slated for removal because their content already was copied to other array drives in the new format, then you can set a new config with only the desired drives and rebuild parity, If you were working with parity2, you can move it to parity1 for the rebuild.

 

Caveat for this method...

When you are copying from drive to drive, there will be duplicate files that the user share file system will hide, because only the first copy of an identically named file in the same share path can be used. That means writes and updates to user shares could be lost, if the changes are made to the source of the copy instead of the destination, and in any case attempting to verify the copy will fail on the changed file. Reads can proceed as normal. If you must continue to write to the array while you have duplicates in place, there are ways to exclude the source disks, but it's easier just to not write if possible.

 

The reason I stressed copying vs. moving is the speed. Moving means a copy followed by a deletion, which is also a write, but on the source disk. Deleting a file from a well used ReiserFS volume is slow to begin with, add in the parity calculation, and the write to the destination disk which is also updating parity in a different sector, means a move can easily be 10X slower than a copy. Much faster to copy the content so only the destination disk and parity disk are writing. Plus you get to verify the copy because the source is still there for secondary checks and recopy if there is an issue, and once you are sure all your data is copied, the format to the new filesystem only takes a minute or two, vs. hours to delete the files one by one.

  • Upvote 1
Link to comment

Hi, just wanted to say thanks for the enlightening response. I'm going to tackle this over the Christmas period when i have some free time.

 

I have a Parity drive that's 14TB and 3 14TB array drives already; the rest are 3TB, being a mixture of XFS and reiserFS.

 

If i understand your steps i will be able to:

copy over the 3TB drive data to the 14TB

format them to XFS or remove from the array

set new config

run a parity   

?

 

That sounds very doable! but i may need to clarify with a few screenshots if that's ok before i press go!

Edited by Ockingshay
Link to comment
2 minutes ago, Ockingshay said:

Hi, just wanted to say thanks for the enlightening response. I'm going to tackle this over the Christmas period when i have some free time.

 

I have a Parity drive that's 14TB and 3 14TB array drives already; the rest are 3TB, being a mixture of XFS and reiserFS.

 

If i understand your steps i will be able to:

copy over the 3TB drive data to the 14TB

format them to XFS or remove from the array

set new config

run a parity   

?

 

That sounds very doable!

Yes, the only new config and parity build that needs to be done is when you are finished copying data around and wish to remove drives.

 

If you want a more detailed plan of what gets copied where and what order to do things, you should post

drive by drive list of capacity and usage currently

desired end state drive list.

 

for example

 

I now have

14T parity1

14T data1 - 10T XFS

3T data2 - 2.9T XFS

3T data3 - 2.5T ReiserFS

 

I want to end with

14T parity1

14T data1

14T data2 - contents of old data2 and data3

 

 

Putting this type of layout into print allows us to figure out the best way to get from A to B pretty easily with step by step easy to follow instructions that you can check off as you accomplish them.

 

Link to comment
  • 1 month later...

It's time to give this a go!

 

I have x2 14TB drives arriving today, so i thought i would start moving some data around with what space i have whilst i wait.

 

1) I would like to replace disk 1 (as that's the oldest) with a new 14TB drive, but formatted to XFS.

 

2) Once that is in place i will be able to copy the data over from other 3TB drives, remove them from the system and then add the other 14TB drive. I do not have any further sata ports, so i will need to remove a drive (1) before i can add a new one.

 

What would be the correct procedure to accomplish part 1? In order to remove that drive (1), i will need to copy over the data to make it empty?

 

Many thanks for your help!

 

Part 1) Replace disk 1 with new 14TB drive and formatted in XFS.

 

**I have the unbalance plugin to copy (instead of move as per your suggestion?) and there will be no other activity happening on the server whilst this completes**

 

unraid drives.jpg

Edited by Ockingshay
Link to comment
  • 11 months later...

Hey there follow unraiders, 

 

I have I have two parity drives and a bunch of data drives, however, three data drives are still reiserfs and wanted to make sure they are ready for 2025, I am a little tight on space ATM and don't really have the space to move the data off them. 

 

I think what I have in mind should work, but thought I would ask here.

 

I was thinking I should be able to just stop the array and reformat one of the data drives and then just start the array again, the parity should rebuild that one drive.

once done rinse and repeat for the other two.

 

Any issues with that strategy? 

 

Thank you

Edited by piyper
Link to comment

No, unfortunately rebuilding the drive will restore everything including the filesystem. 

 

If you're risk tolerant, you could convert one of the parity drives to a data drive and transfer data to it and then rinse and repeat then move it back to dual parity when you're done.

Edited by foo_fighter
Link to comment
  • 3 weeks later...
On 12/14/2023 at 10:29 PM, foo_fighter said:

No, unfortunately rebuilding the drive will restore everything including the filesystem. 

 

I didn't know that, I figured the "data" was paritied (parityd, hmm, parity'd) and not the entire drive layout 

 

 

On 12/14/2023 at 10:29 PM, foo_fighter said:

If you're risk tolerant, you could convert one of the parity drives to a data drive and transfer data to it and then rinse and repeat then move it back to dual parity when you're done.

 

Thank you for the suggestion, unfortunately, my two parity drives are more than twice the size of the biggest data drive (planning for future upgrades), that would force me to upgrade at least one of the data drives now and Santa didn't bring me any new drives :(

 

 

I have an other unraid server I use for backing up my important stuff from my main server, there is enough space on that to move data around, it will just be slow over the network.

 

Thank you again for the help :)

 

 

Edited by piyper
Link to comment
On 12/14/2023 at 10:29 PM, foo_fighter said:

No, unfortunately rebuilding the drive will restore everything including the filesystem. 

 

If you're risk tolerant, you could convert one of the parity drives to a data drive and transfer data to it and then rinse and repeat then move it back to dual parity when you're done.

 

I have another question then.

 

If a parity rebuild would rebuild the drive with the original format, then I assume the once empty a drive, reformat it and bring the array back up with the new format, the both parity drives will be invalid and will force a parity check/rebuild of the parity drives. this would mean I would have no parity protection for a while. 

 

Does this sound correct?

 

Piyper

Link to comment
5 hours ago, piyper said:

I didn't know that, I figured the "data" was paritied (parityd, hmm, parity'd) and not the entire drive layout 

The parity calculation is done at the block level, for every data block on a disk. It does not care what is stored in that block, the block can even be all zeros in the case of a zeroed/unformatted disk, its all just bytes to the parity calc.

 

5 hours ago, piyper said:

Thank you for the suggestion, unfortunately, my two parity drives are more than twice the size of the biggest data drive (planning for future upgrades), that would force me to upgrade at least one of the data drives now and Santa didn't bring me any new drives :(

Not necessarily, after the last drive is converted you could move the data back to that drive and convert your largest drive back to parity.

 

1 hour ago, piyper said:

If a parity rebuild would rebuild the drive with the original format, then I assume the once empty a drive, reformat it and bring the array back up with the new format, the both parity drives will be invalid and will force a parity check/rebuild of the parity drives. this would mean I would have no parity protection for a while. 

 Not sure what you are getting at here. Once you have emptied a drive you can reformat it while the array is running and parity will be maintained. 

Edited by primeval_god
Link to comment
14 hours ago, piyper said:

 

Thank you for the suggestion, unfortunately, my two parity drives are more than twice the size of the biggest data drive (planning for future upgrades), that would force me to upgrade at least one of the data drives now and Santa didn't bring me any new drives :(

 

Then you would only need at most 2 rounds of conversions. If the total space used on all 3 reiserFS disks is less then the 1 parity disk then only one round.

 

Here's how you would do it:

Convert parity2 to a data disk.(Meaning temporarily change the config to a 1 parity system, and change parity2 to a data disk with 2x the space of any other drive.)

For the above step I'm not 100% sure if you need to pre clear(write all 0s) the 2nd parity drive before you add it back into the array as a data disk. You may want to do it in 2 steps to be safe.

 

Copy the contents of the reiserFS disks or 2 largest disks onto the new data disk.

Verify all data(data integrity plugin)

Reformat all the disks which data is duplicated to the new file system.

Copy all of the data back.

Verify all data(data integrity plugin)

Repeat once more if needed.

Change the temp data disk back to parity2

You'll still be protected by 1 parity disk the entire time and you're duplicating data so the risk is a bit less.

 

 

Edited by foo_fighter
add clarity about pre clear
Link to comment
13 minutes ago, foo_fighter said:

Reformat all the disks which data is duplicated to the new file system.

 

I guess I was thinking that you could not format a drive while it was part of the array and you had to take it out of the array and once you did that, the parity would have to be rebuilt.

 

I didn't know you could reformat a disk while it is still part of the array, I figured that even an empty drive would "compare" differently with two different formats, therefore as soon as you format the disk and put that disk back into the array the parity (on both parity drives) would not match the data on the drives anymore.

 

I guess I am making am assumption about how parity is stored and if just one bit is different (say from a different format) that that part of the parity would not be correct anymore and unraid would just force a parity rebuild.

 

I apologize if I am missing something and and I do thank you for your patience and help

Link to comment
3 minutes ago, piyper said:

I guess I was thinking that you could not format a drive while it was part of the array and you had to take it out of the array and once you did that, the parity would have to be rebuilt.

 

I didn't know you could reformat a disk while it is still part of the array, I figured that even an empty drive would "compare" differently with two different formats, therefore as soon as you format the disk and put that disk back into the array the parity (on both parity drives) would not match the data on the drives anymore.

 

I guess I am making am assumption about how parity is stored and if just one bit is different (say from a different format) that that part of the parity would not be correct anymore and unraid would just force a parity rebuild.

 

I apologize if I am missing something and and I do thank you for your patience and help

Yes, always good to 100% understand what you're doing. You do need to stop the array to make changes, but that doesn't invalidate the parity. 

 

Here is a great video that might help:

 

You actually don't need the extra step of erasing and then formatting, but you can follow it as is.

 

Link to comment
7 hours ago, piyper said:

I figured that even an empty drive would "compare" differently with two different formats

 

12 hours ago, primeval_god said:

The parity calculation is done at the block level, for every data block on a disk. It does not care what is stored in that block, the block can even be all zeros in the case of a zeroed/unformatted disk, its all just bytes to the parity calc.

The above is the key thing to understand. An "empty" drive with a file system is not empty. But even if it a drive were truly empty it would not matter. Parity happens at the lowest layer. If a disk is part of the array (and the array is up) then when ever you write data to (or erase) a block on that disk an update is made to parity. You can write zeros to every block of a disk while the array is running, effectively erasing everything including the file system, and parity remains valid. It is only if changes are made to a disk outside of a running array that parity is invalidated.

Link to comment

And, of course, format is just another write operation that also updates parity.

 

A common mistake is for a user to format a disk that has an unmountable filesystem (instead of check filesystem), thinking they can rebuild it from parity. But after format in the array, parity agrees the disk has been formatted to an empty filesystem and that is all that can be rebuilt.

 

Link to comment

Thank you all for the replies, I went through a few videos by Spaceinvader One, very helpful, I should have checked his channel first anyway :), not sure why I didn't earlier. 

 

I have been using unraid for a long time, but have not had to do something like this for a while (I think I was using "unMenu") and I don't think this type of conversion was not available, things have changed a bit ;)

 

Interesting enough, I can't remember the last time I had to go into "maintainace mode" so didn't remember anything you could do in there.

 

I guess it goes to show you how stable unRaid is.

 

Thank you all for your help.

Piyper

 

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.