您当前位置:资讯中心 >服务器 >浏览文章

分布式存储系统 Ceph 介绍与环境部署

来源:互联网 日期:2023/1/3 7:57:27 阅读量:(0)

一、概述

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上(针对三副本类型);
关键字:
声明:我公司网站部分信息和资讯来自于网络,若涉及版权相关问题请致电(63937922)或在线提交留言告知,我们会第一时间屏蔽删除。
有价值
0% (0)
无价值
0% (10)

分享转发:

发表评论请先登录后发表评论。愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。