我有一个九头蛇LCM RAID设备与4湾(4x2TB日立)。从2010年起,我就以RAID5模式运行它。去年五月,这个设备开始发出信息,说有一个驱动器被降级了,我应该更换它。我也是。一个月后,第二个驱动器发出降级的消息。所以我也换了这个。
在第二次驾驶成功恢复后,一切似乎都很顺利。几天后,当我再次启动存储盒时,突然,它没有检测到RAID模式了。显示显示未初始化任何磁盘或模式。
我真的很沮丧,因为这个设备已经停用了(我想是从2015年起)。我希望制造商使用的是一种“标准RAID技术”,我可以用一些软件RAID替代(例如mdadm)来恢复这个硬件RAID。
在希望这是有帮助的中:
九头蛇超级S LCM内部的RAID控制器使用向后奇偶旋转,RAID条纹为512扇区,因此所有磁盘都以平衡的方式访问,奇偶校验磁盘没有额外的工作负载。

Does任何人都知道是否有机会使用 mdadm or来恢复这个特定的硬件RAID5,类似的吗?
顺便说一句。另一个挑战可能是磁盘被格式化在某些OSX文件系统中。不过,我已经准备好了一些USB3磁盘读取器,它现在已经被附加到我的Ubuntu上了。此适配器能够同时连接所有4个驱动器。我只是害怕运行类似mdadm的任何东西,因为害怕它会覆盖任何现有的文件系统表或RAID信息(或者剩下的信息)。任何提示都是非常感谢的。
发布于 2020-07-09 21:51:34
Make确保在只读模式下运行您的实验:
重新创建RAID布局的天真尝试:
# mdadm --create /dev/md100 --assume-clean --metadata=0.90 --level=5 --chunk 256K --raid-devices=4 /dev/loop[0123]用跟踪数据覆盖它(data =偏移十六进制):
# for ((i=0; 1; i+=16)); do printf "%015x\n" $i; done > /dev/md100
# hexdump -C /dev/md100
00000000 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0a |000000000000000.|
00000010 30 30 30 30 30 30 30 30 30 30 30 30 30 31 30 0a |000000000000010.|
00000020 30 30 30 30 30 30 30 30 30 30 30 30 30 32 30 0a |000000000000020.|
00000030 30 30 30 30 30 30 30 30 30 30 30 30 30 33 30 0a |000000000000030.|在这个布局中,街区在哪里?
# grep -ano $(printf "%015x" $((0 * 512*512))) /dev/loop[0123]
/dev/loop0:1:000000000000000 # Disk A 1
# grep -ano $(printf "%015x" $((1 * 512*512))) /dev/loop[0123]
/dev/loop1:1:000000000040000 # Disk B 2
# grep -ano $(printf "%015x" $((2 * 512*512))) /dev/loop[0123]
/dev/loop2:1:000000000080000 # Disk C 3
# grep -ano $(printf "%015x" $((3 * 512*512))) /dev/loop[0123]
/dev/loop3:16385:0000000000c0000 # Disk D 4
# grep -ano $(printf "%015x" $((4 * 512*512))) /dev/loop[0123]
/dev/loop0:16385:000000000100000 # Disk A 5因此,这是接近,但不完全像你的图片所示。这就是RAID布局的问题,它可能非常相似,甚至可能会挂载,但在文件中显示出奇怪的损坏,因为只有几个块最终出现了故障。
使用mdadm (默认的4磁盘RAID5布局left-symmetric ),如果读取前4个块,它实际上从4个磁盘读取它们。在图示的布局中,它将从3个磁盘读取,因为块4再次位于第一个磁盘上,而不是第四个磁盘上。
因此,为了匹配您的图片,您必须尝试另一个布局。
我们和left-asymmetric一起去吧。
# mdadm --create /dev/md100 --assume-clean --metadata=0.90 --level=5 --layout=left-asymmetric --chunk 256K --raid-devices=4 /dev/loop[0123]
# for ((i=0; 1; i+=16)); do printf "%015x\n" $i; done > /dev/md100
# mdadm --stop /dev/md100
# echo 3 > /proc/sys/vm/drop_caches
# for i in {0..23}; do grep -ano $(printf "%015x" $(($i * 512*512))) /dev/loop[0123]; done产出(为更好地理解而添加的评论):
/dev/loop0:1:000000000000000 # Disk A 1
/dev/loop1:1:000000000040000 # Disk B 2
/dev/loop2:1:000000000080000 # Disk C 3
# skips parity loop3
/dev/loop0:16385:0000000000c0000 # Disk A 4
/dev/loop1:16385:000000000100000 # Disk B 5
# skips parity loop2
/dev/loop3:16385:000000000140000 # Disk D 6
/dev/loop0:32769:000000000180000 # Disk A 7
# skips parity loop1
/dev/loop2:32769:0000000001c0000 # Disk C 8
/dev/loop3:32769:000000000200000 # Disk D 9
# skips parity loop0
/dev/loop1:49153:000000000240000 # Disk B 10
/dev/loop2:49153:000000000280000 # Disk C 11
/dev/loop3:49153:0000000002c0000 # Disk D 12
/dev/loop0:65537:000000000300000 # Disk A 13
/dev/loop1:65537:000000000340000 # Disk B 14
/dev/loop2:65537:000000000380000 # Disc C 15
# skips parity loop3
/dev/loop0:81921:0000000003c0000 # Disk A 16
/dev/loop1:81921:000000000400000 # Disk B 17
# skips parity loop2
/dev/loop3:81921:000000000440000 # Disk D 18
/dev/loop0:98305:000000000480000 # Disk A 19
# skips parity loop1
/dev/loop2:98305:0000000004c0000 # Disk C 20
/dev/loop3:98305:000000000500000 # Disk D 21
# skips parity loop0
/dev/loop1:114689:000000000540000 # Disk B 22
/dev/loop2:114689:000000000580000 # Disk C 23
/dev/loop3:114689:0000000005c0000 # Disk D 24这个布局似乎更符合你的图片。也许它会起作用的。祝好运。
https://unix.stackexchange.com/questions/597643
复制相似问题