我在使用 Linux 软件 RAID 时遇到问题,不知道接下来该怎么做才能解决这个问题。这是由多个分区组成的 RAID 1。非正常关机后,RAID 开始非正常降级,分区被移除。我无法手动重新添加它。
mdadm --detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Sat Jul 30 18:32:37 2022
Raid Level : raid1
Array Size : 100596736 (95.94 GiB 103.01 GB)
Used Dev Size : 100596736 (95.94 GiB 103.01 GB)
Raid Devices : 4
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Fri Feb 3 18:19:37 2023
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : rescue:2
UUID : 0aa4403a:125a1f94:d325179e:1c5ea540
Events : 962235
Number Major Minor RaidDevice State
0 8 51 0 active sync /dev/sdd3
2 8 3 1 active sync /dev/sda3
3 8 35 2 active sync /dev/sdc3
- 0 0 3 removed
我尝试了一下mdadm /dev/md2 --add /dev/sdb3
,但mdadm: add new device failed for /dev/sdb3 as 4: Invalid argument
dmesg 显示
print_req_error: I/O error, dev sdb, sector 35655689
ata3: EH complete
md: disabled device sdb3, could not read superblock.
md: sdb3 does not have a valid v1.2 superblock, not importing!
md: md_import_device returned -22
检查确认没有超级块:
mdadm --misc -E /dev/sdb3
mdadm: No md superblock detected on /dev/sdb3.
由于读取错误,我运行了 badblocks,但之后错误仍然存在。所以我的问题是,是否有办法将分区重新添加到 raid 阵列以及如何添加。
Smart 显示测试结果已通过:
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.19.0-21-amd64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
现在我真的很想知道是否需要更换驱动器,或者是否有办法解决似乎阻止将驱动器重新添加到阵列的 I/O 错误。
答案1
你sdb
失败了:
print_req_error: I/O error, dev sdb, sector 35655689
Badblocks 在这里不会有帮助;它能文件系统的帮助,而 MD RAID 磁盘结构不是文件系统。坏块恰好发生在 MD 预期有超级块的位置;它没有备份超级块或重新定位它的设施,因此如果这个特定空间损坏,该设备绝对无法用于 MD RAID。(有四种超级块版本格式,将其放置在磁盘的不同区域,但您已经构建了阵列,并且无法动态更改版本。)
更换物理驱动器。使用起来很危险。
我还建议您阅读其 SMART 数据,以便更好地了解这一点。但错误消息不言自明,足以说明驱动器出现故障。