linux – 如何在驱动器处于“E”状态的Synology NAS上恢复mdadm阵列?

linux – 如何在驱动器处于“E”状态的Synology NAS上恢复mdadm阵列?,第1张

概述Synology有一个定制版本的md驱动程序和mdadm工具集,它们为内核中的rdev->标志结构添加了一个’DriveError’标志. 净效果 – 如果您不幸遇到阵列故障(第一个驱动器),再加上第二个驱动器上的错误 – 阵列进入不让您修复/重建阵列的状态,即使驱动器的读取工作正常精细. 在这一点上,从这个阵列的角度来看,我并不是真的担心这个问题,因为我已经取消了内容并打算重建,但更多的是希望将 Synology有一个定制版本的md驱动程序和mdadm工具集,它们为内核中的rdev->标志结构添加了一个’DriveError’标志.

净效果 – 如果您不幸遇到阵列故障(第一个驱动器),再加上第二个驱动器上的错误 – 阵列进入不让您修复/重建阵列的状态,即使驱动器的读取工作正常精细.

在这一点上,从这个阵列的角度来看,我并不是真的担心这个问题,因为我已经取消了内容并打算重建,但更多的是希望将来有一个解决方案因为这是我第二次被它咬了一下,我知道我见过其他人在论坛上提出类似的问题.

Synology支持不太有帮助(并且大部分都没有响应),并且在处理盒子上的raIDsets时不会共享任何信息.

/ proc / mdstat的内容:

ds1512-ent> cat /proc/mdstat PersonalitIEs : [linear] [raID0] [raID1] [raID10] [raID6] [raID5] [raID4] md2 : active raID5 sdb5[1] sda5[5](S) sde5[4](E) sdd5[3] sdc5[2]      11702126592 blocks super 1.2 level 5,64k chunk,algorithm 2 [5/4] [_UUUE]md1 : active raID1 sdb2[1] sdd2[3] sdc2[2] sde2[4] sda2[0]      2097088 blocks [5/5] [UUUUU]md0 : active raID1 sdb1[1] sdd1[3] sdc1[2] sde1[4] sda1[0]      2490176 blocks [5/5] [UUUUU]unused devices: <none>

来自mdadm的状态–detail / dev / md2:

/dev/md2:        Version : 1.2  Creation Time : Tue Aug  7 18:51:30 2012     RaID Level : raID5     Array Size : 11702126592 (11160.02 GiB 11982.98 GB)  Used Dev Size : 2925531648 (2790.00 GiB 2995.74 GB)   RaID Devices : 5  Total Devices : 5    Persistence : Superblock is persistent    Update Time : Fri Jan 17 20:48:12 2014          State : clean,degraded Active Devices : 4Working Devices : 5 Failed Devices : 0  Spare Devices : 1         Layout : left-symmetric     Chunk Size : 64K           name : MyStorage:2           UUID : cbfdc4d8:3b78a6dd:49991e1a:2c2dc81f         Events : 427234    Number   Major   Minor   RaIDDevice State       0       0        0        0      removed       1       8       21        1      active sync   /dev/sdb5       2       8       37        2      active sync   /dev/sdc5       3       8       53        3      active sync   /dev/sdd5       4       8       69        4      active sync   /dev/sde5       5       8        5        -      spare   /dev/sda5

如您所见 – / dev / sda5已重新添加到数组中. (这是完全失败的驱动器) – 但即使md将驱动器视为备用驱动器,它也不会重建它. / dev / sde5在这种情况下是带有(E)diskError状态的问题驱动器.

我试过停止md设备,运行强制重组,从设备/中删除/读取sda5.行为没有变化.

我能够使用以下命令完全重新创建数组:

mdadm --stop /dev/md2mdadm --verbose \   --create /dev/md2 --chunk=64 --level=5 \   --raID-devices=5 missing /dev/sdb5 /dev/sdc5 /dev/sdd5 /dev/sde5

这使得阵列恢复到这种状态:

md2 : active raID5 sde5[4] sdd5[3] sdc5[2] sdb5[1]      11702126592 blocks super 1.2 level 5,algorithm 2 [5/4] [_UUUU]

然后我重新添加了/ dev / sda5:

mdadm --manage /dev/md2 --add /dev/sda5

之后它开始重建:

md2 : active raID5 sda5[5] sde5[4] sdd5[3] sdc5[2] sdb5[1]      11702126592 blocks super 1.2 level 5,algorithm 2 [5/4] [_UUUU]      [>....................]  recovery =  0.1% (4569508/2925531648) finish=908.3min speed=53595K/sec

请注意“缺失”驱动器的位置与缺失插槽的确切位置相匹配.

一旦完成,我想我可能会拉出可疑的驱动器并重新进行重建.

我正在寻找关于是否有任何“不那么可怕”的方法来进行此修复的任何建议 – 或者如果有人已经使用Synology阵列完成这种经验并且知道如何强制它重建除了使md设备离线和从头开始重新创建数组.

解决方法 只是我在遇到相同问题后找到的解决方案的补充.我按照 dSebastien的博客文章介绍了如何重新创建数组:

我发现重新创建数组的方法比上面的方法更好.但是,重新创建阵列后,卷仍未显示在Web界面上.我的LUN都没有显示出来.基本上显示没有配置任何内容的新数组.我联系了Synology支持,他们已经远程解决了这个问题.不幸的是,当我离开控制台时,他们进行了远程 *** 作.我确实设法捕获会话,并查看他们做了什么.
在尝试恢复我的一些数据时,驱动器再次崩溃,我又回到了同样的情况.我在dSebastIEn的博客中重新创建了数组,然后查看了synology会话以执行更新.运行以下命令后,我的阵列和LUN出现在Web界面上,我可以使用它们.我几乎没有linux的经验,但这些是我在我的情况下执行的命令.希望这可以帮助其他人,但请自行承担风险.最好联系Synology支持并让他们为您解决此问题,因为这种情况可能与您的情况有所不同

diskStation> synocheckiscsitrgsynocheckiscsitrg: Pass diskStation> synochecksharesynocheckshare: Pass SYNOICheckshare()synocheckshare: Pass SYNOICheckshareExt()synocheckshare: Pass SYNOICheckServicelink()synocheckshare: Pass SYNOICheckautoDecrypt()synocheckshare: Pass SYNOIServiceShareEnableDefaultDS()diskStation> spacetool --synoblock-enum****** Syno-Block of /dev/sda ******//I've removed the output. This should display info about each disk in your arraydiskStation> vgchange -ay  # logical volume(s) in volume group "vg1" Now activediskStation> dd if=/dev/vg1/syno_vg_reserved_area of=/root/reserved_area.img24576+0 records in24576+0 records outdiskStation> synospace --map_file -dSuccess to dump space info into '/etc/space,/tmp/space'diskStation> synochecksharesynocheckshare: Pass SYNOICheckshare()synocheckshare: Pass SYNOICheckshareExt()synocheckshare: Pass SYNOICheckServicelink()synocheckshare: Pass SYNOICheckautoDecrypt()synocheckshare: Pass SYNOIServiceShareEnableDefaultDS()diskStation> synocheckiscsitrgsynocheckiscsitrg: Not Pass,# conflict diskStation> synocheckiscsitrgsynocheckiscsitrg: Pass
总结

以上是内存溢出为你收集整理的linux – 如何在驱动器处于“E”状态的Synology NAS上恢复mdadm阵列?全部内容,希望文章能够帮你解决linux – 如何在驱动器处于“E”状态的Synology NAS上恢复mdadm阵列?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1043959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存