From 03f100c350407d203aa0667cf1c009c8cd1acf9b Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Tue, 16 Jan 2024 10:58:07 +0900 Subject: [PATCH] rbd: Support rbd_concurrent_flatten_operations option ... which was added during this cycle. Depends-on: https://review.opendev.org/c/openstack/cinder/+/835384 Change-Id: I93b6b81aa5e96ba1ffc98837ae6b6e72ca5e8970 --- manifests/backend/rbd.pp | 87 ++++++++++--------- ...t_flatten_operations-8916b5ddd45b14d5.yaml | 5 ++ spec/defines/cinder_backend_rbd_spec.rb | 35 ++++---- 3 files changed, 71 insertions(+), 56 deletions(-) create mode 100644 releasenotes/notes/rbd_concurrent_flatten_operations-8916b5ddd45b14d5.yaml diff --git a/manifests/backend/rbd.pp b/manifests/backend/rbd.pp index 1b5d7d39..01e6b0ae 100644 --- a/manifests/backend/rbd.pp +++ b/manifests/backend/rbd.pp @@ -91,6 +91,11 @@ # volumes tagged for deletion. # Defaults to $facts['os_service_default'] # +# [*rbd_concurrent_flatten_operations*] +# (optional) Number of flatten operations that will run concurrently on +# this volume service. +# Defaults to $facts['os_service_default'] +# # [*manage_volume_type*] # (Optional) Whether or not manage Cinder Volume type. # If set to true, a Cinder Volume type will be created @@ -106,25 +111,26 @@ define cinder::backend::rbd ( $rbd_pool, $rbd_user, - $backend_host = undef, - $volume_backend_name = $name, - $backend_availability_zone = $facts['os_service_default'], - $reserved_percentage = $facts['os_service_default'], - $rbd_ceph_conf = '/etc/ceph/ceph.conf', - $rbd_flatten_volume_from_snapshot = $facts['os_service_default'], - $rbd_secret_uuid = $facts['os_service_default'], - $rbd_max_clone_depth = $facts['os_service_default'], - $rados_connect_timeout = $facts['os_service_default'], - $rados_connection_interval = $facts['os_service_default'], - $rados_connection_retries = $facts['os_service_default'], - $rbd_store_chunk_size = $facts['os_service_default'], - $report_dynamic_total_capacity = $facts['os_service_default'], - $rbd_exclusive_cinder_pool = $facts['os_service_default'], - $enable_deferred_deletion = $facts['os_service_default'], - $deferred_deletion_delay = $facts['os_service_default'], - $deferred_deletion_purge_interval = $facts['os_service_default'], - Boolean $manage_volume_type = false, - Hash $extra_options = {}, + $backend_host = undef, + $volume_backend_name = $name, + $backend_availability_zone = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], + $rbd_ceph_conf = '/etc/ceph/ceph.conf', + $rbd_flatten_volume_from_snapshot = $facts['os_service_default'], + $rbd_secret_uuid = $facts['os_service_default'], + $rbd_max_clone_depth = $facts['os_service_default'], + $rados_connect_timeout = $facts['os_service_default'], + $rados_connection_interval = $facts['os_service_default'], + $rados_connection_retries = $facts['os_service_default'], + $rbd_store_chunk_size = $facts['os_service_default'], + $report_dynamic_total_capacity = $facts['os_service_default'], + $rbd_exclusive_cinder_pool = $facts['os_service_default'], + $enable_deferred_deletion = $facts['os_service_default'], + $deferred_deletion_delay = $facts['os_service_default'], + $deferred_deletion_purge_interval = $facts['os_service_default'], + $rbd_concurrent_flatten_operations = $facts['os_service_default'], + Boolean $manage_volume_type = false, + Hash $extra_options = {}, ) { include cinder::deps @@ -139,27 +145,28 @@ define cinder::backend::rbd ( } cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/reserved_percentage": value => $reserved_percentage; - "${name}/volume_driver": value => 'cinder.volume.drivers.rbd.RBDDriver'; - "${name}/rbd_ceph_conf": value => $rbd_ceph_conf; - "${name}/rbd_user": value => $rbd_user; - "${name}/rbd_pool": value => $rbd_pool; - "${name}/rbd_max_clone_depth": value => $rbd_max_clone_depth; - "${name}/rbd_flatten_volume_from_snapshot": value => $rbd_flatten_volume_from_snapshot; - "${name}/rbd_secret_uuid": value => $rbd_secret_uuid; - "${name}/rados_connect_timeout": value => $rados_connect_timeout; - "${name}/rados_connection_interval": value => $rados_connection_interval; - "${name}/rados_connection_retries": value => $rados_connection_retries; - "${name}/rbd_store_chunk_size": value => $rbd_store_chunk_size; - "${name}/rbd_cluster_name": value => $rbd_cluster_name_real; - "${name}/report_dynamic_total_capacity": value => $report_dynamic_total_capacity; - "${name}/rbd_exclusive_cinder_pool": value => $rbd_exclusive_cinder_pool; - "${name}/enable_deferred_deletion": value => $enable_deferred_deletion; - "${name}/deferred_deletion_delay": value => $deferred_deletion_delay; - "${name}/deferred_deletion_purge_interval": value => $deferred_deletion_purge_interval; - "${name}/report_discard_supported": value => true; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/volume_driver": value => 'cinder.volume.drivers.rbd.RBDDriver'; + "${name}/rbd_ceph_conf": value => $rbd_ceph_conf; + "${name}/rbd_user": value => $rbd_user; + "${name}/rbd_pool": value => $rbd_pool; + "${name}/rbd_max_clone_depth": value => $rbd_max_clone_depth; + "${name}/rbd_flatten_volume_from_snapshot": value => $rbd_flatten_volume_from_snapshot; + "${name}/rbd_secret_uuid": value => $rbd_secret_uuid; + "${name}/rados_connect_timeout": value => $rados_connect_timeout; + "${name}/rados_connection_interval": value => $rados_connection_interval; + "${name}/rados_connection_retries": value => $rados_connection_retries; + "${name}/rbd_store_chunk_size": value => $rbd_store_chunk_size; + "${name}/rbd_cluster_name": value => $rbd_cluster_name_real; + "${name}/report_dynamic_total_capacity": value => $report_dynamic_total_capacity; + "${name}/rbd_exclusive_cinder_pool": value => $rbd_exclusive_cinder_pool; + "${name}/enable_deferred_deletion": value => $enable_deferred_deletion; + "${name}/deferred_deletion_delay": value => $deferred_deletion_delay; + "${name}/deferred_deletion_purge_interval": value => $deferred_deletion_purge_interval; + "${name}/rbd_concurrent_flatten_operations": value => $rbd_concurrent_flatten_operations; + "${name}/report_discard_supported": value => true; } if $manage_volume_type { diff --git a/releasenotes/notes/rbd_concurrent_flatten_operations-8916b5ddd45b14d5.yaml b/releasenotes/notes/rbd_concurrent_flatten_operations-8916b5ddd45b14d5.yaml new file mode 100644 index 00000000..999c2c1c --- /dev/null +++ b/releasenotes/notes/rbd_concurrent_flatten_operations-8916b5ddd45b14d5.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The new ``cinder::backends::rbd::rbd_concurrent_flatten_operations`` option + has been added. diff --git a/spec/defines/cinder_backend_rbd_spec.rb b/spec/defines/cinder_backend_rbd_spec.rb index dd350de3..42942cd2 100644 --- a/spec/defines/cinder_backend_rbd_spec.rb +++ b/spec/defines/cinder_backend_rbd_spec.rb @@ -41,28 +41,30 @@ describe 'cinder::backend::rbd' do is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/enable_deferred_deletion").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/deferred_deletion_delay").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/deferred_deletion_purge_interval").with_value('') + is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rbd_concurrent_flatten_operations").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/report_discard_supported").with_value(true) } context 'with parameters' do let :params do req_params.merge!({ - :backend_host => 'test_host.fqdn.com', - :backend_availability_zone => 'my_zone', - :reserved_percentage => 10, - :rbd_ceph_conf => '/opt/ceph.conf', - :rbd_flatten_volume_from_snapshot => true, - :rbd_secret_uuid => 'b129523a-61a5-4653-86d1-2b055f970801', - :rbd_max_clone_depth => 5, - :rados_connect_timeout => 10, - :rados_connection_interval => 5, - :rados_connection_retries => 3, - :rbd_store_chunk_size => 4, - :report_dynamic_total_capacity => true, - :rbd_exclusive_cinder_pool => false, - :enable_deferred_deletion => false, - :deferred_deletion_delay => 0, - :deferred_deletion_purge_interval => 60, + :backend_host => 'test_host.fqdn.com', + :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, + :rbd_ceph_conf => '/opt/ceph.conf', + :rbd_flatten_volume_from_snapshot => true, + :rbd_secret_uuid => 'b129523a-61a5-4653-86d1-2b055f970801', + :rbd_max_clone_depth => 5, + :rados_connect_timeout => 10, + :rados_connection_interval => 5, + :rados_connection_retries => 3, + :rbd_store_chunk_size => 4, + :report_dynamic_total_capacity => true, + :rbd_exclusive_cinder_pool => false, + :enable_deferred_deletion => false, + :deferred_deletion_delay => 0, + :deferred_deletion_purge_interval => 60, + :rbd_concurrent_flatten_operations => 3, }) end @@ -88,6 +90,7 @@ describe 'cinder::backend::rbd' do is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/enable_deferred_deletion").with_value(params[:enable_deferred_deletion]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/deferred_deletion_delay").with_value(params[:deferred_deletion_delay]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/deferred_deletion_purge_interval").with_value(params[:deferred_deletion_purge_interval]) + is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rbd_concurrent_flatten_operations").with_value(params[:rbd_concurrent_flatten_operations]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/report_discard_supported").with_value(true) } end