我们在工作中遇到了一个非常奇怪的问题。我们的 Ubuntu 服务器有 6 个驱动器,设置了 RAID1,如下所示:
/dev/md0,包括:/dev/sda1 /dev/sdb1
/dev/md1,包括:/dev/sda2 /dev/sdb2
/dev/md2,包括:/dev/sda3 /dev/sdb3
/dev/md3,包括:/dev/sdc1 /dev/sdd1
/dev/md4,包括:/dev/sde1 /dev/sdf1
如您所见,md0、md1 和 md2 都使用相同的 2 个驱动器(分为 3 个分区)。我还必须注意,这是通过 ubuntu 软件 raid 而不是硬件 raid 完成的。
今天,/md0 RAID1 阵列显示为已降级 - 它缺少 /dev/sdb1 驱动器。但由于 /dev/sdb1 只是一个分区(而 /dev/sdb2 和 /dev/sdb3 工作正常),显然不是驱动器消失了,似乎是分区本身丢失了。
这怎么可能呢?我们该如何解决这个问题呢?
我的 cat /proc/mdstat 输出:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[0] sdb2[1]
24006528 blocks super 1.2 [2/2] [UU]
md2 : active raid1 sda3[0] sdb3[1]
1441268544 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[0]
1464710976 blocks super 1.2 [2/1] [U_]
md3 : active raid1 sdd1[1] sdc1[0]
2930133824 blocks super 1.2 [2/2] [UU]
md4 : active raid1 sdf2[1] sde2[0]
2929939264 blocks super 1.2 [2/2] [UU]
unused devices: <none>
仅供参考:我尝试了以下操作:
mdadm /dev/md0 --add /dev/sdb1
但出现此错误:
mdadm: add new device failed for /dev/sdb1 as 2: Invalid argument
mdadm --detail /dev/md0 的输出是:
/dev/md0:
Version : 1.2
Creation Time : Sat Dec 29 17:09:45 2012
Raid Level : raid1
Array Size : 1464710976 (1396.86 GiB 1499.86 GB)
Used Dev Size : 1464710976 (1396.86 GiB 1499.86 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Thu Nov 7 15:55:07 2013
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : lia:0 (local to host lia)
UUID : eb302d19:ff70c7bf:401d63af:ed042d59
Events : 26216
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 0 0 1 removed
答案1
该特定位置上可能有坏扇区。
停止所有 RAID 阵列,然后检查物理磁盘完整性。您可以先进行 SMART 检查……
答案2
尝试:
# mdadm /dev/md0 --re-add /dev/sdb1