]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: block deploying nvmeof daemons on the same host 63113/head
authorAdam King <adking@redhat.com>
Mon, 31 Mar 2025 18:59:57 +0000 (14:59 -0400)
committerAdam King <adking@redhat.com>
Mon, 5 May 2025 14:49:37 +0000 (10:49 -0400)
Previously, we had added a commit to block deploying nvmeof
daemons on hosts with other nvmeof daemons that share a
group. However, after discussion with the nvmeof team, they'd
prefer we blocking co-locating nvmeof daemon entirely

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 40a9bbb3297490f06aa1af3b7718d41cbd768077)

src/pybind/mgr/cephadm/services/nvmeof.py

index 290b31e9c8e254dc514ce18a88ed39ad38b62904..1f83aad726107c3991575b60b6fdc2c665f24a02 100644 (file)
@@ -251,18 +251,15 @@ class NvmeofService(CephService):
             self.mgr.log.error(f"Unable to send monitor command {cmd}, error {err}")
 
     def get_blocking_daemon_hosts(self, service_name: str) -> List[HostSpec]:
-        # we should not deploy nvmeof daemons on hosts that have nvmeof daemons
-        # from services with a different "group" attribute (as recommended by
-        # the nvmeof team)
+        # we should not deploy nvmeof daemons on hosts that already have nvmeof daemons
         spec = cast(NvmeofServiceSpec, self.mgr.spec_store[service_name].spec)
-        nvmeof_group = cast(NvmeofServiceSpec, spec).group
         blocking_daemons: List[DaemonDescription] = []
-        other_group_nvmeof_services = [
+        other_nvmeof_services = [
             nspec for nspec in self.mgr.spec_store.get_specs_by_type('nvmeof').values()
-            if cast(NvmeofServiceSpec, nspec).group != nvmeof_group
+            if nspec.service_name() != spec.service_name()
         ]
-        for other_group_nvmeof_service in other_group_nvmeof_services:
-            blocking_daemons += self.mgr.cache.get_daemons_by_service(other_group_nvmeof_service.service_name())
+        for other_nvmeof_service in other_nvmeof_services:
+            blocking_daemons += self.mgr.cache.get_daemons_by_service(other_nvmeof_service.service_name())
         blocking_daemon_hosts = [
             HostSpec(hostname=blocking_daemon.hostname)
             for blocking_daemon in blocking_daemons if blocking_daemon.hostname is not None