文档章节

Ceph软件架构(转载)

shadowalker911
 shadowalker911
发布于 2015/02/03 11:24
字数 611
阅读 240
收藏 0

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的软件架构中。


本文转载自:http://blog.coolceph.com/?p=210

共有 人打赏支持
shadowalker911
粉丝 6
博文 28
码字总数 3041
作品 0
徐汇
私信 提问
加载中

评论(4)

shadowalker911
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的目录最好挂载在默认路径(那篇文章中有提到)。这样简单部署的时候可以避免一些问题。
coding_java
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
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
coding_java
你好,我想问下你的,ceph HEALTH:192 pg 警告解决了么,我也出现那个问题了,不是pool数量问题
Ceph架构及性能优化

对分布式存储系统的优化离不开以下几点: 1. 硬件层面 硬件规划 SSD选择 BIOS设置 2. 软件层面 Linux OS Ceph Configurations PG Number调整 CRUSH Map 其他因素 硬件层面 1、 CPU ceph-osd...

skymyyang
2016/12/19
33
0
闲聊Ceph目前在中国的发展Ceph现状

近年来,大型企业以及开源社区不断的推动中国开源技术的发展,今天的中国已然成为OpenStack & Ceph等开源技术大放光彩的乐土。 图为 Ceph中国行各地沙龙 Ceph国内用户生态 Ceph作为全球最火热...

三石头
2017/11/10
0
0
Ceph v0.94.1.5 发布,分布式文件系统

Ceph v0.94.1.5 发布,下载地址请点: Source code (zip) Source code (tar.gz) 更多关于 Ceph 的内容请查看软件 GitHub 主页。 Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创...

oschina
2015/07/30
672
3
Ceph v0.94.1.6 发布,分布式文件系统

Ceph v0.94.1.6 发布,更新内容暂未找到 下载地址: Source code (zip) Source code (tar.gz) 更多关于 Ceph 的内容请查看软件 GitHub 主页。 Ceph是加州大学Santa Cruz分校的Sage Weil(Dre...

oschina
2015/08/13
585
1
Ceph v0.94.1.3 发布,分布式文件系统

Ceph v0.94.1.3 发布,此版本现已提供下载: https://github.com/ceph/ceph/archive/v0.94.1.3.zip 详细改进请看: https://github.com/ceph/ceph/compare/v0.94.1.3...master Ceph是加州大学......

oschina
2015/06/27
470
0

没有更多内容

加载失败,请刷新页面

加载更多

菜单menuView总结

1、FTPopOverMenu

_____1____
18分钟前
1
0
比特币PHP离线交易开发包——BtcTool

BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性: 利用第三方服务获取指定地址的utxo集合 离线生成消费裸...

笔阁
24分钟前
0
0
MyEclipse教程:Web开发——部署和测试Web项目

MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程向用户展示了使用关联的Web项目创建Web片段项目的机制。用户还可以获得要检查的示例项目。在本教程中,用户将学习如...

电池盒
34分钟前
3
0
C语言真正的编译过程

说实话,很多人做了很久的C/C++,也用了很多IDE,但是对于可执行程序的底层生成一片茫然,这无疑是一种悲哀,可以想象到大公司面试正好被问到这样的问题,有多悲催不言而喻,这里正由于换工作...

xtof
37分钟前
14
0
linux使用docker-compose部署软件配置

本篇将分享一些 docker-compose 的配置,可参考其总结自己的一套基于docker的开发/生产环境配置。下面话不多说了,来一起看看详细的介绍吧 安装docker及docker-compose install docker curl ...

开元中国2015
53分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部