我们有一个 RAID-1 设置。我们将旧的 1TB 磁盘换成了 3.7TB 磁盘。磁盘更改没有问题,磁盘同步。我们确实必须将分区类型从 MBR 更改为 GPT,但这不会影响 RAID 位图。
我们重塑了一个磁盘的分区,等待它同步,然后重塑第二个磁盘的分区,并再次等待同步。
现在,我们的磁盘(sda 和 sdc)用于多个 RAID,即 md0、md1 和 md2。
新磁盘同步,没有问题,但 RAID 仍然看到 1TB 的原始空间。我们按照说明扩展 RAID,但仅限于 md2,因为我们不需要扩展 md0 和 md1。这些说明改编自https://raid.wiki.kernel.org/index.php/Growing
mdadm --grow /dev/md2 --bitmap none
mdadm --grow /dev/md2 --size=max
mdadm --wait /dev/md2
mdadm --grow /dev/md2 --bitmap internal
我注意到“--bitmap none”删除了 md0、md1 和 md2 上的位图。
等待的时间很短,因为我们意识到操作系统没有看到磁盘变大了。我们执行了partprobe
四个命令,然后重新执行了四个命令,现在我们有一个适当的等待,因为磁盘已经同步了。但最后一个命令仍然失败:
~# mdadm --grow /dev/md2 --bitmap internal
mdadm: Cannot add bitmap while array is resyncing or reshaping etc.
mdadm: failed to set internal bitmap
显示mdadm --detail /dev/md2
一切正常,只是一致性策略是重新同步而不是位图。 也是一样/proc/mdstat
。
这是在 Debian Bullseye 上,因此使用 mdadm v4.1。
我知道这里缺少一些信息,但我不确定要查找或报告什么才能诊断和修复此问题。知道在哪里查找吗?
答案1
好吧,我们必须冷重启机器才能运行新的内核版本。
在关机过程中,我们收到一条简短消息,提示 RAID 进程卡住且无响应,随后该进程被强制关闭。我们没有时间记下该进程是什么。
当机器重新启动时,我们可以执行此操作,mdadm --grow /dev/md2 --bitmap internal
并且它可以正常工作。
因此,该问题是一个卡住的进程,冷重启解决了该问题。