md raid5:「有効なスーパーブロックはありません。」しかし、mdadm --examineはすべてが大丈夫だと言います。

md raid5:「有効なスーパーブロックはありません。」しかし、mdadm --examineはすべてが大丈夫だと言います。

そしてそのようなことが起こりました。私のLinuxボックスのソフトウェアRAID5は何とか失敗し、アセンブリを拒否しました。

設定の概要:

  • ヘッドレスサーバーの運用Debian の提示 8.6(現在は安定しています)
  • カスタマイズLinuxカーネルv4.8.8(下記参照)、主に公式のDebianパッケージベース - 主にBTRFSコードを更新する
  • 2016年11月18日現在更新されたすべてのパッケージ
  • 合計4つのハードドライブ:
    • /dev/sdaに分割され/boot/efi、交換され、/(順番に)
    • /dev/sdbRAIDメンバー(パーティションテーブルなし)
    • /dev/sd[cd]それぞれはドライブ全体にまたがり、sd[cd]1RAIDのメンバーであるパー​​ティションを持っています。
    • sda500GB、sd[bcd]4TBディスクです。sd[cd]1パーティションのサイズはまったく同じで、sdbパーティションのサイズは少し大きくはありません(パーティションテーブルに使用されるスペースを無駄にします)。
  • 一度組み立てられると、/dev/md0RAIDは/dev/md0p1マルチディスク全体にわたって単一のパーティションにさらに分割され、次にBTRFSファイルシステムを保持します。 (これは Debian インストーラによって設定され、今の変更には遅すぎます。)

最近5枚目のディスクを購入しましたが、壊れたディスクが届きました。サーバーにディスクを追加してすぐにサイトを離れなければならず、1日2日経ってこの事実を認識するようになりました。 。

新しく購入したディスクを追加したとき、サーバーはカーネル4.8.7を実行していて、すべてが大丈夫だったようです。カーネルバージョン4.8.8をコンパイルしてインストールした後、を使用してサーバーをシャットダウンし、systemctl poweroffデッドディスクを削除してから再起動してみました。サーバーは通常ヘッドレスなので、約5分の猶予期間が過ぎても回復しないように見えます。単に電源ボタンを押しても反応がなく、電源を切ってグラフィックカード(内蔵グラフィックカードがなかった)+モニター+キーボードを追加するとsystemd緊急シェルが現れました。

以前のカーネルと現在のカーネルを含む緊急シェルを受け取りましたが、それが原因ではないか、すでにダメージが発生しているようです。現在、可能な物理ディスク障害を排除するために、dd3つのRAIDディスクをすべて接続していますが、/dev/null1TBを超えるディスクがエラーなく接続されているため、どのディスクにもスーパーブロックの物理的な損傷がないとします。


話はこの頃したのでもっと具体的に調べてみよう。次のコマンドはすべて、緊急ルートシェルで実行されます。つまり、基本システムが稼働しています(initrdではありません)。

/proc/mdstatRAIDについて何も知りません:

Personalities : [raid6] [raid5] [raid4]
unused devices: <none>

私が得たものは次のとおりですmdadm --assemble --verbose /dev/md0。 (/dev/sdeこのログを抽出するために使用する外付けUSBハードドライブです。)

mdadm: looking for devices for /dev/md0
mdadm: no RAID superblock on /dev/sde1
mdadm: no RAID superblock on /dev/sde
mdadm: no RAID superblock on /dev/sdd
mdadm: no RAID superblock on /dev/sdc
mdadm: no RAID superblock on /dev/sda3
mdadm: no RAID superblock on /dev/sda2
mdadm: no RAID superblock on /dev/sda1
mdadm: no RAID superblock on /dev/sda
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdb is identified as a member of /dev/md0, slot 0.
mdadm: failed to add /dev/sdc1 to /dev/md0: Invalid argument
mdadm: failed to add /dev/sdd1 to /dev/md0: Invalid argument
mdadm: added /dev/sdb to /dev/md0 as 0
mdadm: failed to RUN_ARRAY /dev/md0: Input/output error

...次の行は次のとおりですjournalctl

Nov 18 14:56:34 zoey kernel: md: sdc1 does not have a valid v1.2 superblock, not importing!
Nov 18 14:56:34 zoey kernel: md: md_import_device returned -22
Nov 18 14:56:34 zoey kernel: md: sdd1 does not have a valid v1.2 superblock, not importing!
Nov 18 14:56:34 zoey kernel: md: md_import_device returned -22
Nov 18 14:56:34 zoey kernel: md: bind<sdb>
Nov 18 14:56:34 zoey kernel: md/raid:md0: device sdb operational as raid disk 0
Nov 18 14:56:34 zoey kernel: md/raid:md0: allocated 3316kB
Nov 18 14:56:34 zoey kernel: md/raid:md0: not enough operational devices (2/3 failed)
Nov 18 14:56:34 zoey kernel: RAID conf printout:
Nov 18 14:56:34 zoey kernel:  --- level:5 rd:3 wd:1
Nov 18 14:56:34 zoey kernel:  disk 0, o:1, dev:sdb
Nov 18 14:56:34 zoey kernel: md/raid:md0: failed to run raid set.
Nov 18 14:56:34 zoey kernel: md: pers->run() failed ...
Nov 18 14:56:34 zoey kernel: md: md0 stopped.
Nov 18 14:56:34 zoey kernel: md: unbind<sdb>
Nov 18 14:56:34 zoey kernel: md: export_rdev(sdb)

