阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ceph架构介绍及使用

437次阅读
没有评论

共计 6212 个字符,预计需要花费 16 分钟才能阅读完成。

为什么需要关注 Ceph

在目前开源世界里多样的存储项目中,不同的项目都有侧重点,而它们最终都是要为企业的 IT 基础设施服务。那么企业 IT 基础设施经理们到底需要怎么样的存储,它们的需求得到满足了吗?作者尝试根据对企业级存储产品的调研归纳出如下图。

Ceph 架构介绍及使用

图一

从上图我们可以了解到存储接口需求、扩展、运维和成本构成了企业级存储产品的四大中心。几乎所有的存储产品包括硬件 (存储一体机,SAN) 和软件都致力于在这个方面强调自己的优势,它们或者考虑成本,或者强调扩展性。那么我们来看 Ceph 它是如何定位自己的。

————————————– 分割线 ————————————–

相关阅读:

Ceph 环境配置文档 PDF http://www.linuxidc.com/Linux/2013-05/85212.htm

CentOS 6.3 上部署 Ceph http://www.linuxidc.com/Linux/2013-05/85213.htm

Ceph 的安装过程 http://www.linuxidc.com/Linux/2013-05/85210.htm

HOWTO Install Ceph On FC12, FC 上安装 Ceph 分布式文件系统 http://www.linuxidc.com/Linux/2013-05/85209.htm

Ceph 文件系统安装 http://www.linuxidc.com/Linux/2013-05/85208.htm

CentOS 6.2 64 位上安装 Ceph 0.47.2 http://www.linuxidc.com/Linux/2013-05/85206.htm

Ubuntu 12.04 Ceph 分布式文件系统 http://www.linuxidc.com/Linux/2013-04/82588.htm

Fedora 14 上安装 Ceph 0.24 http://www.linuxidc.com/Linux/2011-01/31580.htm

————————————– 分割线 ————————————–

Ceph 架构介绍及使用

图二

Ceph 通过其三大存储接口满足了企业的多样需求,通过其建立之初就”大肆宣扬”的扩展性,通过其分布式架构和致力于 PB 级规模存储目标的容错性建立了自己的需求矩阵。

Ceph 架构介绍及使用

Ceph 架构介绍及使用

图四

上图也是 Ceph 可以带来的企业 IT 架构方案的变革,在了解到 Ceph 提供的特性后,如何达到并实现是每个不熟悉 Ceph 的人迫切需要了解的。

Ceph 的架构

还是下图这张经典的 Ceph 模块架构图。

Ceph 架构介绍及使用

图五

底层是 Rados,也是 Ceph 实现分布式存储的根本,所有存储接口都是基于 Rados 实现的。Rados 本身就是一个对象存储接口,它自身维护了一个集群状态和实现了数据分发的要求,我们通常也讲 Rados 称为 Ceph Cluster,因为其上的存储接口如 CephFS 都是基于其上的接口实现而已。

为什么底层是对象存储模型?

与使用固定块大小存储比较,名字可以在一个扁平的命名空间里,可以采用可变的大小并且简单的 API 就有丰富的语义。与使用文件存储比较,不需要难以分布的树形层次,上传语义不能跨越对象,不能并行化。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-07/104777p2.htm

RADOS 的组件有哪些?

OSD: 每一个 disk、SSD 或者 RAID group 或者其他一个物理存储设备都成为一个 OSD,主要负责存储和查找对象,并且负责向该对象的复制节点分发和恢复。

Monitor: 维护集群的成员和状态,提供强一致性的决策(类似于 Zookeeper 的作用)

RADOS 分发策略–CRUSH 算法

Ceph 架构介绍及使用

图六

从上图的流程中作者尝试解读 RADOS 是如何将对象分发到不同的 OSD 上(OSD),首先需要了解 Ceph 定义的几个存储区域概念。Pool 是一个命名空间,客户端向 RADOS 上存储对象时需要指定一个 Pool,Pool 通过配置文件定义并可以指定 Pool 的存储 OSD 节点范围和 PG 数量。PG 是 Pool 内部的概念,是对象和 OSD 的中间逻辑分层,对象首先会通过简单的 Hash 算法来得到其存储的 PG,这个 PG 和对象是确定的。然后每一个 PG 都有一个 primary OSD 和几个 Secondary OSD,对象会被分发都这些 OSD 上存储,而这个分发策略称为 CRUSH—Ceph 的数据均匀分布的核心。需要注意的是整个 CRUSH 以上的流程实现都是在客户端计算,因此客户端本身需要保存一份 Cluster Map,而这是从 Monitor 处获得。从这里我们也可以了解到 Monitor 主要职责就是负责维护这份 Cluster Map 并保证强一致性。

CRUSH 通过伪随机算法来确保均匀的数据分布,它的输入是 PG,Cluster State 和 Policy,并且保证 CRUSH 的 Object Name 一样的情况下,即使后两者参数发生改变也会得到一致的读取(注意是读取)。并且这个 CRUSH 算法是可配置的,通过 PG Number 和 Weight 的指定可以得到不同的分布策略。这个可配置的分布策略让 Ceph 的能力得到极大加强。

