iT邦幫忙

DAY 8
9

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

高有效性簡介30篇: 負載均衡 (8)

**負載均衡是高有效性最基本的問題之一, 有了一堆電腦, 接下來的問題就是如何分派 (Dispatch) 工作了, 而讓工作能夠均勻分擔到每一台機器, 且當機器有不正常時, 能夠避開此機器轉給其他機器, 這就是 Load Balance 負載均衡的用途.

要了解負載均衡之前, 要了解幾件事情:

  1. 要在流程那個環節去分配

  2. 分配的方法與方式

  3. 要如何做容錯 Fault Tolerance

  4. 這設備/機制本身的極限**
    在確立這幾件事後, 通常的流程環節有幾種方式:

  5. 透過 DNS 在決定目標之前就 Load Balance

  6. 在封包流程就做 Load Balance

  7. 在資訊處理時做 Load Balance

  8. 在儲存的時候去做 Load Balance

當然若是要在儲存的時候去做分流的話, 就要考慮 Replication 複製的方法與方法, 但這也牽涉到資料庫種類的選擇.

但整體而言, Load Balance 有幾個元件:

  1. Watch Dog

  2. Dispatcher

  3. Proxy

這細節的設計是可以寫成一本書, 事實上的確就是有不少專書就是講如何利用與設計 Load Balancer.

只是這部份現在已經被三個時代的進步所影響:

  1. Blade Server: 因為有了 Blade Server, 很多藕合的事不見得是要靠獨立的 Load Balancer.

  2. Virtual Machine: 由於有了 VM 的概念, 一台機器可能有很多個 VM, 相對的一個 VM 也可能是很多台機器, Load Balancing 的方式也跟著改變.

  3. Cloud: 在某方面, Cloud 只是把 LB 以及 VM 給抽象化, 設計者可以不用管這方面的操作與 Know-How, 但事實上是使用相同的技術.

在一個大型的系統, 負載均衡是個 Multi-Tiers 多層的架構, 甚至應該說每一個功能或層級都本身就可以自我的 LB, 所以每一件事都要想到如何把工作 "純量化" (Scale) , 這樣才能夠在可被純量化的區間去分派工作, 也就是 Multi-Processing.

或許以後大家可以不用管這部份的事, 因為在未來很多系統本身就有設計到, 但基礎概念是一定要會的, 這樣才有足夠的程度可以升級.

大家有空可以去看本 DNS 的書 (DNS 本身就是很不錯的 HA 與 LB 的系統設計), 以及一本 Load Balance 的專書, 這樣才能夠面對不同的設計與挑戰不會捉襟見肘.


上一篇
高有效性簡介30篇: 容錯系統 (7)
下一篇
高有效性簡介30篇: 規模化 Scalability (9)
系列文
高有效性 (High Availability) 初論 30 講30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
食夢黑貘
iT邦研究生 3 級 ‧ 2011-10-18 23:49:02


事實上我部落格寫了很多有關 Load Balance 的細節, 只是這邊講的是概念, 還真不好寫阿..

我要留言

立即登入留言