From e6c578a2bc1e5b6d91676274444122c5388bddc0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 30 Sep 2019 12:23:52 -0500 Subject: [PATCH] ceph-volume: accept --no-tmpfs argument for bluestore 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 --- .../ceph_volume/devices/lvm/activate.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ceph-volume/ceph_volume/devices/lvm/activate.py b/src/ceph-volume/ceph_volume/devices/lvm/activate.py index d46db9edfa5..d1a5a4035ef 100644 --- a/src/ceph-volume/ceph_volume/devices/lvm/activate.py +++ b/src/ceph-volume/ceph_volume/devices/lvm/activate.py @@ -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 -- 2.39.5