|
|
|
From 3740b7a6d246a5860c8f1d96504bbf00692447e0 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Goffredo Baroncelli <kreijack@inwind.it>
|
|
|
|
Date: Sun, 12 Apr 2015 20:30:28 +0200
|
|
|
|
Subject: [PATCH] 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.
|
|
|
|
|
|
|
|
(cherry picked from commit 3a92e4ba470611ceec6693640b05eb248d62e32d)
|
|
|
|
|
|
|
|
Related: #1299714
|
|
|
|
---
|
|
|
|
tmpfiles.d/journal-nocow.conf | 27 +++++++++++++++++++++++++++
|
|
|
|
1 file changed, 27 insertions(+)
|
|
|
|
create mode 100644 tmpfiles.d/journal-nocow.conf
|
|
|
|
|
|
|
|
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
|