activate
¶
Once prepare is completed, and all the various steps that entails are done, the volume is ready to get “activated”.
This activation process enables a systemd unit that persists the OSD ID and its
UUID (also called fsid
in Ceph CLI tools), so that at boot time it can
understand what OSD is enabled and needs to be mounted.
Note
The execution of this call is fully idempotent, and there is no side-effects when running multiple times
New OSDs¶
To activate newly prepared OSDs both the OSD id and OSD uuid need to be supplied. For example:
ceph-volume lvm activate --bluestore 0 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8
Note
The UUID is stored in the fsid
file in the OSD path, which is
generated when prepare is used.
Discovery¶
With OSDs previously created by ceph-volume
, a discovery process is
performed using LVM tags to enable the systemd units.
The systemd unit will capture the OSD id and OSD uuid and persist it. Internally, the activation will enable it like:
systemctl enable ceph-volume@lvm-$id-$uuid
For example:
systemctl enable ceph-volume@lvm-0-8715BEB4-15C5-49DE-BA6F-401086EC7B41
Would start the discovery process for the OSD with an id of 0
and a UUID of
8715BEB4-15C5-49DE-BA6F-401086EC7B41
.
Note
for more details on the systemd workflow see systemd
The systemd unit will look for the matching OSD device, and by looking at its LVM tags will proceed to:
- # mount the device in the corresponding location (by convention this is
/var/lib/ceph/osd/<cluster name>-<osd id>/
)
# ensure that all required devices are ready for that OSD. In the case of
a journal (when --filestore
is selected) the device will be queried (with
blkid
for partitions, and lvm for logical volumes) to ensure that the
correct device is being linked. The symbolic link will always be re-done to
ensure that the correct device is linked.
# start the ceph-osd@0
systemd unit
Note
The system infers the objectstore type (filestore or bluestore) by inspecting the LVM tags applied to the OSD devices
Existing OSDs¶
For exsiting OSDs that have been deployed with different tooling, the only way to port them over to the new mechanism is to prepare them again (losing data). See Existing OSDs for details on how to proceed.
Summary¶
To recap the activate
process for bluestore:
- require both OSD id and OSD uuid
- enable the system unit with matching id and uuid
- Create the
tmpfs
mount at the OSD directory in/var/lib/ceph/osd/$cluster-$id/
- Recreate all the files needed with
ceph-bluestore-tool prime-osd-dir
by pointing it to the OSDblock
device. - the systemd unit will ensure all devices are ready and linked
- the matching
ceph-osd
systemd unit will get started
And for filestore: