Wednesday, April 5, 2017

MS Failover Cluster 基本概念


突然想到要插入這篇 MS Failover Cluster 因為好像(最近)會用到
這篇先簡單講概念 下篇再講常看到的設計錯誤

MS Failover Cluster 是常見的AP HA 架構之一
對於必須要維持資料一致性的系統來說 這種架構已經存在十幾年 算相當成熟

一般來說架構如下

一個對最上層 User 提供服務的 AP
有兩台Server Node 1, Node 2 做備援

外部有一個 Access Point 供外部 User 存取
Server Node 1, Node 2 並不直接讓 User 存取
一律經過 Access Point

平常 Access Point host 在 Node 1.
AP 也跑在 Node 1, Storage 由 Node 1 的 AP來存取



當哪天 Server Node 1 掛掉的時候

AP 會立刻在 Server Node 2 跑起來
Access Point 也會立刻由 Node 2 Hosting
Storage 也改由 Server Node 2 AP 來存取





如此一來 可以維持系統的可用度
也可以確保資料的一致性 同一時間 一份資料只會有一台Server 讀寫









說穿了 Server Node 1, Node 2 都有 AP這支程式

在 Node 1 Hosting AP 的狀況下
AP 只有跑在 Node 1, Storage 也只能由 Node 1 Access

Node 2 AP 是關機狀態 Node 2 也無法存取 Storage










而當 AP 切換到 Node 2 的時候
AP 只有跑在 Node 2, Storage 也只能由 Node 2 Access

Node 1 AP 反過來是關機狀態 也無法存取 Storage
















當然 有些時候會希望平常兩台 Server node都可以提供服務 不要處於閒置狀態
如此就會有下列的配置方式

Service 1, Service 2 各自跑在這兩台 Server Node

Service 1 平常跑在 Node 1
Service 2 平常跑在 Node 2

比照上面的架構
Service 1 與 Service 2 有各自的 AP, Storage. 彼此互相不干擾

當哪天 Node 1 掛點的時候
Service 1, Service 2 同時都會跑在 Node 2
此時 Node 2 的 AP全開 Storage 也正好可以同時Access

此時就要很小心 Node 2 要有足夠的能力可以同時撐起 Service 1, 2 不然就是兩個 Services 一起掛點
















當然 除了 MS Failover Cluster 之外 許多有需要存放資料的 HA 架構大概都差不多
後來也有些變形應用 或是設計出現
不過大都維持 同時間只能有一個人(AP) 對同一份資料做讀寫
當然如果有多份 Copy 做 HA, 那也只能提供"讀" 的功能
如果有需要對資料做更動 還是只能回到那唯一一個可以寫入的點去做寫入
如此方可維持資料的一致性

下篇就來聊聊 MS Failover Cluster 常遇到的錯誤設計吧


No comments:

Post a Comment