隨著關于網絡功能虛擬化(NFV)的討論持續升溫,特別是在移動服務提供商市場,運營商正在嘗試虛擬化演進分組核心(EPC)中的關鍵功能,諸如服務網關(SGW)、PDN網關(PGW)和移動性管理實體(MME)。通過利用現成的x86平臺運行這些功能,他們可以從硬件系統中分離軟件軌跡,并實現一定程度的供應商獨立性。至少原則上是這樣。
挑戰變得越來越復雜。雖然一些功能只需要相對較低的帶寬,并且不需要高容量和高處理能力,但是其他功能需要。對于那些功能來說,x86平臺的魅力在于易于擴展和彈性開通能力。但這也是事情開始變得有點棘手的地方。
在許多情況下,虛擬化環境中的擴展性能需要對數據包進行特殊處理。例如,在使用單根輸入/輸出虛擬化(SR-IOV)等技術執行管理程序和虛擬交換旁路時。通常,企業將使用專門的網絡接口卡(NIC),結合硬件加速或NIC級卸載以提高性能。但是要利用這些技術來加速和改進性能,企業需要使用這些特定的卡,這樣,就會在軟硬件方面帶來一定程序被鎖定的情況。
換句話說,一旦運營商部署了加速技術,他們就不能簡單地將一臺服務器交換為任何其他基于x86的服務器。相反,他們需要繼續與提供硬件加速和NIC卡的同一家供應商合作,甚至可能從該供應商處購買產品,以確保他們的軟件可輕松遷移至具備硬件輔助功能的新一代NIC卡。
接下來,使用NIC卸載、管理程序/內核旁路和其他技術只能提升少量性能時,就需要通過多個服務器來擴展性能了。如果被虛擬化的網絡功能是無狀態的,則相對容易。然而,如果需要在橫向擴展的NFV解決方案上保持狀態和負載平衡,則該過程變得更復雜。在后一種情況下,企業將需要一個負載均衡器,以讀取與網絡功能相關的協議,關聯各個接口的流量(如果需要),然后在虛擬化EPC功能的橫向擴展實例之間智能地平衡負載。
這個過程讓我想起了早期的電子商務和商業互聯網,那個時候也是從運行x86的web服務器開始的。隨著網站和Web應用的流量增長,那些Web服務器和應用程序需要擴展。這就需要流量在橫向擴展解決方案之中達到負載均衡。對于電子商務流量,這需要諸如狀態負載均衡器之類的功能來跟蹤會話和cookies,以及向Web應用程序或服務器的正確實例發送正確的流量。雖然這最初可以通過基于軟件的負載均衡器實現,但是隨著流量增長,該過程就需要一個專用設備,可以執行各種任務,包括負載均衡、運行狀況檢查和負載重新分配等。隨著時間的推移,這導致了具有現場可編程門陣列(FPGA)和硬件輔助功能的專用負載均衡器的出現,并最終實現了應用交付控制器。
網絡功能虛擬化(NFV)世界是否朝著同一個方向發展呢?如果是,誰將為所有不同的虛擬化網絡功能構建負載均衡器?如果每個供應商都提供具有不同虛擬化網絡功能(VNF)的解決方案,用于在橫向擴展環境中進行負載平衡,那么每個虛擬化EPC功能是否會有特定供應商的負載平衡器呢?
兩個場景(即,使用專用加速引擎和NIC用于服務器內的性能改進,以及使用專用的狀態負載均衡器設備在服務器之間分配流量)一起使用,引發了一個問題:NFV是否會走向更緊密的供應商綁定之路,而不是供應商具備更大的獨立性?在當前的發展軌跡中,結果是肯定的。
注:本文最初發表于SDX Central