한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

ゲームラグ白書 › L5 データセンターのネットワーク機器

ネットワーク機器のフェイルオーバー Network device failover

原因ID dc-failover · 主担当 インフラチーム・ネットワークインフラ · 副担当 ゲーム開発チーム・サーバー開発, ゲーム開発チーム・クライアント開発

図と実験のあるメインページでこのカードを開く →

ルーター・ファイアウォールの1台が故障して予備機に切り替わる(フェイルオーバー)数秒の間、全員が止まります。

なぜ 機器の故障またはメンテナンスで予備機に切り替え → すると 切り替えに数秒、セッション情報が同期されていなければ接続がリセットされる → 画面では サーバーの全ユーザーが同時にフリーズ、大量の切断

症状
フリーズ, 切断
要因
パケットロス
誰に起きるか
サーバー全体
いつ
ときどきランダムに
担当
主担当 インフラチーム・ネットワークインフラ · 副担当 ゲーム開発チーム・サーバー開発, ゲーム開発チーム・クライアント開発
ゲーム開発チームの対応
サーバー:短い途切れ(数秒)に耐えるタイムアウト、切れても再接続すればセッショントークンでセッションを引き継げるようにする。クライアント:切れたら自動で再接続(一斉に殺到しないよう再試行間隔をランダムに分散)。
インフラチームの対応
接続状態を共有する冗長化、BFDで故障を1秒以内に検知、切り替え試験を定期的に実施。
数値の目安
機器が故障をすぐに検知すれば1〜3秒前後です。高速な故障検知(BFD)なしでBGPのデフォルトのタイマーだけに任せると、隣接する機器が検知するまでの90〜180秒間、経路が途切れることがあります。
グラフでは
接続が一斉に切れる · 接続数、サーバー全体の送受信量
確認箇所
ルーター・ファイアウォールのイベントログ(VRRPの役割変更、BFD・BGPセッションのダウン、フェイルオーバーの記録)と、同じ時刻のサーバー全体の接続数・送受信量を確認
該当する場合
機器ログの切り替え時刻に、その機器の配下にあるすべてのサーバーのトラフィックが数秒間0になるか、接続数が同時に落ちる
該当しない場合
1台のサーバーの接続だけが落ちるなら「サーバークラッシュ」か「NICドライバー・ファームウェアの問題」。機器ログがきれいで、止まったサーバーがクラウドの仮想マシン1台なら「クラウドホストのメンテナンス・ライブマイグレーション」
確認手段
インフラのツールで確認(ゲームコード不要)

出典

  1. RFC 5880: Bidirectional Forwarding Detection (BFD) IETF
    ルーティングプロトコルのHello方式は故障の検知に1秒以上かかるため、より短い時間で検知するために作られたBFD
  2. RFC 7938: Use of BGP for Routing in Large-Scale Data Centers IETF
    BGPのkeepaliveだけに頼ると収束が遅く、リンクダウンを即座に受け取ってセッションを切ればms単位で検知して再収束
  3. RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6 IETF
    VRRPアドバタイズメントはデフォルト1秒間隔、予備機はアドバタイズメントが約3倍の間隔を超えて途切れると役割を引き継ぐ(デフォルト設定で3秒強)

あわせて読みたい原因

同じ層:L5 データセンターのネットワーク機器

同じ症状(フリーズ)を起こすほかの層の原因

図と実験のあるメインページでこのカードを見る