-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathceph-disk-udev
executable file
·85 lines (67 loc) · 2.73 KB
/
ceph-disk-udev
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#! /bin/sh
# Wrapper for the ceph udev rules. Since older versions of udev+blkid
# do not support gpt label fields, this shell script is invoked from
# the udev rule to read the needed gpt label fields and call the
# appropriate ceph OSD functions.
PARTNO=$1
NAME=$2
PARENT_NAME=$3
# Get GPT partition type guid
ID_PART_ENTRY_TYPE=$(/usr/sbin/sgdisk --info=${PARTNO} /dev/${PARENT_NAME} | grep "Partition GUID code" | awk '{print $4}' | tr '[:upper:]' '[:lower:]')
if [ -z "$ID_PART_ENTRY_TYPE" ]; then
exit
fi
ID_PART_ENTRY_UUID=$(/usr/sbin/sgdisk --info=${PARTNO} /dev/${PARENT_NAME} | grep "Partition unique GUID" | awk '{print $4}' | tr '[:upper:]' '[:lower:]')
# set up the symlinks
mkdir -p /dev/disk/by-partuuid
ln -sf ../../${NAME} /dev/disk/by-partuuid/$ID_PART_ENTRY_UUID
mkdir -p /dev/disk/by-parttypeuuid
ln -sf ../../${NAME} /dev/disk/by-parttypeuuid/${ID_PART_ENTRY_TYPE}.${ID_PART_ENTRY_UUID}
case $ID_PART_ENTRY_TYPE in
45b0969e-9b03-4f30-b4c6-b4b80ceff106)
# JOURNAL_UUID
# activate ceph-tagged journal partitions.
/usr/sbin/ceph-disk -v activate-journal /dev/${NAME}
;;
45b0969e-9b03-4f30-b4c6-5ec00ceff106)
# DMCRYPT_JOURNAL_UUID
# Map journal if using dm-crypt
/sbin/cryptsetup --key-file /etc/ceph/dmcrypt-keys/${ID_PART_ENTRY_UUID} --key-size 256 create ${ID_PART_ENTRY_UUID} /dev/${NAME}
;;
45b0969e-9b03-4f30-b4c6-35865ceff106)
# DMCRYPT_LUKS_JOURNAL_UUID
# Map journal if using dm-crypt
/sbin/cryptsetup --key-file /etc/ceph/dmcrypt-keys/${ID_PART_ENTRY_UUID} luksOpen /dev/${NAME} ${ID_PART_ENTRY_UUID}
;;
4fbd7e29-9d25-41b8-afd0-062c0ceff05d)
# OSD_UUID
# activate ceph-tagged partitions.
/usr/sbin/ceph-disk -v activate /dev/${NAME}
;;
4fbd7e29-9d25-41b8-afd0-5ec00ceff05d)
# DMCRYPT_OSD_UUID
# Map data device and activate ceph-tagged partitions
# for dm-crypted data devices
/sbin/cryptsetup --key-file /etc/ceph/dmcrypt-keys/${ID_PART_ENTRY_UUID} --key-size 256 create ${ID_PART_ENTRY_UUID} /dev/${NAME}
bash -c 'while [ ! -e /dev/mapper/${ID_PART_ENTRY_UUID} ];do sleep 1; done'
/usr/sbin/ceph-disk activate /dev/mapper/${ID_PART_ENTRY_UUID}
;;
4fbd7e29-9d25-41b8-afd0-35865ceff05d)
# DMCRYPT_LUKS_OSD_UUID
# Map data device and activate ceph-tagged partitions
# for dm-crypted data devices
/sbin/cryptsetup --key-file /etc/ceph/dmcrypt-keys/${ID_PART_ENTRY_UUID} luksOpen /dev/${NAME} ${ID_PART_ENTRY_UUID}
bash -c 'while [ ! -e /dev/mapper/${ID_PART_ENTRY_UUID} ];do sleep 1; done'
/usr/sbin/ceph-disk activate /dev/mapper/${ID_PART_ENTRY_UUID}
;;
89c57f98-2fe5-4dc0-89c1-f3ad0ceff2be)
# TOBE_UUID
;;
89c57f98-2fe5-4dc0-89c1-5ec00ceff2be)
# DMCRYPT_TOBE_UUID
;;
*)
# Not a Ceph device
;;
esac
exit