失敗したcephクラスタからのVM​​イメージの回復

失敗したcephクラスタからのVM​​イメージの回復

数日前、Cephクラスターがシャットダウンしました。理由は誰も知りませんが、モニターが取り外されたばかりです。 ceph.confに再度追加しようとすると、cephを起動すると次のエラーでタイムアウトが発生します。

7f1b04382700  0 -- :/3908692206 >> 172.16.50.2:6789/0 pipe(0x7f1b0005a060 sd=3 :0 s=1 pgs=0 cs=0 l=1 c=0x7f1b0005e350).fault

(172.16.50.2はcephモニターを実行する必要があるノードです...)

クラスター(Proxmox)を再起動できないため、Ceph OSDのすべての仮想マシンからイメージをインポートしようとしています。この目的のために、OSDはデータに関する情報を収集し、収集されたファイルを再構成するスクリプトを作成しました。

ファイル名は次のとおりです。

current/1.382_head/DIR_2/DIR_8/DIR_3/rbd\udata.147082238e1f29.0000000000009238__head_CB25F382__1

ここで、147082238e1f29はVMイメージのIDとして表示され、0000000000009238は「オフセット」として表示されます。だから、同じIDを持つすべてのファイルをリストし、オフセットに基づいてソートしました。問題はギャップがあるということです。 OSDにすべてのオフセットが表示されるわけではありません。

したがって、ddを使用してこれらのファイルをすべて組み合わせると、間隔があるため、画像が破損しているように見えます。

誰もがcephを起動するときにタイムアウトの問題を解決するのに役立ちますか、または少なくともVMイメージを取得するのに役立ちますか?

ベストアンサー1

もっと祈った後、私は実際に次のような結果を得ました。

無効なブロックサイズを指定して「0ブロック」を挿入するのではなく、コピー時にオフセットを使用するように変更しました。

OSDからのみ画像を抽出する(何も効かなかった):
https://gitlab.lbader.de/kryptur/ceph-recovery/tree/master

OSDからVMを抽出し、イメージを新しいクラスタにコピーできるようになりました。

おすすめ記事