创建 RAID0 时“mdadm:RUN_ARRAY 失败:参数无效”

创建 RAID0 时“mdadm:RUN_ARRAY 失败:参数无效”

我试图从两个相同的硬盘创建 RAID0,但当我尝试创建阵列时,遇到 mdadm 错误mdadm: RUN_ARRAY failed: Invalid argument。这是我正在做的导致错误的事情:

磁盘为 /dev/sdc 和 /dev/sdg。我用 gdisk 对每个磁盘进行分区。这是从 gdisk 打印的分区表(对于 /dev/sdc,但两个磁盘类似):

Disk /dev/sdc: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 34188C22-446D-4BE5-9E25-A03A9603EC33
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048       976773134   465.8 GiB   FD00  Linux RAID

每个磁盘上的零超级块:

# mdadm --zero-superblock /dev/sdc1
# mdadm --zero-superblock /dev/sdg1

创建数组:

# mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=2 /dev/md1 /dev/sdc1 /dev/sdg1

但是mdadm报错:

mdadm: chunk size defaults to 512K
mdadm: RUN_ARRAY failed: Invalid argument

消息:

[2312487.125558] md: bind<sdc1>
[2312487.125786] md: bind<sdg1>
[2312487.128886] md: personality for level 0 is not loaded!
[2312487.128900] md: md1 stopped.
[2312487.128905] md: unbind<sdg1>
[2312487.157311] md: export_rdev(sdg1)
[2312487.157335] md: unbind<sdc1>
[2312487.190623] md: export_rdev(sdc1)

我仍然在 /dev/md1 处找到了一个设备(似乎我无法激活它),所以在两次尝试之间我删除了它:

# mdadm --stop /dev/md1
# mdadm --remove /dev/md1

我在网上能找到的唯一建议是:

如果您收到错误,例如:

"mdadm: RUN_ARRAY failed: Invalid argument"

确保您的内核支持(通过模块或直接编译>)您尝试使用的 raid 模式。

我正在使用“库存”架构内核,我相信它确实支持 RAID0,但我不知道如何验证这一点。

如果我检查 /proc/config.gz,它包含以下行:

CONFIG_MD_RAID0=m

我对内核配置不熟悉。该行是否确认我的内核支持 RAID0?

系统具有使用 mdadm 设置的有效 RAID5。

想法?我应该分享的其他信息?

答案1

CONFIG_MD_RAID0=m表示您的 raid0 支持是作为模块构建的(m对于模块),并md: personality for level 0 is not loaded!表示该模块未加载。加载它:

modprobe raid0

然后您应该能够创建数组。请记住,在组装阵列之前,您需要在每次启动时加载模块(您可以而且应该让启动脚本执行此操作)。

相关内容