談到Citrix的產品,我們較容易想到的,通常是Thin Client、Terminal Services、Remote Desktop之類的個人電腦桌面集中化管理應用。

在2007年該公司併購XenSource後, Citrix極力發展虛擬化相關應用之下,推出了XenServer伺服器虛擬化平臺,該公司在桌面虛擬化領域裡,也提供了很多種解決方案——目前歸類在此的產品,就有XenDesktop、XenApp、AppDNA、XenClient、Citrix Receiver、VDI-in-a-Box、GoToMyPC。但該公司所著眼的層面,並不只是伺服器和使用者桌面環境的管理,還包括網路∕應用程式效能最佳化與安全管理、資料中心與雲端環境基礎架構的建置,並提供網頁式協同作業環境,以及跨裝置的檔案存取與存取的SaaS雲端服務。

其中,原本定位在應用程式傳遞管理(Application Delivery Controllers)的NetScaler系列產品,就是Citrix專門針對網路與安全的解決方案,這類產品功能涵蓋的領域,包括L4到L7層的伺服器負載平衡、SSL傳輸加速、網路與應用程式加速。此外,NetScaler系列也提供SSL VPN、網站應用程式防火牆,以及連接不同資料中心之間網路等功能。

基本上,NetScaler產品本身的形式,是整合軟體與硬體的一套設備。就搭配的功能多寡而言,Citrix將其分為白金、企業、標準等三種版本的授權。而產品布建的形式上,又分為MPX系列硬體設備、VPX虛擬設備、SDX整合式設備。

NetScaler的應用程式服務傳遞架構


提供3種擴充系統性能的架構
NetScaler上一次改版,是在2011年3月推出的9.3版,當時最重要的進展,是開始加入DataStream、AppFlow等技術,Citrix隨後也發表了SDX系列設備。

以DataStream來說,當NetScaler部署到資料庫伺服器的前端,DataStream可基於接受到的SQL查詢內容,以自動判斷的方式,將資料庫存取的請求,分散到所有資料庫伺服器上,確保應用程式伺服器和網站伺服器之間的流量,能以最佳的方式分散流量。而管理者如要區隔網路流量,他們可以根據SQL查詢中的資訊,或基於資料庫名稱、使用者名稱、字元編碼與封包大小等條件

我們也可以設定負載平衡的切換,使其基於負載平衡的演算法來切換需求,或精心製作交換的條件——管理者可以設定內容切換(content switching),以便使系統能基於SQL查詢參數來判斷,例如姓名、資料庫名稱、命令參數。

而AppFlow,是指NetScaler設備控制了資料中心內的應用程式流量,它會收集Flow和使用者連線層級的資訊,以監控、分析應用程式效能。AppFlow在傳送這些資訊時,會採用IPFIX(Internet Protocol Flow Information eXport)的格式。在AppFlow上,Citrix也定義了新的資訊元件來展現應用程式等級的資訊。

傳輸上,AppFlow都用UDP作為傳送用的協定,它會傳送NetScaler所收集的資料、Flow記錄,以及單個或多個IPv4收集器,而這收集器還可以匯聚Flow的記錄,並產生即時或歷史報表。交易層級的透明性也是AppFlow能夠提供HTTP、SSL、TCP和SSL_TCP Flow資訊,管理者可以採樣或過濾Flow的類別,以便監控。在雲端環境中,NetScaler也可透過Cloud Bridge,用L2通道或IPsec通道來連接私有雲與公有雲,讓彼此透通。

上述這些機制繼續發展之餘,NetScaler系統軟體目前最新版本是10,最主要的特色是支援Citrix統稱的TriScale技術,主要目的是讓用戶能夠更彈性地擴充系統效能,而不會受制於傳統的定量使用模式。TriScale包含下列3種擴充模式:向上擴展(Scale Up)、向內擴展(Scale In)和向外擴展(Scale Out)。向上擴展:可依照所需用量成長而逐漸升級,或因應短期暴量需求而暫時升級

