Rate This Document
Findability
Accuracy
Completeness
Readability

Application Scenarios

The smart write cache optimizes the Ceph I/O process in scenarios where bcache devices are used as Ceph OSDs. It is valid only for OSDs that use the BlueStore storage engine.

OSDs may be added or modified in Ceph clusters. The tool needs to obtain information of the OSDs in the clusters. Therefore, the OSDs must be deployed in the default official directory /var/lib/ceph/osd. If the OSDs are deployed in other directories, the tool will not work.

Ceph storage has the following application scenarios:

  • Balanced: The cluster uses solid-state drives (SSDs) and hard disk drives (HDDs) to deploy OSDs. SSDs are used to store OSD metadata (DB) and log data (WAL), and HDDs are used to store real data (data).
  • All-flash: The cluster uses SSDs to deploy OSDs. The data, DB, and WAL of the OSDs are stored in the SSDs.
  • Cold storage: The cluster uses HDDs to deploy OSDs. The data, DB, and WAL of the OSDs are stored in the HDDs.
  • Bcache: SSDs and HDDs are bound as a bcache partition. SSDs are used as the cache of HDDs. The cluster uses the bcache partition to deploy OSDs. The data in OSDs is stored in the bcache partition, and DB and WAL are stored in an independent NVMe partition.

Currently, the smart write cache is available only for the bcache scenario.

The kernel page size of CentOS 7.6 for AArch64 and that of openEuler 20.03 LTS SP1 are both 64 KB by default. The smart write cache must be run in the 4 KB page size environment. For ease of use, this document provides two compilation and installation methods.

  • If the environment page size is 64 KB, recompile and replace the entire kernel. You can compile and install the kernel and bcache at the same time. For details, see Compiling and Installing the Kernel.
  • If the page size is 4 KB, you only need to replace bcache.ko. You can compile and install bcache.ko separately. For details, see Compiling and Installing Bcache.

    You can run the following command to query the system page size and select a proper method based on the query result:

    getconf PAGESIZE