共计 1000 个字符,预计需要花费 3 分钟才能阅读完成。
这篇文章主要介绍了 Ceph 软件架构是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。
Ceph 项目中,各模块的代码基本上对应 src 目录下的各个目录,其软件架构可以用下图来描述:
上图中的每一个模块对应 Ceph 的 src 目录下的一个目录,还有部分目录没有体现在该图中,这些通常是一些辅助性质的目录。
从图中可以看出,整个 Ceph 从依赖关系角度,大体可以划分为三个层次:
1. 基础层(Base)
基础层包含了如业务无关的各类模块,例如对数值类型的定义、线程池、序列化等。
基础层包括以下模块:
include:包含数值类型的定义、API 的定义、容器类、Buffer、枚举、序列化等
common:包含业务无关的通用模块,例如定时器、字符串处理、CRC、多线程、心跳、应用对象管理接口、配置文件解析等。
log:日志记录功能
global:全局的初始化、信号量处理等。
2. 组件层(Component)
组件层是为实现各项业务提供的功能组件,例如消息通讯、认证授权、数据分布算法等。
组件层包括以下模块:
auth:认证授权模块
crush:CRUSH 数据分布算法
os(ObjectStore):对象存储,将本地存储组织为支持事务的本地存储接口,只用于 OSD
msg:消息通讯
messages:各类消息的定义
osdc(osd client):osd 的客户端,用于访问 osd 的数据
cls:插件机制
3. 子系统层(SubSystem)
子系统层即 Ceph 中各个功能节点,包括 mon、osd、mds、client
子系统层包括以下功能模块:
mon:监控节点
osd:对象存储设备
mds:元数据服务器,用于 CephFS 的元数据管理
client:对 osdc、mdsc 的封装
在以上模块中,并没有提到 RBD 和 RGW,因为严格说来,这两种仅仅是基于 RADOS 实现的一种应用,可以作为单独的系统进行分析。实际 上,CephFS 也可以作为基于 RADOS 的一个应用来对待,但由于 CephFS 对应的 mds 和 client 与整个 Ceph 紧耦合(历史原因),所以我们 把这两个模块一并放到了整个 Ceph 的软件架构中。
感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“Ceph 软件架构是怎么样的”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!