如果虛擬化使服務器能夠按成本效率和敏捷性需要進行上下調整,那這不正是實現虛擬網絡組件的意義所在嗎?畢竟,虛擬服務器需要進出站通信,而且還需要防火墻的保護以及部署負載均衡。這似乎是最適合使用能夠按需調整虛擬網絡設備的,是嗎?不一定。
很多網絡供應商已經開始通過使用Intel的平臺和硬件產品來減小開發成本。例如,Cisco的ASA防火墻、F5的負載均衡器和Vyatta的路由器。接下來的事情是很明顯的,其中一些此類供應商已經開始為虛擬設備提供產品了。F5已經有它的Local Traffic Manager–Virtual Edition (LTM VE)產品,而Vyatta則宣稱具有一個全面虛擬設備解決方案。雖然VMware在這方面稍微有些落后,但也提供了虛擬防火墻(vShield Zones、vShield App)和路由器/負載均衡器(vShield Edge)。
虛擬網絡設備:關鍵是什么?
網絡設備與服務器不同,它們一般執行高I/O的任務,通過網絡接口以最小附加處理來傳輸大量的數據,并且非常依賴于專用硬件。所有高速路由和數據包轉發,包括加密(IPsec與SSL)和負載均衡,都依靠專用處理器。當一個網絡設備被重新打包為一個虛擬機格式時,專用硬件就失效了,所有的這些任務現在都必須由通用的CPU執行,這有時候會導致性能的顯著下降。
在虛擬設備中部署路由器、交換機或者防火墻可能會直接占用在其他地方可以更好利用的CPU時間--當然,除非您已經充實地預分配了服務器,并且還有大量閑置的CPU處理時間,否則在這種情況下您的規劃將會出現嚴重的問題。
更糟糕的是,在服務器虛擬化解決方案中所使用的虛擬機管理軟件也可以虛擬化網絡接口。這意味著從網絡設備到虛擬化硬件的每個I/O訪問路徑都會經過一個更高特權軟件(虛擬機管理程序)進行環境轉換,它可以使用大量的CPU時間來解碼所需要做的事情,模擬想要的動作。同時,在虛擬機器之間傳輸的數據必須在它們的地址空間進行復制,這會給整個過程增加更多的延遲。
VMware的虛擬機管理程序具有的DVFilter API會帶來一定的幫助,它支持一個可加載的內核模塊,來檢查和修改虛擬機管理程序(vNetwork Data Path Agent)內部或它與虛擬機(vNetwork Control Path Agent)之間傳輸的網絡流量。可加載的內核模塊能夠顯著地減少VM環境轉換的開銷。
虛擬網絡設備發揮作用的位置
虛擬網絡設備可以發揮作用的位置很多。例如,您可以將一個不依靠專用硬件而執行大量CPU密集處理的設備虛擬化。Web應用程序防火墻(WAF)和復雜的負載均衡器就是很好的例子(它們一般是作為Apache Web服務器或者作為Squid反向代理服務器的可加載模版實現,也就不足為奇了)。
同時,如果您正計劃部署多租戶云,那么將網絡裝置作為單擊即可部署的樂高積木組件所獲得的靈活性可能不僅僅可用于證明低于標準的性能。而如果您是按您用戶實際使用的VM/CPU來計費的話,由于這種情況下您將不需要考慮他們所使用的CPU有多少,因此這一點會顯得更為突出。
當防火墻和路由功能在每個虛擬機管理程序中作為虛擬交換機的一部分而實現時,虛擬化網絡也會發揮作用。這可能會導致虛擬機之間出現最優的流量流(不管它們是否屬于同一個IP子網),同時也能解決流量長號問題。可惜,似乎Cisco仍然是唯一使用Virtual Ethernet Module (VEM)功能來擴展VMware虛擬機管理程序交換機的供應商。
雖然有許多的安全解決方案已經部署了VMsafe API,但是目前我所知道的網絡設備(包括VMware的vShield Edge)仍依靠虛擬機來轉發虛擬(或物理)LAN中的流量。