近幾年,“軟件定義”是一個很火的話題,仿佛一夜之間數據中心里IT基礎設施都被“軟化”了,而在這一過程中,傳統的硬件廠商無疑受到了強烈的沖擊。“軟件定義”不僅改變了傳統的IT架構與部署、配置模式,也改變著整體的IT基礎設施的發展走向。雖然在數據中心里,“物理的存在”仍然必不可少,并決定了基礎的能力,但軟件定義的能量以及其所展現出的未來潛力已經越來越被重視與認可。
博科公司(Brocade)是業界著名的數據中心網絡解決方案提供商,較早之前,在它已經取得了存儲區域網絡(SAN)交換機市場的絕對領導地位之后,大舉進軍以太網領域,但很快就迎來了軟件定義網絡(SDN,Software Defined Network)的潮流。顯然,博科將與其他傳統網絡廠商面臨著同樣的問題——如何面對“軟件定義”的趨勢,并借助它讓自己獲得更好的發展,甚至進一步確立自己的領導地位?
近日,筆者有幸與博科運營商首席技術官兼首席科學家David Meyer進行了深入的交流,他在不久前剛被任命為主導SDN控制框架的OpenDaylight項目技術指導委員會(TSC)主席,可以說是SDN領域中的重量級人物,同時也肩負著帶領博科走向SDN前沿的重任。
博科運營商首席技術官兼首席科學家David Meyer
網絡的進化狀態話題首先從網絡本身開始,我們都知道對于一個數據中心而言,其主要的IT基礎設施可以分為三大類:計算、網絡和存儲,在很多場合似乎人們更關注計算與存儲領域,而對網絡相對“冷淡”一些,但如今SDN的出現讓網絡開始與其他兩大硬件平臺并駕齊驅,甚至有反客為主的趨勢,畢竟網絡是信息傳輸與IT功能節點(計算、存儲)的連接管道,作為博科運營商首席技術官兼首席科學家,David Meyer顯然也是對網絡情有獨鐘。
“從我個人來看,網絡最讓我著迷的地方是這個網絡它無處不在”,David Meyer表示,“不管是我們現在說到計算機網絡,還是說生物的網絡,我們每天都要用到它。那么對于現在這個社會來說,這個數據網絡是非常重要的,尤其是我們現在提到的,大家比較看中的這個SDN 、NFV(網絡功能虛擬化),還有云技術。那么它們可以使我們現在這種網絡,變得更加的快速,使它變成的更加的高效,這就是網絡的成就,也是對我來說是非常著迷的地方。”
不過,對于一個數據中心而言,計算、網絡與存儲是相輔相成,協同作戰的,從另一個角度講,也是協同進步的。比如計算的虛擬化也必須會帶動存儲新一代虛擬化技術的誕生,并催生網絡虛擬化。對此,David Meyer表示認同,“其實從我們傳統的這個角度來看,在傳統的物理網絡領域,其發展其實已經是比較成熟的了。但我們現在進入了一個新的階段,也就是軟件定義。在這一階段中,可以理解為硬件在應用層面上的全面虛擬化,而這也是最令人著迷的演進,并且它的速度正在加快。”
現在,假設我們把計算、網絡和存儲單純的提取出來,如果我們把它放在一個分界線上,即物理和虛擬的。在物理的時代,這三大平臺已經發展到一種極致。而現在正跨過這個分界線,向虛擬化進軍,那么各自所獲得的成績如何呢? 對于過個問題,David Meyer很有興趣,他表示,“如果用擬人化來形容,網絡虛擬化也就是近幾年的事情,我個人認為它確實處在一個嬰兒時期”,但他強調,在發展的過程中,可能多種方法或多種路徑來復合加速這種發展 。比如在數據中心層面,就已經開始為其做好相應的準備。“OpenStack就是這一典型的例子,它也是一個非常年輕的一種技術,只有四年的時間。現在非常熱的OpenDaylight,也是一個年輕的技術,只有一年的時間。所以,就SDN總體來說,雖然正在快速的發展和演變著,但其實上非常年輕的,相對于現有物理網絡的成熟度,顯然還有很長的路要走。”
OpenDaylight體系架構
對于存儲虛擬化,在David Meyer看來,其相對來說比SDN成熟一些,但也有限。相較而言,計算方面的虛擬化成熟度則是最高的,按David Meyer的比喻,如果SDN是嬰兒,那么服務器虛擬化已經可以算是成年人了。“我們也可以到服務器有著類似的演化過程,在很長一段時間里,服務器虛擬化其實是不可用的,”David Meyer 表示,“它那時還是很笨重的,而現在借助新型的虛擬化容器,它的這個重量可能會更加的輕,跟之前相比也更加的簡便。還有更多的演進,許多公司都在做這方面的事情,所以說它是目前虛擬化中最成熟的,SDN的發展將與之類似,但會更快。”
軟件定義與軟硬件之間的關系回到軟件定義本身這個話題,我們又應該如何定義它呢?在中國IT圈里,有一些人總結出了一個觀點,就是說未來的一些網絡設備、存儲設備,可能都是定制化的X86服務器,通過X86在這一通用平臺上部署相應的管理或功能性軟件,來具備相應專用設備的能力。那么David Meyer又是如何看待這個問題的呢?
David Meyer表示, “對于X86服務器,在其上實現網絡的一些功能是沒問題的,比如負載均衡。但是有一些功能短期還是實現不了的,此外還有就是界面性功能,在將來也可能不太容易實現軟件定義。”對于原因,一方面就是物理與虛擬之間不可逾越的限制,另一方面則是性能方面的需求。顯然,這個問題要涉及到硬件與軟件之間到底是怎樣的關系。
David Meyer仍然先用計算來舉例,其實很多功能最開始就是通過軟件來實現的,因為比較容易,就服務器虛擬化來說,計算方面的資源虛擬化利用就是一個軟件的功能。“事實上,IT研發人員都是會根據需求慢慢的去發現一些功能,先做成一種軟件,然后看是否符合客戶的需求。那如果符合了之后我們再把它放在硬件上,從計算演化的歷史角度來看,其實軟件和硬件就是來回往復、交替前進的,并沒有一個純粹的界線分明的定義。”
David Meyer 進一步解釋,“最開始如果我們比較追求性能的話,那么可能更多的考慮的是用硬件實現,如果我們考慮的是更高的系統靈活性,可能我們更多的考慮的是軟件的問題。”對此,David Meyer早前在思科的工作經歷給了他深刻的印象,“當時我們收集了一些客戶新需求,先做成一種軟件,我們叫這它Slow Pat,為什么叫這個名字呢?因為它當時的運行速度是很慢的,然后我們把這個軟件提交給客戶,看看是不是對方想要的,如果正是他們需要的,我們再把它放在硬件上去實現。”
總之,David Meyer強調所有的軟件都是建立在相應的硬件基礎之上,它是離不開硬件的。所以說到軟件定義,我們還要看它要定義什么東西,有些東西如果更強調靈活性,那么就適合軟件定義,但它的前提是不能影響相應的效率,否則可能還是硬件實現比較好,或者是放在一個更為強大的硬件平臺上來進行軟件定義。無論是計算、存儲還是網絡均是如此。這就對應了上文的話題——軟件與硬件的交替演進。一開始人們可能在追求某個設計時,更多的是從靈活度上去考慮的,最終通過軟件來實現了這種靈活性,但是隨著這個軟件的演進,人們又可能會希望在速度、性能、功耗等方面的表現獲得進一步提升,從而需要更好的硬件。因此,靈活性與性能,決定著軟硬件交替發展的主旋律。
這就引出了另一個問題,當今的軟件定義更多的基于x86服務器來實現,由于它的通用化、標準化而使其有著驚人的裝機量,并擁有強大的生態基礎環境,那么是不是可以說軟件定義就是為x86而生的呢?
“完全不是,”David Meyer給出了明確的回答,“當前的軟件定義大多基于x86服務器,是針對當前環境而言的,因為它的普及度更高,但從原理上講,軟件與硬件之間是分開的,并沒有必然的限定關系,尤其是對于CPU來說。”
結合之前談到的軟件定義的靈活性與最終實現的效率、性能表現來對比,我們可以展開豐富的聯想,比如基于ARM的服務器,甚至是基于IBM POWER或Oracle SPARC服務器,都是可以實現所謂的軟件定義功能,比如將一臺雙插槽/2U的POWER服務器改裝成一臺存儲服務器或是一臺SDN設備,在技術上肯定是沒問題的,只是愿不愿意或值不值得這么做而已。
David Meyer對此表示贊同,不過更為現實的未來則是基于ARM服務器的軟件定義設備,尤其是網絡設備已經走在了路上。“將來不可能所有的軟件定義的設備都是基于x86的,比如負載均衡、IPS(入侵防護)、防火墻等,也都可以在ARM服務器上實現,業界已經開始著手這方面的應用了。”