summaryrefslogtreecommitdiff
path: root/udev
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-02-13 18:22:45 -0800
committerSage Weil <sage@inktank.com>2013-02-15 14:18:34 -0800
commite090a92a20f4161f473d16bc966f7d6aacac75ee (patch)
treeac6ebda54dc17118d4ed1cda1cecbcf55a88875b /udev
parentc6ac0ddf91915ba2aeae46d21367f017e18e82cd (diff)
downloadceph-e090a92a20f4161f473d16bc966f7d6aacac75ee.tar.gz
udev: trigger on dmcrypted osd partitions
Automatically map encrypted journal partitions. For encrypted OSD partitions, map them, wait for the mapped device to appear, and then ceph-disk-activate. This is much simpler than doing the work in ceph-disk-activate. Signed-off-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'udev')
-rw-r--r--udev/95-ceph-osd.rules16
1 files changed, 16 insertions, 0 deletions
diff --git a/udev/95-ceph-osd.rules b/udev/95-ceph-osd.rules
index c3e05bb6ace..a6fcaea8823 100644
--- a/udev/95-ceph-osd.rules
+++ b/udev/95-ceph-osd.rules
@@ -3,3 +3,19 @@ ACTION=="add", SUBSYSTEM=="block", \
ENV{DEVTYPE}=="partition", \
ENV{ID_PART_ENTRY_TYPE}=="4fbd7e29-9d25-41b8-afd0-062c0ceff05d", \
RUN+="/usr/sbin/ceph-disk-activate --mount /dev/$name"
+
+# Map journal if using dm-crypt
+ACTION=="add" SUBSYSTEM=="block", \
+ ENV{DEVTYPE}=="partition", \
+ ENV{ID_PART_ENTRY_TYPE}=="45b0969e-9b03-4f30-b4c6-5ec00ceff106", \
+ RUN+="/sbin/cryptsetup --key-file /etc/ceph/dmcrypt-keys/$env{ID_PART_ENTRY_UUID} --key-size 256 create $env{ID_PART_ENTRY_UUID} /dev/$name"
+
+# Map data device and
+# activate ceph-tagged partitions
+# for dm-crypted data devices
+ACTION=="add" SUBSYSTEM=="block", \
+ ENV{DEVTYPE}=="partition", \
+ ENV{ID_PART_ENTRY_TYPE}=="4fbd7e29-9d25-41b8-afd0-5ec00ceff05d", \
+ RUN+="/sbin/cryptsetup --key-file /etc/ceph/dmcrypt-keys/$env{ID_PART_ENTRY_UUID} --key-size 256 create $env{ID_PART_ENTRY_UUID} /dev/$name", \
+ RUN+="bash -c 'while [ ! -e /dev/mapper/$env{ID_PART_ENTRY_UUID} ];do sleep 1; done'", \
+ RUN+="/usr/sbin/ceph-disk-activate --mount /dev/mapper/$env{ID_PART_ENTRY_UUID}"