そしてそのようなことが起こりました。私のLinuxボックスのソフトウェアRAID5は何とか失敗し、アセンブリを拒否しました。
設定の概要:
- ヘッドレスサーバーの運用Debian の提示 8.6(現在は安定しています)
- カスタマイズLinuxカーネルv4.8.8(下記参照)、主に公式のDebianパッケージベース - 主にBTRFSコードを更新する
- 2016年11月18日現在更新されたすべてのパッケージ
- 合計4つのハードドライブ:
/dev/sda
に分割され/boot/efi
、交換され、/
(順番に)/dev/sdb
RAIDメンバー(パーティションテーブルなし)/dev/sd[cd]
それぞれはドライブ全体にまたがり、sd[cd]1
RAIDのメンバーであるパーティションを持っています。sda
500GB、sd[bcd]
4TBディスクです。sd[cd]1
パーティションのサイズはまったく同じで、sdb
パーティションのサイズは少し大きくはありません(パーティションテーブルに使用されるスペースを無駄にします)。
- 一度組み立てられると、
/dev/md0
RAIDは/dev/md0p1
マルチディスク全体にわたって単一のパーティションにさらに分割され、次にBTRFSファイルシステムを保持します。 (これは Debian インストーラによって設定され、今の変更には遅すぎます。)
最近5枚目のディスクを購入しましたが、壊れたディスクが届きました。サーバーにディスクを追加してすぐにサイトを離れなければならず、1日2日経ってこの事実を認識するようになりました。 。
新しく購入したディスクを追加したとき、サーバーはカーネル4.8.7を実行していて、すべてが大丈夫だったようです。カーネルバージョン4.8.8をコンパイルしてインストールした後、を使用してサーバーをシャットダウンし、systemctl poweroff
デッドディスクを削除してから再起動してみました。サーバーは通常ヘッドレスなので、約5分の猶予期間が過ぎても回復しないように見えます。単に電源ボタンを押しても反応がなく、電源を切ってグラフィックカード(内蔵グラフィックカードがなかった)+モニター+キーボードを追加するとsystemd
緊急シェルが現れました。
以前のカーネルと現在のカーネルを含む緊急シェルを受け取りましたが、それが原因ではないか、すでにダメージが発生しているようです。現在、可能な物理ディスク障害を排除するために、dd
3つのRAIDディスクをすべて接続していますが、/dev/null
1TBを超えるディスクがエラーなく接続されているため、どのディスクにもスーパーブロックの物理的な損傷がないとします。
話はこの頃したのでもっと具体的に調べてみよう。次のコマンドはすべて、緊急ルートシェルで実行されます。つまり、基本システムが稼働しています(initrdではありません)。
/proc/mdstat
RAIDについて何も知りません:
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/sdc
SMARTはまた、時々異常に高い気流温度を除いて、すべてのディスクが大丈夫だと言いますIn_The_Past
。ただし、温度の問題は解決されており、他のすべての値(特に再割り当て/停止セクタ= 0)は許容範囲内のドライブ内にあります。
device mapper
物理ブロックデバイスのオーバーレイでRAIDを再生成してみました。ただし、この設定はRAID内のパーティションテーブルを認識しないため、ファイルシステムをマウントできません。ここでタイプスクリプトを見つけることができます。
これが私が迷っているところだ。私が見るにはRAID全体が大丈夫に見えますが、md
ドライバが組み立てを拒否するのはなぜですか?成功の可能性を高めるために試すことができるものはありますか?
答え1
最も簡単な解決策は、--update=devicesize
組み立て中に追加することです。
方法はわかりませんが、そのドライブのmdが覚えているパーティションのサイズとサイズが一致しなくなったようです。みんなに乾杯ドイツ語 Ubuntu ユーザーフォーラム彼らは手動で16進編集で問題を大変に解決し、ついにmdadm
。