突然想到要插入這篇 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