1. 数据分布算法挑战
- 数据分布和负载均衡:
a. 数据分布均衡,使数据能均匀的分布到各个节点上。
b. 负载均衡,使数据访问读写操作的负载在各个节点和磁盘的负载均衡。 - 灵活应对集群伸缩
a. 系统可以方便的增加或者删除节点设备,并且对节点失效进行处理。
b. 增加或者删除节点设备后,能自动实现数据的均衡,并且尽可能少的迁移数据。 - 支持大规模集群
a. 要求数据分布算法维护的元数据相对较小,并且计算量不能太大。随着集群规模的增 加,数据分布算法开销相对比较小。
2. Ceph CRUSH算法说明
- CRUSH算法的全称为:Controlled Scalable Decentralized Placement of Replicated Data,可控的、可扩展的、分布式的副本数据放置算法。
- pg到OSD的映射的过程算法叫做CRUSH 算法。(一个Object需要保存三个副本,也就是需要保存在三个osd上)。
- CRUSH算法是一个伪随机的过程,他可以从所有的OSD中,随机性选择一个OSD集合,但是同一个PG每次随机选择的结果是不变的,也就是映射的OSD集合是固定的。
3. Ceph CRUSH算法原理
CRUSH算法因子:
- 层次化的Cluster Map
反映了存储系统层级的物理拓扑结构。定义了OSD集群具有层级关系的 静态拓扑结构。OSD层级使得 CRUSH算法在选择OSD时实现了机架感知能力,也就是通过规则定义, 使得副本可以分布在不同的机 架、不同的机房中、提供数据的安全性 。 - Placem