作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化暨分散式安全防護技術方案的介紹與推廣。

在前公司做網路presale時有一個重要客戶,在我負責的那兩年之內至少放了五對超大台的負載平衡器在不同專案裡面,而且其他同事在負責時,聽說負載平衡器也是年年買年年換。而當我到了VMware負責EUC Solution,在這個客戶內談一個還不小的VDI專案時,Horizon View前端也需要有負載平衡器來進行負載平衡與健康檢查功能:

 

我:『規劃內這邊前端各會需要一對負載平衡器,但專案內的預算看起來沒有包括這一部分。不過沒關係,之前你們買了那麼多台負載平衡器,借幾台開新的Virtual Server應該不會有問題吧』

 

客戶(遲疑):『嗯看來也只能先這樣做了,畢竟確實沒有預算』

 

三個月後客戶已經開始導入而且逐步上線。

 

我:『ㄟ這邊的負載平衡機制似乎…好像功能不是很完備的樣子…』

 

客戶(為難):『每一台之前買的負載平衡器都有業務在上線使用也不好更動,內部暫時也找不到錢,所以我們最後就用DNS Load Sharing的方式了…』

 

我:『這樣會沒有health check…而且負載會不均衡…』

 

客戶(沈默):『…反正就這樣子了…』

 

這種情況,很常發生吧。負載平衡器是個大傢伙不便宜,而雖然現在領先的廠商都開始提供VM-Based的軟體方案,但客戶仍然需要花錢來購買這個軟體負載平衡器,甚至依據不同的頻寬或連線,得要花費不同的授權費用。這些設備通常不是臨時想要借或想要調就拿得到,但又是各種資訊系統都常會需要使用到的。但想像一下如果客戶已經購買了VMware NSX呢?

 

客戶:『需要負載平衡器嗎?沒問題,我們到時候會開一組NSX的Edge Gateway來提供負載平衡器功能,等一下就可以完成』

 

我們認真地建議大家可以考慮採用VMware NSX的一個主要原因是能夠將重要的網路服務或構件,如同是虛擬機器一樣,隨時在需要的時候都能夠動態產生出來,也無需額外的軟體授權成本。同時NSX的Edge Gateway是企業等級的負載平衡器,能夠提供絕大部分應用負載平衡需求的功能。想像一下如果各位在專案內要開負載平衡器的規格,會包括哪些呢?

 

  • 可以支援One-Arm模式 (proxy-mode) 或是In-Line模式。企業可依據實際架構與業務需求進行選擇

 

  • 支援L4 UDP / TCP協定的負載平衡,也能夠支援HTTP / HTTPS的負載平衡功能

 

  • 需要能支援session persistent功能,確認同一連線均連往後端單一伺服器

 

  • HTTPS協定的負載平衡需要能支援SSL-Offload,負載平衡器可讀取HTTP Header並據以進行後續之判斷處理

 

  • 負載平衡的機制要能支援Round Robin / IP Hash / Least Connection / URL Header…等等模式

 

  • 要能夠對後端伺服器進行健康檢查,比如說可以對Web Server發出Get / Post等指令,並依據回應去進行伺服器健康狀態判斷

 

  • 依據後端伺服器的大小設定不同的權重,讓較大台的伺服器服務較多的連線。另外可限制單一後端伺服器的連線數字上限,確保每個用戶的連線能有資源提供服務

 

  • 單台負載平衡器可以設定一組或多組的virtual server,提供不同服務之負載平衡使用

 

  • 可以設定應用服務限制,比如說限制某個Virtual Server僅能由某個指定的網段進行連線

 

之前我在幫幾個金融或政府客戶準備標案規格時給的負載平衡功能需求也就差不多這樣或甚至更少。當然大家考量在軟體內執行這些功能時,可能有不同的concern,包括Performance,以及一些大廠所具備的特殊功能。首先就Performance面再做幾個簡要說明

 

  • 當我們使用Edge Service Gateway提供負載平衡功能時,若採用的協定是HTTPS,在有做SSL-Offload等功能開啟的狀況下,內部測試的資訊為單台Edge-Gateway可跑到進2 Gbps的throughput,同時連線數最大為60K,每秒可增加的連線數約為600。若跑的連線是HTTP時,throughput約6.5 Gbps,最大連線數60K,每秒增加連線數為45K。

 

  • 如果採用的僅是L4的Load Balancing,最大throughput可到9.2 Gbps,同時連線數1M,每秒可增加連線數為131K

 

  • 但重點是即使單台負載平衡器的performance不足以符合多個業務需求時,大家不用客氣,就去開第二台第三台第四台Edge Gateway啊?我們的功能都在軟體內可以提供,需要這些功能,生出來就是了。

 

另外一個要談的是,NSX內的Edge Gateway提供的是最常用的負載平衡功能,但要和一線大廠的最強功能來比較,當然也沒有到那個等級。有時會被partner或客戶問到一些問題包括

 

  • Edge Gateway有沒有支援iRule:嗯,這個功能非常的先進,乾脆地告訴你沒有

 

  • 有沒有支援Web Application Firewall:嗯,這個功能非常的先進

 

  • 有沒有支援WAN Optimization / Cache:嗯,這個功能(以下省略)

 

  • 有沒有支援SSL-VPN:ㄟ有耶,Edge Gateway有SSL-VPN功能

 

雖然一直回答沒有會有點不開心,但反過來想,Edge Service Gateway能夠提供的負載平衡功能,在大部份的客戶真的已經能夠滿足八九成的業務負載平衡應用了!想像如果臨時有個開發或是測試環境得建立,有個新業務要上線但預算不夠;在這些需要採用負載平衡器的環境,若我們可以”隨需建立”地直接在軟體內產出所需要的負載平衡器與其他網路功能,會有多方便呢?這邊才是NSX內Edge Gateway的真正賣點:當你需要這個網路功能,不囉唆,生一個新的Edge Gateway出來就好。不需要找預算、不需要借設備、不需要等待;You want it? You create it.

 

在一個全球知名的銀行重新建置軟體定義資料中心並採用VMware NSX方案時,對於Load Balancer的政策是這樣的:

 

  • 生產環境考慮到風險、效能以及應用回應時間,仍然要求採用基於硬體的負載平衡器

 

  • 但所有的測試、開發環境全部改用NSX Edge Gateway來提供負載平衡功能,而這家銀行的測試及開發環境的作業機器數目超過全部資料中心的50%

 

最後將我們想在這篇網誌內提供給大家的訊息整合成兩點

 

  • 各位的業務所需要的負載平衡功能,絕大部份其實Edge Gateway都能提供了

 

  • 只要五分鐘你就可以把嶄新的Edge Gateway開好而且使用了

 

歡迎大家來使用Edge Service Gateway的負載平衡功能吧~