2013年9月3日 星期二

什麼是網絡虛擬化?


在2012年, 網路界最熱門的議題就是Software Defined Network, 但這是一個非常發散的議題. SDN就像很多年前我們談Cloud一樣, 知道怎麼拼, 但老是搞不清楚這倒底在搞些什麼東西. 在2013年, 這些議題感覺稍微收斂了一點, 我們開始陸續聽到, Network Virtualization或是Network Functions Virtualization或是其他類似的討論. 在我所拜訪的許多客戶中, 許多人都問到這些技術的方向, 及未來展望.  當然我很有禮貌的回答了一些我個人的看法, 但根本的來說, 我也不知道那是什麼!

一些新的網路名詞在現今的市場上, 有不同的解釋, 其實訊息很不一致. 所以根本上, 我無法回覆多數人的問題, 如果能有一個比較明確的想法, 而不單只是協定, 或是一個不知道應用支撐的網路架構刻劃..哪這樣我們比較容易能激出一些討論的火花. 

對於我來說, 因為本身工作的關係. 網路虛擬化是一個很明確的主題, 就是"在高度服務器虛擬化的數據中心內, 建立可程式化的網絡架構", 並且"將原本在網絡硬體上轉送的intelligent, 轉移到離服務最近的Server Hypervisor上".




其實每次一談到這個部分的時候, 大家都會對這個說法開始產生相當大的質疑. 就是~
1) 這種作法讓已經管理到快昏倒的網絡變得更複雜了!
2) 軟體的效能怎麼跟硬體相比?
3) 為什麼我們需要這種概念?到底對我的業務有什麼好處?

說真的,  如果您是中小型的數據中心網絡環境, 那第一件事就是, 恭喜你~ 你可以在這邊選擇要不要繼續看下去. 因為你可能碰不到我們所針對的痛點. 如果您是營運商或是中大型的企業, 並且大幅使用Server Hypervisor作為支撐業務的基礎時, 那你可能已經遭遇我們所要談的主題. 

從數據上統計, 在虛擬環境上的虛擬網絡端口已經超越物理網絡端口的數量了. 所以也就是說, 你對虛擬網絡的管理策略的複雜度, 已經遠超於過去傳統網絡的認知及規模. 在我過去15年的工作生涯中, 看過不少大型網絡, 也參與不少數據中心的項目的建立及維運,  唯獨這兩三年在網絡的擴增速度是超越我過去10多年的經驗. 當然這是拜高度虛擬化的結果所賜. 













所以可想而知, 今天對於雲端服務的提供商來說, 在大量使用虛擬化服務器之後, 其實網絡一般來說都在很短的時間走到瓶頸. 首當其衝的就是管理面的問題, 如何管理多租戶的網絡, 並保持隔離, 服務加值, 即時反應租戶對於基礎建設的需求. 這些需求在25年前, 是網路設計者所未考慮到的, 網絡在經過多年演化後, 除了效能及部份功能的增加, 實質上並未有太明確的改變. (註:我在2003年第一次參加並且通過CCIE實驗室的考試之後, 在這10年中, 我在網絡部分空白了數年並專心在應用安全的議題上, 在回頭發現, 其實現今的網路本質運作, 並沒有革命性的概念改變.)

再來就是規模化的問題, 一般非營運商虛擬化的數據中心的環境, 很少遇到這個議題, 但簡單來說, VLAN數量限制, 導致網絡無法繼續有效的擴張. ToR交換機TCAM的限制導致規模化環境的網絡學習中斷, 都些都是在大型虛擬化的數據中心常見的問題.並成為進退兩難的問題.

這是因為如此, 在開始有人想打破傳統網絡的管理框架, 建立一個新的機制, 讓網絡像寫程式一樣, 可以快速產出用戶所需要的結果, 透過變數的定義, 可以自動計算新的需求並執行. 這個概念就是我們熟習的名詞SDN. 但是SDN的發展並不如原先預期的順利, 因為他主旨在於將control panel從硬體網絡設備內脫離出來, 並未考慮到data panel的轉發限制. 所以整個網絡還是侷限在一個特定的區域內, 並且所有data panel的學習都由openflow控制器管理, 所以規模化成為了另一個dead point. 但這樣評論SDN(或是openflow協議), 並不是太公平. 他並非一無是處, 我也看過使用SDN作為流量工程應用的一些案例, 如 traffic redirection, security tap的應用模式, 所以只是在數據中心的整體架構來說, 這個概念在規模及投資的成本上不太適合而已.

