このセクションでは、DRBD Recovery Kitを使用する際に発生する可能性のある問題について説明します。必要に応じて、エラーの原因に関する補足説明と、エラー状態を解決するために必要な対処法も記載しています。

DRBD Recovery Kitに固有のメッセージは DRBDメッセージカタログ に記載されています。他のLifeKeeper for Linuxコンポーネントからのメッセージもあり得ます。その場合は、総合メッセージカタログを参照してください。このカタログにはLifeKeeper for Linuxの使用中に発生する可能性のある操作、管理、GUI を含むすべてのエラーコードのリストと、必要に応じてエラーコードの原因および問題解決に必要なアクションに関する補足説明が記載されています。この完全なリストで受信したエラーコードを検索するか、適切なLifeKeeperコンポーネントの個々のメッセージカタログのいずれかに直接アクセスしてください。

次の表は、考えられる問題点とその対策を示したものです。

症状
推奨される対策
DRBD GUIウィザードに、新しく作成されたパーティションが一覧表示されない Linux OSは、システムを次に再起動するまで、新しく作成されたパーティションを認識しない場合があります。 /proc/partitions ファイルで、新しく作成したパーティションのエントリを確認してください。新しいパーティションがファイルに表示されない場合は、システムを再起動する必要があります。
フェイルオーバー中のエラー デバイスの状態を確認してください。 再同期が進行中の場合、フェイルオーバーを実行できない場合があります。
“Delete Resource Hierarchy”後、DRBDリソースが停止しない DRBDリソースがマウントされているか開いている場合、LifeKeeper DRBDリソースを削除しても、DRBDリソースは停止 (削除) されません。 DRBDリソースを削除するときのエラーメッセージは次のとおりです。

Unable to stop/remove the resource /dev/drbd<num> on <sys>. Use “drbdsetup down lk<num>” on <sys> to manually stop the resource after the file system is unmounted.

リソースを停止するには、以下を実行します。

umount /dev/drbd<num>

drbdsetup down lk<num>

エラーメッセージに記載されている適切なデバイス番号とリソース番号を入力してください。

この症状を回避するには、階層を削除する前に、DRBDリソースを含む階層をOut of Serviceにし、DRBDリソースのファイルシステムをアンマウントする必要があります。

両方のサーバーが LifeKeeper を停止した後、またはサーバーがシャットダウンされた後、プライマリーノードがリソースを自動的にISPにしない プライマリーノード(LifeKeeperの停止またはサーバーのシャットダウン時にリソースがIn Serviceになっていたサーバー)がセカンダリーノードより先に動作可能になった場合、LifeKeeperは、セカンダリーノードがLifeKeeperを起動するまでDRBDリソースを自動的にIn Serviceにすることはありません。これは、DRBDが最新のデータを使用するようにするためです。DRBD リソースを強制的にオンラインにするには、リソースプロパティダイアログを開き、 [Replication Status] タブをクリックし、 [Actions] ボタンをクリックして、 [Force Mirror Online] を選択します。 [Continue] をクリックして確認し、 [Finish] をクリックします。

データが失われないように、DRBDリソースをオンラインにする前に、プライマリーノードとセカンダリーノードを動作可能な状態にしておくことをお勧めします。
プライマリーノードとバックアップノードの両方で、リソースが緑色(ISP)で表示される これは、一時的な通信障害により、LifeKeeperが両方のサーバーでリソースをIn Serviceにしたために起こる可能性がある「スプリットブレイン」シナリオです。

DRBDは、どのシステムが最良または最新のデータを持っているかを認識していないため、データを再同期しません。手動による介入が必要です。

どちらのサーバーに最適なデータがあるかを判断し、もう一方のサーバーのリソースを停止させる必要があります。レプリケーションは自動的に再開 されません。 GUIでレプリケーションを再開するには、DRBDリソースを右クリックして、 [Resume Replication] を選択します。
Core – 言語環境の影響 一部のLifeKeeperスクリプトは、Linuxシステムユーティリティの出力を解析し、情報を抽出するために特定のパターンに依存します。これらのコマンドの一部を英語以外のロケールで実行すると、予想されるパターンが変更され、LifeKeeperスクリプトが必要な情報を取得できなくなります。このため、言語環境変数 LC_MESSAGES /etc/default/LifeKeeper でPOSIX “C” ロケール (LC_MESSAGES=C) に設定されています。言語を英語に設定して Linuxをインストールする必要はありません (インストールメディアで利用可能な任意の言語バリアントを選択できます)。 /etc/default/LifeKeeper のLC_MESSAGESの設定は、LifeKeeper にのみ影響します。 /etc/default/LifeKeeper の LC_MESSAGESの値を変更すると、LifeKeeperの動作に悪影響を及ぼす可能性があることに注意してください。
drbdadm verify <res> が不一致のブロックを検出する DRBDのベリファイ機能は、オンラインでブロック単位の比較を行い、すべてのサーバーでデータが同じであることを検証します。デバイス上のすべてのブロックは、現在使用中であるかどうかにかかわらず比較されます。ブロックの不一致は、ユーザーデータの破損を示す場合もありますが、不一致を無視できるような異なる未使用ブロックを示す場合もあります。未使用のブロックが不一致になる正当な理由は以下の2つです。

1. 作成と拡張の前に、基礎となるディスクがゼロクリア(zeroed)されていない。LifeKeeperは新しいリソースを作成するとき、新しいファイルシステムを作成するため、完全な同期を行わないので、新しいデータのみ同期する必要があります。検証を行う場合は、DRBDリソースを設定する前に、基盤となるディスクをゼロクリアすることをお勧めします。

2. ブロックが使用されなくなったときにカーネルの最適化が行われ、不一致が発生する可能性があります。

https://lwn.net/Articles/442355/

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信