极简了解Ceph存储架构
一、Ceph存储简介
官网地址:https://docs.ceph.com/en/pacific/
Ceph官网首页有这两段介绍:"Ceph uniquely delivers object, block, and file storage in one unified system. Ceph is highly reliable, easy to manage, and free. The power of Ceph can transform your company’s IT infrastructure and your ability to manage vast amounts of data. "
翻译过来就是“Ceph 是唯一一个可提供传输对象存储、块存储、文件存储的统一系统。Ceph 它高度可靠,易于管理,并且免费。Ceph的强大功能可以改变您公司的IT基础架构以及管理大量数据的能力。 ”
二、Ceph存储架构解读
官网地址:https://docs.ceph.com/en/pacific/architecture/
- 对象存储:通过RADOSGW进行分布式数据存储的。
- 块存储:通过RBD做的,最终映射到操作系统的一个块设备。
- 文件存储:支持内核和用户级别的。并且,它直接操作Ceph 底层的RADOS,不经过LIBRADOS库;
- 可以通过LIBRADOS原生的库(支持各种API接口),来直接访问分布式存储。
- RADOS是分布式存储的核心
三、Ceph组件剖析
3.1 THE CEPH STORAGE CLUSTER
- Ceph Monitor :负责整个集群状态的情况,为了保证高可用性,要确保其数量为奇数个。
- Ceph OSD Daemon :真正存储数据的地方,会定期上报状态给Monitor,如果异常会触发迁移和修复。
- Ceph Manager :Ceph manager守护进程(Ceph -mgr)是在Kraken版本中引入的,它与monitor守护进程一起运行, 为外部监视和管理系统提供额外的监视和接口。
- Ceph Metadata Server :Ceph 元数据服务器服务进程,简称 MDS。只有在启用了 Ceph 文件存储(CephFS)的集群中才需要启用 MDS,它负责跟踪文件层次结构,存储和管理 CephFS 的元数据。MDS 的元数据也是以 Obejct 的形式存储在 OSD 上。
3.2 CLUSTER MAP
Monitor集群五张状态表:
- The Monitor Map:整个集群监视的状态情况,最重要,最核心的一个监视器组件。
- The OSD Map:实际存储数据的地方,它会定期的把数据上报Monitor,一旦异常就会触发修复机制。
- The PG Map:最终数据是存储在PG容器里面,然后才会分发到OSD,避免数据直接存放到对象中导致数据改动很大。当OSD异常时,会直接通过移动PG来实现容灾修复。
- The CRUSH Map:数据分配的机制。
- The MDS Map:存储文件存储的元数据信息。
四、Ceph写入数据流
Ceph 存储中一切皆对象,一个文件先被切割成多个objects(默认4M一个Object),然后每个对象都有一个Oid(Object ID),这些Objects需要存放在PG组里面,PG组可以理解为装载Object的文件夹,Object 对象通过hash和掩码运算,最终得到一个pgid,得到你最终落到哪个PG上面,一个PG上面会存储很多的Object,之后再通过 CRUSH算法,把pg分配到集群中的OSD节点上,根据CRUSH使用算法的不同,也会落到不同的OSD上面。
作者:UStarGao
链接:https://www.starcto.com/storage_scheme/301.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2021-07-17开源EyouCms博客安装教程
- 2021-08-01MySQL主从同步之半同步复制
- 2021-11-17Docker打包运行中的容器为镜像并Push到UHub
- 2021-08-23开源Yapi接口管理平台容器化部署
- 2021-05-29MySQL 索引介绍