但是對於網絡虛擬化的概念來說, 我們可以思考它為創新的網絡架構概念, 它利用今日網絡IP通訊的特性, 並同時考量SDN的經驗所發展出的一個新的方式. 它依然遵循過去"傳統" SDN將control panel 脫離的概念到x86為基礎的controller上, 並且同時透過安裝在Hypervisor內的虛擬交換機, 抽象化網絡data panel的轉發, 使用IP隧道作為端到端的通訊方式(VxLAN, STT, GRE) 等. 讓網絡在一個IP可通訊的物理條件上, 可透過API佈署L2-L4的虛擬網絡topology, 並且向上垂直整合L7的應用需求或是水平整合物理服務器的網絡通訊.  所以從這個觀點來思考, 你可以把你現在個IP網絡, 視為一個大型的網絡背板 (Network BackPlane), 而每一個安裝在Hypervisor內的虛擬交換機視為一張交換機內的Line Card. 這樣, 網絡虛擬化的模型因該在您的腦海裡可以刻畫出來了.




但是如果我們現在回頭看前面大家對我提出的問題, 這樣因該我就比較容易在這回答給各位讀者了:
1) 這種作法讓已經管理到快昏倒的網絡變得更複雜了!
-> 正是因為如此, 你才需要把現在依靠在網絡硬體上的intelligent脫離出來, 透過軟體的模式, 根據用戶/應用/架構的不同時空的需求, 去程式化的計算網絡所需要的能力, 然後再交付虛擬交換機根據更新的flow table去建立網絡通訊連線. 對於物理網絡來說, 因為不再牽涉configuration的intelligent, 所以僅需要維持低延遲, 高轉發的網絡特性. 而於所建立的邏輯網絡來說, 就像您常用的excel試算表一樣, 可以隨意新增/修改/刪除/拷貝您的設定, 然後計算後的結果回直接告訴你結果. 讓服務來引導網絡的設定, 跳脫讓人推著服務上線的概念



2) 軟體的效能怎麼跟硬體相比?
-> 其實這是一個比較大的迷思, 網絡虛擬化從來沒有提及去replace現今傳統網絡設備的價值, 然後完全交付給軟體作為轉發的基礎. 硬體的sillicon的開發在今日已經達到非常成熟的地步, 使用軟體的方式去取代現在硬體的成果, 無疑是腦袋壞去. 在今日虛擬交換機透過與網卡的driver的最佳化處理, 把原本在Server網卡上的效能作有效率的提升,  並且透過今日由成熟的硬體網絡設備所搭建的高速IP交換, 將Tunnel端到端的轉發變得更快速. 所以一台虛擬交換機在Hypervisor內所需要處理只是運行在Hypervisor內的VM, 並不是一個機櫃或是一個區段的流量, 這便是分散式網絡的概念. .

當然上述只提及到data panel轉發的效能, 我這邊也還想再強調control panel的部分. 因為傳統網絡的人員(我跟大家一樣, 也沒多新潮), 很在意data panel的效能. 但是在於網絡虛擬化的議題中, 其實control panel才是關鍵的核心, 也是大家常常忽略的部分. 因為使用一台x86架構的服務器作為整個網絡控制中心的中樞, 未免風險太大. 用兩台x86服務器作為HA, 未免在規模化的條件下又顯得不足, 所以Active-Active的Contrller Cluster便是一個網絡虛擬化急迫需要的技術.  在把這個技術推向服務生產環境中, 我相信這因該是一個不可忽略的主題, 甚至我覺得這個部分是今日所有相關廠商最大痛點. 全世界現在可能僅有VMware/Nicira 或是極少數廠商具有這樣的能力.
* 筆者現今工作於VMware/Nicira事業群, 上述說法可能有點老王自賣自誇, 但這些訊息的確是在實務上經過了多次經驗的檢視, 及與市場調研的良心建議. 各位看倌可斟酌參考.

