From: Gil Bregman Date: Wed, 11 Dec 2024 21:47:07 +0000 (+0200) Subject: mgr/cephadm/nvmeof: Add auto rebalance fields to NVMeOF configuration X-Git-Tag: testing/wip-vshankar-testing-20241219.063429-debug~56^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=bfc8fb6aff3529430258af1c8b15d46b545c9059;p=ceph-ci.git mgr/cephadm/nvmeof: Add auto rebalance fields to NVMeOF configuration Fixes https://tracker.ceph.com/issues/69176 Signed-off-by: Gil Bregman --- diff --git a/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 b/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 index acc93507424..0b84ee1bfab 100644 --- a/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 +++ b/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 @@ -10,9 +10,13 @@ state_update_interval_sec = {{ spec.state_update_interval_sec }} enable_spdk_discovery_controller = {{ spec.enable_spdk_discovery_controller }} enable_key_encryption = {{ spec.enable_key_encryption }} encryption_key = /encryption.key +rebalance_period_sec = {{ spec.rebalance_period_sec }} +max_gws_in_grp = {{ spec.max_gws_in_grp }} +max_ns_to_change_lb_grp = {{ spec.max_ns_to_change_lb_grp }} enable_prometheus_exporter = {{ spec.enable_prometheus_exporter }} prometheus_exporter_ssl = False -prometheus_port = 10008 +prometheus_port = {{ spec.prometheus_port }} +prometheus_stats_interval = {{ spec.prometheus_stats_interval }} verify_nqns = {{ spec.verify_nqns }} omap_file_lock_duration = {{ spec.omap_file_lock_duration }} omap_file_lock_retries = {{ spec.omap_file_lock_retries }} diff --git a/src/pybind/mgr/cephadm/tests/test_services.py b/src/pybind/mgr/cephadm/tests/test_services.py index 1b3c9bdb899..6e117921ab3 100644 --- a/src/pybind/mgr/cephadm/tests/test_services.py +++ b/src/pybind/mgr/cephadm/tests/test_services.py @@ -400,9 +400,13 @@ state_update_interval_sec = 5 enable_spdk_discovery_controller = False enable_key_encryption = True encryption_key = /encryption.key +rebalance_period_sec = 7 +max_gws_in_grp = 16 +max_ns_to_change_lb_grp = 8 enable_prometheus_exporter = True prometheus_exporter_ssl = False prometheus_port = 10008 +prometheus_stats_interval = 10 verify_nqns = True omap_file_lock_duration = 20 omap_file_lock_retries = 30 diff --git a/src/python-common/ceph/deployment/service_spec.py b/src/python-common/ceph/deployment/service_spec.py index ebe66989cc0..316f9567b20 100644 --- a/src/python-common/ceph/deployment/service_spec.py +++ b/src/python-common/ceph/deployment/service_spec.py @@ -1336,11 +1336,16 @@ class NvmeofServiceSpec(ServiceSpec): enable_spdk_discovery_controller: Optional[bool] = False, enable_key_encryption: Optional[bool] = True, encryption_key: Optional[str] = None, + rebalance_period_sec: Optional[int] = 7, + max_gws_in_grp: Optional[int] = 16, + max_ns_to_change_lb_grp: Optional[int] = 8, omap_file_lock_duration: Optional[int] = 20, omap_file_lock_retries: Optional[int] = 30, omap_file_lock_retry_sleep_interval: Optional[float] = 1.0, omap_file_update_reloads: Optional[int] = 10, enable_prometheus_exporter: Optional[bool] = True, + prometheus_port: Optional[int] = 10008, + prometheus_stats_interval: Optional[int] = 10, bdevs_per_cluster: Optional[int] = 32, verify_nqns: Optional[bool] = True, allowed_consecutive_spdk_ping_failures: Optional[int] = 1, @@ -1425,8 +1430,18 @@ class NvmeofServiceSpec(ServiceSpec): self.enable_key_encryption = enable_key_encryption #: ``encryption_key`` gateway encryption key self.encryption_key = encryption_key + #: ``rebalance_period_sec`` number of seconds between cycles of auto namesapce rebalancing + self.rebalance_period_sec = rebalance_period_sec + #: ``max_gws_in_grp`` max number of gateways in one group + self.max_gws_in_grp = max_gws_in_grp + #: ``max_ns_to_change_lb_grp`` max number of namespaces before switching to a new lb group + self.max_ns_to_change_lb_grp = max_ns_to_change_lb_grp #: ``enable_prometheus_exporter`` enables Prometheus exporter self.enable_prometheus_exporter = enable_prometheus_exporter + #: ``prometheus_port`` Prometheus port + self.prometheus_port = prometheus_port or 10008 + #: ``prometheus_stats_interval`` Prometheus get stats interval + self.prometheus_stats_interval = prometheus_stats_interval #: ``verify_nqns`` enables verification of subsystem and host NQNs for validity self.verify_nqns = verify_nqns #: ``omap_file_lock_duration`` number of seconds before automatically unlock OMAP file lock