Ceph

来自站长百科
Kyxt讨论 | 贡献2024年5月7日 (二) 15:53的版本 (创建页面,内容为“Ceph是一个开源的、高度可扩展的、统一的分布式存储系统,由红帽公司开发并维护,它能够提供对象存储、块存储和文件存储的解决方案。 == 概述 == Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。 Ceph项目起源于Sage在攻读博士学位期间的研究工作,其最初的研究成果于200…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航、​ 搜索

Ceph是一个开源的、高度可扩展的、统一的分布式存储系统,由红帽公司开发并维护,它能够提供对象存储、块存储和文件存储的解决方案。

概述

Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。

Ceph项目起源于Sage在攻读博士学位期间的研究工作,其最初的研究成果于2004年发布,并随后作为开源项目贡献给了社区。经过数年的发展和迭代,Ceph已经获得了众多云计算厂商的支持,并在各种环境中得到了广泛应用。RedHatOpenStack等平台都能够与Ceph无缝整合,利用其强大的存储功能来支持虚拟机镜像的后端存储需求。

Ceph已经广泛获得云计算厂商的支持,并在多个平台中发挥着关键作用。RedHat、OpenStack和Kubernetes等技术都能够与Ceph集成,利用其作为虚拟机镜像的后端存储解决方案。据估计,在中国,大约70%至80%的云平台采用Ceph作为其基础存储平台,这充分证明了Ceph在开源云平台中的普遍应用和重要性。国内许多企业成功地使用Ceph构建了分布式存储系统,其中包括华为、阿里巴巴、中兴通讯、新华三集团、浪潮集团、中国移动、网易、乐视、奇虎360、星辰天合存储、杉岩数据等知名企业。

主要特点

高性能

  • Ceph放弃了传统的中心化存储元数据索引方式,采用CRUSH算法进行数据分布,实现了高效的负载均衡和高度并行处理能力。
  • 考虑到容灾需求,Ceph能够实现跨机房、机架感知等复杂的副本放置策略,以适应不同工作负载。
  • 支持大规模部署,可以轻松管理上千个节点,应对从TB到PB级别的数据存储需求。

高可用性

  • 允许灵活配置副本数量,以满足不同的数据安全级别。
  • 支持故障域隔离,确保数据的强一致性。
  • 在多种故障场景下提供自动修复和自我恢复功能。
  • 去除单点故障的可能性,通过自动化管理降低系统维护难度。

高可扩展性

  • 采用去中心化设计,使得系统更加灵活易扩展。
  • 随着节点的增加,系统性能呈线性增长,方便按需扩容。

特性丰富

  • 同时支持块存储、文件存储和对象存储三种接口,满足多样化的存储需求。
  • 支持自定义接口开发,并提供多种编程语言的SDK支持,便于集成和二次开发。

架构

1、Object(对象存储)

提供原生的API,使得可以直接与Ceph存储系统交互。 兼容Swift和S3的API,这意味着开发者可以使用这些流行的对象存储协议与Ceph进行集成,便于迁移和开发新的应用。

2、Block(块存储)

支持精简配置(Thin Provisioning),允许更有效地使用存储空间,仅分配实际需要的数据空间。 提供快照功能,可以创建数据的时间点副本,用于数据保护和恢复。 支持克隆操作,方便快速复制数据或创建虚拟机镜像

3、File(文件存储)

  • 提供遵守POSIX标准的文件接口,允许与传统文件系统兼容的操作。
  • 同样支持快照功能,为文件系统提供额外的数据保护和恢复选项。

核心组件

  • Monitor:一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
  • OSD:OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。
  • MDS:MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
  • Object:Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
  • PG:PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
  • RADOS:RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
  • Libradio:Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
  • CRUSH:CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
  • RBD:RBD全称RADOS block device,是Ceph对外提供的块设备服务。
  • RGW:RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
  • CephFS:CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

相关条目