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

遊戲 Lag 白皮書 › L5 資料中心網路設備

網路設備容錯移轉(failover) Network device failover

原因 ID dc-failover · 主要負責 基礎設施團隊(網路基礎設施) · 協同 遊戲開發團隊(伺服器開發), 遊戲開發團隊(用戶端開發)

在含圖解與實驗的完整版中開啟卡片 →

路由器或防火牆有一台故障、切換到備援設備(failover)的幾秒之間,所有人的畫面都會停住。

為什麼 設備故障或維護,切換到備援設備 → 於是 切換需要數秒;session 資訊沒有同步時,連線會被重置 → 畫面上 伺服器上的所有玩家同時定格,大量斷線

症狀
定格, 斷線
因素
遺失
誰會遇到
整個伺服器
何時
偶爾隨機發生
負責單位
主要負責 基礎設施團隊(網路基礎設施) · 協同 遊戲開發團隊(伺服器開發), 遊戲開發團隊(用戶端開發)
遊戲開發團隊要做的事
伺服器:設定能撐過短暫中斷(數秒)的逾時,斷線後重新連線時,用 session token 接續 session。用戶端:斷線時自動重新連線(隨機分散重試間隔,避免同時湧入)。
基礎設施團隊要做的事
採用共享連線狀態的備援架構,用 BFD 在 1 秒內偵測故障,定期進行切換測試。
數值參考
設備立刻偵測到故障時約 1~3 秒。沒有快速故障偵測(BFD)、只靠 BGP 預設計時器時,相鄰設備偵測到之前,路由可能中斷 90~180 秒。
圖表上
連線同時大量中斷 · 連線數、整個伺服器的收發量
查看位置
查看路由器、防火牆的事件 log(VRRP 角色切換、BFD 與 BGP session down、容錯移轉紀錄),以及同一時間整個伺服器的連線數與收發量
符合的跡象
在設備 log 的切換時間點,該設備後方所有伺服器的流量有幾秒降為 0,或連線數同時下降
不符合的跡象
只有一台伺服器的連線數下降時,是「伺服器當機」或「NIC 驅動程式/韌體問題」。設備 log 很乾淨、停住的是一台雲端虛擬機器時,是「雲端主機維護與即時遷移」
確認方式
用基礎設施工具確認(不需要遊戲程式碼)

出處

  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 時收斂很慢,若立即接收鏈路中斷訊號並切斷 session,就能以 ms 級偵測並重新收斂
  3. RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6 IETF
    VRRP 通告預設 1 秒,備援設備在通告中斷超過約 3 倍間隔時接手角色(預設設定下約 3 秒多)

相關原因

同一層:L5 資料中心網路設備

同一症狀(定格)在其他層的原因

查看含圖解與實驗的完整版卡片