文档章节

Ceph软件架构(转载)

shadowalker911
 shadowalker911
发布于 2015/02/03 11:24
字数 611
阅读 238
收藏 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分校的SageWeil(DreamHost的联合创...

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

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

oschina
2015/08/13
584
1
分布式文件系统--Ceph

Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。自2007年毕业之后,Sage开始全职投入到Ceph开 发之中,使其能适用于生...

匿名
2010/05/08
53.4K
16

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部