iT邦幫忙

DAY 10
11

高有效性 (High Availability) 初論 30 講系列 第 10

高有效性簡介30篇: 看門狗 Watch Dog (10)

在高有效性的系統中, 我們都知道要監控與警示, 要如何知道出問題, 靠的是 Watch Dog 的功能, 也就是 Heart Beat 與 Santity Test, 還有在 Load Balance 負載均衡中, 要去確認系統是否正常運作, 用的功能也是 Watch Dog, 在 Fault Tolerance 中, 當系統出問題時, 通常會做一個 Pass Through 或 Levage Up 的動作, 用的也是 Watch Dog, 這個 Watch Dog 看門狗, 在 High Availbility 中, 扮演很重要的角色.
甚麼是 Watch Dog, 就是一隻程式或一個系統, 去到一個或各個系統去巡邏, 看是否出問題, 而當出問題時, 將會啟動一些備援機制, 或者是被一些系統的 Disable, 或相對應的行為, 這就是 Watch Dog 系統, 但當這看門狗系統是做在自己互相備援的機制, 通常是稱為 Heart Beat, 也就是心跳同步, 事實上也是 Watch Dog 的一種.

當系統出問題時, 通常會有幾個對應的工作要做:

  1. 把出問題的系統停下來, 不再分派工作.
  2. 避免有工作衝突的問題, 通常會有一個 Parity Check 或 Dirty Flag/Bit 的系統避免重覆.
  3. 通常會把可能原本分派給這系統工作的事, 再分派給其他人.
  4. 把某個系統升級, 或取代此系統做的工作.
  5. 修改系統的設定, 調整工作的權重.
  6. 同步的流程改變.

這些都是當 Watch Dog 在做 Heart Beat 或 Sanity Test 失敗時該做的事, 而這些 Sanity Test 是有可能那些呢?

  1. 只是回應是活是死, 甚至只是確定連線正常.
  2. 嘗試做一個假的 Job 工作, 看這 Job 是否正常執行, 而在後面把這假 Job 去除掉.
  3. 執行一個測試程序, 回答是否正常.
  4. 透過 SNMP 或 ICMP 去檢測.
  5. 系統自行有錯誤偵測, 直接回報, 或發 Trap.
  6. 資料 Log 起來, 讓 Watch Dog 去分析是否錯誤.

當然這個 Watch Dog 看門狗可以說是系統很重要的一環, 在某方面有是須要互相備援的, 或者是兩個各自獨自運作, 不然就是也要有一個基本的 Alert 系統去監控這個 Watch Dog.

要檢查的東西太多了, 會出問題的東西也太多了, Watch Dog 到最後因為效率的考量最後也可能會不只一隻, 也會面臨之前在 Monitor 與 Alert 系統所說的, 會不會監控本身造成系統自己負荷過高的問題, 但通常也會建議這種系統最好還是做在既有的 Production 流程外面的機器會比較安全一些.

事實上很多系統本身就有自己做 Watch Dog, 或提供相關的 Library 寫作, 很多東西都不用自己刻, 甚至有時幾個關鍵點用 TCP 外, 其他也可以用 UDP 來去實作, 尤其當頻率較為頻繁的時候, 在某些時候, 並不是當 Watch Dog 都是要去發現 Critical 致命的問題, 有時只是一些可能出問題就要放進 Watch Dog 才對.

這篇的 Watch Dog 是否有讓大家多了解這件事在 HA 的重要性吧?


上一篇
高有效性簡介30篇: 規模化 Scalability (9)
下一篇
高有效性簡介30篇: 安全性 (11)
系列文
高有效性 (High Availability) 初論 30 講30

1 則留言

0
食夢黑貘
iT邦研究生 4 級 ‧ 2011-10-20 22:40:15


今天是殺去花蓮東華上課再殺回台北... 蠻累的..

我要留言

立即登入留言