我无法从单个磁盘切换到 raid 10
发出的命令是:
mdadm --create /dev/md0 --level=10 --raid-devices=8 /dev/sd[abcdefgh]1
输出为:
mdadm mdadm: cannot open /dev/sda1: Device or resource busy
我已经证实这与 DM 无关:
]# dmsetup status
No devices found
文件系统是 GPT,我使用sgdisk --backup=table /dev/sda
sdhsgdisk --load-backup=table /dev/sdb
复制分区表
该表如下所示:
Number Start End Size File system Name Flags
1 1049kB 525MB 524MB ext3 boot
2 525MB 86.4GB 85.9GB ext4
3 86.4GB 90.7GB 4295MB linux-swap(v1)
4 90.7GB 1000GB 909GB
我已经成功创建了其他阵列,但是我无法为第 1 和第 2 个分区创建 raid。
当前状态:
]# cat /proc/mdstat
Personalities : [raid10]
md3 : active raid10 sdh3[7] sdg3[6] sdf3[5] sde3[4] sdd3[3] sdc3[2] sdb3[1] sda3[0]
16766976 blocks super 1.2 512K chunks 2 near-copies [8/8] [UUUUUUUU]
resync=DELAYED
md4 : active raid10 sdh4[7] sdg4[6] sdf4[5] sde4[4] sdd4[3] sdc4[2] sdb4[1] sda4[0]
3552147456 blocks super 1.2 512K chunks 2 near-copies [8/8] [UUUUUUUU]
[========>............] resync = 42.5% (1513033344/3552147456) finish=76.2min speed=445722K/sec
unused devices: <none>
有人能提供一些建议吗,我是否需要启动到救援磁盘并在未安装 / 和 /boot 时创建阵列?
答案1
我需要
...
为 / 和 /boot 创建数组吗当它们没有被安装时?
恰恰。
我希望您也意识到旧内容将在此过程中被清除,因此您可能需要创建一个缺少一个设备的新阵列(使用mdadm --level=10 --raid-devices=8 --missing /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1
)。然后在新阵列卷上格式化文件系统并将所有数据从 /dev/sda1 复制到其中。然后从阵列重新启动(因此不使用 /dev/sda1 根目录)并实际添加 /dev/sda1。
不要忘记相应地调整引导加载程序。
答案2
在重新排列数组之前尝试停止:
sudo mdadm -Esv
sudo mdadm --stop /dev/md*
sudo mdadm --misc --scan --detail /dev/md0
sudo mdadm -v --assemble "$array" "$disk1$part" "$disk2$part"
答案3
我遇到了同样的问题。更换了故障驱动器(在发生故障并从 RAID 1 中移除后),但无法将其添加回去。资源一直很繁忙。
解决如下...
问题是系统将我的新磁盘映射为 md126 和 md127(不知道为什么)。因此,这两个额外的驱动器显示为未连接,但在 cat /proc/mdstat 中却存在。
当我执行 mdadm --stop /dev/md* 时,它删除了 md126 和 md127 条目。然后资源使用错误消失,当我执行 mdadmin --manage /dev/md0 --add /dev/sdb1 时,它又正常工作了。耶 :-)
答案4
首先打开此文件 /proc/mdstat 并检查您的块设备 /dev/sda1 是否是任何 md* 的一部分,如果在那里看到它,请尝试使用以下命令将其删除:mdadm --stop md* (* 表示 /dev/sda 所属的 md 后面的编号)