mdadm を使用して RAID1 ミラーを作成すると、「生成失敗」という警告が表示されますが、正常に完了します。

mdadm を使用して RAID1 ミラーを作成すると、「生成失敗」という警告が表示されますが、正常に完了します。

RAID 1 アレイを作成すると、mdadmコマンドは正常に完了しますが、警告が表示されます。

システム特性(Pi 3のDebian / Raspbian "bullseye"):

uname -a
Linux pi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux

mdadm --version
mdadm - v4.1 - 2018-10-01

head -n4 /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"

実際のケース:

dd if=/dev/zero bs=1M count=128 >/tmp/r1.img               # 128MB will do nicely
cp /tmp/r1.img /tmp/r2.img                                 # Another slice
for r in 1 2; do losetup /dev/loop$r /tmp/r$r.img; done    # Associate block devices

mdadm --create /dev/md0 --level=raid1 --raid-devices=2 --metadata=default /dev/loop1 /dev/loop2

警告メッセージ:

mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array
mdadm: array /dev/md0 started.

終了ステータス($?)は0で、成功した完了を示します。

cat /proc/mdstat数分後にステータスが確認され、新しいRAIDアレイが同期される可能性があります。

Personalities : [raid1]
md0 : active raid1 loop2[1] loop1[0]
      130048 blocks super 1.2 [2/2] [UU]

unused devices: <none>

参照された「ファイル」が存在します。

ls -l /sys/module/md_mod/parameters/new_array
--w------- 1 root root 4096 Sep 13 10:34 /sys/module/md_mod/parameters/new_array

実際の関連部分は次のとおりですstrace mdadm …

openat(AT_FDCWD, "/run/mdadm/creating-md0", O_RDWR|O_CREAT|O_LARGEFILE, 0600) = 4
close(4)                                = 0
openat(AT_FDCWD, "/sys/module/md_mod/parameters/new_array", O_WRONLY|O_LARGEFILE) = 4
write(4, "md0", 3)                      = -1 EINVAL (Invalid argument)
close(4)                                = 0
write(2, "mdadm: Fail create md0 when usin"..., 74mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array
) = 74
unlink("/run/mdadm/creating-md0")       = 0

メタデバイスが正常に作成されたことを考慮すると、Fail createこの文脈でこの用語は何を意味しますか?

ベストアンサー1

最初に、このmd_mod/parameters/new_arrayパラメータは生成のみをサポートしました"md_*" where * is not all digitsmdNNN後で配列生成が追加されました。Linux コミット 039b7225e6mdadm コミット 039df36231

このコミットはカーネルより前のバージョンですが、v4.9.xには適用されていないため、カーネルはまだそれをサポートしていません。この変更を適用するには、Linux カーネル v4.12 以降と mdadm v4.1 以降が必要です。すでにmdadm v4.1を持っていますが、カーネルが更新されていないため、問題全体は「mdadmがカーネルよりも最新です」に帰結します。

この場合、mdadm期待どおりに動作する古いノード生成モードに戻り、エラーメッセージにもかかわらず成功します。結局のところ、あなたはまだ配列を取得し、すべてが大丈夫です(より大きな数字またはより素敵なMD名のために失敗する可能性があります)。

問題はなぜブルスアイカーネルがそんなに古いのかということです。私がRaspbianで見たところでは、Linux 6.1または5.10と一緒に提供する必要がありますが、なぜ4.9を使用するのかわかりません。

おすすめ記事