diff options
author | Guoqing Jiang <gqjiang@suse.com> | 2017-08-02 04:05:41 +0200 |
---|---|---|
committer | Jes Sorensen <jsorensen@fb.com> | 2017-08-02 15:30:51 +0200 |
commit | 0e23c597188a65bdf6cd39fafbf596f2317344da (patch) | |
tree | bad7e0b6695abfe90226f7ed88b035750b5bb3ba /udev-md-clustered-confirm-device.rules | |
parent | mdadm/r5cache: allow adding journal to array without journal (diff) | |
download | mdadm-0e23c597188a65bdf6cd39fafbf596f2317344da.tar.xz mdadm-0e23c597188a65bdf6cd39fafbf596f2317344da.zip |
udev rules: introduce rules for cluster-md to confirm device
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>
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
Diffstat (limited to 'udev-md-clustered-confirm-device.rules')
-rw-r--r-- | udev-md-clustered-confirm-device.rules | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/udev-md-clustered-confirm-device.rules b/udev-md-clustered-confirm-device.rules new file mode 100644 index 00000000..3e5381e1 --- /dev/null +++ b/udev-md-clustered-confirm-device.rules @@ -0,0 +1,21 @@ +# 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" +ACTION!="change", GOTO="clustermd_end" +ENV{EVENT}!="ADD_DEVICE", GOTO="clustermd_end" +ENV{DEVICE_UUID}!="?*", GOTO="clustermd_end" +ENV{RAID_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. +PROGRAM="BINDIR/blkid -o device -t UUID_SUB=$env{DEVICE_UUID}", ENV{.md.newdevice} = "$result" + +ENV{.md.newdevice}!="", RUN+="BINDIR/mdadm --manage $env{DEVNAME} --cluster-confirm $env{RAID_DISK}:$env{.md.newdevice}" +ENV{.md.newdevice}=="", RUN+="BINDIR/mdadm --manage $env{DEVNAME} --cluster-confirm $env{RAID_DISK}:missing" + +LABEL="clustermd_end" |