ああ、スーパーブロックが壊れてmdadm --assemble --force組み立てられません!何mdadm --examineを言ってみましょう:

/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : cdab20e2:45150011:f10d83fe:f0299188
           Name : zoey:0  (local to host zoey)
  Creation Time : Fri Sep 26 17:23:15 2014
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 7813840560 (3725.93 GiB 4000.69 GB)
     Array Size : 7813770240 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 196608 sectors
   Super Offset : 8 sectors
   Unused Space : before=196520 sectors, after=70320 sectors
          State : clean
    Device UUID : 1751c53f:c527c4cd:10e8f426:0217bf5e

    Update Time : Fri Nov 18 04:02:16 2016
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 7fa86509 - correct
         Events : 112125

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AAA ('A' == active, '.' == missing, 'R' == replacing)

/dev/sdc1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : cdab20e2:45150011:f10d83fe:f0299188
           Name : zoey:0  (local to host zoey)
  Creation Time : Fri Sep 26 17:23:15 2014
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 7813902336 (3725.96 GiB 4000.72 GB)
     Array Size : 7813770240 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 196608 sectors
   Super Offset : 8 sectors
   Unused Space : before=196528 sectors, after=66560 sectors
          State : clean
    Device UUID : 0c60e19b:daff087f:c1f09dbb:41bb80c3

    Update Time : Fri Nov 18 04:02:16 2016
       Checksum : 866cea0a - correct
         Events : 112125

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AAA ('A' == active, '.' == missing, 'R' == replacing)

/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : cdab20e2:45150011:f10d83fe:f0299188
           Name : zoey:0  (local to host zoey)
  Creation Time : Fri Sep 26 17:23:15 2014
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 7813902336 (3725.96 GiB 4000.72 GB)
     Array Size : 7813770240 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 196608 sectors
   Super Offset : 8 sectors
   Unused Space : before=196528 sectors, after=66560 sectors
          State : clean
    Device UUID : e80a2296:dfadb7ad:e458e491:bf1d12b0

    Update Time : Fri Nov 18 04:02:16 2016
       Checksum : 72340d8d - correct
         Events : 112125

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : AAA ('A' == active, '.' == missing, 'R' == replacing)

mdadm --examine --scan --verboseまた、すべてのディスクを正しく探しているようです。

ARRAY /dev/md/0  level=raid5 metadata=1.2 num-devices=3 UUID=cdab20e2:45150011:f10d83fe:f0299188 name=zoey:0
   devices=/dev/sdd1,/dev/sdc1,/dev/sdb

mdadm.confこの行は、現在のオペレーティングシステムを初めてインストールしたときにDebianインストーラによって生成されたファイルにもあります(すべてが長い間うまく機能していたため、このファイルを手動で変更しませんでした)。

# 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 containers

# 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
ARRAY /dev/md/0 metadata=1.2 UUID=cdab20e2:45150011:f10d83fe:f0299188 name=zoey:0

# This file was auto-generated on Fri, 26 Sep 2014 18:10:27 +0200
# by mkconf 3.2.5-5

/dev/sdcSMARTはまた、時々異常に高い気流温度を除いて、すべてのディスクが大丈夫だと言いますIn_The_Past。ただし、温度の問題は解決されており、他のすべての値(特に再割り当て/停止セクタ= 0)は許容範囲内のドライブ内にあります。

device mapper物理ブロックデバイスのオーバーレイでRAIDを再生成してみました。ただし、この設定はRAID内のパーティションテーブルを認識しないため、ファイルシステムをマウントできません。ここでタイプスクリプトを見つけることができます。


これが私が迷っているところだ。私が見るにはRAID全体が大丈夫に見えますが、mdドライバが組み立てを拒否するのはなぜですか?成功の可能性を高めるために試すことができるものはありますか?

答え1

最も簡単な解決策は、--update=devicesize組み立て中に追加することです。

方法はわかりませんが、そのドライブのmdが覚えているパーティションのサイズとサイズが一致しなくなったようです。みんなに乾杯ドイツ語 Ubuntu ユーザーフォーラム彼らは手動で16進編集で問題を大変に解決し、ついにmdadm

関連情報