Best Shrinkable ReiserFS Replacement?
paulkoan writes "I have been using ReiserFS for my file system across a few servers for some time now (follow the link below for details of my experience). I can't foresee the future of ReiserFS, but if I'm going to have to migrate as support diminishes, I'd like to begin that process now. My criteria are: in-kernel support, shrinkable, and has good recovery when the file system is not closed properly. That shrinkable requirement precludes a lot of options. What's a good replacement for ReiserFS?"
I initially chose ReiserFS because I was building a MythTV system and it was the recommended FS across the board, from small to large files. I've had good experiences with ReiserFS and it has had a pummeling. That MythTV box for example has a very volatile environment and loses power on a regular basis. I haven't lost any data through any of these outages.
Compare this to my brief foray into XFS on the same box, where 25% of the filesystem ended up in lost+found with numbers for filenames. When this happened a second time on a different system I decided XFS wasn't for me — and I really don't get the point of a journalled filesystem that will keep data relatively safe, but then remove any means to identify it when things go wrong.
But everyone has good and bad experiences with filesystems, ReiserFS included. XFS has a good rep, my experience aside.
I initially chose ReiserFS because I was building a MythTV system and it was the recommended FS across the board, from small to large files. I've had good experiences with ReiserFS and it has had a pummeling. That MythTV box for example has a very volatile environment and loses power on a regular basis. I haven't lost any data through any of these outages.
Compare this to my brief foray into XFS on the same box, where 25% of the filesystem ended up in lost+found with numbers for filenames. When this happened a second time on a different system I decided XFS wasn't for me — and I really don't get the point of a journalled filesystem that will keep data relatively safe, but then remove any means to identify it when things go wrong.
But everyone has good and bad experiences with filesystems, ReiserFS included. XFS has a good rep, my experience aside.
The O. J. Simpson filesystem!
Just because it CAN be done, doesn't mean it should!
... to find a new killer filesystem, you insensitive clod!
start your reiser jokes.
my 2 cents...ext3.
Good people go to bed earlier.
I've heard good things about ZFS from Sun Microsystems, though I don't have much experience with it. Ext3 seems to have decent crash recovery though it requires fscks almost every time. JFS2 from IBM is the most solid filesystem I've ever seen, but I don't know if such a filesystem works with MythTV.
However you handle your FS migration, special care must be taken to divide the task at hand into small manageable chunks. The migration must be quick and dirty, but with as little mess as possible. Most importantly, be honest with your customers -- they will decide your business' fate. Don't treat them like idiots just because they didn't design a FS.
My fastest way of checking what operations can be supported on filesystems at the present is by checking what gparted can do. Of the filesystems it works with right now, only four (jfs, reiser4, ufs, xfs) can't be shrunk using gparted.
I hear he is developing a new way to compress his logs. Something to do with packing pointers into the tail. I think it is shrinkable, but that entails the use of very cold water.
- None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
NTFS on Vista?
I hear your disk space shrinks like nobody's business.
If firefighters fight fire, and crimefighters fight crime, what do freedom fighters fight? - George Carlin
For my MythTV installation, I choose ext3 for the system partitions like / and /usr and xfs for my /video partition. My system partitions are on a RAID 1 while my /video partition is a 1TB RAID 10 LVM. ext3 is more than adequate for my purposes and it does a decent job of recovery. Earlier this year my server started crashing intermittently with no messages in the error logs. I finally traced it to a bad stick of RAM and ext3 recovered in most of the cases. In one case I had to repair mysql databases, but that was the only hiccup.
Well, there's spam egg sausage and spam, that's not got much spam in it.
I would use LVM and EXT3.
You can use LVM to change the size of the partition, and then use resize2fs to shrink it to fit the LVM
Google around, you'll find some good docs
Found here:https://www.redhat.com/archives/nahant-list/2007-March/msg00004.html
fsck
resize2fs (resize to smaller then needed)
lvm (resize to the size needed)
resize2fs (grow to fill LVM vol.)
Shameless plug alert: Game server control panel
ReiserFS works. It is merged with the mainline kernel trunk so it will be able to secure enough man power to at least avoid bit-rot and incompatibility to future kernel versions. You don't have to worry about suddenly losing your files now Hans isn't involved in the project, some kernel modules have gone for years without an update and still work. I doubt that this will even become one of them since so many people are using this file system and lets face it, it is a good file system nomatter who wrote it (lets not forget he was a known arsehole before he killed his wife and it didn't matter then).
The worst thing that could happen is ReiserFS slowly falling into disuse and becoming deprecated in three or four years, you will have plenty of time to worry about this later, just take a deep breath and put down your file system tools, this will all be OK.
When Argumentum ad Hominem falls short, try Argumentum ad Matrem
If you can use something other than Linux, then ZFS is the winner. Take a look at the FreeBSD ZFS Quick Start, particularly the examples. That's possibly the coolest filesystem demo I've ever seen.
Dewey, what part of this looks like authorities should be involved?
Ext3 with LVM seems to be the popular way to go about this. Unless you really want an esoteric solution, from your requirements I don't see a reason to stray from the norm.
... I'm much more interested in a cache filesystem that will use local storage as a cache for network storage. Our corporate computing is horribly bottlenecked at the NAS while we have hundreds of gigabytes on every server and workstation sitting unused.
Lacking <sarcasm> tags,
Ugh, ReiserFS and "good recovery when the file system is not closed properly"? It doesn't even have good recovery after a proper shutdown.
When other filesystems die, the damage is localised. When Reiser fucks up, all or nearly all of the tree is lost. Usually, you'll lose all files bigger than 4KB, although other damage modes are possible.
Reiser has a codebase of an insane size. A relatively small piece of code can be mostly bug-free, Reiser is simply too large, complex and ill-tested. I admit, I haven't given it a try recently but you can guess why I hate the very idea of approaching it without a ten-foot pole.
I've seen XFS screw a number of random files, ext3 mangled only files that were being written to, and my personal favourite is JFS. Even though I use JFS most of the time, the only screwup I witnessed was on a RAID without a write-intent bitmap.
The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
Don't fix it. Reiser3 is in the mainline kernel. Why bother messing with your working (and apparently robust) system?
General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
ZFS isn't available on Linux. It is a great enterprise class file system, but for the type of application discussed here it is probably overkill in terms of management complexity, etc. Not that it would be bad or wrong to use, and you could benefit from some of the features of course, but it really shines in demanding environments. In any case unless you're running openSolaris it isn't an option.
Ext3 in my experience is just plain inferior to ReiserFS. Recovery and formatting are both slow as death. Like the OP I have yet to suffer any data loss on a ReiserFS since way back in the early days when it first came out. Ext3 seems pretty reliable as well, but the slow recovery times are annoying and once in a while it seems like a whole filesystem just plain becomes irretrievably corrupted. OTOH it does demand less CPU overhead. Rarely a BIG issue, but can be with HTPC type systems.
Overall though I don't think you have a lot of choice. XFS or JFS might be perfectly good solutions, not really had a need to mess with either of them myself so I can't comment. Obviously ReiserFS looks like it has about reached the end and that pretty much leaves Ext3 as the only man left standing in the ring at this point. Cheer up, it works well enough, you'll just have to live without the shrink functionality... ;).
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
ReiserFS is still being used and maintained in-kernel. It's Stable, and it just works for you and for hundreds of thousands of others; so, what's the rush?
I'd wait for the next batch of next gen FS (BTRFS, Tux3) to show their stuff -- and perhaps take a look at getting involved. Daniel Phillips has recently sent out a call for help... Sounds like you have an itch -- go scratch it.
That MythTV box for example has a very volatile environment and loses power on a regular basis. I haven't lost any data through any of these outages.
Okay, you need to consider a couple of things. First off, this is MythTV. Your concept of "large files" and the normal industry use of "large files" are entirely two different things. I really doubt you are going to exceed any limitations of a modern filesystem with porn, dvds, and television recordings.
Second, you aren't going to lose data from a power outage when it comes to archived data you are reading (divx file, for example) when the power goes out. But no file system using system memory for a cache is going to play well when abruptly having the power yanked while it's writing.
Third, just use ext3. It's one of the most used, reliable, and proven file systems to date. If it's not enough, you are better off using a UPS and software raid5 an array a few similar sized drives, with a ext3 file system.
Let's please filter further headlines where people are asking about what exotic filesystem they should be trying out for non-raid applications. PLEASE.
If it wasn't that great then why do most thumb drives use it? :)
Believe me, if I started murdering people, there would be none of you left.
Performance may crawl to a standstill but ext3 with full journaling of data not just meta-data should make crash-recovery nearly bulletproof.
Another option is to reduce the number of crashes:
Make sure your software and hardware are stable and use a good, stable battery-backed power supply.
The latter is good advice for any system.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Why the shrinkable requirement? Are you expecting your saved videos to take *less* space over time? I can assure you that I've never felt the need to downgrade the drives in my media server, in fact it's nearing time to upgrade it again as I finish ripping my DVDs.
But what the heck do I know, I just use the filesystem that my OS installs by default, like 99.999% of the world.
Comment of the year
I'm not sure if gparted can do it yet, but you can shrink and grow ext2/3 partitions at the command line using a combination of tools.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Filesystem was so big issue in my work that we bite the bulled and tried first Open Solaris and then switched into Nexenta http://www.nexenta.org/ Nexenta is OpenSolaris kernel GNU/Debian/Ubutntu userland. What this gets to you is ZFS and RAID-Z and RAID-Z2. When you get used to the fact that your filesystems has end to end quarantee of data integrity by hashing (even cryptographic hashing if you want, you feel uncomfortable with any other filesystem. In home I still run Linux on my laptop, but I made my own NAS that ruons with Nexenta.
Dyslexics have more fnu.
EXT3 works perfectly on my Myth box and is probably the best filesystem for use with an up to date installation. The reason it was previously not recommened with Myth is because it takes a long time to delete large files on EXT3, so if you delete a file whilst making a recording, you can get a drop-out. However, Myth backend now has an option for slow background deletion of large files; if you enable it, you won't have any problems. Given the amount of RAM on a typical modern media server, though, it's unlikely that a drop-out would occur - the system would just cache the recording ntil the hard drive became available.
I, too, have lost data with abrupt power loss on XFS. JFS doesn't auto-repair on startup with Ubuntu, so that's not a good option unless you want to manually run FSCK every time you have power outage. Any other filesystem isn't mainstream so is best avoided.
Why don't we just rename ReiserFS. It seems the problem everyone has with it is that Hans killed his wife, the technology is still fine. What about KillerFS?
I use WinXP (w. NTFS) for a PVR app. It works ... BUT I have a serious problem with fragmentation. Very noticeable during video playback. I added a scheduled task to defrag once a week (along w. a weekly reboot). I also need to make sure that I never fill the drive too full.
[Insert pithy quote here]
There's an old saying in the medical community about looking for Zebras when you should be looking for Horses. In their case it generally refers to the fact that common conditions are common and exotic conditions are rare. So when a patient walks into your office with a nasty cough, you should probably assume it's a cold or maybe the flu, rather than looking through all kinds of obscure diseases that might cause a cough exactly like the one the patient is describing.
In the context of this conversation, though, I'm going to adapt it to mean there's no reason that you shouldn't just use ext3 and be done with it. Seriously. There is a reason it's the default filesystem on virtually every modern Linux distribution, and I'm pretty sure that reason is not because the distribution maintainers all have an unreasonable grudge against Reiser, IBM, SGI, etc. I know it's not sexy, cool, and different just for the sake of being different, but it works, it works well, and it does everything you're asking for.
If I don't put anything here, will anyone recognize me anymore?
I have migrated most of my ReiserFS partitions to either XFS or EXT3. For something like MythTV XFS is probably the better choice since it excels at large files. My experience with Reiser is that it tended to suck for large files, especially writes. I also love the XFS tools, like being able to defragment a mounted filesystem and xfsdump.
EXT3 has also made huge strides, especially with the directory hashing feature. I do not like how long fsck takes after so many mounts, though, or for recovery.
Also, regardless of filesystem, set the noatime and nodiratime parameters in fstab to see another big performance boost.
This post is encrypted twice with ROT-13. Documenting or attempting to crack this encryption is illegal.
If you do have a good reason for needing a shrinkable filesystem, does it have to be online shrinkable? I know a lot of people shrink existing FAT or NTFS filesystems to install another operating system for dual-boot, but that's normally done offline, not while the filesystem in question is mounted. In such cases, although it's convenient to shrink in place, it's not necessary, especially since you really need to back up the contents of the filesystem first anyhow. (If the data isn't worth backing up in case of a problem with shrinking the FS, it's not worth keeping in the first place.)
First, I don't understand the need for a shrinkable filesystem at all (I've only ever grown filesystems in my time as a systems administrator, and then it was just easier to move the whole thing to another drive rather than mess about - that's a rule that's held since the dark days of DOS and 20Mb harddrives, although there was a program called FIPS that could do amazing things with partitions for the time). I've never seen partitions or drives that ever needed to get smaller and the only thing that indicates is that you can't afford a larger hard drive and you've hit capacity and you don't want to delete those Windows games...
Second, if you're getting lost+found files on anything journalled, it's because you've not got "full" journalling switched on, you've not got the latest kernel, or you've hit an unusual bug. The first is most likely because you're probably running on a "middle-ground" option, like ext3 also has by default, which says "favour speed over safety". The reason for this will become clear the instant you run a "full" journalling system. It's incredibly slow to write, because everything gets written twice effectively. The "slow deletion using ext3" on MythTV things are a thing of the past - a thread does it in the background now and you never know it's happening.
Third, I don't see why the filesystem is that critical for, of all things, a MythTV box. It's hardly vital stuff we're talking about here. If you are THAT worried, you'd have a UPS on the thing and backups, or net-backup to a proper storage PC. You're obviously not. Thus, use whatever's available and if and when you decide on a replacment filesystem because something a) isn't supported, b) isn't suitable or c) disappears from the Linux kernel, then you can... shock, horror, copy the data to a new partition with a new filesystem on it then.
Fourth, if you are really that geeky that you can't have Reiser now because it's no longer fashionable (which is what it sounds like more than anything else, and you've come up with the "shrinkable" thing to try to bolster that position), then why not have a RAID (battery backed if you don't want to lose data, remember!). Or why not put DATA seperate to OS in different partitions, have a read-only OS partition (it's MythTV, you could boot it from a CD) and then the worst that will happen is you will lose the current-written file on the Data partition(which might be that program you wanted to record, but better than trashing the system).
If something rock-solid is needed, one could do worse than continue to use ReiserFS3. (This is what I use.) It's feature-complete, and very stable. I have not had one mishap with it since I implemented it years ago.
But if you want something more bleeding-edge, one could try Reiser4 (development of which I think has stagnated) or btrfs, which seems to implement the main design considerations of Reiser4, but has jagged edges waiting to be cleaned up.
If something stable and under current maintenance is required, a conservative suggestion is of course Ext3.
Originally, XFS lacked support for the equivalent to write:ordered in ext3. In practice that meant that while the metadata would be intact, your files (and thereby directories) might be blobs of zeros/gone. That is probably what happened to him, and it is what happened to me when I used it long ago. I think I have read that XFS has gotten this capability later. For the topic, I'd recommend ext3 too. It's proven, can do the online grow/offline shrink that is so handy, has 3 different settings for speed/reliance, and is well supported. But I am not a sysadmin.
Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
I admire your optimism. But if you watch threads like this one and others that go back three years, I think you'll be disappointed. Sun's original story was "no one should ever need to shrink a pool". In the face of a *huge* number of responses to the effect that "yes, but in the real world you do", their response for a couple of years was "well then you just don't understand ZFS". Then when that didn't work they switched to "we've been working on it for years, we just want to get it right so be patient for another few years and in the mean time just keep buying more disks".
The folks at Sun are quite smart, but they're not infallible. My guess is that some early design decisions about ZFS made shrinking extremely hard, and they're having a hard time living that down given how much they crowed about ZFS being "the last word in filesystems". Eighteen months ago I was super-excited about ZFS since it just had one more feature to go before it fit my needs. Now I don't expect to ever see that feature, at least not before some better alternative comes along with equivalent features and a more Linux-friendly license (btrfs+lvm?).
ReiserFS is still maintained quite well, and Reiser4 is coming along well. I personally use ReiserFS exclusively, and recommend sticking with it, or possibly trying out Reiser4.
In the past, the reiserFS team didn't themselves consider that ReiserFS was a production tool. They made a poorly documented incompatible internal format change.
That meant that the new drivers could not handle the old filesystems.
Their solution? If you opened an old filesystem with the new driver, the old system was automatically and invisibly migrated to the new format, w/o asking or telling the user. Now, what could go wrong with this?
1. They did this even to filesystems opened read-only. This is a total violation of the contract between the SW and the user.
2. Now, that filesystem could no longer be read by the old drivers.
3. If the filesystem was physically read-only, like a CD-ROM, it could not be opened at all. Say bye-bye to your old backups.
When I saw this, I decided that I wanted nothing more to do with ReiserFS. ext3 is fine.
More broadly, why did SuSE ever make ReiserFS the standard? They need need to decide whether they're creating a production environment or a hackers' playground. The rule should be, if it's not necessary to change, then it's necessary not to change.
VxFS includes a kernel module. You can't boot off it (no grub support), and it's installed after installation, so it can't be your root FS. It can be any other mount point. I generally use it for my MySQL and PostgreSQL data partitions. I would use it for /home if I had to deal with users.
VxFS by itself doesn't support all of those features (moving from stripe to concat, changing stripe width etc). Some of those come from VxVM (Veritas Volume Manager), which is well enough integrated with VxFS that I can resize a logical volume and filesystem with a single command.
VxFS is the only FS that I've used that can be resized while mounted. Actually, it must be resized while mounted. I've expanded and shrunk filesystems many times while MySQL was under load. It increases the disk I/O a bit, so MySQL runs a bit slower, but otherwise there was no impact.
Not only that, I've had a machine reboot (my fault) in the middle of a complex operation (restrip the RAID0 portions of the RAID 0+1 array in preparation to convert to a RAID 1+0). VxVM and VxFS mounted the volume fine, MySQL started serving, then VxVM picked up where it left off and completed successfully. No data lost.
In addition, a dirty 100G+ volume takes about 15 seconds to fsck. Suck that ext3.
On any server that can wake me up in the middle of the night, I'll gladly pay for the Veritas Foundation Suite.
Is it broke for you? If not, don't fix it.
Need an automatic screenshot taker? Try here.
Did you read the documentation? From http://www.mythtv.org/docs/mythtv-HOWTO-3.html#ss3.1 .21 incorporates a "slow delete" feature, which progressively shrinks the file rather than attempting to delete it all at once, so if you're more comfortable with a filesystem such as ext3 (whose delete performance for large files isn't that good) you may use it rather than one of the known-good high-performance file systems. There are other ramifications to using XFS and JFS - neither offer the opportunity to shrink a filesystem; they may only be expanded.
NOTE: You must not use ReiserFS v3 for your recordings. You will get corrupted recordings if you do.
Filesystems
MythTV creates large files, many in excess of 4GB. You must use a 64 or 128 bit filesystem. These will allow you to create large files. Filesystems known to have problems with large files are FAT (all versions), and ReiserFS (versions 3 and 4). Because MythTV creates very large files, a filesystem that does well at deleting large files is important. Numerous benchmarks show that XFS and JFS do very well at this task. You are strongly encouraged to consider one of these for your MythTV filesystem. JFS is the absolute best at deletion, so you may want to try it if XFS gives you problems. MythTV
The critical factor being CPU overhead. Fuse based file systems are nice and you can solve a lot of problems with them, and they certainly can exhibit good throughput but the situation with an HTPC is that generally you have limited CPU resources and you definitely have significant CPU demands in most cases.
The best case scenario is you have hardware MPEG decoding and all you're doing is watching a stream that is already on disk. In that case you're probably fine with most anything, and even antique machines will usually work fine.
But commonly you might see something like an HTPC running a fairly low power CPU where you're pulling data off some source and meanwhile watching something else, and frequently decoding the incoming stream, transcoding it and at the same time decoding what you're watching (which may be HD content for that matter). In those cases every CPU cycle counts and the overhead of a user land file system is going to burn you.
The upshot being ext3 still ends up in general being the best available recommendation.
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
Most people are using Linux for HTPC applications, BSD is a whole other kettle of fish...
I'm not saying ZFS is HARD to admin, just that a basic ext3 fs is nothing at all to admin. If you know ZFS, it is no big deal. For your average garden variety user they will never take advantage of the ZFS features anyway, so they'd be better of just going with ext3. There is a lot better chance their recovery tools support it, etc.
So, I'll agree with you, if the user happens to be sophisticated and using BSD, then go for ZFS, why not?
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
What about ext3?
We hope your rules and wisdom choke you / Now we are one in everlasting peace
ReiserFS was a great filesystem. Certainly isn't a WORSE one now than it was before in and of itself. It is just a matter of ongoing support. Whatever the reason people are dropping support and inevitably an unmaintained file system is going to become at best a marginal legacy tool. Given that it isn't even a default supported Linux fs chances are it will be broken as of kernel X, and then you will be pretty much forced to migrate, so why bother with it?
As to WHY, that I have to assume is political, there was never anything technically wrong with it. In fact there was pretty much everything technically RIGHT about it... Reading between the lines my hunch would be
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
The graphic on the t-shirt/mug should read as below:
ReiserFS
Because I can recognize a killer filesystem when I see one.
greed@All_Evils:~#
but for the type of application discussed here it is probably overkill in terms of management complexity, etc.
In ZFS, here is how you format a disk device called /dev/ad10, mount it to /storage, and have it automatically mount itself on startup:
In linux here's how you format a disk called /dev/sdb, mount it to /storage, and have it automatically mount itself on startup:
On my FreeBSD box ZFS is probably the easiest and most intuitive set of commands to use. In addition to that, I also find it much easier to troubleshoot failing hardware. In other systems like linux, I would not know that my hardware is failing until I go back to read the data. With ZFS I can just schedule a scrub or run the scrub every week or so and check the status of my data integrity even while the file system is online and in use.
JFS2 on AIX can shrink and it's silly to say it doesn't need to.
http://www.ibm.com/developerworks/wikis/display/Wikip5/Lesson+2+-+AIX+5L+Features+and+Benefits
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds1/chfs.htm
-- Wodin
...in many production environments except for emergencies. There's no way I can take a 3TB production filesystem offline to do a dump/restore (or even a restore) just to shrink a filesystem.
There are times we have to shrink one filesystem (volume, whatever) so we can grow another with the available space, without halting dozens of engineers for hours or a day. Lots of people have this same problem.
With something like a NetApp, I can grow and shrink a filesystem at will. Quick, simple, painless. I realize we are talking free software and commodoty or similar hardware vs several hundred thousand dollars worth of proprietary HW & SW, but the point is that it's doable, and there are reasons to do it.
We have NetApps for or tier 1 space, and they work great. We use Linux on Supermicros and Dells for tier 2, and desperately need easier disk management there.
No, it was awful in production use. Any disk failure on a RAID set, as can be expected to occur in any large environment, would lead to a confused ReiserFS whose own recovery tools would destroy it and which could no longer be backed up reliably. This has happened with no other Linux compatible filesyste I've ever seen: the others simply report a failed access, they do not lock when trying to read the ruined files.
ReiserFS was only suitable for high-speed, random access, restorable via other means filesystems such as NNTP servers and web proxies. For root partitions, boot partitions, and home directories, it was unstable and dangerous to use.
Try this, it should be good for what you need:
http://en.wikipedia.org/wiki/Fat16
If it doesn't support all your needs, then nothing will.
Oh also, 640k of ram is enough for anybody.
Modesty is one of life's greatest attributes