]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
ceph-volume: accept --no-tmpfs argument for bluestore
authorSage Weil <sage@redhat.com>
Mon, 30 Sep 2019 17:23:52 +0000 (12:23 -0500)
committerSage Weil <sage@redhat.com>
Fri, 4 Oct 2019 19:37:28 +0000 (14:37 -0500)
When activating a bluestore inside a container, we want to (be able to)
make the osd dir metadata persistent inside the container.

Signed-off-by: Sage Weil <sage@redhat.com>
src/ceph-volume/ceph_volume/devices/lvm/activate.py

index d46db9edfa5866aa4632134940cdbde02267ca0e..d1a5a4035ef52aeab6dd840ef98f8ff1b05141cb 100644 (file)
@@ -121,7 +121,7 @@ def get_osd_device_path(osd_lv, lvs, device_type, dmcrypt_secret=None):
     raise RuntimeError('could not find %s with uuid %s' % (device_type, device_uuid))
 
 
-def activate_bluestore(lvs, no_systemd=False):
+def activate_bluestore(lvs, no_systemd=False, no_tmpfs=False):
     # find the osd
     osd_lv = lvs.get(lv_tags={'ceph.type': 'block'})
     if not osd_lv:
@@ -136,7 +136,7 @@ def activate_bluestore(lvs, no_systemd=False):
     osd_path = '/var/lib/ceph/osd/%s-%s' % (conf.cluster, osd_id)
     if not system.path_is_mounted(osd_path):
         # mkdir -p and mount as tmpfs
-        prepare_utils.create_osd_path(osd_id, tmpfs=True)
+        prepare_utils.create_osd_path(osd_id, tmpfs=(not no_tmpfs))
     # XXX This needs to be removed once ceph-bluestore-tool can deal with
     # symlinks that exist in the osd dir
     for link_name in ['block', 'block.db', 'block.wal']:
@@ -260,9 +260,13 @@ class Activate(object):
                     logger.info('found a journal associated with the OSD, assuming filestore')
                     return activate_filestore(lvs, no_systemd=args.no_systemd)
             logger.info('unable to find a journal associated with the OSD, assuming bluestore')
-            return activate_bluestore(lvs, no_systemd=args.no_systemd)
+            return activate_bluestore(lvs,
+                                      no_systemd=args.no_systemd,
+                                      no_tmpfs=args.no_tmpfs)
         if args.bluestore:
-            activate_bluestore(lvs, no_systemd=args.no_systemd)
+            activate_bluestore(lvs,
+                               no_systemd=args.no_systemd,
+                               no_tmpfs=args.no_tmpfs)
         elif args.filestore:
             activate_filestore(lvs, no_systemd=args.no_systemd)
 
@@ -327,6 +331,12 @@ class Activate(object):
             action='store_true',
             help='Skip creating and enabling systemd units and starting OSD services',
         )
+        parser.add_argument(
+            '--no-tmpfs',
+            dest='no_tmpfs',
+            action='store_true',
+            help='Do not create a tmpfs for the OSD directory',
+        )
         if len(self.argv) == 0:
             print(sub_command_help)
             return