Ceph 架构介绍及使用

图七

Ceph 的使用场景

Librados

Ceph 架构介绍及使用

图八

首先回顾之前看到的整个架构图,在上述文中我们了解了 RADOS 的原理和作用,然后我们聚焦在 Librados,Librados 提供了对 RADOS 的直接访问。librados 提供对 C、C++、Java、Python、Ruby 和 PHP 的支持。

Ceph 架构介绍及使用

图九

librados 和之后提到的 RADOSGW 的不同在于它是直接访问 RADOS,没有 Http 协议的负载。它支持单个单项的原子操作如同时更新数据和属性、CAS 操作,同时有对象粒度的快照操作。它的实现是基于 RADOS 的插件 API,因此,其实际上就是在 Rados 上运行的封装库。

RadosGW

Ceph 架构介绍及使用

图十

从上图可以看到 RadosGW 位于 Librados 之上,它主要提供 RESTful 接口并且兼容 S3、Swfit 的接口。同时 RadosGW 提供了 Bucket 的命名空间 (类似于文件夹) 和账户支持,并且具备使用记录用于账单目的。相对的,它增加了 Http 协议的负载。

RadosGW 可以提供将 Ceph Cluster 作为分布式对象存储的能力,如 Amazon 的 S3 范围,Swift 等。企业也可以直接使用其作为媒体数据存储,分发等。

RBD

块存储是 Ceph 的另一大支撑点,它目前可以为虚拟机和主机 (Host) 提供不同路径的块存储。

Ceph 架构介绍及使用

图十一

上图为 Ceph Cluster 为虚拟机提供块设备支持。LibRBD 是基于 Librados 的块设备接口实现,主要将一个块设备映射为不同的对象来实现。通过 LibRBD 可以创建一个块设备(Container),然后通过 QEMU/KVM Attach 到 VM 上。通过 Container 和 VM 的解耦使得块设备可以被绑定到不同的 VM 上。

Ceph 架构介绍及使用

图十二

上图为 Ceph Cluster 为主机提供块设备支持,通过 RBD Kernel Module(rbd.ko)为主机提供块设备。这里有一个与上述不同之处在于 Librados 是内核模块而模块名称为(libceph)。这是因为 RBD 内核模块需要利用同样位于内核空间的 Librados。从这里我们可以了解到,实际上 Ceph 维护了数量非常多的 Library,而实际上质量是层次不齐的,这需要了解 Ceph 的人去合理使用。正是因为如何多样的 Library 也使得 Ceph 的存储接口得到多样化,而不是让不同的存储接口勉强实现。不同的存储接口具有完全不同的路径。

为什么需要关注 Ceph

在目前开源世界里多样的存储项目中,不同的项目都有侧重点,而它们最终都是要为企业的 IT 基础设施服务。那么企业 IT 基础设施经理们到底需要怎么样的存储,它们的需求得到满足了吗?作者尝试根据对企业级存储产品的调研归纳出如下图。

Ceph 架构介绍及使用

图一

从上图我们可以了解到存储接口需求、扩展、运维和成本构成了企业级存储产品的四大中心。几乎所有的存储产品包括硬件 (存储一体机,SAN) 和软件都致力于在这个方面强调自己的优势,它们或者考虑成本,或者强调扩展性。那么我们来看 Ceph 它是如何定位自己的。

————————————– 分割线 ————————————–

相关阅读:

Ceph 环境配置文档 PDF http://www.linuxidc.com/Linux/2013-05/85212.htm

CentOS 6.3 上部署 Ceph http://www.linuxidc.com/Linux/2013-05/85213.htm

Ceph 的安装过程 http://www.linuxidc.com/Linux/2013-05/85210.htm

HOWTO Install Ceph On FC12, FC 上安装 Ceph 分布式文件系统 http://www.linuxidc.com/Linux/2013-05/85209.htm

Ceph 文件系统安装 http://www.linuxidc.com/Linux/2013-05/85208.htm

CentOS 6.2 64 位上安装 Ceph 0.47.2 http://www.linuxidc.com/Linux/2013-05/85206.htm

Ubuntu 12.04 Ceph 分布式文件系统 http://www.linuxidc.com/Linux/2013-04/82588.htm

Fedora 14 上安装 Ceph 0.24 http://www.linuxidc.com/Linux/2011-01/31580.htm

————————————– 分割线 ————————————–

Ceph 架构介绍及使用

图二

Ceph 通过其三大存储接口满足了企业的多样需求,通过其建立之初就”大肆宣扬”的扩展性,通过其分布式架构和致力于 PB 级规模存储目标的容错性建立了自己的需求矩阵。

Ceph 架构介绍及使用

Ceph 架构介绍及使用

图四

上图也是 Ceph 可以带来的企业 IT 架构方案的变革,在了解到 Ceph 提供的特性后,如何达到并实现是每个不熟悉 Ceph 的人迫切需要了解的。

Ceph 的架构

