]> 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>
Mon, 13 Jan 2020 19:50:29 +0000 (14:50 -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 3550148f37eae36eef3fc2a5c08be13f29dc3646..5c6cac130c7db2633aeda4c5ce1666584e54044e 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: