Rate This Document
Findability
Accuracy
Completeness
Readability

Components

Ceph

Ceph is a distributed, scalable, reliable, and high-performance storage system platform that supports storage interfaces including block devices, file systems, and object gateways. The optimization methods described in this document include hardware optimization and software configuration optimization. Software code optimization is not involved. By adjusting the system and Ceph configuration parameters, Ceph can fully utilize the hardware performance of the system. Ceph Placement Group (PG) distribution optimization and object storage daemon (OSD) core binding aim to balance drive loads and prevent any OSD from becoming a bottleneck. In addition, in general-purpose storage scenarios, using NVMe SSDs as Bcache can also improve performance. Figure 1 shows the Ceph architecture.

Figure 1 Ceph architecture

Table 1 describes the Ceph modules and components.

Table 1 Module functions

Module

Function

RADOS

Reliable Autonomic Distributed Object Store (RADOS) is the heart of a Ceph storage cluster. Everything in Ceph is stored by RADOS in the form of objects irrespective of their data types. The RADOS layer ensures data consistency and reliability through data replication, fault detection and recovery, and data recovery across cluster nodes.

OSD

Object storage daemons (OSDs) store the actual user data. Every OSD is usually bound to one physical drive. The OSDs handle the read/write requests from clients.

MON

The monitor (MON) is the most important component in a Ceph cluster. It manages the Ceph cluster and maintains the status of the entire cluster. The MON ensures that related components of a cluster can be synchronized at the same time. It functions as the leader of the cluster and is responsible for collecting, updating, and publishing cluster information. To avoid single points of failure (SPOFs), multiple MONs are deployed in a Ceph environment, and they must handle the collaboration between them.

MGR

The manager (MGR) is a monitoring system that provides collection, storage, analysis (including alarming), and visualization functions. It makes certain cluster parameters available for external systems.

LIBRADOS

Librados is a method that simplifies access to RADOS. Currently, it supports programming languages PHP, Ruby, Java, Python, C, and C++. It provides RADOS, a local interface of the Ceph storage cluster, and is the base component of other services such as the RADOS block device (RBD) and RADOS gateway (RGW). In addition, it provides the Portable Operating System Interface (POSIX) for the Ceph file system (CephFS). The Librados API can be used to directly access RADOS, enabling developers to create their own interfaces for accessing the Ceph cluster storage.

RBD

The RADOS block device (RBD) is the Ceph block device that provides block storage for external systems. It can be mapped, formatted, and mounted like a drive to a server.

RGW

The RADOS gateway (RGW) is a Ceph object gateway that provides RESTful APIs compatible with S3 and Swift. The RGW also supports multi-tenant and OpenStack Identity service (Keystone).

MDS

The Ceph Metadata Server (MDS) tracks the file hierarchy and stores metadata used only for CephFS. The RBD and RGW do not require metadata. The MDS does not directly provide data services for clients.

CephFS

The CephFS provides a POSlX-compatible distributed file system of any size. It depends on the Ceph MDS to track the file hierarchy, namely the metadata.

Vdbench

Vdbench is a command line utility designed to help engineers and customers generate drive I/O loads for verifying storage performance and data integrity. You can also specify Vdbench execution parameters by entering text files.

Vdbench has many parameters. Table 2 lists some important common parameters.

Table 2 Common parameters

Parameter

Description

-f

Specifies a script file for the pressure test.

-o

Specifies the path for exporting a report. The default value is the current path.

lun

Specifies the LUN device or file to be tested.

size

Specifies the size of the LUN device or file to be tested.

rdpct

Specifies the read percentage. The value 100 indicates full read, and the value 0 indicates full write.

seekpct

Specifies the percentage of random data. The value 100 indicates all random data, and the value 0 indicates sequential data.

elapsed

Specifies the duration of the current test.