还是下图这张经典的 Ceph 模块架构图。

Ceph 架构介绍及使用

图五

底层是 Rados,也是 Ceph 实现分布式存储的根本,所有存储接口都是基于 Rados 实现的。Rados 本身就是一个对象存储接口,它自身维护了一个集群状态和实现了数据分发的要求,我们通常也讲 Rados 称为 Ceph Cluster,因为其上的存储接口如 CephFS 都是基于其上的接口实现而已。

为什么底层是对象存储模型?

与使用固定块大小存储比较,名字可以在一个扁平的命名空间里,可以采用可变的大小并且简单的 API 就有丰富的语义。与使用文件存储比较,不需要难以分布的树形层次,上传语义不能跨越对象,不能并行化。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-07/104777p2.htm

以上两种方式都是将一个虚拟的块设备分片存储在 RADOS(Ceph Cluster)中,都会利用利用数据条带化提高数据并行传输,都支持块设备的快照,COW(Copy-On-Write)克隆。最重要的是 RBD 还支持 Live migration。目前的 OpenStack,CloudStack 都采用第一种方式为虚拟机提供块设备。

Ceph 架构介绍及使用

Ceph 架构介绍及使用

图十三

Ceph 架构介绍及使用

图十四

上述图示也表明了在大量 VM 的情况下如何使得存储容量利用的最小化和高效性。当大量 VM 基于同一个 Snapshot 建立 Volume 时,所有容量不会立即得到占用,而都是 COW。这个特征也是目前众多存储厂商在 VDI 解决方案一直强调的。在 VDI 解决方案中,存储成本是最重要的一环,利用 Ceph 通过 Thin provisioning 和数据并行化可以大大提高 VDI 方案的吸引力。

目前 Ceph 的块存储是大力推荐并且高速开发的模块,因为它提供的接口对于用户更加熟悉,并且在目前流行的 OpenStack 和 CloudStack 中可以得到广泛接受和支持。Ceph 块存储的计算和存储解耦、Live migration 特性、高效的快照和克隆 / 恢复都是引入注目的特性。

CephFS

CephFS 是基于 Rados 实现的 PB 级分布式文件系统,这里会引入一个新的组件 MDS(Meta Data Server),它主要为兼容 POSIX 文件系统提供元数据,如目录和文件元数据。同时,MDS 会将元数据也存在 RADOS(Ceph Cluster)中。元数据存储在 RADOS 中后,元数据本身也达到了并行化,大大加强了文件操作的速度。需要注意的是 MDS 并不会直接为 Client 提供文件数据,而只是为 Client 提供元数据的操作。

Ceph 架构介绍及使用

图十五

从上图可以看到,Client 当 Open 一个文件时,会查询并更新 MDS 相应的元数据如文件包括的对象信息,然后再根据提供的对象信息直接从 RADOS(Ceph Cluster)中直接得到文件数据。

Ceph 架构介绍及使用

图十六

CephFS 既然是分布式文件系统,当面对不同的文件热点和大小时,它需要提供数据负载均衡来避免 MDS 的热点。通过上图我们可以看到五个 MDS 管理着不同“面积”的目录树,因为不同文件的访问热点和大小的原因来进行动态调整。

这里还需要介绍引入 MDS 带来的好处有目录列表操作的加快,如目录下文件大小、数量和时间等。同时,支持对文件的快照。

目前 CephFS 有多种使用方式: 1. Linux Kernel client: 使用”mount -t ceph 8.8.8.8:/ /mnt”可以直接挂载到本地并访问。2. ceph-fuse: 通过 ceph-fuse 可以从用户态空间挂载 CephFS 如”ceph-fuse -m 192.168.0.1:6789 /home/username/cephfs”3. libcephfs.so: 通过 libcephfs 可以替代 HDFS 来支持不同 Hadoop 乃至 HBase。

Ceph 的其他

QoS 机制: Ceph Cluster 支持多种 QoS 配置,如集群重平衡,数据恢复的优先级配置,避免影响正常的数据通信。

Geo-replication: 基于地理位置的对象存储

OpenStack: Ceph 目前在大力融合入 OpenStack,OpenStack 的所有存储 (除数据库外) 都可以将 Ceph 作为存储后端。如 KeyStone 和 Swfit 可以利用 RadosGW,Cinder、Glance 和 Nova 利用 RBD 作为块存储。甚至所有 VM 的 Image 都存储在 CephFS 上。

目前 Ceph 的优化点也非常多,目前 Rados IO 路径过于复杂,线程管理得不到有限控制,如果在 Rados 上优化 Small IO 的性能,Ceph Cluster 的集群性能会得到极大提高。很多人也会担心 Ceph 实现了如此多样的存储接口会不会一定降低每一个接口的性能要求。但从架构上来说,Ceph 的 RADOS 只是一个单纯的分布式存储机制,其上的接口看到的都是一层统一的存储池,接口实现互相分离而不影响。

Ceph 的详细介绍:请点这里
Ceph 的下载地址:请点这里

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6212字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7980486
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...