6. タイムアウト

6.1. タイムアウトはどのように動作しますか?

プライマリノードはある期間内でパケットの応答を期待します。(この期間はdrbdsetupコマンドの--timeoutオプションで調節できます。) もしタイムアウト値が他方のノードにあわなければ、プライマリノードは接続を切断して再確立を試行します。

6.2. タイムアウト値が小さい方がいいのはなぜですか?

セカンダリノードがダウンした場合、プライマリノードは元の状態のまま、DRBDデバイスに書き込み途中のアプリケーションをすべて ブロックします。基本的に、他方のノードがダウンしたと決定するまでに、タイムアウトの時間だけかかります。 このように、この間はアプリケーションはブロックされます。

6.3. なぜ小さなタイムアウト値が、timeout/resync/connectを引き起こすのですか?

これは、セカンダリノードのIOサブシステムが遅い時に発生します。

6.4. "postpone packets"とは何ですか?

状況改善のために、"postpone that deadline(締め切り延長)"の案があります。 これらのパケットは、タイムアウトを切ると認識したらすぐにセカンダリノードによって送信されます。

6.5. このtimeout/resync/connectパターンを発見したときには何をすべきですか?

タイムアウト値を大きくしてください。(connect-intとpint-intのタイムアウトを大きくするには、より大きなタイムアウト値が必要だからです。 )