RAID 1 硬盘错误,文件系统未安装

RAID 1 硬盘错误,文件系统未安装

我有一台服务器,其中有 2 个硬盘,采用软 RAID 1,操作系统是 Debian Wheezy。经过一些数据库测试后,文件系统已进入只读模式,之后我重新启动了机器。服务器无法再次启动,因此我启动了一个救援系统来照看硬盘。

现在问题开始出现:fdisk -l没有输出,并且fdisk /dev/sda显示Unable to read /dev/sda,而smartctl -a给出SMART overall-health self-assessment test result: PASSED。所有问题也发生在 /dev/sdb 上。

mdadm也没什么帮助:

mdadm: no recogniseable superblock on /dev/sda
mdadm: /dev/sda has no superblock - assembly aborted

输出自dmesg

ata5.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata5.00: irq_stat 0x40000001
ata5.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in
res 61/04:08:00:00:00/00:00:00:00:00/e0 Emask 0x1 (device error)
ata5.00: SB600 AHCI: limiting to 255 sectors per cmd
ata5.00: SB600 AHCI: limiting to 255 sectors per cmd
ata5.00: configured for UDMA/133
ata5: EH complete

testdisk列出了具有正确大小的驱动器,但是当我尝试测试磁盘时,每个块都返回读取错误:

...
file_pread(4,2,buffer,34(0/0/35)) read err: Input/output error
file_pread(4,8,buffer,32(0/0/33)) read err: Input/output error
file_pread(4,8,buffer,40(0/0/41)) read err: Input/output error
file_pread(4,3,buffer,48(0/0/49)) read err: Input/output error
...

我有点困惑,因为我怀疑两个磁盘是否同时坏了,而且我怀疑 SATA 控制器可能存在问题。我该如何测试?我还能检查什么?

答案1

首先,我建议用第二块硬盘重建阵列,如果没有备份的话,就备份一下。可能像这样:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing

然后交换第一个硬盘后,你应该能够复制分区表

sfdisk -d /dev/sdb | sfdisk /dev/sda

并将新硬盘再次添加到阵列

mdadm --manage /dev/md0 --fail /dev/sda1
mdadm --manage /dev/md0 --remove /dev/sda1
mdadm --manage /dev/md0 --add /dev/sda1

如果您有多个分区,只需对所有分区执行此操作(标记故障并删除)

答案2

事实证明,硬盘和控制器都没有问题。问题出在……SATA 电缆上。

对我(以及其他人)来说的教训是:在尝试一切并浪费大量时间之前,请先检查一些非常明显的事情。

相关内容