ceph分布式存储学习指南

ceph是模块化和可扩展的,并且有容错设计。先进的分布式存储系统。
ceph凭借其高可扩展性、高可靠性、高性能的特点,逐渐成为openstack\cloudstack、opennebula等主流开源云平台后端存储的首选。可靠性、自平衡、自恢复、一致性
软件定义存储。
可以大幅降低企业存储基础设施的成本。
分布式、可大规模扩展,经济
虚拟平台KVM、VMWARE也支持ceph
ceph存储介绍
ceph部署实战
ceph架构和组件
ceph内部构建
ceph部署
ceph存储配置
ceph操作及管理
监控ceph集群
ceph与openstack集成
ceph性能调优和基准测试
1、ceph是什么
ceph是一个开源项目,它提供软件定义的、统一的存储解决方案。ceph可大规模扩展、高性能并且无单点故障的分布式存储系统。容量可扩展至EB级别。1EB=1024PB


image.png

image.png

ceph以章鱼作为自己的吉祥物,表达了ceph跟章鱼一样的并行行为。
inktank公司为ceph提供专业服务和技术支持。
版本历史


image.png

image.png

image.png

块存储
image.png

cephFS
image.png

image.png

对象存储
image.png

image.png

ceph与其他工具的对比
ceph-deploy工具部署
ceph架构:ceph存储集群由几个不同的软件守护进程组成,每个守护进程负责ceph的一个独特功能并将值添加到相应的组件中。
image.png

RADOS:可靠、自动、分布式对象存储(Reliable Autonomic Distributed Object Store),是ceph存储集群的基础。ceph中的一切都以对象的形式存储,而RADOS就负责存储这些对象,而不考虑它们的数据类型。RADOS确保数据一致性和可靠性。对于数据一致性,它执行数据复制、故障检测和恢复,还包括数据在集群节点间的迁移和再平衡。
image.png

MON监控健康状态:OSD,MON,PG,CRUSH。
image.png

librados提供接口
image.png

RBD块设备:支持快照和写时复制


image.png

RGW对象网关:支持S3和SWIFT
image.png

cephFS,MDS
image.png

自我管理,自我修复,自我计算
image.png

查看存储池:rados lspools
查看存储池的对象(metadata池的名字):rados -p metadata ls
查看集群空间:rados df
OSD:::
image.png

文件系统
image.png

image.png

日志大小常见的是10GB,一个SSD做日志最多分给4到5个OSD
每个磁盘推荐1-2GB内存
查看单节点上的OSD:service ceph status osd
检查OSD的ID:ceph osd ls
检查OSD map和状态:ceph osd stat
ceph osd tree 树形图
ceph monitor:集群map包括monitor\osd\pg\crush\mds map
检查mon map:ceph mon dump
检查osd map:ceph osd dump
检查pg map:ceph pg dump
crush map: ceph osd crush dump
ceph mds dump
image.png

image.png

image.png

image.png

检查mon状态:service ceph status mon
ceph mon stat
ceph mon_status
ceph mon dump
librados:
一个本地的C语言库,可以直接和RADOS通信。
RBD驱动被集成到LINUX内核中
image.png

image.png

ceph与open'stack紧密集成:写时复制快照、克隆和可恢复的只读快照
image.png

cgw:是一个代理,可以将HTTP请求转换成RADOS,也可以把RADOS请求转换成HTTP,从而提供RESTful对象存储。radosgw
image.png

image.png

MDS
image.png

部署MDS:ceph-deploy mds create ceph-node2
CEPH FS


image.png

image.png

ceph构架及其核心组件、底层实现
对象:
一个对象用一个全局唯一的标识符标识,元数据和数据
image.png

ceph的池是一个用来存储对象的逻辑分区,它提供了一个有组织的存储形式。
默认存储池: rbd,如果配置了MDS,则还会创建data/metadata
列出所有池:rados lspools
列出池中的对象名称:rados -p metadata ls
CRUSH算法:Controlled Replication Under Scalable Hashing
image.png

客户端使用自己的资源来执行CRUSH查找。
一次读写操作
image.png

image.png

image.png

image.png

恢复和再平衡:


image.png

image.png

修改crush map:
提取:ceph osd getcrushmap -o crushmap.txt
反编译:crushtool -d crushmap.txt -o crushmap-decompile
打开/修改: vi crushmap-decompile
重新编译: crushtool -c crushmap-decompile -o crushmap-compiled
应用:ceph osd setcrushmap -i crushmap-compiled

ceph osd tree :查看层级结构
bucket:表示放设备的容器,可以包含多个设备或子类型的bucket
device:设备,最基本的存储设备,也就是OSD,通常一个OSD对应一个磁盘存储设备
bucket类型:osd,host,chassis,rack,row,pdu,pod,room,datacenter,regin,root 11各等级
osd,主机,底盘,机架,一排机架,?,?,机房,数据中心,区域,根
修改bucket结构,例子:


image.png

PG:一组对象的逻辑集合


image.png

image.png

建议每个OSD上放置50-100各PG

PG总数计算公式
PG 总数= (OSD 总数x 100) /最大副本数
结果必须舍入到最接近2 的N 次幕的值。比如:如果C巳ph 集群有160 个OSD 且副本数是3 ,这样根据公式计算得到的PG 总数是5333.3 ,因此舍入这个值到最接近的2 的N 次幕的结果就是8192 个PG 。
我们还应该计算Ceph 集群中每一个池中的PG 总数。计算公式如下:
PG 总数= ((OSD 总数x 100) /最大副本数) /池数
同样使用前面的例子: OSD 总数是160 ,副本数是3 ,池总数是3 。根据上面这个公式,
计算得到每个池的PG 总数应该是1777 . 7 ,最后舍入到2 的N 次幕得到结果为每个池2 048个PG 。

PGP 是为实现定位而设置的PG ,它的值应该与PG 的总数(即pg_num) 保持一致。
查看数量:ceph osd pool get data pg_num
ceph osd pool get data pgp_num
检查池的副本数:ceph osd dump|grep -i size

规划PG数量


image.png

image.png

PG的peering、up集合和acting集合


image.png

image.png

一个池,一个CRUSH规则集


image.png

创建池:
ceph osd pool create web-services 128 128
查看池列表:ceph osd lspools / rados lspools / ceph osd dump|grep -i pool
修改副本数:ceph osd pool set web-services size 3
重命名池:ceph osd pool rename web-services frontend-services
池的快照操作


image.png

删除池也会删除快照
ceph osd poo1 de1ete frontend-services frontend-services --yes-i-rea11y-rea11y-mean-it

PG数据管理


image.png

image.png

image.png

image.png

image.png

ceph monitor:单核2GB内存,硬盘可以大点存储日志,1G/S的网卡
OSD:1块物理硬盘1各OSD,1GHZCPU和2GB内存,硬盘?,独立日志盘,一个SSD做2-4各OSD日志盘

MDS需要4核或更高,更高RAM

纠删码:整个机制需要的耗OSD 节点更多的计算能力。此外,在恢复时, 解码数据块也需要大量的计算。
纠删码的概念:n=k+m


image.png

image.png

配置纠删码


image.png

image.png

image.png

image.png

image.png

image.png

ceph缓存层


image.png

image.png

部署缓存层


image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

基准测试


image.png

image.png

image.png

image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容