You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.6 KiB
64 lines
2.6 KiB
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 000000000..e7938c891 |
|
--- /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
|
|
|