這是指NetScale設備升級的彈性(Elasticity)。若用戶需要擴展Citrix NetScaler產品所能負荷的使用,除了以傳統的方式汰換掉不合用的硬體設備,或者在採購當時就納入後續成長的需求預估(over-provisioning),現在,這套產品可以透過所謂的按需求付費(Pay-As-Your Grow)來升級,以這種基於軟體的授權模式,來實現設備使用上的彈性。

簡單來說,用戶在採購所需設備時,能夠先就近期的效能與容量需求來評估,而Pay-As-Your Grow允許擴展的程度,最多可達原來產品的5倍。

這種授權模式所涵蓋的設備效能範圍也很大,最小可針對10 Mbps吞吐量的設備(例如如NetScaler VPX-10可升級到3Gbps吞吐量的VPX-3000),最大擴充到50 Gbps(例如吞吐量20Gbps的NetScaler MPX/SDX 17500,可升級到50 Gbps的MPX/SDX 21500)。

Pay-As-Your Grow主要針對日常使用的擴展,因此,用戶原本所建置的NetScaler系統仍有用武之地。若面臨特別繁忙狀況,但系統使用尖峰只會維持一段時間,例如業務旺季、會計年度結束總結算,Citrix另外提供Burst Pack,這是一種為期90天(相當於一季)的限時容量擴展方式,讓既有的NetScaler系統簡易地升級性能,藉此處理用戶預期會爆發的網路流量,但又不需要為這種暫時性的暴量需求而長期過量地投資。

不過,對有些企業或單位來說,業務尖峰時間可能不到90天,這樣的授權時間有可能會太長,Citrix既然強調能做到隨需擴展,若他們能提供更短時間的租期,用戶實際使用上會更有彈性。

同時,對於NetScaler的3種產品形態(MPX、VPX、SDX)來說,上述這兩種擴展模式都能夠適用。但它們並不是今年才冒出來的特色,Pay-As-Your Grow是在2009年開始出現,而Burst Pack是在2010年推出。

此外,這樣的升級模式背後還是有一些玄機。Citrix在NetScaler各型號設備所能負荷的吞吐量,主要是用軟體授權方式加以限制,若對於NetScaler效能需求不斷提升,不論我們用Pay-As-Your Grow或用Burst Pack,終究還是會碰到升級天花板而不得不換機。

例如,在NetScaler 的VPX-10/200/1000/3000和MPX 7500/9500中,它們的吞吐量上限都是3Gbps,MPX 8200/8400/8600是6Gbps,MPX 10500到15500是15Gbps,MPX/SDX 11500到20500是40Gbps,MPX/SDX 17550到21550是50Gbps。

NetScaler SDX設備採用的SR-IOV網路架構
在Citrix NetScaler SDX設備中,整合了XenServer、Intel VT-d和VT-C、SR-IOV,NetScaler VPX設備對透過Virtual Function的機制,網路的存取可跳過Hypervisor,讓虛擬機器可直接存取。
向內擴展:整合伺服器虛擬化技術,讓單臺實體設備當做多臺獨立的虛擬設備使用

這主要是指NetScaler SDX的應用,Citrix透過XenServer伺服器虛擬化技術的應用,可將多臺NetScaler獨立設備整併到單一硬體設備,Citrix認為這可以達到簡化網路架構的效果(Simplicity)。目前SDX系列設備中,最多可同時執行40個實例的機種,有SDX 17750、19550、20550、21550等4臺。

以往,為了因應多租戶環境的使用,許多網路設備大多是以單一實例(Single Instance)的方式切割成多個部分,再配置給不同用戶使用,然而這種共用單一實例的方式,並沒有辦法真正做到隔離,例如處理器與記憶體資源,系統運作上也等於彼此相依,甚至會受制於實體設備的狀況,而影響網路服務無法做到高可靠度。

現在,Citrix藉由虛擬化技術的應用,將多個NetScaler獨立的實例執行在MPX硬體設備,而建構出SDX系列產品。如此,能使單一設備可同時承載多個NetScaler實例的運作,不僅每一個實體可以獨立分配所屬的虛擬硬體資源,例如處理器、記憶體、SSL晶片、網路卡,而且,實例本身所搭配的NetScaler系統的軟體環境(如版本),也可以彼此不同;同時,這些實例的運作上,也能夠套用當前虛擬化環境下,所經常實施的高可用性機制。

