summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGoffredo Baroncelli <kreijack@inwind.it>2015-04-12 20:30:28 +0200
committerLennart Poettering <lennart@poettering.net>2015-04-13 16:37:52 +0200
commit3a92e4ba470611ceec6693640b05eb248d62e32d (patch)
treed5f15317bdc16d75ba418c31d923c40d4a6fe93d
parent48e6d6a6e911af0cf4e3ef12b0a3eeb2c8031d8a (diff)
tmpfiles: Add +C attrib to the journal files directories
Add the +C file attribute (NOCOW) to the journal directories, so that the flag is inherited automatically for new journal files created in them. The journal write pattern is problematic on btrfs file systems as it results in badly fragmented files when copy-on-write (COW) is used: the performances decreases substantially over time. To avoid this issue, this tmpfile.d snippet sets the NOCOW attribute to the journal files directories, so newly created journal files inherit the NCOOW attribute that disables copy-on-write. Be aware that the NOCOW file attribute also disables btrfs checksumming for these files, and thus prevents btrfs from rebuilding corrupted files on a RAID filesystem. In a single disk filesystems (or filesystems without redundancy) it is safe to use the NOCOW flags without drawbacks, since the journal files contain their own checksumming.
-rw-r--r--tmpfiles.d/journal-nocow.conf27
1 files changed, 27 insertions, 0 deletions
diff --git a/tmpfiles.d/journal-nocow.conf b/tmpfiles.d/journal-nocow.conf
new file mode 100644
index 0000000000..e7938c8911
--- /dev/null
+++ b/tmpfiles.d/journal-nocow.conf
@@ -0,0 +1,27 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+# See tmpfiles.d(5) for details
+
+# Set the NOCOW attribute for directories of journal files. This flag
+# is inheredited by their new files and sub-directories. Matters only
+# for btrfs filesystems.
+#
+# WARNING: Enabling the NOCOW attribute improves journal performance
+# substantially, but also disables the btrfs checksum logic. In
+# btrfs RAID filesystems the checksums are needed for rebuilding
+# corrupted files. Without checksums such rebuilds are not
+# possible.
+#
+# In a single-disk filesystem (or a filesystem without redundancy)
+# enabling the NOCOW attribute for journal files is safe, because
+# they have their own checksums and a rebuilding wouldn't be possible
+# in any case.
+
+h /var/log/journal - - - - +C
+h /var/log/journal/%m - - - - +C
+h /var/log/journal/remote - - - - +C