声明:本探索只针对HP Microserver Gen8 Smart Array B120i板载阵列卡组建RAID 1(不是RAID 1+0),不同阵列卡结果可能会不同,请谨慎操作,本人不对你操作后导致的任何数据丢失或者损失承担任何责任,文章仅供参考,操作前请做好备份。
前言:自从今年1月份原OMV系统断电导致其中1个硬盘损坏(受文章《关于为什么RAID5往往掉一个盘后第二个盘也立刻挂掉的原因分析 》影响,没组RAID5,也没组RAID1,使用AHCI模式),导致其中数据无法恢复(虽然数据在其他地方还有备份,没有真正造成数据丢失,但没组个安全的RAID来保证数据的安全性还是个错误的决定),于是用Windows server 2019,并组了RAID 1+0,由于没有更换受损硬盘,没几天受损硬盘便告警,更换新硬盘恢复正常。这两次事件促使我决定对不熟悉的RAID方式进行探索(毕竟从没组建使用过RAID),以确保以后遇到硬件故障时可以保证数据的安全性。
探索:1、硬盘容量不够用了,要如何扩容?
2、主机坏了,需要更换,如何保证硬盘里的数据还能读取?
---------------------------为了数据的安全性,组建的是RAID 1-----------------------------------
一、 硬盘容量不够用了,要如何扩容?
方法1:
关机断电,拆下RAID 1其中一块硬盘,更换更大硬盘后开机,并在出现下面画面后按F1键激活重建(务必要按F1,否则硬盘一直不会重建,数据便一直只保存在RAID1其中1块硬盘)。
等待重建完成后,同样操作更换第二块大硬盘,并等第二块硬盘也重建完成后,脱机或联机访问ACU(Array Configuration Utility),但联机要方便得多,要联机访问需要安装应用:HPE Array Configuration Utility(HPE Smart Storage Administrator (HPE SSA) for Windows 64-bit)
发现阵列C只使用了50%空间,剩余空间继续创建逻辑驱动器:
创建完成后,RAID1阵列C有2个逻辑驱动器,在服务器管理器---》文件和存储服务---》磁盘 中便可见到新增的逻辑驱动器,创建卷后即可使用。
方法2:
关机断电,将RAID 1的2块硬盘全部拆下,更换2块大硬盘,开机后访问ACU,删除原RAID1信息,重新建立新RAID1,建立逻辑驱动器(RAID1阵列C只有1个逻辑驱动器),创建卷后新的、更大的RAID1阵列就可以使用了,但这时候数据还在旧的阵列硬盘里面,还未恢复到新阵列里。
数据恢复:将原拆下的阵列硬盘中的一个,接入USB硬盘盒,并接入GEN8的USB3.0接口,将里面数据复制到新阵列即可。
二、主机坏了,需要更换,如何保证硬盘里的数据还能读取?
测试1:
关机断电,将方法1中更换的新阵列C硬盘拆下,重新将方法1中旧硬盘更换上,模拟更换了主机的情况,开机阵列报错,进入ACU:
发现阵列C的第一个硬盘(托架2)显示故障,第二个硬盘(托架4)状态正常,我第一次时选择逻辑驱动器3“重新启用故障逻辑驱动器”,重启机器后,但第一个硬盘(托架2)需要重建,说明在“重新启用故障逻辑驱动器”过程中,重写了硬盘数据区,万一2块硬盘都写就有数据丢失风险。重建过程中,删除逻辑驱动器4,完成重建后数据正常。
测试2:
关机断电,将方法1中更换的新阵列C硬盘拆下(不要接上旧阵列C的硬盘),开机后进入ACU,删除阵列C,关机后将旧阵列C硬盘接入机器,开机后进入ACU,重建阵列C,重建逻辑驱动器,阵列立即恢复正常使用(不用在windows中新建卷,数据没有丢失)。
测试3:
关机断电,将方法2中更换的旧阵列C硬盘重新拆下,并重新接上新阵列C的硬盘,开机后自动识别阵列及更新RAID信息,阵列恢复正常使用。
测试4:
关机断电,将所有阵列硬盘拆下(4块),开机后进入ACU,删除阵列,关机后只将1组RAID1硬盘接入机器不同槽位,开机后,能自动识别阵列及更新RAID信息(不知道测试2中为什么没有自动识别,不知道是否与在测试2中一直有一组RAID1没有动过一直有效有关,但测试3中又能自动识别)(另外猜测测试2中重建阵列与逻辑驱动器,就与本次测试中自动识别阵列及更新RAID信息一样),进入系统阵列数据正常:
估计2组RIAD1共4个硬盘乱插大概率应该是不行的,也没这个必要,就没有测试。4个拆下删除RAID信息后重新按原来顺序全部4个装上后,是能自动识别使用的。
三、RAID1阵列硬盘接USB的状况:
硬盘(方法1中有2个逻辑驱动器的大硬盘)通过USB盒接USB后可以直接读取数据:
用DiskGenius查看分区情况:
发现只能读取到第一个逻辑驱动器的数据,第二个逻辑驱动器的数据无法读取。
总结:
1、阵列信息保存在硬盘的MSR(16M)分区(我猜的)以及阵列卡B120i 里面,当更换机器时,尽量不要通过ACU作有损失数据提示的变动(例如:重新启用故障逻辑驱动器),测试2中的重建阵列与逻辑驱动器,是否会有丢失数据风险,无法预知,所以尽量还是通过测试3中方法会比较好。
2、组建RAID 1+0的最大好处就是可以建更大的逻辑驱动器,在安全性上与组2组RAID1没有区别。而且因为涉及更多磁盘,更换、扩容、恢复等感觉更复杂,所以没有再去探索。所以,为了降低后期可能发生的故障恢复的复杂性,建议组2组RAID1而不组RAID1+0。
3、从RAID1阵列硬盘接USB的状况中看到,阵列只建一个逻辑驱动器的好处:就是万一你的机器坏了,而又无法买回同样的设备,便可以通过USB恢复所有数据。
4、基于上面第3点,阵列需要扩容时,采用 方法2 要更加好,也更快,因为每重建一块硬盘,都是将数据复制一次,而组建新阵列后,恢复数据只需要复制一次就可以了(阵列卡自动复制到2个硬盘)。