由於SDX可達到整併多臺NetScaler設備的效果、資源可彈性調配,也等於一併解決了原本個別NetScaler設備使用率低的狀況。

值得一提的是,MPX和SDX設備現今所採用的是Intel的Xeon 5600系列處理器平臺,其中支援了I/O虛擬化技術,例如VT-d(Virtualization Technology for Directed I/O),同時,這些設備所搭配的網路埠介面,也都是Intel的GbE或10GbE等級的網路卡,它們也支援VT-c(Virtualization Technology for Connectivity)。

而SDX所使用的Hypervisor(Citrix XenServer)目前也支援這兩種規格,所以可以從VT-d透過直接記憶體存取的對應方式(DMA Remapping),將I/O裝置直接配置給虛擬機器;並且,利用VT-c所應用的SR-IOV(Single Root I/O Virtualization)規格,將個別的I/O處理,跳過虛擬機器管理員(VMM)的虛擬交換器,直接配置給不同虛擬機器,因此將更能善用網路卡硬體效能,並且確保不同虛擬機器的網路存取,是各自專用且彼此隔離的。

因為採用了伺服器虛擬化的方式,因此管理者對於SDX上的多個NetScaler實例,可以執行啟動、停止、重啟、刪除等動作,也可以針對指定的實例予以升級,或設定系統配置、資源利用率。

以NetScaler SDX最高階的機型21550來說,硬體的部份上,它和MPX 21550一樣配置了2顆Xeon x5680處理器、96GB記憶體,以及8個10GbE SFP+規格的網路埠,就負載的性能規格而言,對於HTTP傳輸的吞吐量(Throughput)皆號稱可達50Gbps,SSL傳輸的吞吐量為11Gbps,但MPX 21550主要是以原生性能,來針對單一用戶需求,SDX則可同時執行40個NetScaler實例。

整體來說,若在多租戶環境應用NetScaler,這3種產品型態可針對不同租戶用量需求。例如MPX可讓多租戶共享一臺設備的資源(Shared Mode),VPX和SDX可用虛擬化隔離方式,讓單臺設備來對應單一租戶(Isolation Mode),或用資源池的方式,讓單臺設備供應租戶專用或讓多租戶共享(Mixed Mode)。

若應用在CloudStack平臺上,NetScaler可以依伺服器連線負荷,自動調整虛擬機器資源。在那樣的環境下,NetScaler將持續偵測虛擬機器的處理器、記憶體、吞吐量、反應時間,若發現有異常行為出現,NetScaler會通知CloudStack,讓它基於自動擴展(AutoScale)的機制,將新的虛擬機器啟動(auto-provisions),隨後NetScaler也會自動增加服務的資源,並予以綁定,接著,相關的流量和負載就會開始由NetScaler新增加的服務,以及先前新增的虛擬機器來分攤。

NetScaler支援CloudStack的負載平衡自動擴展機制
向外擴展:可串接各種形態的NetScaler設備,讓多臺設備當做單臺設備使用

上述兩種擴展機制,都是Citrix在之前就開始發展的,而向外擴展是到了NetScaler 10推出後才出現的。用戶可將NetScaler設備串連起來,形成叢集(TriScale Clustering),不分實體或虛擬形式,最多可連結32臺NetScaler設備,吞吐量最高可超過1Tbps(例如32臺都是由SDX 19500組成,由於每臺SDX設備的HTTP流量吞吐最高為35 Gbps,所以可超過1Tbps)。

而且,這樣一個由多臺NetScaler設備所組成的叢集環境,可視為單一節點、系統(單一虛擬IP Address位址),並且用戶能透過單一政策的方式來管理整個環境。

就高可靠度而言,相較於主動∕備援的作法,TriScale Clustering可以提供主動∕主動的應用模式,當叢集中的一個節點故障或無法上線,原本它所要處理的流量會自動透過TriScale技術的通用流量分配演算法,配置到其他仍在運作的節點上,同時,這個叢集也設定為備用節點,維持在被動、待命的狀態,等主要節點發生故障時,即自動上場替代。

