我试图从两个相同的硬盘创建 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
然后您应该能够创建数组。请记住,在组装阵列之前,您需要在每次启动时加载模块(您可以而且应该让启动脚本执行此操作)。