【问题现状】
当前使用的是国产浪潮品牌的 ZYJ服务器,RAID卡型号为MR9361-8i,原配置为8块2.4TB SAS硬盘组成的RAID 5阵列。近期其中一块硬盘发生故障,导致阵列降级;由于该RAID控制器在单盘故障后未能维持RAID 5冗余状态,而是将剩余7块硬盘自动降级为RAID 0模式(即条带化、无冗余),致使数据完全丧失容错能力。
本次RAID 5单盘故障变RAID 0大概率是RAID卡无BBU/电容,还开启了WriteBack模式导致(后续和厂商确认了,标准版都不带该模块)。若有需要,可以采购带BBU的RAID卡或是关闭WriteBack模式。
目前故障硬盘已完成更换,新硬盘已安装到位;同时,全部业务数据已成功备份至外部安全存储介质。现计划在确保数据安全的前提下,将当前处于RAID 0状态的7块硬盘(含新盘)重新构建为标准的8盘RAID 5阵列(需确认新盘是否已纳入并完成同步准备)。
【具体参数】
Controller=0------控制器编号 0
Status=Success------状态是启用
Product Name------raid 卡具体型号
Serial Number------SN 序列号
FW Package Build------固件的版本号
BIOS Version ------raid 卡 BIOS 版本
FW Version------FW 版本
Current Personality------当前模式
Physical Drivers------当前接有磁盘数量
【RAID5重建基础流程】(重要前提,执行前一条必须完成)
1.完整备份损坏磁盘的原始数据;
rsync -avzP 备份
2.备份当前 RAID 配置信息;
storcli64 /c0 show all
storcli64 /c0/e252/s0 show(查看控制器为 0 背板为 252 槽位号为 0 的磁盘)
storcli64 /c0/eall/sall show(查看控制器 0 所有背板及背板上的所有磁盘信息)
3.记录物理磁盘路径、序号、型号及槽位信息;
lsscsi
df -h
fdisk -l
4.关闭无关服务:停止服务器上的业务服务、数据库、定时任务,避免操作中磁盘被读写;
5.卸载已损坏raid上的文件系统;
vim /etc/fstab (将/u01那一行注释掉)
umount /u01(若失败,按照下面命令操作卸载,成功执行下一步)
findmnt /dev/sdb1
df -hT | grep /dev/sdb1
umount /dev/sdb1
umount -l /dev/sdb1
fuser -m /dev/sdb1
lsof /dev/sdb1
kill -9 进程ID
6.删除已顺坏 raid 上的 lvm 管理映射;
cat /proc/mdstat
md5 : inactive sdb1[4](s)
mdadm -S /dev/dm5
官方给出的命令是
dmsetup remove /dev/p1/* (p1 为 raid 上存储池名) ;
echo 1 > /sys/block/sdb/device/delete (sdb 为实际区下)
7.停止并删除原 RAID 阵列(因为我这里是8块RAID 0,所以要删除8块);
storcli64 /c0/v0 delete force
storcli64 /c0/v1 delete force
storcli64 /c0/v2 delete force
storcli64 /c0/v3 delete force
storcli64 /c0/v4 delete force
storcli64 /c0/v5 delete force
storcli64 /c0/v6 delete force
storcli64 /c0/v7 delete force
8.创建新 RAID5 阵列(推荐7数据+1热备);
storcli64 /c0 add vd r5 name=raid5 drives=252:0-6(因为一共8块硬盘,将0-6号设置为RAID5,7号设置为GHS全局热备盘)
/storcli64 /c0/e252/s7 add hotsparedrive
storcli64 /c0 /eall/sall show
9.检查RAID阵列状态并初始化(在确认磁盘都是online状态Consist为No后,初始化磁盘);
storcli64 /c0 /v0 start init
RAID 5(5 块以上)和 RAID 6(6 块以上)在进行快速初始化时会转到后台进行初始化,查看后台初始化
storcli64 /c0/v0 show bgi
10.执行RAID一致性校验;
开启初始化
storcli64 /c0/v0 start cc
查看初始化
storcli64 /c0/v0 show cc
11.parted硬盘分区;
parted /dev/sdb
mklabel gpt
mkpart primary 0% 100%
quit
partprobe
12.mkfs格式化与文件系统创建(大文件推荐xfs);
mkfs.xfs /dev/sdb1
13.挂载磁盘并配置开机自动挂载旧的挂载点;
mount /dev/sdb1 /u01
echo "$(blkid -s UUID -o value /dev/sdb1) /data xfs defaults 0 0" >> /etc/fstab
mount -a
14.恢复数据;
15.重启验证(检查 RAID 状态、挂载、服务是否正常);
16.恢复业务;
【温馨提示】
-
全程建议在 救援模式(Rescue Mode)或维护终端 下操作,避免系统盘干扰;
-
RAID5 重建耗时长(TB级可达数小时至数天),请勿中断电源或强制重启;
-
生产环境强烈建议使用 RAID5 / RAID6等具备更强容错能力的方案;
-
每步操作后建议截图或记录输出,便于回溯。
拔盘热备和 1 块数据盘恢复
将盘插回去 查看磁盘状态 storcli64 /cx/ex/sall show all 磁盘状态为 ubad
设置磁盘状态为 good storcli64 /c0/ex/sx set good
查看磁盘状态 storcli64 /cx/ex/sx show 磁盘状态为 UGOOD -F
导入磁盘 storcli64 /cx/fall import
查看磁盘状态 storcli64 /cx/ex/sx show 磁盘状态为 UGOOD - 磁盘为可用状态