XFS in RHEL7 gonna be a good experience?
It is kind of interesting that it appears XFS will be the default filesystem in RHEL7?!?! Until recent fixes in RHEL6.3 and on, there were many many problems with XFS on RHEL6. Even now, things are not good for the situation of having a filesystem with many small files.
I would assume RedHat knows what it is doing by making this change, but geez, I hope it actually works!
For a taste of XFS fun in RHEL6, see this
I assume redhat is testing RHEL7 with an XFS filesystem that has a billion files on it!?!?
Responses
Hi Daryl,
Ric Wheeler (who wrote the paper) is the architect/manager for Red Hat's file system team and was personally involved in choosing XFS as the default. In addition, Red Hat Storage (when Ric managed that team) followed many storage partners and mandated over a year ago already that XFS would be the only file system supported in Red Hat Storage 2.0.
Regarding the billion files testing, Dave Chinner gave a talk several years back where he crushed the billion file problem:
http://lwn.net/Articles/476263/
As to the specific BZ mentioned, it was found during internal testing by Red Hat's Quality Engineering team (no customer cases reported against it) and fixed a few weeks later.
All file systems have bugs in them, and Red Hat does routine power failure testing on all of our file systems and has full confidence in XFS.
Of course, in RHEL 7 we will allow users to stay on ext4 if that works better for them and continue to be fully supported.
Hope this helps!
Andrius.
Thanks Daryl. I'll investigate the notifications issue as discussed in our email exchange.
It may be that you don't have notifications enabled. If you click through to your profile you should be able to see a Notifications tab, which will help you identify which content you have enabled email notifications on. To subscribe to notifications on a particular piece of content you can click the "Notify me when this document is updated or commented" checkbox below the comment entry window, or you can click the "Follow" link to the right of the page, which provides more detailed options, allowing you to subscribe to all discussions, particular authors, and so on.
Just out of curiosity: what is it you're attempting to accomplish by recursively setting the no-dump attribute?
Yep, it should have been fine. It's even documented in the manpage:
The chattr(1) command can be used to set this
attribute on individual files or entire subtrees.
To tag an individual file for exclusion from the dump:
$ chattr +d file
To tag all files in a subtree for exclusion from the dump:
$ chattr -R +d directory
Hi Daryl - unfortunately your ...snip...s are often strategically placed to remove useful information. ;)
xfsdump tends to do some large allocations in the kernel, and if there's not a lot of memory or it has become fragmented, they can fail. For these larger allocations, we can fall back to vmalloc, and most (alll?) have been fixed upstream and in RHEL7. From your backtrace above we can't see what path it was on, but I think that your RHEL6 kernel is still missing a fallback vmalloc for the xfs_attrlist_by_handle() path, which was just fixed upstream (by yours truly) in 3.10 and is on its way to RHEL6.
Unfortunately, if you're not in a position to file bugs w/ support, it's harder for us to know about the issues you've run into, and to fix them. AFAIK that path hasn't been reported by other customers, so there may be something unique about your usecase.
Anyway, I'm delving into support here, maybe not the right venue. But I will look into the chattr -R case too, that one is interesting; generally XFS is far superior at those sorts of traversal workloads.
So for xfsdump, my hunch was right; it's on the xfs_attrlist_by_handle() path. Fix is upstream, & pending for RHEL6.
I'll take a further look at the chattr backtrace. And yes, I suppose entering a bugzilla entry for that would be good - even if you can't file a support case, at least it logs the issue somewhere permanent & more findable than the community forums. :)
edit: The xfsaild / chattr allocation failure actually seems to be down the tg3 networking stack, taken on an interrupt, rather than from xfs though, FWIW.
Thanks,
-Eric
hi,
i just been searching through the rhel forums for info on the XFS FS. Found this topic.
In regards with the topic, i'd like to ask:
-
why the move from ext4 to xfs - i've been googling it and can't find a clear answer there.. was it because of technical issues with ext4?
-
do you have some link to RH papers where to read on the proper deployment of XFS and do you have performance comparison to EXT vs. XFS ?
-
is it safe to go XFS for '/' (root) FS? how about FS recovery when server crashes? and '/' is not accessible?
I didnt work with XFS previously, dont know much about it except 'hearsay' or what i read in diff articles, newspapers etc.
I simply need soak up as much info as possible, before deciding if XFS can go for production servers - and if so, to which FS is it likely best?
Small files, big files? Root FS? Non-root FSs? etc etc .. many questions there ...
thanks guys
Not specifically related to the thread but filesystem related,
Slides from the Linux Foundation Vault 2015 conference are now posted here:
http://events.linuxfoundation.org/events/vault
Interesting slides on history/future of XFS and scaling ext4.
I've been purposely avoiding using XFS for root (/) and /var in RHEL7, even though I've been a long-standing XFS on Linux advocate (since 2001, especially for data volumes >1TiB), because of my experiences with system utilization, especially /var.
Unfortunately I'm at a new client/partner where XFS was utilized for /var for a RHEL7 system, running Satellite 6 no less. If you don't know much about Satellite 6, just understand some components create a crapload of tiny files. Now coming from Satellite 5, I have always advocated breaking up various /var subdirectories for Satellite 6 as well. But in this case, the client/partner used a single /var for everything. Pulp isn't the main issue, because RPMs vary in a good amount of sizes, that XFS' Extents approach works fairly well. The larger issue are the other components that only use 10-20GiB, but have millions of small files, which is why I prefer to put even those directories in their own file systems (I know some Red Hat SMEs disagree).
And we cannot mount /var, and are left with the dreaded xfs_repair -L option being the only thing left, after xfs_repair -n pointed out the obviousness of the truth. Still doing my best to try to get the file system to mount, so we can get a good log for repair, but it's not looking good.
Bryan, please contact your RHEL support representative so they can help you with this matter by triaging the problem and filing a bug if appropriate.
Unfortunately we're running the Upstream components of Satellite 6 (largely for features, as Sat 6.2 didn't hit until just a few weeks ago), and not the Red Hat release (again, long story), so it complicates the matter, even if the platform itself is RHEL7 Server. I'm currently trying to do all I can to get the file system to mount, so we'll at least recover the logs.
This is because your xfs filesystem does not store the filetype in the directory, and so every inode in the tree must be stat'd (read) to determine the filetype when you use the "-type f" qualifier. This is much slower than just reading directory information. In RHEL7.3, mkfs.xfs will enable filetypes by default. You can do so today with "mkfs.xfs -n ftype=1". Thanks, -Eric
It isn't a good experience for me. kernel dumps, overwritten PV labels, ... Never seen such things on ext4. Keep your backups ready. - Stefan [1029453.560871] kernel BUG at fs/xfs/xfs_aops.c:1062! https://access.redhat.com/solutions/2779111
Hi Stefan -
The bug you refer to in xfs_aops.c has been fixed for RHEL7.4 and RHEL7.3.z. As for the other issues you mention, please file bugs for them so they can be investigated.
(a PV label should be outside the LV block devices presented to XFS, so that's a very surprising outcome, but please open a bug with details, and we can take a look)
Thanks,
-Eric
The new default has been a BAD experience for me, based solely on the inability to shrink XFS filesystem. There may be plenty of other problems, but that one alone is a show-stopper for me. Why anyone would promote a non-shrinkable filesystem as a default is beyond me.
I just posted my unhappiness at this (and related fumbles of the initial fumble) on (sadly) closed ticket https://bugzilla.redhat.com/show_bug.cgi?id=1131589
I was having a discussion about this last week with someone, and my point of view is slightly different. Shrinking just isn't a feature I use regularly, I think in the last 10 years i've used it once or twice. Interested to know what drives this requirement?
In what scenarios are you shrinking filesystems? I just never find the need to do it. I grow filesystems on an almost daily basis.. but it's very rare users want/need less storage and it's usually to recover from an administrative error (eg. admin expanding the wrong filesystem).
Anytime the initial allocation was too large one may need to shrink. See the bug report I alluded to. I've just spent most of Sunday (and I'm still here) redoing a server installation to revert to EXT4 given that I had screwed the pooch w.r.t. LV sizes. I do have the key aspects ansiblized, but I didn't even realize I had a problem with the shrinking until I realized all of my 3-TB disk was stuck on the stupid first LV (of several to create). I think recovery from poor initial choices (for whatever the reason for the poor choice) is a reasonable feature. I don't want have to be ALWAYS right, nor do I want to have to inch up every filesystem from the barest minimum after hitting a wall. And sometimes big data wants to move from one filesystem to another. Good luck recovering the now empty space.
Just want to chime in with some bad VERY recent experiences with XFS. One kernel panic ("CPU Lockup"/timeout) syncing after copying a very large file to a very slow device, then another panic trying to reboot after this filesystem had a corrupted journal (assumingly from the last panic). And that was just trying to get my system installed....
Hi Currently investigating an issue with system hang as a result of potential poor interaction between open-vm-tools and XFS at system backup time when file system quiescence is requested by the backup tool. If anyone can point me at a set of minimum levels of code required to support this combination, I'd be grateful. A colleague is pursuing the official support ticket line - mine is more of a general query. Thanks M.
I would assume RedHat knows what it is doing by making this change, but geez, I hope it actually works!
because typically only negatives about something are reported, I have had very good experiences with XFS over the years, going all the way back to SGI IRIX. I have used xfsdump and xfsrestore successfully only 2 or 3 times, when i really had to, and that was successful and surprisingly simple, and this was back when we were using sles 10 and sles 11.... initially used rh was version 3 or 2 then went to sles, now likely gonna go with rh 7.6.
I find it interesting that RedHat is making the change to go to XFS... I see it more like choosing to go back to what works and is proven. Since EXT3 and now EXT4 my preference is to make an OS disk/partition with either EXT3/4 where that disk size is < 500GB. But for any other single disk of any size or storage array (mine currently < 5tb) I prefer XFS and have never had a problem with 10,000+ files in however deep a folder structure might have went (unlike windows ntfs). My impression of BTRFS a couple years ago (albeit when first released and this was with SLES) I was not happy. ext4 and xfs ftw!
Begin Edit
For Ron Fee, please see below. Also, know in advance advantages and disadvantages of the new XFS standard, in particular, you can never shrink XFS in LVM. I've used it with databases and never added extra inodes. BTRFS is interesting, and there's a lot of good said about it, but I think personally one ought to select something else for production (after a ton of my own research). That being said, I have a customer with a 500TB (yes TB) raid array and it works fine for them. You mentioned you're surprised they went to XFS. It caught me by surprise in 2014 when they made it the standard. However, they did have it as a paid product with RHEL 6, and some other distros had it as their default. Ubuntu still has ext4 (as I type this) as their standard however.
End Edit
Anyone landing here, this post was originally created in 2013. It was resurrected last year, and again here in 2018.
Anyone asking about XFS - it has been tested and used for many years by those who use Red Hat 7 in production. Red Hat Linux version 6 had it too, and Red Hat used to charge for it. Then they started giving it away with RHEL 7.
The UNIX distribution/hardware vendor named SGI had it first (I'm pretty sure) and they were ahead of their time.
Regards
RJ
To my mind, the key issue is NOT whether XFS is a "good" filesystem (I assume it is), NOR whether it is "better" or worse that various other filesystems (that depends somewhat on your use case). The biggest issue is the combination of 1) an XFS filesystem cannot be shrunk, combined 2) with the default installation policy to scoop up all of the free disk space into that non-resizeable XFS partition combined with 3) the lack of any obvious warning in the installation filesystem GUI that XFS cannot be resized (unlike many other filesystems). This is discussed (by me) in two preceding posts - that combo is hard to recover from short of redoing your install. Sadly, all the tickets I have opened with REDHAT (I am a paying customer) end up with something like "its too late and/or to cluttered to provide a warning in installation GUI".
I think RedHat curates (and creates) really good software. I'm a strong advocate of RHEL/Fedora over other distros. I'm just disappointed at the dismissive attitude about this one issue -- providing an obvious install time warning about the downside (for some users) of taking the new default (XFS for the entire disk).
edited Charles, my reply prior was targeted for the questions Ron brought up. I couldn't have anticipated your topics above. (and your last reply prior to Nov 2nd was over a year ago, so I was addressing current content)
So now for your bits that you brought up --> for the things I don't agree with - for Red Hat products, I've submitted quite a number of RFEs. some have been approved/and deployed, waiting for others. I've never liked the non-shrink thing for XFS. I've made builds to go around and make provisions to make my life easier for the things you brought up. I do what I can. I keep pressing, and where needed, have my contract people press if it's important enough to my customers.
Regards,
RJ
Hi Charles,
I agree with your concerns about the negative point of not being able to shrink a XFS file systems. But I think it's not really
necessary to provide warnings about that and other things during the installation process, right because the main and the
most customers are enterprises which let professional admins perform these installations ... and those normally know what
they are doing. Also, Red Hat and RHEL generally aim more at professionals ... but that's just "my two cents" of course ... :)
Regards,
Christian
Hi,
I have been using XFS on Centos 7 servers at home for several years now. Not a single problem that caused major issues.
On the other hand, over many years in IT (I started with DEC Ultrix and VMS back in 1984), I do not recollect a single time I really needed to reduce a file system (apart from playing with it in labs). Maybe just lucky, although I believe it was proper planning more than anything else.
In any case, if that is an important feature, one would properly plan for it:
a) Use thin-provisioned LVM volumes below the XFS file system.
b) Use backup/restore solutions, for example xfsdump/xfsrestore.
Regards,
Dusan Baljevic (amateur radio VK2COT)