]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
cephadm: fix the hang-up of cryptsetup on creating encrypted OSD 34745/head
authorSatoru Takeuchi <satoru.takeuchi@gmail.com>
Fri, 24 Apr 2020 16:56:03 +0000 (16:56 +0000)
committerSatoru Takeuchi <satoru.takeuchi@gmail.com>
Fri, 24 Apr 2020 17:07:03 +0000 (17:07 +0000)
commitbcdabfc96c15c83afc01c155eb6b424a609271ae
treebadc4224b06a7abfc0832cb771294f0d0af80f84
parentcc5b26394188b346edea56f0e7a1a7cba375bfe2
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 <satoru.takeuchi@gmail.com>
src/cephadm/cephadm