Raid

‘mdadm: RUN_ARRAY failed: Invalid argument’ 在創建 RAID0 時

  • April 4, 2017

我正在嘗試從兩個相同的硬碟創建 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

dmesg:

[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"

確保您的核心支持(通過模組或直接編譯> in)您嘗試使用的 raid 模式。

我正在使用“庫存”arch 核心,我相信它確實支持 RAID0,但我不知道如何驗證這一點。

如果我檢查 /proc/config.gz,它包含這一行:

CONFIG_MD_RAID0=m

我不熟悉核心配置。該行是否確認我的核心支持 RAID0?

系統有一個使用 mdadm 設置的工作 RAID5。

想法?我應該分享的其他資訊?

CONFIG_MD_RAID0=m表示您的 raid0 支持建構為一個模組(m對於模組),並md: personality for level 0 is not loaded!表示該模組未載入。要載入它:

modprobe raid0

然後你應該能夠創建數組。請記住,在組裝陣列之前,您需要在每次啟動時載入模組(您可以並且應該讓您的啟動腳本執行此操作)。

引用自:https://unix.stackexchange.com/questions/355895