收起左侧

关于raid丢盘手动修复方法。

1
回复
59
查看
[ 复制链接 ]

2

主题

0

回帖

0

牛值

江湖小虾

关于raid丢盘手动修复方法。

参考了大神“玉尺书生”的方法,但是有部分写的不是很明白,最终是恢复数据了。https://club.fnnas.com/forum.php?mod=viewthread&tid=16940&highlight=

一、先找出有问题的阵列

1、在飞牛设置里面打开ssh功能,先用普通用户登录进去,然后sudo -i 这一步输入自己密码,切换root用户;

2、在root在执行命令 lsblk -fp 这个是查询全部整列状态,

然后找出有问题的阵列, 前面写着INACTIVE-ARRAY的, 就是不活跃raid。然后记住不活跃的ID就是md后面的数字这个很重要,不然容易后续操作把正常整列搞停止了。比如博主写的/dev/md126这是他的,我的就是127,其中md127就是被移除的存储空间,显示inactive了。

ef28ade24c7eee90145ee03bc1dedbab.png

3、查看阵列内磁盘状态

这个查询就使用lsblk -fp这个命令查询。

lsblk -fp

52495e447df7a8f900db52cecb7a50d2.png

这里可以看到md127内有8块硬盘,其中sdk sdd被剔除在md127之外了。按道理md127是raid6,是支持2块硬盘故障的。再具体看下这8块硬盘的events。

二、查看阵列中, 每个磁盘的状态, 确定event

mdadm --examine /dev/sda1

这个就根据dev下面挂载去查询上面mdadm --examine /dev/后面根据每块盘去更改,

比如查询信息为 sda1=28967 sdb1=28967 sdc1=28967
sdd1=28967
sde1=76
sdf1=28967 sdh1=28967 sdg1=28967

例如, 是8盘组成的raid5, sda1的events是28967, sdb1的是28967, sde1的是76, 那就证明是因为sde1的事件出错导致raid故障
因为raid5是允许丢一个盘的, 那就用sda1-sdd1,sdf1-sdg1先重建一个降级的阵列, 再把sdc1给添加回去可以看到events是157 ,md127内各硬盘基本都是28967,然后唯一就sde1=76说明这块盘丢失导致数据无法重构,然后使用命令强制重建。重建前停止故障raid。

三、停止原来的raid, 要注意/dev/md127, 是指故障的raid, 不要弄错了

mdadm --stop /dev/md127

四、强制重建

mdadm --assemble --force -v /dev/md127 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1 /dev/sdg1 /dev/sdh1

这个代码的意思就是md127整列内abcdfgh7块盘正常的,然后用正常的去组阵列,就可以把丢失的e盘符恢复回来。

五、查看是否已经重建阵列

在root在执行命令 lsblk -fp 这个是查询全部整列状态,如果阵列恢复成功, 就可以在WEBUI上点击挂载, 然后再把sdc1给恢复回去, 就完成了。

其他的形式阵列也可以参考这个方法。

关于events的解释如下:

在 Linux 的 mdadm 软件 RAID 中,Events 值记录了阵列元数据的更新次数。每次阵列发生配置变更(如创建、重组、磁盘添加/移除、同步事件等),Events 值会递增。通过 mdadm –examine /dev/sdX 查看的 Events 值反映了该成员磁盘参与的阵列事件次数。

收藏
送赞 1
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

6

回帖

0

牛值

江湖小虾

试了多种方法,最终强制重建成功
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则