-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCeph笔记
108 lines (100 loc) · 4 KB
/
Ceph笔记
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
简介
时间,作者,开发语言,定义
诞生于2004年, 2012年7月发布第一个LTS版本.
统一的分布式存储系统, 用于高性能, 可靠性和可扩展性. C++编写
官网: https://ceph.com/
版本:
1.Ceph的版本名称遵循字母顺序
2.从12.2.0开始, 每隔9个月会发布一个新的稳定版本. 版本格式为x.y.z(x为发布周期, y表示发布类型)
3.y为0: 开发版本 y为1: 发布候选测试版本 y为2: 稳定版本
协议
适用性(优缺)
1.Ceph在一个统一的文件系统中分别支持object, block和file存储
特点:
高性能:
1.摒弃了传统的集中式存储元数据寻址的方案, 采用CRUSH算法, 数据分别均衡, 并行度高
2.考虑了容灾的隔离, 能够实现各类负载的副本放置规则(跨机房, 机架感知)
3.支持上千个存储节点的规模, 支持TB到PB级的数据
高可用性:
1.副本数可灵活控制
2.支持故障域分离, 数据强一致性
3.多故障场景自动修复
4.没有单点故障, 自动管理
高扩展性:
1.去中心化
2.扩展灵活
3.随着节点增加而线性增长
特性丰富:
1.支持三种驱动接口: 块存储, 文件存储, 对象存储
2.支持自定义接口, 支持多种语言驱动
架构
模块
安装
手动:
1.安装epel并配置repo(注意更改ceph的版本和操作系统的版本)
.# yum install epel-release
.# cat /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for $basearch
baseurl=https://download.ceph.com/rpm-nautilus/el7/$basearch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-nautilus/el7/noarch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=https://download.ceph.com/rpm-nautilus/el7/SRPMS
enabled=0
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
2.安装ceph-deploy
.# yum install ceph-deploy python-setuptools
3.安装依赖包
.# yum install yum-plugin-priorities snappy leveldb gdisk python-argparse gperftools-libs
4.安装ceph
.# yum install ceph
2.设置root免密码登录
3.安装ntp(防止时钟漂移问题)
.# yum install ntp ntpdate ntp-doc
结构
目录结构
源码目录
安装目录
配置文件
进程/端口
ceph-mon:
1.维护集群状态的映射(监控映射, 管理映射, OSD映射, CRUSH映射), 这些映射是ceph守护进程相互协调的关键
2.负责管理守护进程和客户端之间的认证
3.冗余和高可用则至少需要三个monitor是正常的
ceph-mgr:
1.跟踪运行时指标和集群当前状态, 包括存储利用率, 当前性能指标和系统负载.
2.托管基于Python模块来管理和公开集群信息, 包括基于web的Dashboard和RSET API.高可用至少有两个manager是正常的
ceph-osd: 对象存储进程
1.存储数据, 处理数据复制, 恢复, 再均衡并且通过检查其它osd进程来获取心跳为monitor和manager提供一些监控信息
2.冗余和高可用至少需要3个osd是正常的
ceph-mds:
1.ceph为文件系统存储元数据(block和object不适用MDS)
编程接口
管理软件
命令
服务器
客户端
日志
优化
安全
集群
具体服务相关
概念:
原理
1.ceph将数据存储为逻辑存储池中的对象.通过CRUSH算法, ceph计算应该包含对象的放置组, 并且进一步计算哪个osd进程应该存储该放置组. CRUSH算法使集群能够动态扩展, 再均衡和恢复
CRUSH算法:
说明:
内部命令