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.
137 lines
4.7 KiB
137 lines
4.7 KiB
From 4199d3c629c14866505923d19fa50017ee92d2e1 Mon Sep 17 00:00:00 2001 |
|
From: NeilBrown <neilb@suse.com> |
|
Date: Wed, 5 Dec 2018 16:35:00 +1100 |
|
Subject: [RHEL7.7 PATCH 04/21] mdcheck: add systemd unit files to run mdcheck. |
|
|
|
Having the mdcheck script is not use if is never run. |
|
This patch adds systemd unit files so that it can easily |
|
be run on the first Sunday of each month for 6 hours, |
|
then on every subsequent morning until the check is |
|
finished. |
|
|
|
The units still need to be enabled with |
|
systemctl enable mdcheck_start.timer |
|
|
|
The timer will only actually be started when an array |
|
which might need it becomes active. |
|
|
|
Signed-off-by: NeilBrown <neilb@suse.com> |
|
Signed-off-by: Jes Sorensen <jsorensen@fb.com> |
|
--- |
|
Makefile | 5 ++++- |
|
systemd/mdcheck_continue.service | 18 ++++++++++++++++++ |
|
systemd/mdcheck_continue.timer | 13 +++++++++++++ |
|
systemd/mdcheck_start.service | 17 +++++++++++++++++ |
|
systemd/mdcheck_start.timer | 15 +++++++++++++++ |
|
5 files changed, 67 insertions(+), 1 deletion(-) |
|
create mode 100644 systemd/mdcheck_continue.service |
|
create mode 100644 systemd/mdcheck_continue.timer |
|
create mode 100644 systemd/mdcheck_start.service |
|
create mode 100644 systemd/mdcheck_start.timer |
|
|
|
diff --git a/Makefile b/Makefile |
|
index 2767ac6..afb62cc 100644 |
|
--- a/Makefile |
|
+++ b/Makefile |
|
@@ -276,7 +276,10 @@ install-udev: udev-md-raid-arrays.rules udev-md-raid-assembly.rules udev-md-raid |
|
|
|
install-systemd: systemd/mdmon@.service |
|
@for file in mdmon@.service mdmonitor.service mdadm-last-resort@.timer \ |
|
- mdadm-last-resort@.service mdadm-grow-continue@.service; \ |
|
+ mdadm-last-resort@.service mdadm-grow-continue@.service \ |
|
+ mdcheck_start.timer mdcheck_start.service \ |
|
+ mdcheck_continue.timer mdcheck_continue.service \ |
|
+ ; \ |
|
do sed -e 's,BINDIR,$(BINDIR),g' systemd/$$file > .install.tmp.2 && \ |
|
$(ECHO) $(INSTALL) -D -m 644 systemd/$$file $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \ |
|
$(INSTALL) -D -m 644 .install.tmp.2 $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \ |
|
diff --git a/systemd/mdcheck_continue.service b/systemd/mdcheck_continue.service |
|
new file mode 100644 |
|
index 0000000..592c607 |
|
--- /dev/null |
|
+++ b/systemd/mdcheck_continue.service |
|
@@ -0,0 +1,18 @@ |
|
+# This file is part of mdadm. |
|
+# |
|
+# mdadm is free software; you can redistribute it and/or modify it |
|
+# under the terms of the GNU General Public License as published by |
|
+# the Free Software Foundation; either version 2 of the License, or |
|
+# (at your option) any later version. |
|
+ |
|
+[Unit] |
|
+Description=MD array scrubbing - continuation |
|
+ConditionPathExistsGlob = /var/lib/mdcheck/MD_UUID_* |
|
+ |
|
+[Service] |
|
+Type=oneshot |
|
+Environment= MDADM_CHECK_DURATION='"6 hours"' |
|
+EnvironmentFile=-/run/sysconfig/mdadm |
|
+ExecStartPre=-/usr/lib/mdadm/mdadm_env.sh |
|
+ExecStart=/usr/share/mdadm/mdcheck --continue --duration $MDADM_CHECK_DURATION |
|
+ |
|
diff --git a/systemd/mdcheck_continue.timer b/systemd/mdcheck_continue.timer |
|
new file mode 100644 |
|
index 0000000..3ccfd78 |
|
--- /dev/null |
|
+++ b/systemd/mdcheck_continue.timer |
|
@@ -0,0 +1,13 @@ |
|
+# This file is part of mdadm. |
|
+# |
|
+# mdadm is free software; you can redistribute it and/or modify it |
|
+# under the terms of the GNU General Public License as published by |
|
+# the Free Software Foundation; either version 2 of the License, or |
|
+# (at your option) any later version. |
|
+ |
|
+[Unit] |
|
+Description=MD array scrubbing - continuation |
|
+ |
|
+[Timer] |
|
+OnCalendar= 1:05:00 |
|
+ |
|
diff --git a/systemd/mdcheck_start.service b/systemd/mdcheck_start.service |
|
new file mode 100644 |
|
index 0000000..812141b |
|
--- /dev/null |
|
+++ b/systemd/mdcheck_start.service |
|
@@ -0,0 +1,17 @@ |
|
+# This file is part of mdadm. |
|
+# |
|
+# mdadm is free software; you can redistribute it and/or modify it |
|
+# under the terms of the GNU General Public License as published by |
|
+# the Free Software Foundation; either version 2 of the License, or |
|
+# (at your option) any later version. |
|
+ |
|
+[Unit] |
|
+Description=MD array scrubbing |
|
+Wants=mdcheck_continue.timer |
|
+ |
|
+[Service] |
|
+Type=oneshot |
|
+Environment= MDADM_CHECK_DURATION='"6 hours"' |
|
+EnvironmentFile=-/run/sysconfig/mdadm |
|
+ExecStartPre=-/usr/lib/mdadm/mdadm_env.sh |
|
+ExecStart=/usr/share/mdadm/mdcheck --duration $MDADM_CHECK_DURATION |
|
diff --git a/systemd/mdcheck_start.timer b/systemd/mdcheck_start.timer |
|
new file mode 100644 |
|
index 0000000..6480736 |
|
--- /dev/null |
|
+++ b/systemd/mdcheck_start.timer |
|
@@ -0,0 +1,15 @@ |
|
+# This file is part of mdadm. |
|
+# |
|
+# mdadm is free software; you can redistribute it and/or modify it |
|
+# under the terms of the GNU General Public License as published by |
|
+# the Free Software Foundation; either version 2 of the License, or |
|
+# (at your option) any later version. |
|
+ |
|
+[Unit] |
|
+Description=MD array scrubbing |
|
+ |
|
+[Timer] |
|
+OnCalendar=Sun *-*-1..7 1:00:00 |
|
+ |
|
+[Install] |
|
+WantedBy= mdmonitor.service |
|
-- |
|
2.7.5 |
|
|
|
|