RAID5+1阵列更换磁盘的实战记录

事情的起因是机房一台服务器的磁盘指示灯被发现橙色闪烁,检查了下,系统还可以正常启动,不过有老师发现貌似程序跑起来变慢了很多(后面复盘下来,可能并不是磁盘原因导致的)。

RAID5Rebuild_01

联系了DELL工程师,本想通过 iDRAC 查看一下具体的错误原因,但发现这台 R710 并没有 iDRAC 网线接口。于是,只能进入阵列的管理界面看看,在服务器启动自检时,当提示 Press <Ctrl><R> to Run Configuration Utility 后,马上按 Ctrl + R 即可。

RAID5Rebuild_02

在阵列卡界面左翻翻右翻翻,确定了这个阵列是 RAID5+1 的结构,可以看到阵列中所有磁盘都是 Online 状态,还有一个 Hotspare 是热备盘,但是查看 02 磁盘的时候发现其 S.M.A.R.T Status 报错。询问工程师大哥,他表示磁盘没有严重错误,如果是严重错误的话,状态就不是 Online 了,而 S.M.A.R.T 的报错可能是磁盘有逻辑坏道或者其他原因导致的。

虽然还可以继续使用,但考虑到这些盘也是有快10年的历史了,当然更重要的是数据无价不容有失,我们决定对 02 磁盘进行更换,重建阵列。

第一步当然是对服务器上重要的数据进行备份!RAID5 可以保证在损坏不超过一块硬盘的情况下进行重建恢复数据,但谁也不知道在重建阵列的过程中会不会有其他磁盘也出现问题。

备份完成,关机,取出报错的 02 盘,将新盘安装好插入服务器,开机!在引擎的轰鸣下,服务器启动了…

再次进入阵列管理界面。这里我想的是:阵列会识别到原来的 02 磁盘没了,但是有了新的盘插在 02 的位置,于是开始对新盘进行重建。然而,我看到却是 00:05 Rebuild ...... 1%。欸?怎么 02 的状态是 Ready,05 的状态是 Rebuild

RAID5Rebuild_03

RAID5Rebuild_04

怀着一丝忐忑请教工程师大哥,“没事儿,不用动,等重建完成自动就换过来了”他回答道。大哥说得信心满满,但我还是有点不解,趁着重建的时间去搜了搜,发现了这个:

如果配置了热备盘,那么热备盘会在 RAID 阵列中某块磁盘算坏的时候进行替补,RAID 阵列重建。当损坏的磁盘更换后。热备盘会识别到,然后将自身的数据与新替换的磁盘进行数据同步。当数据同步完成之后就会恢复到原来的角色:热备盘。

这个描述与目前阵列的状态十分一致,因为我换掉了原来的 02 磁盘,所以热备盘 05 自动加入了阵列并开始重建。

大约 4 小时后,热备盘重建完成,状态变为 Online,同时,新换上的 02 盘状态变为 Replacing,看服务器前面板的指示灯,02 和 05 在狂闪,应该正在进行替换操作。

RAID5Rebuild_05

又经过大约 4 小时,Replacing 操作完成了,通过阵列管理界面可以看到新换的 02 盘的状态变成 Online 了,同时热备盘 05 的状态也变回 Hotspare 热备了。到这里,更换磁盘的工作就大功告成了。

RAID5Rebuild_06

总结

这次更换磁盘的实战还是相当顺利的,得益于阵列管理系统对磁盘故障处理的自动化流程,在我插入新磁盘后,甚至不需要任何额外操作,只需静静等待几个小时即可完成阵列重建。

虽然顺利完成了阵列重建,但我对阵列重建的流程还是有些疑问,我已经先替换掉了坏盘,为什么不直接在新盘上重建,而是先在热备盘上重建,再和新盘进行替换呢?这不是多了一倍的时间吗?

带着这个疑问,我又找了很多与热备盘相关的案例,最后总算是清楚这个热备盘的『角色定位』了。其实,热备盘的加入并不是为了增加阵列的安全性,而是为了增加整个存储系统的可靠性。它的作用相当于挂在车后面的备胎,行驶过程中一旦有轮胎损坏,立即换上,然后就又可以继续开了。不过我这次是提前发现了磁盘问题,在阵列发生严重错误前,便准备好了新的磁盘,所以没有体现出热备盘的作用。如果是在对服务可靠性要求很高的环境,当阵列出现问题,热备盘立即顶上,开始重建,它只需要用最短的时间让服务重新恢复正常就好,而运维人员睡醒后要考虑的就很多了。