linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] udev rules: introduce rules for cluster-md to confirm device
@ 2017-08-01  3:15 Guoqing Jiang
  2017-08-01  4:40 ` NeilBrown
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Guoqing Jiang @ 2017-08-01  3:15 UTC (permalink / raw)
  To: linux-raid; +Cc: jes.sorensen, neilb, Guoqing Jiang

For cluster scenario, add device is different with native raid.
When a node issues adds a device, then the node will broadcast
a message with UUID to other nodes in the cluster. If receiving
node can find the device with the specific UUID, it must confirm
the device, otherwise reports it is missing.

Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
---
 Makefile                               |  6 ++++--
 udev-md-clustered-confirm-device.rules | 20 ++++++++++++++++++++
 2 files changed, 24 insertions(+), 2 deletions(-)
 create mode 100644 udev-md-clustered-confirm-device.rules

diff --git a/Makefile b/Makefile
index 021d3ad..0977f27 100644
--- a/Makefile
+++ b/Makefile
@@ -256,8 +256,10 @@ install-man: mdadm.8 md.4 mdadm.conf.5 mdmon.8
 	$(INSTALL) -D -m 644 md.4 $(DESTDIR)$(MAN4DIR)/md.4
 	$(INSTALL) -D -m 644 mdadm.conf.5 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5
 
-install-udev: udev-md-raid-arrays.rules udev-md-raid-assembly.rules udev-md-raid-creating.rules
-	@for file in 01-md-raid-creating.rules 63-md-raid-arrays.rules 64-md-raid-assembly.rules ; \
+install-udev: udev-md-raid-arrays.rules udev-md-raid-assembly.rules udev-md-raid-creating.rules \
+		udev-md-clustered-confirm-device.rules 
+	@for file in 01-md-raid-creating.rules 63-md-raid-arrays.rules 64-md-raid-assembly.rules \
+		69-md-clustered-confirm-device.rules ; \
 	do sed -e 's,BINDIR,$(BINDIR),g' udev-$${file#??-} > .install.tmp.1 && \
 	   $(ECHO) $(INSTALL) -D -m 644 udev-$${file#??-} $(DESTDIR)$(UDEVDIR)/rules.d/$$file ; \
 	   $(INSTALL) -D -m 644 .install.tmp.1 $(DESTDIR)$(UDEVDIR)/rules.d/$$file ; \
diff --git a/udev-md-clustered-confirm-device.rules b/udev-md-clustered-confirm-device.rules
new file mode 100644
index 0000000..d763e27
--- /dev/null
+++ b/udev-md-clustered-confirm-device.rules
@@ -0,0 +1,20 @@
+# do not edit this file, it will be overwritten on update
+
+SUBSYSTEM!="block", GOTO="clustermd_end"
+
+# handle md arrays
+KERNEL!="md*", GOTO="clustermd_end"
+ENV{DEVTYPE}!="disk", GOTO="clustermd_end"
+
+# Based on the received UUID, node confirms the device if
+# it is found by blkid, otherwise the node reports it is
+# missing.
+ACTION=="change", ENV{EVENT}=="ADD_DEVICE", ENV{DEVICE_UUID}=="?*", ENV{RAID_DISK}=="?*", \
+PROGRAM="BINDIR/blkid -o device -t UUID_SUB=$env{DEVICE_UUID}", RESULT!="", \
+RUN+="BINDIR/mdadm --manage $env{DEVNAME} --cluster-confirm $env{RAID_DISK}:$result"
+
+ACTION=="change", ENV{EVENT}=="ADD_DEVICE", ENV{DEVICE_UUID}=="?*", ENV{RAID_DISK}=="?*", \
+PROGRAM="BINDIR/blkid -o device -t UUID_SUB=$env{DEVICE_UUID}", RESULT=="", \
+RUN+="BINDIR/mdadm --manage $env{DEVNAME} --cluster-confirm $env{RAID_DISK}:missing"
+
+LABEL="clustermd_end"
-- 
2.10.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-08-03  2:50 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-01  3:15 [PATCH] udev rules: introduce rules for cluster-md to confirm device Guoqing Jiang
2017-08-01  4:40 ` NeilBrown
2017-08-01  8:05   ` Guoqing Jiang
2017-08-01  8:19 ` [PATCH V2] " Guoqing Jiang
2017-08-01 21:15   ` NeilBrown
2017-08-02  1:53     ` Guoqing Jiang
2017-08-02  2:05 ` [PATCH v3] " Guoqing Jiang
2017-08-02 13:31   ` Jes Sorensen
2017-08-03  1:43   ` John Stoffel
2017-08-03  1:57     ` Guoqing Jiang
2017-08-03  2:50       ` John Stoffel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).