]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/cephadm/nvmeof: Add auto rebalance fields to NVMeOF configuration
authorGil Bregman <gbregman@il.ibm.com>
Wed, 11 Dec 2024 21:47:07 +0000 (23:47 +0200)
committerGil Bregman <gbregman@il.ibm.com>
Wed, 11 Dec 2024 21:47:07 +0000 (23:47 +0200)
Fixes https://tracker.ceph.com/issues/69176

Signed-off-by: Gil Bregman <gbregman@il.ibm.com>
src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2
src/pybind/mgr/cephadm/tests/test_services.py
src/python-common/ceph/deployment/service_spec.py

index acc93507424d98af32d972246d3aed431e49cad5..0b84ee1bfab8e79fba74d7c18480ba0e5ab3fbcd 100644 (file)
@@ -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 }}
index 1b3c9bdb899dac3271b3a7f6f1fa9d2e6e7586d1..6e117921ab3b1ecc9f785945c5dc3c989f98f376 100644 (file)
@@ -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
index ebe66989cc04e4c230b3bde4a2b49828df65e630..316f9567b208b306d33b2e46c95ac006f41d7d88 100644 (file)
@@ -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