CEPH基础概念

层级 RADOS 分布式存储相较于传统分布式存储的优势在于: 将文件映射到object后,利用Cluster Map 通过CRUSH 计算而不是查找表方式定位文件数据存储到存储设备的具体位置。优化了传统文件到块的映射和Block MAp的管理。 RADOS充分利用OSD的智能特点,将部分任务授权给OSD,最大程度地实现可扩展。 对象寻址过程 PGID=POOL_ID+HASH(OBJ_ID)%PG_NUM 对象的id 通过hash映射,然后用PG总数对hash值取模得到pg id CRUSH(PGID) => OSD 通过crush算法计算PG 上的对象分布到哪些OSD硬盘上 CRUSH算法的希望达成的目标: 数据均匀的分布到集群中; 需要考虑各个OSD权重的不同(根据读写性能的差异,磁盘的容量的大小差异等设置不同的权重); 当有OSD损坏需要数据迁移时,数据的迁移量尽可能的少; CRUSH 算法 CRUSH_HASH(PGID,OSDID,R) = DRAW 输入PG id、可供选择的OSD id 列表,和一个常量,通过一个伪随机算法,得到一个随机数,伪随机算法保证了同一个key总是得到相同的随机数,从而保证每次计算的存储位置不会改变 (DRAW &0xffff) * OSD_WEIGHT = OSD_STRAW 将上面得到的随机数和每个OSD的权重相乘,然后挑出乘积最大的那个OSD 样本容量足够大后,随机数对挑中结果不影响,OSD权重起决定作用,权重越大,挑中概率越大。 通过随机算法让数据均衡分布,乘以权重让挑选的结果考虑了权重;而如果出现故障OSD,只需要恢复这个OSD上的数据,不在这个节点上的数据不需移动 ...

2021-12-07 · 3 min · 1034 words · Superb