Why does ceph-volume replace ceph-disk?
Previous versions of Ceph used the ceph-disk utility to prepare,
activate, and create OSDs. The ceph-disk is replaced by the
ceph-volume utility that aims to be a single purpose command-line tool to deploy
logical volumes as OSDs, while maintaining a similar API to ceph-disk when
preparing, activating, and creating OSDs.
How does ceph-volume work?
The ceph-volume is a modular tool that currently supports two ways of
provisioning hardware devices, legacy ceph-disk devices and LVM (Logical Volume
Manager) devices. The ceph-volume lvm command uses the LVM tags to store
information about devices specific to Ceph and its relationship with OSDs. It uses these tags to
later re-discover and query devices associated with OSDS so that it can activate them. It supports
technologies based on LVM and dm-cache as well.
ceph-volume utility uses dm-cache transparently and treats
it as a logical volume. You might consider the performance gains and losses when using
dm-cache, depending on the specific workload you are handling. Generally, the
performance of random and sequential read operations increases at smaller block sizes; while the
performance of random and sequential write operations decreases at larger block sizes. Using
ceph-volume does not introduce any significant performance penalties.ceph-disk utility is deprecated.ceph-disk devices,
if these devices are still in use.How does ceph-disk work?
The ceph-disk utility was required to support many different types of init
systems, such as upstart or sysvinit, while being able to discover
devices. For this reason, ceph-disk concentrates only on GUID Partition Table (GPT)
partitions. Specifically on GPT GUIDs that label devices in a unique way to answer questions
like:
-
Is this device a
journal? -
Is this device an encrypted data partition?
-
Was the device partially prepared?
To solve these questions, ceph-disk uses UDEV rules to match the GUIDs.
What are disadvantages of using ceph-disk?
Using the UDEV rules to call ceph-disk can lead to a back-and-forth between the
ceph-disk
systemd unit and the ceph-disk executable. The process is very
unreliable and time consuming and can cause OSDs to not come up at all during the boot process of a
node. Moreover, it is hard to debug, or even replicate these problems given the asynchronous
behavior of UDEV.
Because ceph-disk works with GPT partitions exclusively, it cannot support other
technologies, such as Logical Volume Manager (LVM) volumes, or similar device mapper devices.
To ensure the GPT partitions work correctly with the device discovery workflow,
ceph-disk requires a large number of special flags to be used. In addition, these
partitions require devices to be exclusively owned by Ceph.