我在 debian、raid1 上,其中一个驱动器似乎坏了。
root@rescue ~ # cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[0]
486279424 blocks [2/1] [U_]
md0 : active raid1 sda1[0] sdb1[1]
2104448 blocks [2/2] [UU]
unused devices: <none>
root@rescue ~ #
是否可以只使用健康硬盘?我需要移除 raid 吗?如果需要,该怎么做?谢谢!
答案1
看起来 /dev/sdb 还没有完全死机,但可能存在一些间歇性故障或一些坏块。您可能会失败并将分区重新添加到当前有问题的磁盘的镜像中。
方法如下:
mdadm --remove /dev/md1 /dev/sdb2
(它可能会抱怨 /dev/sdb2 没有连接,这没关系)
mdadm --add /dev/md1 /dev/sdb2
然后执行以下操作:
猫/proc/mdstat
并且您可以观察其重建过程,并预估其需要的时间。
看看是否可行。如果不行(/dev/sdb2 确实已损坏),则需要使所有镜像上的驱动器失效,删除 sdb,添加相同大小的驱动器,对新驱动器进行分区,然后将分区重新添加到镜像。如果您不确定哪个驱动器是 sdb,请尝试以下操作:
dd if=/dev/sdb of=/dev/null count=40000
假设您的服务器前面有一个 LED 来指示磁盘活动,在上述磁盘转储期间,绿灯常亮的 LED 就是驱动器 sdb。(或者您可以反转此逻辑,使 sda 发出绿光以指示驱动器不被移除)。在您弄清楚哪个磁盘是哪个之后,随时都可以安全地按 Control-C 执行 dd 命令。dd 命令只是从磁盘读取数据流并忽略它 - 它不会导致任何内容写入磁盘,除非您混淆了 if= 和 of=。
答案2
是的,可以只使用健康的驱动器。这就是已经发生的事情。我怀疑发生故障的分区是 sdb2?如果您怀疑故障的分区/驱动器不是很糟糕,您可能需要对发生故障的分区/驱动器运行坏块。
我不确定您是如何配置引导加载程序的,但如果设置正确,那么您应该能够拔出故障的驱动器并更换它。
如果您不完全确定哪个驱动器是哪个,您可以使用类似lshw -class disk
would 的命令,该命令应会显示驱动器的逻辑名称和序列号。这样您就可以拉出正确的驱动器。