3) 為什麼我們需要這種概念?到底對我的業務有什麼好處?
-> 對於營運商的雲端服務來說, 有幾個重點
 *) 自動化:  如果VM已經可以做到request on demand, 那網絡需要跟隨著服務的需求自動建立/更新/刪除. 不同步服務的網絡支援, 其實第一個影響的就是OPEX, 接下來可能又是客戶在等待上使用經驗, 最後累死的可能還是那些一起多年在這網絡領域工作的鄉親父老們.
*) 規模化: 軟體定義網路架構的方式, 最大的優點就是它比今日任何一個以物理網絡支撐的數據中心網絡的規模來的更大, 透過分散式網絡方式, 把負載分散到需要工作的單位, 對於營運商來說,  規模化成為商業成功不可或缺的一個要素
*) 管理簡化: 如果每一個交換機上的control plane是為一個大腦, 那網絡管理員在一個數據中心內就需要管理千百個對話, 就像股市操盤手在開盤時跟股市交易員互動的那樣瘋狂. 透過網絡虛擬化這種集中管理, 分散工作的機制, 就像交通的行控中心一樣, 可以Controller Cluster上就掌握整體網絡的狀態, 並且在錯誤發生的時候, 可以迅速定址錯誤的原因及排除.
*) 開放化: 因為營運商的數據中心內不再像過去只提供空間, 帶寬.. 等基礎的服務, 反而期待更多的基礎建設服務的提供給用戶使用. 每間商業產品公司有它私有領域的專長, 所以結合多家的產品技術並建構在開放的網絡平台上, 成為豐富營運商雲端服務一個很重要的賣點之一.  對於網路虛擬化概念來說, 這是因該也是必要的. 我想沒有一個營運商樂意看到自己只能使用一家著產品線, 或是完全無法朝多元化的整合前進.

-> 以上的功能都是針對營運商的, 對於企業來說, 有什麼好處
對於企業應用上來說, 今日主要都是針對它中大型的企業, 畢竟需求到達一定程度時候, 這個技術才顯現出實際的價值. 我相信以上三點對於中大型企業來說. 或多或少都有應用的場景. 在過過去兩年密集的在亞太地區商務旅行裡, 以訪談多數的企業用戶的經驗上, 看到了另一個可能性的機會
****** 企業應用發展流程 ********
在我過去訪談的中大型客戶裡, 多數人有著一個共同的問題. 當我們準備一個新的服務時, 我們需要花費很多的時間在測試, 驗證,  甚至上到生產環境上, 因為公司內部的網路是一個高度管控的策略, 所以平均一個項目可能需要浪費數個月的時間在等待而無法前進. 這對於企業來說的確是一個非常麻煩的問題,  這已經牽涉到生產力和效率的問題了. 更不用說上到生產環境之後, 連一個小的改動在考慮整體網絡的顧慮下,  比需等待數日/周進行評估. 對於他們與時間競賽的商業活動來說, 這的確成了累墜. 其實這個問題在eBay便曾是一個非常痛苦的問題, 無效率IT基礎建設流程, 大幅拖延了專案的進行, 直到引入網絡虛擬化的概念. 在不影響現行網絡運作及安全規範下, 大幅縮短專案開發時程, 同時也加強了整體公司在IT管理的統合能力.

這篇以什麼是網絡虛擬化為主體的文章, 是希望藉由這個管道, 讓大家能多了解現今實際技術的發展現狀及方向. 雖然舉了一些我比較熟習的例子, 但不重在商業產品推廣, 重點是希望能幫助大家不再在市場名詞中迷惑. 透過我有限的知識幫助大家能更清楚的了解新一代網絡的思考方式.  如果有任何的想法和意見, 都歡迎在我剛新成立的blog給予指教.


2 則留言:

  1. Hello, Rick
    有空在過去拜訪您啦~

    回覆刪除
  2. 我老婆最近快生了, 所以這個月都在台灣, 有空約出來聊天啊.

    回覆刪除