サーバーのディスクの5つのRAWイメージがあります(1つの外付けHDDに保存されています)。これらの各ディスクには、"Linux raid autodetect" (fd)
であり、RAID1(ブート関連; 3つのデバイス(2つのアクティブ+1つのスペア))およびRAID5(その他のデータ; 5)のメンバーである2つのパーティションが含まれています。デバイス)。
kpartx
(またはlosetup
、実際には問題ではありません)を使用してデバイスをマップした後、mdadm
を実行してRAIDアレイをアセンブルします。 RAID1は正常に組み立てられ、通常の方法でマウントできます。 RAID5は組み立てられています(_/proc/mdstat
_によると、実際には「アクティブ」です)が、次のようになります。
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.
_);私はウェブ上で見つけたすべての提案を試しました:
--force
_キーを使用->機能しません。--create
_を使用すると_--assume-clean
_->は機能しません。--zero-superblock
_(2に似ています)を使用します->機能しません。--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日目です...あなたのアドバイスをいただければ幸いです。ありがとう。
それで、ついに、私は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
で直接変更しようとするまで)拒否しました失敗しました)。
それでおしまい。