Aarry的Server Load Balance(SLB)架構是將APV做為對外的虛擬伺服器,
當外部產生需求連向APV時,再由APV依照policy的需求,分派給內部真實伺服器。
就拓樸架構來說,APV應該佈署在防火牆內,與真實伺服器平行連接,
不需擺在防火牆外,直接面對外界各種攻擊。

當有流量產生時,均由APV來承接,再policy之不同,將連線導向真實伺服器。
因此AVP的實際流量會是後面真實伺服器的總合。
所以就AVP的硬體效能需求來說,其承載的連線session數與throughput,一定要遠大於後端的真實伺服器!
依架構來看,其SLB共分為4層關係,分別是Real,Group,Virtual與Policy。

Real 就是後端的真實伺服器,共有數台來提供對外服務。
Group 把後端真實伺服器組成一個群組,只有相同服務類的Real才能放在一組。
Virtual 虛擬伺服器,也就是AVP。
Policy 則決定了要以何種邏輯方式來分配流量。
實際建置時,也會依照這4層關係之先後順序來設定。

以下為WebUI的示範環境,我們透過WebUI來設定一組SLB對應關係
Real 共有r_web01~04等4台,IP分別為10.10.1.105~108
Group 為g_web
Virtual 為V_web,IP為10.10.1.200
Policy 為default
設定Real Server
在SERVER LOAD BALANCE / Real Services / Real Services 中透過 ADD 來新增Real Service。

新增Real services時要注意Service Type與Port的設定。
同一群組的Real Services設定要相同,且Virtual Service的Service Type與Port也要和Real Serveice一致,
這樣內外才會對的起來。

且HTTP 80 port與TCP 80 port意義不同,設定時請務必確認用途。
在Health Check Type的部分,則是設定用何種方式來確認該Real Service的服務狀態。

若經check為down的狀態,則Virtual Service在分派時,就會捨棄這個Real Service,以維持服務之持續性。
而在SERVER LOAD BALANCE / Health Check Setting頁籤,則是用來設定Global的health check參數。
我們可以在這調整偵測的時間及頻次...等細項設定。

設定Group與Method
在SERVER LOAD BALANCE / Groups / Groups中,透過 ADD 來新增一個Group。
新增Group時,除了群組名稱,也要決定好群組成員間的分派方式。

新增好Group後,連點滑鼠兩下該Group,來檢視群組成員。
在檢視群組成員中,可按下 ADD 來新增群組成員。

選擇可用的群組成員及比重後,按下 SAVE 即可把該Real Service加入群組之中。

而Group的method主要分為 Persistent 與 Non-Persistent 兩大類別。

若用戶端有持續連向同一台real service的需求時,例如購物車、會員系統,請選用適合的 Persistent 方法;
若無持續性之需求,可選用 Non-Persistent 方法,更有效率的分散流量。
設定Virtual與Policy
在Virtual部分,可透過SERVER LOAD BALANCE / Virtual Services / Virtual Services來新增一個Virtual。

新增完,連點滑鼠兩下該Virtual來設定對應之Group與Policy。
選好Group及Policy後,按下 ADD 即建立好SLB了~

SLB的Policy主要分為四類,Basic、Redirect、QoS Policy Type與Persistent Policy Type。

Basic 裏有三種常用的Policy,Static、Default與Backup。
Default是最基本的Policy,可用於多數的Group Method。
而Backup則需依附在Default之下,不能單獨存在;在Default Policy failed之後,Backup Policy就會接手運作。
Static則是靜態Policy,以預設之優先權來說,只低於Redirect Policy;
當設定了Static Policy後,除非有Redirect Policy,否則會直接以Static Policy來進行。
各種Policy的優先順序如下圖

當然Policy的priority也可依實際需求來進行修改。
Monitoring
我們可以在SERVER LOAD BALANCE / Monioring / Status中檢視Virtual、Group與Real的對應關係,與健康狀態。

當4台Real都是正常服務時,我們透過網頁輸入Virtual的IP 10.10.1.200,
它就依Group中的Method,將流量分配到實際的後端主機,例如10.10.1.105。

當r_web01 10.10.1.105死掉時,它就會略過它,而將流量導到下一個Group Method所分配的主機。

X-Forwarded-For
由於流量是先到Virtual,然後再由Virtual導向Real,
所以在Real上,看到的連入IP會是Virtual的IP 10.10.1.104,而不是實際訪客的真實IP 192.168.1.2。
有沒有什麼方式可以看到訪客的真正IP呢?
有的,打開X-Forwarded-For就可以由Virtual把訪客的真實IP傳給Real了~


♥順子老婆的網拍,請多關照~
If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!
|