if journal == data:
# we're sharing the disk between osd data and journal;
# make journal be partition number 2, so it's pretty
- num = get_free_partition_index(dev=journal)
- journal_part = '{num}:+0:+{size}M'.format(
+ num = 2
+ journal_part = '{num}:0:{size}M'.format(
num=num,
size=journal_size,
)
def prepare_dev(
data,
- data_size,
journal,
fstype,
mkfs_args,
LOG.debug('Creating osd partition on %s', data)
try:
- if data_size is None:
- num = 1
- command_check_call(
- [
- 'sgdisk',
- '--largest-new=1',
- '--change-name=1:ceph data',
- '--partition-guid=1:{osd_uuid}'.format(
- osd_uuid=osd_uuid,
- ),
- '--typecode=1:%s' % ptype_tobe,
- '--',
- data,
- ],
- )
- else:
- num = get_free_partition_index(dev=data)
- part = '{num}:+0:+{size}M'.format(
- num=num,
- size=data_size)
- command_check_call(
- [
- 'sgdisk',
- '--new={part}'.format(part=part),
- '--change-name={num}:ceph data'.format(num=num),
- '--partition-guid={num}:{osd_uuid}'.format(
- num=num,
- osd_uuid=osd_uuid,
- ),
- '--typecode={num}:{ptype}'.format(num=num, ptype=ptype_tobe),
- '--',
- data,
- ],
- )
-
+ command_check_call(
+ [
+ 'sgdisk',
+ '--largest-new=1',
+ '--change-name=1:ceph data',
+ '--partition-guid=1:{osd_uuid}'.format(
+ osd_uuid=osd_uuid,
+ ),
+ '--typecode=1:%s' % ptype_tobe,
+ '--',
+ data,
+ ],
+ )
command(
[
'partprobe',
except subprocess.CalledProcessError as e:
raise Error(e)
- rawdev = get_partition_dev(data, num)
+ rawdev = get_partition_dev(data, 1)
dev = None
if osd_dm_keypath:
command_check_call(
[
'sgdisk',
- '--typecode={num}:{ptype}'.format(num=num, ptype=ptype_osd),
+ '--typecode=1:%s' % ptype_osd,
'--',
data,
],
)
journal_size = int(journal_size)
- if args.data_size is not None:
- data_size = int(args.data_size)
- else:
- data_size = None
-
# colocate journal with data?
if stat.S_ISBLK(dmode) and not is_partition(args.data) and args.journal is None and args.journal_file is None:
LOG.info('Will colocate journal with data on %s', args.data)
raise Error('data path is not a directory', args.data)
prepare_dev(
data=args.data,
- data_size=data_size,
journal=journal_symlink,
fstype=args.fs_type,
mkfs_args=mkfs_args,
default='/etc/ceph/dmcrypt-keys',
help='directory where dm-crypt keys are stored',
)
- prepare_parser.add_argument(
- '--data-size',
- default=None,
- help='size of data partition'
- )
prepare_parser.add_argument(
'data',
metavar='DATA',