Ceph软件架构(转载)
Ceph软件架构(转载)
shadowalker911 发表于3年前
Ceph软件架构(转载)
  • 发表于 3年前
  • 阅读 228
  • 收藏 0
  • 点赞 0
  • 评论 4

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: Ceph项目中,各模块的代码基本上对应src目录下的各个目录

Ceph项目中,各模块的代码基本上对应src目录下的各个目录,其软件架构可以用下图来描述:

Ceph软件架构

上图中的每一个模块对应Ceph的src目录下的一个目录,还有部分目录没有体现在该图中,这些通常是一些辅助性质的目录,详细情况可以参考《Ceph源代码目录结构详解》。

从图中可以看出,整个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的软件架构中。


共有 人打赏支持
粉丝 7
博文 28
码字总数 3041
评论 (4)
coding_java
你好,我想问下你的,ceph HEALTH:192 pg 警告解决了么,我也出现那个问题了,不是pool数量问题
shadowalker911

引用来自“coding_java”的评论

你好,我想问下你的,ceph HEALTH:192 pg 警告解决了么,我也出现那个问题了,不是pool数量问题
你好,那个问题如果是unclean,则是副本数不足导致的;如果是其他状态原因就是其他的。我的解决办法是重新安装,并且设置副本数为2。并且和oschina上的ceph的官方部署方式有点不一样,你可以参考我这篇文章:http://my.oschina.net/u/1271640/blog/375381 部署好之后就是 health activate +clean状态。
coding_java
之前是这样的 health HEALTH_WARN 192 pgs degraded; 192 pgs stuck unclean
我改一些POOL 变成health HEALTH_WARN 448 pgs stuck inactive; 448 pgs stuck unclean;
shadowalker911

引用来自“coding_java”的评论

之前是这样的 health HEALTH_WARN 192 pgs degraded; 192 pgs stuck unclean
我改一些POOL 变成health HEALTH_WARN 448 pgs stuck inactive; 448 pgs stuck unclean;
这我也还没搞得很明白,你要不先重新安装吧。重新安装的时候保证osd数等于或者大于Pool的副本数。按照我刚才那篇博文(http://my.oschina.net/u/1271640/blog/375381)应该可以。我是单独一个osd占用一块硬盘的,并且格式化为xfs文件系统。 以前我用官网prepare, activate这种方式激活osd,貌似就会出现你上述的问题,具体原因不清楚。 还有一点你osd的目录最好挂载在默认路径(那篇文章中有提到)。这样简单部署的时候可以避免一些问题。
×
shadowalker911
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: