web-dev-qa-db-ja.com

update-initramfsからのmdadm警告(システムは起動不可)、mkconfの推奨修正はmdadmの問題の説明と矛盾しているようです

要約:update-initramfsはシステムが起動できないと言い、メッセージはmkconfを指します。これはmdadm.confへの書き直しを示唆し、RAIDを壊すように見えますが、システムは(今のところ)起動しますが、次の再起動はそれを殺すかもしれません。良いのですが、update-initramfsの警告は何を教えてくれますか?そして、なぜmkconfは悪いことを示唆しているように見えますか?

1and1.comにUbuntu 12.04を実行する専用サーバーがあり、「update-initramfs -u」は、サーバーが正しく再起動しないことを示すmdadmエラーメッセージを報告します。関連する構成ファイルを調べましたが、問題を特定できませんでした。物理的にアクセスできないサーバーで「何が起こるのか」だけを見たくないので、このメッセージを見てから再起動しようとしませんでした(実行中のシステムにアクセスできなくなると診断がさらに難しくなる可能性があります)再起動が成功する可能性があると確信できるまで、エラーメッセージとシステム構成を理解しようとする必要があると感じています。

まず、エラーメッセージ(update-initramfs -uから):

W: mdadm: the array /dev/md3 with UUID dffcb503:bc157198:3fb6082e:e5593158
W: mdadm: is currently active, but it is not listed in mdadm.conf. if
W: mdadm: it is needed for boot, then YOUR SYSTEM IS NOW UNBOOTABLE!
W: mdadm: please inspect the output of /usr/share/mdadm/mkconf, compare
W: mdadm: it to /etc/mdadm/mdadm.conf, and make the necessary changes.
W: mdadm: the array /dev/md1 with UUID a46d442b:4e5b8a52:3fb6082e:e5593158
W: mdadm: is currently active, but it is not listed in mdadm.conf. if
W: mdadm: it is needed for boot, then YOUR SYSTEM IS NOW UNBOOTABLE!
W: mdadm: please inspect the output of /usr/share/mdadm/mkconf, compare
W: mdadm: it to /etc/mdadm/mdadm.conf, and make the necessary changes.

/ bootが配置されている(したがって "needed for boot" === TRUE)のでmd1に集中しますが、md3でも同じエラーメッセージが生成されます。

Md構造はISPのデフォルトのUbuntuイメージからのものであり、システムのこの部分は変更されていません。ドライブ/パーティション構造への唯一の変更は、論理ドライブ(lvextendおよびresize2fs)のサイズを拡張することでした。

猫/ etc/fstab

/dev/md1    /       ext3    defaults       1 1
/dev/sda2   none        swap    sw          
/dev/sdb2   none        swap    sw          
/dev/vg00/usr   /usr        ext4    errors=remount-ro       0 2
/dev/vg00/var   /var        ext4    errors=remount-ro       0 2
/dev/vg00/home  /home       ext4    errors=remount-ro   0 2

proc/proc proc nodev、noexec、nosuid 0 0

Sda1およびsdb1でmd1を使用して、mdシステムが正常に実行されていることがわかります。

cat /proc/mdstat
-----
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdb1[1] sda1[0]
      4194240 blocks [2/2] [UU]

md3 : active raid1 sdb3[0] sda3[1]
      1458846016 blocks [2/2] [UU]

これらのmdはARRAY行mdadm.confで定義されているようです:

cat /etc/mdadm/mdadm.conf

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays

# This file was auto-generated on Tue, 11 May 2010 20:53:30 +0200
# by mkconf $Id$

ARRAY /dev/md1 level=raid1 num-devices=2 devices=/dev/sda1,/dev/sdb1
ARRAY /dev/md3 level=raid1 num-devices=2 devices=/dev/sda3,/dev/sdb3

/ bootの最新のinitrdはinitrd.img-3.2.0-37-genericで、そこにキャッシュされているmdadm.confは同じように見えます(「gunzip -c /boot/initrd.img-3.2.0-37-generic | cpio -i --quiet --to-stdout etc/mdadm/mdadm.conf ")

したがって、実際の状況(実行中のmdとそれらがブート用にどのように定義されているか)は私には問題ありません。 「update-initramfs -u」エラーメッセージに戻って、mdadm.confを/ usr/share/mdadm/mkconfの出力と比較することをお勧めします。これは、実際に異なって見える何かを見始めるところです:

/ usr/share/mdadm/mkconf

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays

私がこれを正しく読んでいる場合、mdadm.confのシステムのリライト提案(md1とmd3が「現在アクティブですが、... mdadm.confにリストされていない」を修正するため)はmdadmからmd1とmd3のリストを削除します.conf。したがって、エラーメッセージと提案された修正を二乗することはできません(mdadm.confをリストからリストに変更しますが、提案された修正はリストからリストになりますか?)(1)実際の問題を見つけることができない、そして( 2)提案された修正とエラーメッセージを調整し、/ usr/share/mdadm/mkconfの出力(およびupdate-initramfs -uからのエラーメッセージ)に不信感を抱かせます。しかし、特に非常に重要なシステムの部分では、助けを求めているシステムを無視したくありません。 OSが私が知らないことを知っていると信じています。そして、実験(リモート再起動)は最後の手段です。

同様のエラーメッセージを持つ他の人をオンラインで検索する場合、関連する問題は、現在mdadm.confにあるものとは異なるmkconfがARRAY行を生成することを含むようです(そしてARRAY行の修正として、mkconfの出力を使用することをお勧めします)この場合、mkconfはARRAY行をまったく提供しないため、この研究行では関連する支援は得られませんでした。 mdadm.confのコメントでは、defualtによってMDスーパーブロックをスキャンするため、mdadmがスーパーブロックから情報を引き出すことができる場合、生成されたファイルがmd1/md3への明示的な参照を省略しているという事実はおそらく大丈夫(?)です。しかし、もしそうなら、なぜエラーメッセージは問題がmd1/md3がリストされていないことであると言っているのですか、そして現在の構成の何が悪いのですか(なぜエラーメッセージがあるのですか)?そのため、その考え(ARRAYのない生成されたファイルがどのように役立つかを理解しようとする)がうまくいかないこともあります。

これはおそらく間違ったツリーをbarっていますが、現在sda1のようなデバイス名はARRAY行のmdadm.confで許可されていますか? UUIDが優先されることはわかっていますが、デバイス名の使用がエラーメッセージの原因になりますか?その場合、どのオプションが機能する可能性があります。(1)mdadm.confを変更せず、システムがデバイス名に基づいてmd1をアセンブルし続けることに依存します。 (2)mkconfの出力を使用し、明示的なmdをまったく使用せず(デバイス名もUUIDもなし)、スーパーブロックに基づく自動検出に依存します。 (3)UUIDを見つけて、mdadm.confの新しいARRAY行を記述します(これは既存の値でも、mkconfが提案する置換でもありません)?

このエラーメッセージの原因をどのように特定する必要がありますか?

役に立つかもしれない追加情報:

mdadm --misc --detail/dev/md1

/dev/md1:
        Version : 0.90
  Creation Time : Sun Feb 24 19:11:59 2013
     Raid Level : raid1
     Array Size : 4194240 (4.00 GiB 4.29 GB)
  Used Dev Size : 4194240 (4.00 GiB 4.29 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Sun Apr 27 23:39:38 2014
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : a46d442b:4e5b8a52:3fb6082e:e5593158
         Events : 0.122

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

mdadm --misc --detail/dev/md3

/dev/md3:
        Version : 0.90
  Creation Time : Sun Feb 24 19:11:59 2013
     Raid Level : raid1
     Array Size : 1458846016 (1391.26 GiB 1493.86 GB)
  Used Dev Size : 1458846016 (1391.26 GiB 1493.86 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 3
    Persistence : Superblock is persistent

    Update Time : Sun Apr 27 23:43:41 2014
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : dffcb503:bc157198:3fb6082e:e5593158
         Events : 0.1883

    Number   Major   Minor   RaidDevice State
       0       8       19        0      active sync   /dev/sdb3
       1       8        3        1      active sync   /dev/sda3

6
user275513

私はここで解決策を見つけました: http://www.howtoforge.com/forums/showthread.php?t=65066

コマンドmdadm --misc --detail /dev/mdX(Xは配列番号)を使用して、問題の配列のUUIDを取得し、/etc/mdadm/mdadm.confを編集して、次のものに置き換えます。

ARRAY /dev/md1 UUID=dffcb503:bc157198:3fb6082e:e5593158
ARRAY /dev/md3 UUID=a46d442b:4e5b8a52:3fb6082e:e5593158

/ dev/mdXデバイスとUUIDをあなたのものに置き換えます。私は自分の1台でこれをやっただけで、うまくいった。私はこれをあなたのためではなくおそらくあなたが何年も前に解決したのではなく、これが起こった他の誰かのために投稿しています。

6
Michael Fever