[ceph学习-9]crush算法(4)

映射改变与数据迁移
大型文件系统中数据分布的一个关键问题是增删存储资源时的相应。CRUSH始终保持数据的均匀分布,以避免负载的不均衡,以及可用资源没有得到充分的利用情况。当某个设备发生过账时,CRUSH会位置设置标记,但仍保留在层次结构中,下次选择时被CRUSH算法拒绝,并根据位置算法,均匀的将内容分发到其他设备上。这样的Cluster map变化使得需要重新映射到新存储目标上的数据最少,这个比例是W/W(W是指所有设备的权重和),因为只有失效设备上的数据被移动了。
当集群的层次结构由于增删存储资源而发生改变时的情况要更加复杂,CRUSH的映射过程,将Cluster Map作为带权的决策树,可能导致额外的数据移动,超过理论上的最佳比例W/W.在层次结构的每一层,每一次相关子树的权重改变,都要改变数据分布,一部分数据对象就要从权重下降的子树移动到权重上升的子树中。由于层次结构中每个节点上的伪随机位置决策在统计意义上是相互独立的,移入某个子树的数据被均匀的分布在哪一点下,而且并不一定需要被重新映射到直接导致权重变化的叶节点中。只有在定位过程相对比较深的层次,才会为维持总体的数据分布而移动数据。

发表评论

您的电子邮箱地址不会被公开。