]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
osd: add block_db_devices option support to ceph_volume module
authorGuillaume Abrioux <gabrioux@redhat.com>
Tue, 20 Aug 2019 13:57:45 +0000 (15:57 +0200)
committerGuillaume Abrioux <gabrioux@redhat.com>
Thu, 26 Sep 2019 14:21:54 +0000 (16:21 +0200)
This commit adds the `block_db_devices` option support to the
ceph_volume module.
passing a devices list in `dedicated_devices` will make ceph-volume
creating 1 vg using these devices to create block.db partitions for data
devices.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 7b836eaa47fc0a84d5c5d79dfadd9dab96eb6472)

group_vars/osds.yml.sample
library/ceph_volume.py
roles/ceph-osd/defaults/main.yml
roles/ceph-osd/tasks/scenarios/lvm-batch.yml

index 255a61f4ad9fb1c28b5907bdf1adf08a602f49f0..231fab646a832ad37174037edf12be717ca24568 100644 (file)
@@ -41,6 +41,13 @@ dummy:
 
 #devices: []
 
+# Declare devices to be used as block.db devices
+
+#dedicated_devices:
+#  - /dev/sda
+#  - /dev/sdb
+
+#dedicated_devices: []
 
 #'osd_auto_discovery'  mode prevents you from filling out the 'devices' variable above.
 # Device discovery is based on the Ansible fact 'ansible_devices'
index 48f3fef54a442ad65ba63647689636412fb8714e..a963a027b99a239d293a04dcfd288fb4cd74f80c 100644 (file)
@@ -279,6 +279,7 @@ def batch(module, container_image):
     crush_device_class = module.params.get('crush_device_class', None)
     journal_size = module.params.get('journal_size', None)
     block_db_size = module.params.get('block_db_size', None)
+    block_db_devices = module.params.get('block_db_devices', None)
     dmcrypt = module.params.get('dmcrypt', None)
     osds_per_device = module.params.get('osds_per_device', 1)
 
@@ -317,6 +318,9 @@ def batch(module, container_image):
 
     cmd.extend(batch_devices)
 
+    if block_db_devices:
+        cmd.extend(['--db-devices', ' '.join(block_db_devices)])
+
     return cmd
 
 
@@ -503,6 +507,7 @@ def run_module():
         osds_per_device=dict(type='int', required=False, default=1),
         journal_size=dict(type='str', required=False, default='5120'),
         block_db_size=dict(type='str', required=False, default='-1'),
+        block_db_devices=dict(type='list', required=False, default=[]),
         report=dict(type='bool', required=False, default=False),
         containerized=dict(type='str', required=False, default=False),
         osd_fsid=dict(type='str', required=False),
index 1f3e8baef04e8e82ba4e9ca40a19d8106cebd751..856f4ae1e7ac91a8260999bf78123b0f087b751d 100644 (file)
@@ -33,6 +33,13 @@ copy_admin_key: false
 
 devices: []
 
+# Declare devices to be used as block.db devices
+
+#dedicated_devices:
+#  - /dev/sda
+#  - /dev/sdb
+
+dedicated_devices: []
 
 #'osd_auto_discovery'  mode prevents you from filling out the 'devices' variable above.
 # Device discovery is based on the Ansible fact 'ansible_devices'
index e1f1b304dec5f6a02c9e378fbbb89643d5c35b1b..0b11f3a14af167737b9f41dda772afffa98b458a 100644 (file)
@@ -10,6 +10,7 @@
     osds_per_device: "{{ osds_per_device }}"
     journal_size: "{{ journal_size }}"
     block_db_size: "{{ block_db_size }}"
+    block_db_devices: "{{ dedicated_devices | unique if dedicated_devices | length > 0 else omit }}"
     action: "batch"
   environment:
     CEPH_VOLUME_DEBUG: 1