Get the App
SLTechnology News&Howtos  ›  Servers  › 

What is the Ceph software architecture like?

Shulou Source: shulou.com Published: 2022-05-31 18:39:21 09月21日 Update

This article mainly introduces how the Ceph software architecture is, has a certain reference value, interested friends can refer to, I hope you can learn a lot after reading this article, the following let the editor take you to understand it.

In the Ceph project, the code of each module basically corresponds to each directory under the src directory, and its software architecture can be described as follows:

Each module in the figure above corresponds to a directory under Ceph's src directory, and some directories are not shown in the figure. These are usually auxiliary directories.

As you can see from the figure, the entire Ceph can be divided into three levels from a dependency point of view:

1. Base layer (Base)

The basic layer contains various modules such as business-independent modules, such as the definition of numerical types, thread pool, serialization and so on.

The basic layer includes the following modules:

Include: contains definitions of numeric types, API, container classes, Buffer, enumerations, serialization, etc.

Common: contains general business-independent modules, such as timer, string processing, CRC, multithreading, heartbeat, application object management interface, configuration file parsing, etc.

Log: logging function

Global: global initialization, semaphore processing, etc.

two。 Component layer (Component)

The component layer is the functional components provided for the implementation of various services, such as message communication, authentication and authorization, data distribution algorithm and so on.

The component layer includes the following modules:

Auth: authentication and authorization module

Crush:CRUSH data distribution algorithm

Os (ObjectStore): object storage, which organizes local storage into a local storage interface that supports transactions, and is used only for OSD

Msg: message communication

Messages: definition of various types of messages

Osdc (osd client): a client of osd to access data from osd

Cls: plug-in mechanism

3. Subsystem layer (SubSystem)

The subsystem layer is the functional nodes in Ceph, including mon, osd, mds, client

The subsystem layer includes the following functional modules:

Mon: monitoring nod

Osd: object storage device

Mds: metadata server for metadata management of CephFS

Client: encapsulation of osdc and mdsc

In the above modules, RBD and RGW are not mentioned, because strictly speaking, these two are only applications based on RADOS and can be analyzed as separate systems. In fact, CephFS can also be treated as an application based on RADOS, but because the corresponding mds and client of CephFS are tightly coupled with the whole Ceph (historical reasons), we put these two modules into the whole Ceph software architecture together.

Thank you for reading this article carefully. I hope the article "what the Ceph Software Architecture is like" shared by the editor will be helpful to everyone. At the same time, I also hope that you will support us and pay attention to the industry information channel. More related knowledge is waiting for you to learn!

Tags: Modules directories data architectures software functions articles components storage business foundation basic layers subsystems objects messages applications sequences interfaces numerical values algorithms Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Shulou Information Apple NVidia Redmi Huawei