我的 RAID 1 中的两个磁盘中的一个坏了,所以我更换了它。当新磁盘添加到阵列时,同步过程开始,几分钟后它就变成了备用磁盘。我如何“强制”磁盘成为阵列的常规部分?
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
401472 blocks [2/2] [UU]
md1 : active raid1 sdb2[2](S) sda2[0]
487982336 blocks [2/1] [U_]
unused devices: <none>
如您所见,分区 sdb1 是阵列 md0 的常规部分。但 sdb2 被标记为备用,不会添加到 md1。
旧磁盘为 500GB,扇区大小为 512B,而新磁盘为 1TB,扇区大小为 4KiB。这可能是问题的根源吗?
旧磁盘的几何结构与 sda 相同。新磁盘为 sdb。
# fdisk -l /dev/sda
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dda75
Device Boot Start End Blocks Id System
/dev/sda1 * 63 803249 401593+ fd Linux raid autodetect
/dev/sda2 803250 976768064 487982407+ fd Linux raid autodetect
# fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 809343 403648 fd Linux raid autodetect
/dev/sdb2 809344 976774159 487982408 fd Linux raid autodetect
我已将 sdb2 设置为比 sda2 大一个块(487982408 对 487982407+)因此我认为一切都应该很好。
这是 Fedora 2.6.35.14-97.fc14.x86_64 我欢迎任何建议。
谢谢,Aas。
答案1
我终于找到了同步问题的根本原因。这是因为另一个磁盘有一些坏块,所以同步过程在某个时候失败了。我创建了新的 md2 设备并将其作为新 PV 添加到 vg00。然后 pvmove 将所有数据从坏的 md1 阵列中移除,销毁它,重建 initrd,移除第二个磁盘并从新磁盘启动。感谢您的支持。我希望这对某人有帮助。
答案2
您没有显示任何输出或日志;运行时 dmesg 说了什么
mdadm /dev/md1 -a /dev/sdb2
?
此外,从 fdisk -l 假设分区大小是危险的;它告诉您 sda2 是 487982407+(PLUS)块是有原因的。
用于mdadm -D /dev/md1
实际尺寸。