Forward rebuild发生在磁盘或节点挂掉的时候. 这种rebuild的过程的load是均衡到protection domain中所有可用的磁盘和节点上的. 这种rebuild相对于backwards rebuild更快, 更平顺.

 

Backward rebuild发生在挂点的节点或磁盘恢复的时候, 或者添加新的节点或磁盘的时候. 这种rebuild发生的时间点比较的智能, 由ScaleIO系统决定何时发生和发生时的load有多少.

 

那么为什么一种rebuild快而一种rebuild却不那么快呢? 从设计的角度来考虑, 节点挂掉的时候存储上的数据处于一种'危险'之中. 因为ScaleIO上的任何一份数据都是两份拷贝的, 挂掉一个磁盘或节点意味着这部分数据只剩下了一份拷贝, 这时如果再挂掉一个磁盘或节点, 那么就有数据丢失的危险. 所以应该尽快的进行forward rebuild, 保证任何时候都有两份拷贝, 防止数据丢失. 而backward rebuild的发生有两种情况, 一种是坏掉的节点恢复, 另一种是向已有的配置中添加节点或磁盘. 那么在已有两份拷贝的基础上, 安全已经不是问题, 那么可以看作是在当前性能的基础上进行锦上添花, 自然rebuild的速度就要考虑到当前的磁盘的workload, 以及各方面的因素来决定了.

 

考考你. 比如, 我们在维护ScaleIO主机的时候, 需要运行如下命令:

scli --inactivate_protection_domain --protection_domain_name MyPd

主机重启结束之后, 我们再运行下面的命令来恢复.

scli --activate_protection_domain --protection_domain_name MyPd

 

这时ScaleIO系统会进行一种rebuild, 你猜猜是哪一种?

 

你答对了! 答案是backward rebuild.

05-11 20:06