On 2013-05-03 1:30 AM, Stan Hoeppner <s...@hardwarefreak.com> wrote:
From a filesystem perspective mdbox is little different from maildir as
they both exhibit lots of small random IOs.
Hi Stan. Thanks, was hoping you'd chime in here...
But, I'm confused as to why you'd say this. mdbox supposedly has many
advantages over maildir, since it is *not* a single file for every email
(like maildir or sdbox).
My recommendation is to use XFS with the defaults, but add "inode64" to
the mount options in /etc/fstab. This enables the modern allocator
which clusters files around their parent directory within an allocation
group. It's the default allocator in very recent upstream kernels but
not in most currently shipping distro kernels. It decreases seek
latency between metadata and file operations, and better manages on disk
space. In short, XFS will yield superior mail performance to EXT4 in a
multiuser environment.
Thanks very much. I'd already come to a similar conclusion, but was
starting to have doubts after some of the prior comments. But what you
say backs up the majority of what I've been reading. It's just difficult
to judge what you're reading when you aren't a software or hardware
engineer, just a lowly self-taught sysadmin who still consider himself a
noob even after doing this for a few years.
There are currently no mail workload tuning docs in the world of XFS
that I'm aware of. I've been intending to write such a doc for the
XFS.org FAQ for some time but it hasn't happened yet.
Hope you find the time to do it some day... :)
On 2013-05-03 5:54 AM, Stan Hoeppner <s...@hardwarefreak.com> wrote:
Many XFS mount options are kernel version specific. Show:
~$ uname -a
Linux myhost 3.7.10-gentoo-r1 #3 SMP Sat Apr 27 10:01:59 EDT 2013 x86_64
AMD Opteron(tm) Processor 4180 AuthenticAMD GNU/Linux
Delaylog doesn't exist in recent mount(8) because it's no longer a mount
option, same goes for older mount(8). Its existence as a mount option
didn't exist for long, WRT distro mount(8) updates. Since 2.6.39
delaylog is the default, and as of somewhat more recently in the 3.x
tree, the old journal logging code was completely removed from the
source. Thus there is no longer a "delaylog" mount option. The feature
is now hard coded in XFS.
Got it, thanks.
Barriers are crucial to XFS journal, and thus filesystem, reliability.
"nobarrier" isn't listed in mount(8), though "barrier" is, which is the
default mode. Making people "look for" the switch that disables
barriers forces them to take a learning journey. Hopefully during this
journey they become educated to the risks of disabling it, before doing
so. "Better reliability through obscurity" you might say. Consider the
horrible rap XFS would have today if everyone and his dog could easily
learn how to disable barriers, then did so on hardware not appropriate
for it. Yes, exactly, corrupted XFS filesystems littering the landscape
and people screaming what a pile of dogsh|zt XFS is.
Got it, thanks again.
WRT noquota, it is the default. You'd never specify it. There are 10
quota options at the bottom of the XFS section of mount(8) that one
might want to set.
It is quite irritating, yet surprisingly common, to see XFS users
re-specifying the defaults in their /etc/fstab, because they didn't take
the time to educate themselves properly, and simply copy/pasted from one
of many online "XFS tuning guides". On the XFS list we call these "XFS
mis-tuning guides", as nearly all of them contain mostly misinformation.
Not intentional mind you, but because they just don't know what they're
talking about, or they did but the guide is 5+ years old, and things
have changed.
Ok, so here's my final fstab... thanks again for all of the comments
(especially yours Stan).
# <fs> <mountpoint> <type> <opts> <dump/pass>
#
# Non-LVM volumes
#
/dev/sda1 /boot ext4 defaults,noauto 1 2
/dev/sda3 / ext4 defaults 0 1
/dev/sda2 none swap sw 0 0
/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0
#
# LVM volumes
#
/dev/vg/var /var xfs defaults,inode64 0 2
/dev/vg/tmp /tmp ext2 nodev,noexec,nosuid 0 2
/dev/vg/vtmp /var/tmp ext2 nodev,nosuid 0 2
/dev/vg/log /var/log ext2 defaults 0 2
/dev/vg/snaps /snaps xfs defaults,inode64 0 2
--
Best regards,
Charles