什么是ceph
Ceph 是一个开源的分布式存储系统,它的原理涉及数据存储、数据分布、数据冗余和故障恢复等多个方面,下面为你详细介绍:
数据存储模型
Ceph 采用对象存储作为基础存储模型。在 Ceph 中,所有数据都被抽象为对象(Object)。每个对象包含数据本身以及与之关联的元数据,元数据描述了对象的属性,如大小、创建时间、访问权限等。对象被存储在对象存储设备(OSD)上,OSD 是实际负责存储和管理数据的物理节点或逻辑单元。
数据分布机制
- 集群映射(Cluster Map):Ceph 通过集群映射来记录集群的状态信息,包括所有 OSD 的状态、监视器(Monitor)的位置、数据的分布规则等。集群映射会随着集群的变化(如节点加入、离开或故障)而动态更新,并在所有参与节点间同步。
- 一致性哈希与 CRUSH 算法:Ceph 使用基于一致性哈希改进的 CRUSH(Controlled Replication Under Scalable Hashing)算法来确定数据对象的存储位置。CRUSH 算法根据集群映射和用户指定的存储策略(如副本数量、存储位置限制等),计算出对象应该存储在哪些 OSD 上。这样做的好处是,当集群规模发生变化时,只需要对少量数据进行迁移,减少了数据的移动量,提高了系统的可扩展性和稳定性。
数据冗余与恢复
- 数据副本策略:为了保证数据的可靠性,Ceph 支持数据副本机制。用户可以根据需求指定数据的副本数量,默认情