同期速度の設定

バックグラウンド同期中は同期先のデータとの一貫性が一時的に失われているため、同期をできるだけ早く完了したいと考えるでしょう。ただし、すべての帯域幅がバックグラウンド同期に占有されてしまうと、フォアグラウンドレプリケーションに使用できなくなり、アプリケーションのパフォーマンス低下につながります。これは避ける必要があります。同期用の帯域幅はハードウェアに合わせて設定する必要があります。

[重要項目]重要項目

同期速度をセカンダリノードの最大書き込みスループットを上回る速度に設定しても意味がありません。デバイス同期の速度をどれほど高速に設定しても、セカンダリノードがそのI/Oサブシステムの能力より高速に書き込みを行うことは不可能です。

また、同じ理由で、同期速度をレプリケーションネットワークの帯域幅の能力を上回る速度に設定しても意味がありません。

syncerの永続的な速度設定

リソースがバックグラウンド再同期に使用する最大帯域幅を永続的に設定するには、リソースに対してrateオプションを指定します。これは、/etc/drbd.confsyncerセクションに記述します。

resource resource
  syncer {
    rate 40M;
    ...
  }
  ...
}

毎秒の速度はビット単位ではなくバイトで設定します。

[ティップ]ティップ

経験則では、この数値として使用可能なレプリケーション帯域幅の30%程度が適切です。180MB/sの書き込みスループットを維持できるI/Oサブシステム、および110MB/sのネットワークスループットを維持できるギガビットイーサネットネットワークの場合は、ネットワークが律速要因になります。速度は次のように計算できます。

式6.1 syncer 速度の例(有効帯域幅が110MB/sの場合)


この結果、rate オプションの推奨値は 33Mになります。

一方、最大スループットが80MB/sのI/Oサブシステム、およびギガビットイーサネット接続を使用する場合は、 I/Oサブシステムが律速要因になります。速度は次のように計算できます。

式6.2 syncer 速度の例 (有効帯域幅が 80 MB/s の場合)


この場合、rateオプションの推奨値は24Mになります。

syncerの一時的な速度変更

syncerの速度を一時的に変更したい場合もあるでしょう。たとえば、いずれかのクラスタノードの定期保守を行ったときに、バックグラウンド再同期を高速に実行したい場合などです。また、アプリケーションの書き込み操作が非常に多いときに、バックグラウンド再同期の速度を落して、既存の帯域幅の多くをレプリケーションのために確保したい場合もあります。

たとえば、ギガビットイーサネットリンクのほとんどの帯域幅を再同期に割り当てるには、次のコマンドを実行します:

drbdsetup /dev/drbdnum syncer -r 110M

num はDRBDデバイスのデバイスマイナー番号と置き換えます。このコマンドは一方のノードに対して実行するだけです。

この一時的な設定を元に戻して、 /etc/drbd.confで設定されたsyncer速度を再び有効にするには、次のコマンドを実行します。

drbdadm adjust resource