在向外擴展的使用模式中,NetScaler設備之間可以無縫連結,做到線性擴充,設備因此不會有閒置的狀況。例如,若用向內擴展的方式,建置了一臺SDX設備來替代原來的NetScaler設備後,汰換下來的MPX和VPX設備還可以這種方式利用。

然而,NetScaler叢集內外之間的網路流量,是怎麼傳輸的?

基本上,會將實體的網路連線透過建立邏輯群組(logical grouping)的方式,形成3種通道:用戶端資料通道(Client Data Plane)、伺服器資料通道(Server Data Plane)和叢集內部通道(Cluster Backplane)。

以用戶端資料通道來說,它是指NetScaler叢集和應用程式用戶端電腦∕裝置之間的實體網路連線,而在這裡,通常會藉由第二層(L2)交換器的方式匯聚,形成邏輯群組。

同理,NetScaler叢集和後端伺服器之間的實體網路連線,也會以相同方式匯聚,形成所謂的伺服器資料通道。而在NetScaler叢集內的各節點之間,它們彼此溝通的網路連線則稱為叢集內部通道。

這些節點都位在相同的子網路環境,並且經由乙太網路後端通道(Ethernet backplane)來連結。這個後端通道是整個叢集系統的骨幹網路,其中包含每一個節點和後端通道交換器之間的實體網路連線。

NetScaler的叢集架構:TriScale Clustering
隨第10版推出的其他功能

除了TriScale技術,NetScaler 10還包含了超過160種新功能與改進的部份。

全新的部分,像是ActionAnalytics(在之前被稱為Stream Analytics),提供即時監控與自我調適的政策控管,使NetScaler收集到的原始資料能夠轉換成可操作的資訊,以便自動調配應用程式與服務傳遞的政策。在NetScaler設備中,這項功能主要基於管理者定義的條件去收集即時狀態,同時會自動執行即時流量最佳化。


ActionAnalytics整合即時監控與自動負載平衡
對於動態的網站或應用程式的執行,我們很難用手動作業的方式,去即時收集統計資料並予以最佳化,而基於NetScaler 10現在提供的ActionAnalytics,可以將這些工作自動進行。

另一個是針對DataStream技術的改良。如前所述,針對資料庫系統的負載平衡,NetScaler在2011年時推出了DataStream,目前可專門為微軟SQL Server與MySQL環境,提供了SQL 連線複用(connection multiplexing)、擴展TCP連線數,以及具有SQL感知能力的負載平衡、SQL讀寫分離、高可用性等功能。

而在NetScaler第10版中,對於DataStream負載平衡機制挑選資料庫伺服器的方法,管理者可以自行設成依照用戶端(應用程式伺服器或網站伺服器)取得的Token而定,而這些Token可以用SQL語法來定義。如此能讓採用相同Token的經常性存取需求,交由同一臺資料庫伺服器處理,直到負荷到最大量或連線逾時。

此外,我們還可以設定讓NetScaler設備在使用DataStream機制時,也能產生稽核記錄,提升安全性。在設備管理上,NetScaler也可以設定當DataStream的請求率達到定義的上限時,就自動發出SNMP trap的警報。

在NetScaler支援的網站應用程式防火牆的功能中,第10版推出後,系統在記錄檔產生時,除了採用本身專屬的格式,管理者也可以設定成產生CEF(Common Event Format)格式。有許多資安設備目前都支援CEF,而NetScaler支援這個格式,可以讓應用程式防火牆記錄檔分析的工作變得更容易。

在應用程式防火牆的自我學習機制裡,NetScaler目前也支援跨站請求偽造表單標記(CSRF Form Tagging)的安全檢查,一旦啟用這個功能,對於違反這個安全檢查機制的網頁,NetScaler會產生一份網址清單。文⊙李宗翰


網站應用程式防火牆支援資料遮罩功能
在NetScaler網站應用程式防火牆的組態設定中,管理者可以設定讓系統來防護包含個人敏感資料的網路傳輸內容,並自動加上遮罩。如信用卡號、銀行帳號、身分證字號,也可透過正規表示式來自定格式。


Advertisement

更多 iThome相關內容