-
-def osd_mkfs_filestore(osd_id, fsid, keyring):
- """
- Create the files for the OSD to function. A normal call will look like:
-
- ceph-osd --cluster ceph --mkfs --mkkey -i 0 \
- --monmap /var/lib/ceph/osd/ceph-0/activate.monmap \
- --osd-data /var/lib/ceph/osd/ceph-0 \
- --osd-journal /var/lib/ceph/osd/ceph-0/journal \
- --osd-uuid 8d208665-89ae-4733-8888-5d3bfbeeec6c \
- --keyring /var/lib/ceph/osd/ceph-0/keyring \
- --setuser ceph --setgroup ceph
-
- """
- path = '/var/lib/ceph/osd/%s-%s/' % (conf.cluster, osd_id)
- monmap = os.path.join(path, 'activate.monmap')
- journal = os.path.join(path, 'journal')
-
- system.chown(journal)
- system.chown(path)
-
- command = [
- 'ceph-osd',
- '--cluster', conf.cluster,
- '--osd-objectstore', 'filestore',
- '--mkfs',
- '-i', osd_id,
- '--monmap', monmap,
- ]
-
- if get_osdspec_affinity():
- command.extend(['--osdspec-affinity', get_osdspec_affinity()])
-
- command.extend([
- '--keyfile', '-',
- '--osd-data', path,
- '--osd-journal', journal,
- '--osd-uuid', fsid,
- '--setuser', 'ceph',
- '--setgroup', 'ceph'
- ])
-
- _, _, returncode = process.call(
- command, stdin=keyring, terminal_verbose=True, show_command=True
- )
- if returncode != 0:
- raise RuntimeError('Command failed with exit code %s: %s' % (returncode, ' '.join(command)))