Hi, After looking to code in ceph-disk I came to the same conclusion, problem is with the mapping.
Here are quote form ceph-disk def get_partition_dev(dev, pnum): """ get the device name for a partition assume that partitions are named like the base dev, with a number, and optionally some intervening characters (like 'p'). e.g., sda 1 -> sda1 cciss/c0d1 1 -> cciss!c0d1p1 """ Script are looking for partitions labeled as "sdb[X]" or "p[X]", where [x] means number of partitions (counted from 1). Dm-crypt are creating some new mapping in /dev/mapper/, example /dev/mapper/osd0 as main block device and /dev/mapper/osdp1 as first partition and /dev/mapper/osdp2 as second partition. But real path to osd0 device is NOT /dev/mapper/osd0 but /dev/dm-0 (sic!), and /dev/dm-1 is as first partition (osdp1), /dev/dm-2 is as second partition (osdp2). Conlusion. If we are using dm-crypt the script in ceph-disk should not looking partitions like sda partition 1 -> sda1 or osd0 partition 1-> osdp1 but should looking for partitions labeled as /dev/dm-X (counted from 1). Block device Real path /dev/mapper/osd0 -> /dev/dm-0 First partition Real path /dev/mapper/osd0p1 -> /dev/dm-1 Second partition Real path /dev/mapper/osd0p2 -> /dev/dm-2 Continuing, 'ceph-disk activate' should mount dm-crypted partitions not by using /dev/disk/by-partuuid, but /dev/disk/by-uuid -- Best regards, Michel Lukzak >> ceph-disk-prepare --fs-type xfs --dmcrypt --dmcrypt-key-dir >> /etc/ceph/dmcrypt-keys --cluster ceph -- /dev/sdb >> ceph-disk: Error: Device /dev/sdb2 is in use by a device-mapper mapping >> (dm-crypt?): dm-0 > It sounds like device-mapper still thinks it's using the the volume, > you might be able to track it down with this: > for i in `ls -1 /sys/block/ | grep sd`; do echo $i: `ls > /sys/block/$i/${i}1/holders/`; done > Then it's a matter of making sure there are no open file handles on > the encrypted volume and unmounting it. You will still need to > completely clear out the partition table on that disk, which can be > tricky with GPT because it's not as simple as dd'in the start of the > volume. This is what the zapdisk parameter is for in > ceph-disk-prepare, I don't know enough about ceph-deploy to know if > you can somehow pass it. > After you know the device/dm mapping you can use udevadm to find out > where it should map to (uuids replaced with xxx's): > udevadm test /block/sdc/sdc1 > <snip> > run: '/sbin/cryptsetup --key-file /etc/ceph/dmcrypt-keys/xxxxx > --key-size 256 create xxxx /dev/sdc1' > run: '/bin/bash -c 'while [ ! -e /dev/mapper/xxxxx ];do sleep 1; done'' > run: '/usr/sbin/ceph-disk-activate /dev/mapper/xxxxx'
_______________________________________________ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com