]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: use hostname from crush map for osd memory autotuning 46556/head
authorAdam King <adking@redhat.com>
Fri, 3 Jun 2022 01:32:53 +0000 (21:32 -0400)
committerAdam King <adking@redhat.com>
Wed, 8 Jun 2022 00:59:17 +0000 (20:59 -0400)
Fixes: https://tracker.ceph.com/issues/55841
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 50f28aa56edd348c3816335bef3bbfaf5133ae54)

src/pybind/mgr/cephadm/serve.py

index efedf3251cb1d2bd4487529bc38e95efdac8b963..d7f9e6b9940d4f8c977864b50e5fa9e34706cbfd 100644 (file)
@@ -167,7 +167,7 @@ class CephadmServe:
                 )
                 ret, out, err = self.mgr.mon_command({
                     'prefix': 'config set',
-                    'who': f'osd/host:{host}',
+                    'who': f'osd/host:{host.split(".")[0]}',
                     'name': 'osd_memory_target',
                     'value': str(val),
                 })
@@ -176,11 +176,15 @@ class CephadmServe:
                         f'Unable to set osd_memory_target on {host} to {val}: {err}'
                     )
         else:
-            self.mgr.check_mon_command({
-                'prefix': 'config rm',
-                'who': f'osd/host:{host}',
-                'name': 'osd_memory_target',
-            })
+            # if osd memory autotuning is off, we don't want to remove these config
+            # options as users may be using them. Since there is no way to set autotuning
+            # on/off at a host level, best we can do is check if it is globally on.
+            if self.mgr.get_foreign_ceph_option('osd', 'osd_memory_target_autotune'):
+                self.mgr.check_mon_command({
+                    'prefix': 'config rm',
+                    'who': f'osd/host:{host.split(".")[0]}',
+                    'name': 'osd_memory_target',
+                })
         self.mgr.cache.update_autotune(host)
 
     def _refresh_hosts_and_daemons(self) -> None: