web-dev-qa-db-ja.com

RAID5mdadm障害/ blk_update_request:I / Oエラー

サーバーのディスクの5つのRAWイメージがあります(1つの外付けHDDに保存されています)。これらの各ディスクには、"Linux raid autodetect" (fd)であり、RAID1(ブート関連; 3つのデバイス(2つのアクティブ+1つのスペア))およびRAID5(その他のデータ; 5)のメンバーである2つのパーティションが含まれています。デバイス)。

kpartx(またはlosetup、実際には問題ではありません)を使用してデバイスをマップした後、mdadmを実行してRAIDアレイをアセンブルします。 RAID1は正常に組み立てられ、通常の方法でマウントできます。 RAID5は組み立てられています(_/proc/mdstat_によると、実際には「アクティブ」です)が、次のようになります。

  1. すべてのデバイスは "faulty"および "removed";
  2. dmesg(_blk_update_request: I/O error, dev loop4, sector 16_)に追加のエラーが表示された後、さらにエラーが発生します(_md: super_written gets error=-5_; _md/raid:md0: Disk failure on loop5, disabling device._);
  3. RAID5アレイをマウントできません(十分に公平です)。

私はウェブ上で見つけたすべての提案を試しました:

  1. _--force_キーを使用->機能しません。
  2. _--create_を使用すると_--assume-clean_->は機能しません。
  3. _--zero-superblock_(2に似ています)を使用します->機能しません。
  4. _--examine_でチェックする場合-すべてのメンバーデバイスはクリーン状態であり、チェックサムは正しいであり、イベント番号は等しいです。

2と3-のように-私はそれらのマップされたデバイスに書き込むことができないようです。 strace'd _--zero-superblock_で、write() syscallで、EPERM (Operation not permitted)を取得しました。マップされたデバイスへの書き込みを妨げるものを想像することはできません(_lsblk --fpm_によるとRAID5デバイスは書き込み可能です_brw-rw----_)。

別の独特の詳細。上記で、セクターで_I/O error_を取得すると述べました16。すべてのループ(マップされた)RAID5デバイスのセクター16(オフセット8192バイト)にあるものを確認しました。マジックナンバー_0x6d746962_(ASCII: "bitm")で始まるように見えました-おそらくbitmap関連:

_00002000  62 69 74 6d 04 00 00 00  48 a7 15 94 56 79 23 ed  |bitm....H...Vy#.|<br/>
00002010  7d 7b 33 bc b9 f8 71 7a  d0 03 00 00 00 00 00 00  |}{3...qz........|<br/>
00002020  d0 03 00 00 00 00 00 00  00 b0 d8 0d 00 00 00 00  |................|
_

それが関連しているかどうかはわかりませんが(少なくとも、配列を組み立てるときにビットマップを操作する方法がわかりません)、システムが_blk_update_request_操作で成功できないことは明らかです(おそらく、いくつかの権限がないか、必要なものが見つかりません)。

私はわざとログの壁を投稿しません-必要かどうか教えてください。状況をよりよく説明するいくつかの情報を同封します。

_md0 : active raid5 dm-6[5](F) dm-8[4](F) dm-2[3](F) dm-4[2](F) dm-10[1](F)
      464609280 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/0] [_____]
      bitmap: 0/1 pages [0KB], 65536KB chunk
_

そして、これは_--detail_の出力からです:

_Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       2       0        0        2      removed
       4       0        0        4      removed
       6       0        0        6      removed
       8       0        0        8      removed

       1     252       10        -      faulty   /dev/dm-10
       2     252        2        -      faulty   /dev/dm-2
       3     252        4        -      faulty   /dev/dm-4
       4     252        8        -      faulty   /dev/dm-8
       5     252        6        -      faulty   /dev/dm-6
_

今日は私の「もっと頑張る」の3日目です...あなたのアドバイスをいただければ幸いです。ありがとう。

2
user3388087

それで、ついに、私はRAID5を組み立てることができました。表示されたように、問題は次のとおりでした(私の質問では言及していません)。私が持っていたディスクのイメージはE01形式で、パーツの数に分割されていました。以前のマッピングパーティションでは、ewfmount-X allow_rootを含む)を使用して、複数のE01を1つのファイルに「アセンブル」していました。 Fuseであることが判明しましたが、イメージがRWとしてマウントされているのに、どういうわけかそれらをブロックし、デバイスをread-onlyにします(/etc/Fuse.confを編集した場合でも)。

トラブルシューティング中の私の試みの1つは、複数のE01を5つの通常のdd/raw形式の画像にエクスポートし、ewfmountを除外して直接操作することでした。 「スキーム」。

エクスポートが完了したら、kpartxを使用してrawディスクをマップし、通常の方法で問題なくRAID5をアセンブルできました。

複数のOperation not permittedまたはI/O errorの問題は明白であり、ヒントを与える必要がありましたが、理由は不明でしたが、(マップされたデバイスの一部のセクターをddで直接変更しようとするまで)拒否しました失敗しました)。

それでおしまい。

0
user3388087