アクティブ/アクティブまたはN + 1?

インフラストラクチャを常に(または可能な限り)稼働させる必要がある場合、それを最もよく達成するにはどうすればよいですか? インフラストラクチャのすべての部分が常に使用されるアクティブ/アクティブ構成、または障害が発生した場合に引き継ぐのを待機しているアイドル状態のリソースがあるN + 1構成では?

簡単に言えば、適切な監視が行われていない限り、それは問題ではありません。

アクティブ/アクティブのリスクは、負荷が直線的にスケーリングしないことです。 40つのシステムが80%の負荷で実行されている場合、一方が両方の負荷を処理でき、40%で実行できるという意味ではありません。 CPU、メモリ帯域幅、ディスクIO、または外部APIリソースを提供しているシステムなど、予期しないボトルネックに遭遇する可能性が高くなります。 それは電力システムでさえありえます。 サーバーに冗長電源装置があり、各PSUが個別の配電ユニット(PDU)に接続されている場合、各PDUの臨界負荷は定格の80%になります。 一方の回路に障害が発生すると、すべての負荷がもう一方のPDUに切り替わり、そのPDUが定格のXNUMX%以上を伝送するように要求されると、過負荷回路がトリップし、完全に停止します。 このタイプのカスケード障害が最近の背後にあったという推測がいくつかあります AmazonEC2の停止.

N + 1のリスクは、定義上、システムがアイドル状態になっていることです。それでは、システムを使用する準備ができていることをどのようにして知ることができますか? 多くの場合、必要なときに、 準備ができていません.

もちろん、インフラストラクチャが障害に対処できることを知る唯一の100%確実な方法は、すべてをテストする運用手順、つまり実際にはフェイルオーバーを実施することです。

ただし、定期的にスケジュールされたフェイルオーバーイベントの合間には、すべてを監視する必要があります。 PDUを監視し、アクティブ-アクティブを実行している場合は、しきい値を40%に設定します。 スタンバイノードを監視し、スタンバイノードの構成の同期を監視します(Netscalersを使用している場合は、 F5ビッグIPs、または他のロードバランサーでは、プライマリノードでハードウェア障害が発生することを望まず、本番VIPの構成を認識しないセカンダリノードにフェイルオーバーするだけです。)すべてのシステムのRAIDステータスを監視します。 BGPピアリングのセカンダリルータパスを監視し、リンクステータス、温度センサー、メモリプールの使用状況、および断片化の変化についてバックアップスイッチを監視します。

お気づきの方もいらっしゃると思いますが、事実上すべての停電アナウンスは、そのような問題を防ぐために監視を改善することを約束しています。

LogicMonitorでは、最初にこれらの問題をできるだけ回避するために、最初に徹底的な監視を実装することをお勧めします。 LogicMonitorはそれを簡単にします。