From: Satoru Takeuchi Date: Fri, 24 Apr 2020 16:56:03 +0000 (+0000) Subject: cephadm: fix the hang-up of cryptsetup on creating encrypted OSD X-Git-Tag: wip-pdonnell-testing-20200918.022351~1361^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bcdabfc96c15c83afc01c155eb6b424a609271ae;p=ceph-ci.git cephadm: fix the hang-up of cryptsetup on creating encrypted OSD Creating encrypted OSD fails due to the container's dedicated ipc namespace. Sharing the ipc namespace with host resolve this problem. Here is the log. ``` host# cephadm shell ... # cat spec.yaml service_type: osd service_id: example_osd_spec placement: host_pattern: '*' data_devices: all: true encrypted: true # ceph orch apply osd -i spec.yaml NAME HOST DATA DB WAL example_osd_spec ubuntu1804 /dev/sdb - - # ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0 root default 0 0 osd.0 down 0 1.00000 ``` It happens because cryptsetup wait some semaphore forever. This semaphore is acquired in the host namespace. ``` # exit # log out from shell host# pstree -p ... | |-containerd-shim(11804)-+-ceph-volume(11821)---cryptsetup(12004) ... host# ps --pid 12004 -o pid,comm,args,wchan PID COMMAND COMMAND WCHAN 12004 cryptsetup /usr/sbin/cryptsetup --key- semtimedop host# ``` Signed-off-by: Satoru Takeuchi --- diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 54ca99701ff..fad02167abb 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -2090,6 +2090,7 @@ class CephContainer: 'run', '--rm', '--net=host', + '--ipc=host', ] + self.container_args + priv + \ cname + envs + \ vols + entrypoint + \ @@ -2123,6 +2124,7 @@ class CephContainer: 'run', '--rm', '--net=host', + '--ipc=host', ] + self.container_args + priv + envs + vols + [ '--entrypoint', cmd[0], self.image