スプリットブレインとは何ですか?
で述べたようにスプリットブレインが管理上の公式ドキュメントのRedHatが提供する、スプリットブレインが状態である場合には、いずれかのためにネットワーク設計内のサーバーの範囲内の重複を持つ2つの別々のデータセットのメンテナンスからのデータや可用性の矛盾の発信元、または、サーバーが相互にデータを通信および同期していないことに基づく障害状態。また、レプリケート構成に適用される用語です。
「データを相互に通信および同期していないことに基づく障害状態」 -何らかの可能性があるため- と言われていることに注意してください。ただし、ノードが接続を失う可能性があるわけではありません。ピアはまだクラスター内にあり、接続されている可能性があります。
スプリットブレインタイプ:
スプリットブレインには3つの異なるタイプがありますが、私が見ることができるのはエントリスプリットブレインです。3種類のスプリットブレインを説明するには:
データのスプリットブレイン:スプリットブレインの下のファイルの内容はレプリカペアごとに異なり、自動修復は不可能です。
メタデータsplit-brain:、ファイルのメタデータ(例、ユーザー定義の拡張属性)は異なり、自動修復はできません。
エントリのスプリットブレイン:ファイルのレプリカペアごとにgfidが異なる場合に発生します。
GFIDとは何ですか?
GlusterFS内部ファイル識別子(GFID)は、クラスター全体で各ファイルに固有のuuidです。これは、通常のファイルシステムのiノード番号に似ています。ファイルのGFIDは、という名前のxattrに保存されますtrusted.gfid
。GFIDからのパスを見つけるには、GlusterFSが提供するこの公式記事を読むことを強くお勧めします。
エントリのスプリットブレインを解決するには?
スプリットブレインの発生を防ぐ方法は複数ありますが、解決するには、対応するgfid-linkファイルを削除する必要があります。gfid-linkファイルは、ブリックの最上位ディレクトリの.glusterfsディレクトリにあります。ところで、gfid-linksを削除する前に、そのブリックに存在するファイルへのハードリンクがないことを確認する必要があります。ハードリンクが存在する場合は、それらも削除する必要があります。その後、次のコマンドを実行して自己修復プロセスを使用できます。
それまでの間、スプリットブレイン状態にあるボリューム上のファイルのリストを表示するには、次を使用できます。
# gluster volume heal VOLNAME info split-brain
また、レプリケートされたボリュームでは、ブリックがオフラインになってオンラインに戻ったときに、すべてのレプリカを再同期するために自己修復が必要になることに注意する必要があります。
ボリュームとファイルの修復ステータスを確認するには、次を使用できます。
# gluster volume heal VOLNAME info
バージョン3.5を使用しているため、自動修復はありません。したがって、前述の手順を実行した後、自己修復をトリガーする必要があります。そうするには:
これが問題の解決に役立つことを願っています。詳細については、公式ドキュメントをご覧ください。乾杯。