ネットワーク障害のシナリオは一般的に、単一マシンのNICやLANケーブルの障害、データセンター内のネットワーク機器の障害、またはデータセンター間の専用線伝送のジッターなどがあります。明確なネットワーク問題に対して、OceanBaseが採用する方針はまず隔離し、その後分析するというものです。
シナリオの説明
ネットワーク障害やジッターが発生すると、クラスタ内のパーティションは繰り返しプライマリなし選挙を開始します。これはアプリケーション層では、アプリケーションリクエストのタイムアウトや書き込み失敗として具体的に表れます。
緊急時の対応手順
まず、ネットワークモニタリング指標にパケットロスやタイムアウト再送信などが発生していないか確認します。
tsar --tcp -i 1 -d20190902 を実行することで、ネットワーク状況を確認できます。もし retran >= 0.05 が10秒以上続く場合、ネットワーク伝送に異常があると判断されます。
注意
20190902 を確認したい日付の年/月/日に置き換えてください。-i 1 は、レコード間の間隔が1分であることを意味します。
たまたま発生したネットワークジッターは無視しても構いません。ただし、ネットワークジッターがマシンやデータセンターの障害を引き起こした場合は、以下の手順に従って対処してください。
単一マシンのネットワーク障害
単一マシンのネットワーク問題(例えば、単一マシンのretran再送信率が高い場合)の場合、個別のノードを隔離する必要があります——stop server。単一マシンの障害が回復したら、ノードサービスを再開します——start server。さらに、単一マシンのNIC障害であることが明確になった場合は、障害ノードを交換する必要があります。
データセンターのネットワークジッター
データセンター全体のネットワークジッターの場合、問題のあるデータセンターのレプリカを一時的に隔離する必要があります——stop zone。ネットワークが回復したら、再びサービスを提供します——start zone。