]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
purge: use sysfs to unmap rbd devices
authorGuillaume Abrioux <gabrioux@redhat.com>
Mon, 4 Nov 2019 14:59:39 +0000 (15:59 +0100)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Thu, 14 Nov 2019 15:49:38 +0000 (10:49 -0500)
in containerized context, using the binary provided in atomic os won't
work because it's an old version provided by ceph-common based on
10.2.5.
Using a container could be an idea but for large cluster with hundreds
of client nodes, that would require to pull the image of each of them
just to unmap the rbd devices.

Let's use the sysfs method in order to avoid any issue related to ceph
version that is shipped on the host.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1766064
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 3cfcc7a105156dfde65b23e9d8662cd848537094)

infrastructure-playbooks/purge-docker-cluster.yml

index dc0cf920d2620b7554c571c8a2b37847a67592df..3231db994fdfa91015c51c0b9f844323668c9081 100644 (file)
     - name: ensure cephfs mountpoint are unmounted
       command: umount -a -t ceph
 
-    - name: ensure rbd devices are unmapped
-      command: rbdmap unmap-all
+    - name: find mapped rbd ids
+      find:
+        paths: /sys/bus/rbd/devices
+        file_type: any
+      register: rbd_mapped_ids
+
+    - name: use sysfs to unmap rbd devices
+      shell: "echo {{ item.path | basename }} > /sys/bus/rbd/remove_single_major"
+      with_items: "{{ rbd_mapped_ids.files }}"
 
     - name: unload ceph kernel modules
       modprobe: