分布式存储系统Ceph介绍与环境部署
一、概述
Ceph是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性等优点,同时提供 块存储服务 ( rbd )、对象存储服务(rgw )以及文件系统存储服务(cephfs ),Ceph在存储的时候充分利用存储节点的计算能力,在存储每一个数据时都会通过计算得出该数据的位置,尽量的分布均衡。目前也是OpenStack的主流后端存储。
特点: 高性能 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。能够支持上千个存储节点的规模,支持TB到PB级的数据。 高可用性 副本数可以灵活控制。支持故障域分隔,数据强一致性。多种故障场景自动进行修复自愈。没有单点故障,自动管理。 高可扩展性 去中心化。扩展灵活。随着节点增加而线性增长。 特性丰富 支持三种存储接口:块存储、文件存储、对象存储。支持自定义接口,支持多种语言驱动。
GitHub地址:https://github.com/ceph/ceph
官方文档:https://docs.ceph.com/en/latest/start/intro/ 二、Ceph 架构
支持三种接口: Object :有原生的API,而且也兼容Swift和S3的API。Block :支持精简配置、快照、克隆。File :Posix接口,支持快照。
RADOS ——全称Reliable Autonomic Distributed Object Store,即可靠的、自动化的、分布式对象存储系统。RADOS是Ceph集群的精华,用户实现数据分配、Failover等集群操作。Librados ——Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。MDS ——存储Ceph文件系统的元数据。三、Ceph核心组件介绍
OSD ——OSD是负责物理存储的进程,一般配置成和磁盘一一对应,一块磁盘启动一个OSD进程。主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查,负责响应客户端请求返回具体数据的进程等。
OSD 是Ceph集群中存储实际用户数据的惟一组件,通常,一个OSD守护进程绑定到集群中的一个物理磁盘。因此,通常来说,Ceph集群中物理磁盘的总数与在每个物理磁盘上存储用户数据的OSD守护进程的总数相同。 PG ——ceph中引入了PG(placement group)的概念,PG是一个虚拟的概念而已,并不对应什么实体。ceph先将object映射成PG,然后从PG映射成OSD。
Pool ——Pool是存储对象的逻辑分区,它规定了数据冗余的类型和对应的副本分布策略,支持两种类型:副本(replicated)和 纠删码( Erasure Code)。
Pool、PG和OSD的关系: 一个Pool里有很多PG; 一个PG里包含一堆对象,一个对象只能属于一个PG; PG有主从之分,一个PG分布在不同的OSD上(针对三副本类型); Monitor监控 ——一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。负责监控整个Ceph集群运行的Map视图(如OSD Map、Monitor Map、PG Map和CRUSH Map),维护集群的健康状态,维护展示集群状态的各种图表,管理集群客户端认证与授权。MDS ——MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。负责保存文件系统的元数据,管理目录结构。对象存储和块设备存储不需要元数据服务; 如果不使用CephFS可以不安装。Mgr ——ceph 官方开发了 ceph-mgr,主要目标实现 ceph 集群的管理,为外界提供统一的入口。例如cephmetrics、zabbix、calamari、prometheus。
Ceph manager守护进程(Ceph -mgr)是在Kraken版本中引入的,它与monitor守护进程一起运行,为外部监视和管理系统提供额外的监视和接口。 RGW ——RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。CephFS ——ceph文件系统提供了一个符合posix标准的文件系统,它使用Ceph存储集群在文件系统上存储用户数据。与RBD(块存储)和RGW(对象存储)一样,CephFS服务也作为librados的本机接口实现。四、Ceph 三种存储类型1)块存储服务(RBD)
块是一个字节序列(通常为 512)。 基于块的存储接口是一种成熟且常见的数据存储方式 介质包括硬盘、固态硬盘、CD、软盘,甚至磁带。 块设备接口的无处不在非常适合交互 具有包括 Ceph 在内的海量数据存储。Ceph 数据块设备可精简配置、可调整大小,并按条带方式存储数据在多个 OSD。
优点: 通过Raid与LVM等手段,对数据提供了保护; 多块廉价的硬盘组合起来,提高容量; 多块磁盘组合出来的逻辑盘,提升读写效率;
缺点: 采用SAN架构组网时,光纤交换机,造价成本高; 主机之间无法共享数据;
使用场景: docker容器、虚拟机磁盘存储分配; 日志存储; 文件存储;
总结: 一个Linux内核级的块设备,允许用户像任何其他Linux块设备一样访问Ceph。 2)文件系统存储服务(CephFS)
Ceph 文件系统(CephFS),是建立在 Ceph 分布式对象存储的顶部, CephFS提供了最先进的、多用途、高度可用且高性能的文件存储在各种场景应用,包括共享home目录、FTP和NFS 共享存储等等。
Ceph有了块存储,为什么还需要文件系统接口呢?
主要是因为应用场景的不同,Ceph的块设备具有优异的读写性能,但不能多处挂载同时读写,目前主要用在OpenStack上作为虚拟磁盘,而Ceph的文件系统接口读写性能较块设备接口差,但具有优异的 共享性。
优点: 造价低,随便一台机器就可以了。 方便文件共享。
缺点: 读写速率低。 传输速率慢。
使用场景: 日志存储。 有目录结构的文件存储。 3)对象存储服务(RGW)
Ceph 对象网关 是构建在 librados.它在应用程序和 Ceph 之间提供了一个 RESTful 网关。 存储集群。 Ceph 对象存储 支持两种接口: S3 兼容: 通过接口提供对象存储功能 与 Amazon S3 RESTful API 的大部分子集兼容。 快速兼容: 通过接口提供对象存储功能 与 OpenStack Swift API 的一大块子集兼容。
优点: 具备块存储的读写高速。 具备文件存储的共享等特性。
使用场景: 图片存储。 视频存储。 五、Ceph版本发行生命周期
Ceph从 Nautilus 版本(14.2.0)开始,每年都会有一个新的稳定版发行,预计是每年的3月份发布,每年的新版本都会起一个新的名称(例如,"Mimic")和一个主版本号(例如,13 代表 Mimic ,因为"M"是字母表的第 13 个字母)。
版本号的格式为 x.y.z ,x表示发布周期(例如,13 代表 Mimic,17代表Quincy),y表示发布版本类型,即x.0.z - y等于0,表示开发版本 x.1.z - y等于1,表示发布候选版本(用于测试集群) x.2.z - y等于2,表示稳定/错误修复版本(针对用户)
在 Octopus 版本后使用cephadm来部署ceph集群,如果使用cephadm部署,在后期新的版本升级时,可以做到完全自动化,并可以通过ceph -W cephadm查看升级进度,升级完成后,无法降级,升级时请不要跨版本升级,例如:当前使用Octopus升级到Quincy,要先把Octopus升级到Pacific,然后在升级至Quincy,这是最稳妥的方式。
稳定版本的生命周期在第一个发布月份后,大约2年时间将停止该版本的更新维护,具体版本发布时间见下表。
六、Ceph 集群部署
Ceph的部署工具: ceph-deploy :官方的部署工具,不再积极维护ceph-deploy。它不支持RHEL8,CentOS 8或更新的操作系统。ceph-ansible :红帽的部署工具ceph-chef :利用chef进行自动部署Ceph的工具puppet-ceph :puppet的ceph模块cephadm ——cephadm 仅支援 Octopus 及更新版本(推荐)。1)集群部署规划
IP
hostname
角色
磁盘
操作系统
192.168.182.130
local-168-182-130
monitor,mgr,rgw,mds,osd
2*20G
centos7
192.168.182.131
local-168-182-131
monitor,mgr,rgw,mds,osd
2*20G
centos7
192.168.182.132
local-168-182-132
monitor,mgr,rgw,mds,osd
2*20G
centos7 monitor :Ceph监视管理节点,承担Ceph集群重要的管理任务,一般需要3或5个节点。mgr : Ceph 集群管理节点(manager),为外界提供统一的入口。rgw : Ceph对象网关,是一种服务,使客户端能够利用标准对象存储API来访问Ceph集群。mds :Ceph元数据服务器,MetaData Server,主要保存的文件系统服务的元数据,使用文件存储时才需要该组件。osd :Ceph存储节点Object Storage Daemon,实际负责数据存储的节点。2)前期准备1、关闭filewalld服务systemctl stop firewalld.service systemctl disable firewalld.service 2、关闭并禁用SELinuxsed -i "s/^SELINUX=enforcing$/SELINUX=disabled/" /etc/selinux/config setenforce 0 3、配置hosts192.168.182.130 local-168-182-130 192.168.182.131 local-168-182-131 192.168.182.132 local-168-182-132 4、ssh免密配置ssh-keygen # ...一路Enter ssh-copy-id root@local-168-182-130 //会有一次密码输入 ssh-copy-id root@local-168-182-131 ssh-copy-id root@local-168-182-132 4、配置时间同步yum install -y chrony systemctl enable --now chronyd 3)添加磁盘
如果添加完磁盘,看不到,可以执行以下命令: # 重新扫描SCSI总线添加设备 echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan
4)安装docker :(所有节点操作,包括新增)# centos7 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 安装yum-config-manager配置工具 yum -y install yum-utils # 设置yum源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装docker-ce版本 yum install -y docker-ce #启动docker服务并开机自启 systemctl enable --now docker # 查看版本号 docker --version # 查看版本具体信息 docker version # Docker镜像源设置 # 修改文件 /etc/docker/daemon.json,没有这个文件就创建 # 添加以下内容后,重启docker服务: cat >/etc/docker/daemon.json< 199.232.28.133 raw.githubusercontent.com # 安装python3:(所有节点执行) yum install python3 -y # 配置ceph存储库 :(或指定版本) ./cephadm add-repo --release octopus #或 #./cephadm add-repo --version 15.2.1 # 开始安装ceph-common,ceph工具 ./cephadm install ceph-common ceph # 安装cephadm工具 ./cephadm install which cephadm which ceph 6)初始化 ceph 集群
当前节点安装 mon、 mgr 角色,部署 prometheus、 grafana、 alertmanager、 node-exporter等服务。 #先安装一个节点,其它节点通过后面的命令添加到集群中即可 #您需要知道用于集群的第一个监视器守护程序的IP地址。 #如果有多个网络和接口,要确保选择任何可供访问Ceph群集的主机访问的网络和接口。 cephadm bootstrap --mon-ip 192.168.182.130 ##### 命令特点: #在本地主机上为新集群创建监视和管理器守护程序。 #为Ceph集群生成一个新的SSH密钥,并将其添加到root用户的/root/.ssh/authorized_keys文件中。 #将与新集群进行通信所需的最小配置文件编写为/etc/ceph/ceph.conf。 #将client.admin管理密钥的副本写入/etc/ceph/ceph.client.admin.keyring。 #将公用密钥的副本写入 /etc/ceph/ceph.pub。 # 查看部署的服务 docker ps #=======输出信息======= Ceph Dashboard is now available at: URL: https://local-168-182-130:8443/ User: admin Password: 0ard2l57ji You can access the Ceph CLI with: sudo /usr/sbin/cephadm shell --fsid d1e9b986-89b8-11ed-bec2-000c29ca76a9 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring Please consider enabling telemetry to help improve Ceph: ceph telemetry on For more information see: https://docs.ceph.com/docs/master/mgr/telemetry/
根据提示可知,有个web地址: https://ip:8443/ ,这里的截图是部署完之后的截图。
通过ceph命令查看集群状态 ceph -s
7)添加新节点
在新主机的根用户authorized_keys文件中安装群集的公共SSH密钥 : ssh-copy-id -f -i /etc/ceph/ceph.pub root@local-168-182-131 ssh-copy-id -f -i /etc/ceph/ceph.pub root@local-168-182-132
配置新节点 ceph orch host add local-168-182-131 ceph orch host add local-168-182-132 #第一次部署新节点时直接用上边的命令即可: #但是之后的节点新增有可能上述命令出错: ceph orch host add local-168-182-131 192.168.182.133 #后边跟上对应的IP # 查看节点 ceph orch host ls
8)部署监视器(monitor)# ceph orch apply mon ** # 确保在此列表中包括第一台(引导)主机。 ceph orch apply mon local-168-182-130,local-168-182-131,local-168-182-132 9)部署 osd
存储设备清单可以显示为: ceph orch device ls
可用存储设备的条件: 设备必须没有分区。 设备不得具有任何LVM状态。 不得安装设备。 该设备不得包含文件系统。 该设备不得包含Ceph BlueStore OSD。 设备必须大于5 GB。
创建osd的方式: # 【第一种方式】告诉Ceph使用任何可用和未使用的存储设备: ceph orch apply osd --all-available-devices # 【第二种方式】或者使用下面命令指定使用的磁盘(推荐使用这种方式吧) #1. ceph orch daemon add osd **:** #例如: #从特定主机上的特定设备创建OSD: ceph orch daemon add osd local-168-182-130:/dev/sdb ceph orch daemon add osd local-168-182-130:/dev/sdc ceph orch daemon add osd local-168-182-131:/dev/sdb ceph orch daemon add osd local-168-182-131:/dev/sdc ceph orch daemon add osd local-168-182-132:/dev/sdb ceph orch daemon add osd local-168-182-132:/dev/sdc
删除OSD节点:(安全) #1.停止osd进程 ceph osd stop x //(x 可以通过ceph osd ls 查看) #停止osd的进程,这个是通知集群这个osd进程不在了,不提供服务了,因为本身没权重,就不会影响到整体的分布,也就没有迁移 #2.将节点状态标记为out ceph osd out osd.x #停止到osd的进程,这个是通知集群这个osd不再映射数据了,不提供服务了,因为本身没权重,就不会影响到整体的分布,也就没有迁移 #3. 从crush中移除节点 ceph osd crush remove osd.x 这个是从crush中删除, #4. 删除节点 ceph osd rm osd.x 这个是从集群里面删除这个节点的记录ls #5. 删除节点认证(不删除编号会占住) ceph auth del osd.x 这个是从认证当中去删除这个节点的信息 10)部署mds(cephFS元数据守护程序)# ceph orch apply mds ** --placement="** [** ...]" ceph orch apply mds myfs --placement="3 local-168-182-130 local-168-182-131 local-168-182-132" 11)部署RGW# 为特定领域和区域部署一组radosgw守护程序: # ceph orch apply rgw ** ** --placement="** [** ...]" ceph orch apply rgw myorg us-east-1 --placement="3 local-168-182-130 local-168-182-131 local-168-182-132" ###说明: #myorg : 领域名 (realm-name) #us-east-1: 区域名 (zone-name)myrgw #Cephadm将等待运行正常的群集,并在部署rgw守护程序之前自动创建所提供的领域和区域(realm-name和zone-name不存在的情况)
查看集群状态 ceph -s
12)添加专用的ceph-mgr节点# ceph-mgr节点默认会挑选一主一备 # 添加新节点 ceph orch host add local-168-182-131 192.168.182.133 # 部署ceph-mgr ceph orch apply mgr local-168-182-130,local-168-182-131,local-168-182-132 # ceph orch apply mgr local-168-182-130,local-168-182-131,local-168-182-132,local-168-182-133
分布式存储系统 Ceph 介绍与环境部署就先到这了,怎么使用,会放到下篇文章详细介绍,小伙伴有任何疑问欢迎给我留言,后续会持续更新【云原生+大数据】相关的文章,也可以关注我的公众号【大数据与云原生技术分享】
节假日调休引热议自1999年以来,通过调休周末来凑小长假的做法已经延续了20多年。随着时间推移,节假日调休弊端也越来越明显,引起不少网友吐槽。网友评论,节假日调休初衷是好的,为了刺激消费促进经济发
贾康要在微笑曲线两侧高端位置努力,升级到高质量发展新境界2022年8月25日下午,市界和叶檀财经联合主办的上市公司竞争力系列论坛首期聚焦上市公司高质量发展,在北京隆重开启。中国财政科学院研究员华夏新供给经济学研究院创始院长贾康出席论坛,
天才少女庞秀玉14岁上央视,21岁未婚生3娃,她的人生被谁毁了1993年,一个年仅14岁的天才少女横空出世。她叫庞秀玉,被央视称为女版韩寒。人们从电视报道中,看到一个脸庞稚嫩清秀的女孩被一群媒体簇拥着赞叹着。那是庞秀玉刚参加完全国文学十佳少年
绘本中不教而教的力量来源中国教育新闻网好孩子,坏孩子英罗伦乔尔德著孙莉莉译接力出版社谈到罗伦乔尔德,可能有人会觉得陌生,但提起我绝对绝对不吃番茄,相信很多读者都会说我知道!我喜欢!作为英国著名绘本作家
有一次,张杰问谢娜如果要娶你,20万够吗?谢娜听后回了一句话当年,歌手张杰还没有像现在这么出名。有一天,他曾对谢娜说我想娶你,我挣20w,够不够娶你?那个时候,张杰刚出道不久,虽然有一些名气,挣得却不多!这要是放在一般民众家里,20万办个婚
Cell子刊原来还有管乐于助人的大脑区域伯明翰大学和牛津大学的科学家们已经确定了大脑中一个专门负责帮助他人的区域。发表在当代生物学杂志上的这项研究表明,努力的利他行为人们做出的帮助他人的选择发生在大脑的不同部位,与用来做
快看看孩子鞋底,有这种形状,小心足外翻宝宝一岁5个月,走路有点足外翻,需要怎么治疗?女儿六岁半,足外翻扁平足,是否需要穿定制的鞋子?我家儿子一走路脚就有点疼,检查了是足外翻,买了几千块的矫正鞋穿两年了,也没有改善,是不
当我知道孩子是自闭症时,我并没有崩溃早上醒来翻看了几个博主记录的自己自闭症孩子的点点滴滴及干预历程,觉得自己也该写点什么了,无奈理工男,文笔不佳,加上拖延症严重,一直没有提到日程上来。最开始真没想到孩子有自闭症这个问
女星金莎官宣与素人恋情,两人交往半年之久8月31日,女星金莎在社交平台上官宣了恋情,晒出了两人在家做的美食以及与男友的比心照片,今年39岁的金莎如此突然的官宣恋情,属实让大家都有一些猝不及防。求证后回应称男方是素人,交往
星汉灿烂收官,主角团都留有遗憾,而他是所有人的意难平星汉灿烂大结局以HE收官,程少商和霍不疑历经磨难,终于牵手,相爱相守。霍不疑绝对的宠妻狂魔,典型恋爱脑,二人婚后的幸福生活,用脚趾头也能想象得出来。其实星汉灿烂收官,主角团除这二人
分开四年后复婚,玖月奇迹破镜重圆!经纪人发文祝贺正式开放演出就在近日,有网友突然通过网络曝光了乐队玖月奇迹的最新近况,通过网友透露的言论我们可以发现,这对离异夫妻目前疑似已经复合,现在已经开始忙着接单了。而这位对外传出消息的网友,则是曾与组