KBNF-WSFC 與 Neverfail 的高可用性架構比較

一、WSFC 的偵測邏輯:偏「淺層」

Windows Server Failover Clustering(WSFC,Windows 容錯移轉叢集)判斷節點或服務是否健康,主要依靠以下訊號:

  • 作業系統層級的心跳(Heartbeat):叢集各節點週期性互發網路封包,確認彼此「還活著」。若某節點在一段時間內無回應,WSFC 會認定其失效並轉移服務。
  • 服務(Service)是否在執行:透過資源監控(Resource Monitor)檢查所管理的資源(如 SQL Server 服務),常見方式為確認 Process 是否存在,以及 IsAlive / LooksAlive 健康檢查是否通過。

二、問題出在哪裡:「卡死但沒死」

關鍵限制:如果服務「卡死(Hung)」但處理程序(Process)還在,WSFC 可能無法及時察覺並觸發切換。

這就是所謂的「灰色失效(Gray Failure)」或「殭屍狀態」。情境是:

  • 資料庫服務的 Process 仍在執行(工作管理員看得到 sqlservr.exe,OS 也正常)。
  • 但該服務已無法正常回應請求——可能是執行緒全卡在鎖死(deadlock)、I/O 停滯、記憶體耗盡而無法處理新連線。

從 WSFC 的視角:OS 心跳正常、Process 存在、表面健康檢查可能也勉強通過,因此判定一切正常、不觸發容錯移轉。但對應用程式而言,這個資料庫等同掛掉,因為它根本不回應。

比喻:心跳偵測像是只確認警衛「還有沒有呼吸、人在不在椅子上」。但警衛可能人在、有呼吸,卻睡死了——任何人闖進來都沒反應。光看「活著」這個淺層指標,分不出「清醒能工作」與「昏睡無作為」。

三、WSFC 與 Neverfail 的差異

Neverfail 的設計理念正好補上 WSFC「淺層心跳」的盲點。兩者都做高可用性(HA),但架構哲學完全不同。

核心差異一:偵測的「深度」

WSFC 偏基礎設施層級(OS 心跳、服務存活、Process 存在),服務卡死但 Process 還在時容易漏判。Neverfail 則走應用程式感知(Application-Aware)路線,代理程式會主動探測應用程式的實際反應能力,因此對「殭屍/卡死」狀態的偵測正是其設計目標。(有趣的是,Neverfail 早期核心產品就叫 Neverfail Heartbeat,但它的「心跳」探得比 WSFC 深得多。)

核心差異二:資料的共享 vs 複製

這是架構上最根本的分野。WSFC 傳統上是「多台主機搶用同一份資料」;Neverfail 是「每台主機各有一份,靠即時複製保持同步」。

比較面向WSFC(傳統叢集)Neverfail
偵測深度OS 心跳、服務存活、Process 是否存在(偏淺層)應用程式感知,主動探測實際反應能力
卡死(Hung)偵測Process 還在時容易漏判設計目標即可偵測殭屍/卡死狀態
儲存架構多節點共享儲存(SAN)或 S2D無共享儲存,採即時資料複製
資料副本共享磁碟只有一份資料主機/備機各有獨立副本
單點故障共享儲存本身可能成為單點故障無共享儲存的單點風險
地理分散 / DR跨站台較複雜(需延伸式叢集)天生支援跨站點(WAN)複製
產品定位Microsoft 內建、免費、與 OS 深度整合第三方商業軟體,主打持續可用性

核心差異三:產品定位

WSFC 是 Microsoft 內建於 Windows Server 的功能,免費、與 OS 深度整合,但綁定 Windows 生態,原生偵測能力較淺。Neverfail 是第三方商業軟體,主打「持續可用性(Continuous Availability)」,強調以較簡單的架構(不需 SAN、不需企業版叢集授權)達到應用層級的保護,常見於保護 Exchange、SQL Server、檔案伺服器等。

四、整體理解

  • WSFC 回答的是「這台機器/這個服務還在不在?」——著重基礎設施可用性
  • Neverfail 想回答的是「這個應用程式還能不能正常服務使用者?」——著重應用程式可用性,且因走複製架構,同時也是一套 DR(災難復原)方案。

兩者並非單純「誰比較好」,而是保護層次不同。實務上也有人把 WSFC 用於資料庫叢集(搭配 SQL Server Always On 補強偵測),把 Neverfail 用在不適合做叢集、但又需要應用層保護與異地複製的系統。

備註:Neverfail 為商業產品,其具體功能與支援的應用程式版本可能隨版本更新而變動;實際導入評估時應參考其最新產品線與支援矩陣。

2920 (14) 4920 (14) 6920 (14) Backup (8) everRun (25) ftServer (17) Neverfail (11) Stratus (17) Stratus ftServer (12) VATES (31) Windows (10) Windows Server (8) XCP-ng (29) XOA (24) XOProxy (10) XOSTOR (7) 容錯保護 (6) 故障排除 (8) 災難復原 (9) 營運持續 (7) 管理維護 (6) 系統管理 (10) 網路設定 (7) 虛擬化平台 (8) 虛擬化管理 (10) 虛擬機器 (6) 資料同步 (6) 高可用性 (28)

文章索引