<h4 id="ceph">Ceph 简介</h4>
讯享网
Ceph是一个可无限伸缩的开源分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性,它基于RADOS实现。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用,RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。
Ceph特点
- 高性能
- 摒弃了传统的集中式存储元数据寻址的方案,采用 CRUSH 算法,数据分布均衡,并行度高。
- 考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
- 能够支持上千个存储节点的规模,支持 TB 到 PB 级的数据。
- 高可用性
- 副本数可以灵活控制。
- 支持故障域分隔,数据强一致性。
- 多种故障场景自动进行修复自愈。
- 没有单点故障,自动管理。
- 高可扩展性
- 去中心化。
- 扩展灵活。
- 随着节点增加而性能线性增长。
- 特性丰富
- 支持三种存储接口:块存储、文件存储、对象存储。
- 支持自定义接口,支持多种语言驱动。
基本概念
- Ceph OSD
Object Storage Device是ceph的核心组件,用于存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD守护进程的心跳来向Ceph Monitors提供一些监控信息。ceph集群每台机器上的每块盘需要运行一个OSD进程。
每个OSD有自己日志,生产环境一般要求OSD的journal日志单独放在ssd上,数据对象放在机械硬盘,以提升性能。而OSD使用日志的原因有二:速度和一致性。
1,速度: 日志使得OSD可以快速地提交小块数据的写入,Ceph把小片、随机IO依次写入日志,这样,后端文件系统就有可能归并写入动作,并最终提升并发承载力。因此,使用OSD日志能展现出优秀的突发写性能,实际上数据还没有写入OSD,因为文件系统把它们捕捉到了日志。
2,一致性: Ceph的OSD守护进程需要一个能保证原子操作的文件系统接口。OSD把一个操作的描述写入日志,然后把操作应用到文件系统,这需要原子更新一个对象(例如归置组元数据)。每隔一段 filestore max sync interval 和 filestore min sync interval之间的时间,OSD停止写入、把日志同步到文件系统,这样允许 OSD 修整日志里的操作并重用空间。若失败, OSD 从上个同步点开始重放日志。 - Monitor
Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors、OSD和PG上的每一次状态变更的历史信息(称为epoch )。Monitor支持高可用部署,可以运行多个Monitor组成一个集群,一个监视器集群确保了当某个监视器失效时的高可用性。存储集群客户端向Ceph监视器索取集群运行图的最新副本,而集群通过Paxos算法就集群当前状态保持一致。
- MDS
Ceph Metadata Server为Ceph文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。Metadata Server使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。
- CRUSH
CRUSH 是 Ceph 使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。Ceph 客户端和 OSD 守护进程都用 CRUSH 算法来计算对象的位置信息,而不是依赖于一个中心化的查询表。与以往方法相比, CRUSH 的数据管理机制更好,它很干脆地把工作分配给集群内的所有客户端和 OSD 来处理,因此具有极大的伸缩性。 CRUSH 用智能数据复制确保弹性,更能适应超大规模存储。
- Object
Ceph 最底层的存储单元是 Object 对象,每个 Object 包含元数据和原始数据。
- PG
PG 全称 Placement Grouops,是一个逻辑的概念,一个 PG 包含多个Object。引入PG这一层其实是为了更好的分配数据和定位数据。
- 存储pool
Ceph 存储系统支持“池”概念,它是存储对象的逻辑分区,集群部署起来之后会有一个rdb的默认存储池。一个存储池可以设置PG的数量,CRUSH规则集,访问控制等。
- RADOS
RADOS 全称 Reliable Autonomic Distributed Object Store,是 Ceph 集群的核心,用户实现数据分配、Failover 等集群操作。
- Libradio
Librados 是 RADOS 的接口库,因为 RADOS 是协议很难直接访问,因此上层的 RBD、RGW 和 CephFS 都是通过 librados 访问的。Ceph的客户端通过一套名为librados的接口进行集群的访问,这里的访问包括对集群的整体访问和对象的访问两类接口。这套接口(API)包括C、C++和Python常见语言的实现,接口通过网络实现对Ceph集群的访问。在用户层面,可以在自己的程序中调用该接口,从而集成Ceph集群的存储功能,或者在监控程序中实现对Ceph集群状态的监控。
- RBD
RBD 全称 RADOS block device,是 Ceph 对外提供的块设备服务。Ceph块设备是精简配置的、大小可调且将数据条带化存储到集群内的多个 OSD 。 Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。 Ceph 的 RADOS 块设备( RBD )使用内核模块或 librbd 库与 OSD 交互。
- RGW
RGW 全称 RADOS gateway,是 Ceph 对外提供的对象存储服务,接口与 S3 和 Swift 兼容。
- CephFS
CephFS 全称 Ceph File System,是Ceph对外提供的文件系统服务。
环境配置
- 创建ceph目录,如果有数据盘单独挂载
讯享网
- 修改hosts和主机名,关闭selinux
- 每台机器创建阿里的ceph源
讯享网
- 组件部署架构
- 打通三台机器的名密登陆
安装配置ceph块存储
- 在ceph-node-001执行初始化
- 每个节点中修改目录权限
讯享网
- ceph-node-001执行,把ceph-node-001做为第一个monitor节点,收集密钥并初始化
- 在ceph-node-001执行,把ceph-node-002和ceph-node-003加入monitor集群
讯享网
- 在ceph-node-001上执行,初始化和启动OSD。如果正式环境的话,要求每个OSD的journal日志单独存放在一块ssd上,能明显提升性能。测试环境为了简单可以把数据和journal放在一起:
- 使用ceph-deploy命令将配置文件和 admin key复制到管理节点和Ceph节点,以便每次执行ceph CLI命令无需指定monitor地址和 ceph.client.admin.keyring。:
讯享网
- 查看ceph集群状态
- 发现有如上的的WARN信息,这个可能是三台机器之间的时间不同步,用ntpdata或者ntp同步下三台机器的时间,然后重启ceph-mon:
讯享网
- 清除安装包、配置数据,认证密钥等信息,可以执行如下命令:
创建manager
Ceph Manager守护程序以 active/standby模式运行。部署其他manager daemons可确保如果一个守护程序或主机发生故障,另一守护程序或主机可以接管而不会中断服务。
- 执行以下命令添加要部署的Manager守护程序,mgr扩容只需继续执行以下命令即可
讯享网
更新详细的文档介绍
ceph安装·看云
关于
运维攻城狮、90后、红帽认证工程师(Red Hat Certified Engineer), 生活在妖都,2012至今服务于某游戏厂商,专注于自动化运维。
博客中主要一些自己工作中有用到的服务配置和解决记录,一来可以整理文档、二来可以分享一下技术经验。
空余时间会更新一些文章,有转载的,有原创的;尊重作者版权,转来的文章都会附上原文地址,有些只是自己的笔记和经验总结,分享给需要的人。
如果你有好的技术文档,欢迎投稿,也可以申请author权限。
认知
我们每个人的在网络上产生的数据越来越多,这些信息是我们在互联网上存在过的痕迹,值得我们认真对待。但是它们被分散分布在各个网站上。很多时候我们很难将它们聚合在一起,而且各个网站的信息排布方式也没有办法自由控制,所以我们需要一个可以由自己主宰的空间——博客。
通过博客,我们可以记录自己的生活和成长的轨迹。它不像 Twitter 那样碎片化,也不像 Facebook 那样关系化,它是私人的空间。。
本站架构
Debian+node+nginx+Ghost
博客历史
2015-03-30 使用阿里红包创建了一台ECS
2015-04-03 于name.com注册了域名
2015-05-20 使用ghost部署博客
2015-05-21 开始写第一篇博文
2015-06-04 博客启用ssl
2018-03-06 撸了一把羊毛,服务器迁至腾讯云
联系方式
打赏小博
如果你觉得作者的文章还不错,一不小心帮到了你,欢迎打赏。
关于
运维攻城狮、90后、红帽认证工程师(Red Hat Certified Engineer), 生活在妖都,2012至今服务于某游戏厂商,专注于自动化运维。
博客中主要一些自己工作中有用到的服务配置和解决记录,一来可以整理文档、二来可以分享一下技术经验。
空余时间会更新一些文章,有转载的,有原创的;尊重作者版权,转来的文章都会附上原文地址,有些只是自己的笔记和经验总结,分享给需要的人。
如果你有好的技术文档,欢迎投稿,也可以申请author权限。
认知
我们每个人的在网络上产生的数据越来越多,这些信息是我们在互联网上存在过的痕迹,值得我们认真对待。但是它们被分散分布在各个网站上。很多时候我们很难将它们聚合在一起,而且各个网站的信息排布方式也没有办法自由控制,所以我们需要一个可以由自己主宰的空间——博客。
通过博客,我们可以记录自己的生活和成长的轨迹。它不像 Twitter 那样碎片化,也不像 Facebook 那样关系化,它是私人的空间。。
本站架构
Debian+node+nginx+Ghost
博客历史
2015-03-30 使用阿里红包创建了一台ECS
2015-04-03 于name.com注册了域名
2015-05-20 使用ghost部署博客
2015-05-21 开始写第一篇博文
2015-06-04 博客启用ssl
2018-03-06 撸了一把羊毛,服务器迁至腾讯云
联系方式
打赏小博
如果你觉得作者的文章还不错,一不小心帮到了你,欢迎打赏。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/163868.html