linux Ubuntu wordpress 微软 mysql java 程序员 编程 开源 Firefox google Android apache Python shell centos 云计算 nginx php Windows

軟件定義 硬件驅動,雲計算的Hybrid時代

ZD至頂網服務器頻道 04月01日 新聞消息:軟件定義其實隱含了對硬件平臺的苛刻要求:一方面要標準化,有足夠大的生態環境支持,軟件才能“一次編譯,到處運行”,降低開發成本,不受硬件差異的羈絆;另一方面,還要保持足夠快的發展速度,不斷提高性能,並將新的功能普及,讓軟件直接受益於硬件升級。前者限定了後者,後者又決定了前者——夠快則促進,過慢則有被拋棄的風險。過去幾年軟件定義的迅速普及,英特爾自至強E5平臺問世以來提供的全方位產品和技術革新是直接的推動力,通過軟件定義的計算,成就了軟件定義存儲和軟件定義網絡。

3月19日,Mark Zuckerberg通過手機在自己創立的社交網站上放出了他跑過天安門的照片。“小紮是怎麽做到的?”成了國人熱議的話題,中國移動的專家寧宇還為此在中國最大的移動社交平臺上專文普及了相關的網絡基礎知識。

软件定义 硬件驱动,云计算的Hybrid时代

似乎只有名人效應,才能引起大家對ICT基礎設施的興趣。2014年10月,小紮在清華大學秀中文驚艷,贏得好評一片;而同期Facebook公司捐給清華大學交叉信息研究院OCP(Open Compute Project,開放計算項目)整機櫃服務器的協議簽署,直至第一批設備交付,都少有人知。

软件定义 硬件驱动,云计算的Hybrid时代

圖:2015年Facebook交付給清華大學交叉信息研究院的首批約100臺OCP服務器及存儲(JBOD)設備,拍攝於2016年2月。

類似的事例是AlphaGo完勝李世石,專業圍棋手深感震驚,AI從業者歡欣雀躍。深度學習儼然成為大眾話題,算法的關註度遠遠高過AlphaGo的硬件配備。在微信朋友圈中有一條評論,大意是李世石的大腦運轉才消耗多少能量,以單位功率來計算,AlphaGo還差得遠。

但是,大眾對人工智能的恐慌,很重要的一點是機器的發展速度比人類本身的進步要快得多。上一次“人機大戰”過去還不到20年,運行在手機上的國際象棋軟件就可以做到同樣的事了——算法等軟件層面的進步肯定是有的,更令人無法忽視的是硬件的改天換地。

相比於只會下國際象棋的“深藍”,現在的手機可謂多才多藝。以此來看,也屬於一種“軟件定義”。大家已經習慣了硬件性能“摩爾定律”般的持續躍升,以至於會忽略這才是“軟件定義”得以實現的重要前提。

三大目標與兩大原則

3月9日在美國矽谷召開的2016 OCP峰會(OCP U.S. Summit 2016)上,Facebook負責工程和基礎設施的副總裁Jay Parikh在主題演講中表示,可擴展性(Scalable)、效率(Efficient)和靈活性(Flexible)是Facebook關註的目標。相信這也是絕大多數現代公司對IT基礎設施的要求。

為了達成上述目標,Facebook在構建基礎設施時的選擇依據有兩條,即:標準,開源。

標準可以分為廠商標準和行業標準。廠商標準很大程度上是打出來的標準,屬於事實標準,如x86;行業標準一定程度上是談出來的標準,也要有實力作為後盾,如NVMe。

不論是哪一類標準,目的都是形成一個盡可能大的生態,降低硬件和軟件的開發成本。開源也有同樣的作用——很難說Linux比Unix更出色,但Unix幾乎每個處理器平臺都有一個版本,高度碎片化,最終在生態系統規模上,完全無法與後起的Linux抗衡。

標準化,使開發者能夠從硬件平臺的升級中獲得性能收益,而又不受硬件差異的限制;開源生態,降低了開發者的學習成本,極大地拓展了人才供應。硬件是軟件的助推器而不是囚籠,為軟件定義奠定了基礎。

存儲的硬件時代

早期的存儲系統,包括我們常說的SAN(Storage Area Network),很大程度建立在RAID(Redundant Array Of Independent Disks,獨立磁盤冗余陣列)技術之上,即把多個硬盤聚合為整體,提供更高的性能和更大的容量。存儲系統的計算能力很弱,很長一段時間都用基於PowerPC(PPC)的ASIC滿足RAID運算的需求。

擴展性:在上世紀90年代,以太網還很不成熟,速度慢,InfiniBand(IB)則尚未誕生。為了高速而可靠的傳輸數據,為存儲系統開發了專用的網絡技術(如Fibre Channel,fc),這也是SAN這個名字的由來。因而,縱向擴展(Scale-up)是存儲系統擴容的主要方式,即用更大的存儲系統來替換較小的存儲系統,以獲得更大的容量和更高的性能,而不是把多臺存儲系統互連起來的橫向擴展(Scale-out),擴展能力受限於單臺存儲系統所能達到的規模。

效率:在互聯網公司成為主流之前,傳統企業應用的數據量不算大,增長也不快。塊存儲是主流,文件存儲次之,對象存儲還差得遠。相比效率,市場更在乎可靠性和可用性,存儲系統重點發展的軟件功能包括鏡像和復制,一定程度上是犧牲效率換取可靠性和可用性。

靈活性:存儲系統的功能相對單一,由於計算能力較為昂貴和稀缺,塊存儲(如SAN)和文件存儲(NAS)通常依賴不同的硬件實現。

總的來說,除了帶有大量的硬盤,十多年前存儲系統的控制器在技術架構上也與尚未占據統治性地位的x86服務器很不同,有些實現更像大機或小機。產品的功能,很大程度上受到硬件形態的限制。

三大要素促成軟件定義存儲

2000年之後,隨著互聯網和虛擬化等應用的興起,文件和對象數據呈爆發性增長態勢,帶動存儲需求的上揚。一方面,是存儲需求的普及和平民化;另一方面,是IDC等分析機構指出,全球所需存儲的數據量增長速度明顯超過出貨的存儲容量,需求將持續超過實際供給。

也就是說,要以同樣或更少的容量、(相對以前)明顯更低的價格存儲更多的數據,效率成為存儲行業關註的重點。存儲行業迎來一輪創業高潮,3PAR和LeftHand(後被HP收購)、Equallogic和Compellent(後被Dell收購)、Data Domain和Isilon(後被EMC收購)及XIV(後被IBM收購)等存儲新星集中湧現。

上述創業公司主打存儲的軟件功能,以自動精簡配置、自動分層存儲、重復數據刪除等軟件功能提高存儲的利用率,優化性能和成本。這些軟件功能都需要比較強的計算能力,基於PowerPC的架構逐漸力不從心,有些產品以專用ASIC來加速特定的軟件功能。但在軟件功能越來越豐富的情況下,專用加速硬件無疑有其局限性。

隨著x86架構逐漸成為服務器市場的主流,各大廠商的新一代存儲系統紛紛轉向基於英特爾至強處理器的平臺,後者也集成了RAID 5處理所需的XOR硬件加速引擎作為輔助功能。以IBM為例,主導開發了基於英特爾至強處理器的Storwize V7000系列,替代之前基於XOR ASIC的DS5000系列中端存儲系統。從IBM研發的角度來看,x86 處理器加上類似Linux的kernel,構成一個非常穩定成熟的平臺,而且十分適合用在功能非常豐富的產品裏,因為在此之上做軟件產品的開發,周期會比較短,市場上的人才也比較容易找到。也就是說,既提高了存儲的效率,也幫助改善了開發的效率。

2010年以後,存儲大廠的主力產品,基本都已轉向以至強為代表的x86平臺。在這樣的基礎上,存儲介質和網絡技術的換代,為軟件定義存儲鋪平了道路。

基於閃存的固態盤(SSD)取代硬盤驅動器(HDD),是存儲行業發展的轉折點。SSD的IOPS和延遲性能可以達到硬盤的數百倍,這意味著我們不需要堆積上千個硬盤去獲得較高的性能。高端的服務器只需要插上幾塊NVMe的SSD,就可以獲得堪比高端磁盤陣列的功能。

當然,就單臺設備而言,磁盤陣列在容量、可靠性和可用性上還具有優勢。但是,通過多臺x86服務器集群的方式,Google等大型互聯網公司早就解決了容量/性能擴展和整體可用性的問題,如著名的Hadoop。近年來,以太網的發展速度已經超過FC(如40Gbps vs. 32Gbps),加上可以明顯縮短訪問延遲的RDMA(遠程DMA)技術,使得分布式存儲的橫向擴展(Scale-out)更為成熟,在可擴展性上比傳統縱向擴展更具潛力。

從計算平臺,到存儲介質和網絡互連,存儲系統的硬件架構正與服務器高度趨同。那麽,區別在哪裏?軟件!有了高性能且通用的硬件平臺,無需改動硬件架構,安裝或應用不同功能的存儲軟件,便能滿足相應的存儲需求,具有高度的靈活性,這就是軟件定義存儲的本質。

至於是不是分布式存儲,或者一定要橫向擴展(Scale-out),倒並不是那麽重要。關鍵看用戶的具體需求,就像前面一直強調的可擴展性、效率和靈活性,根據具體情況去選擇孰輕孰重。泛泛而言,軟件定義存儲提供的是一個各方面都更好的可能。

SDI之SDN/NFV

軟件定義基礎架構(SDI)的發展,為電信運營商和公有雲提供商的業務帶來了顯著的加速效果。

軟件定義網絡是最早商業化的軟件定義領域之一,開放的x86平臺+開源的Linux,共同為軟件定義領域提供了理想的平臺。從某種角度講是基於英特爾架構的x86服務器擁抱開源Linux後產生的一個巨大的商業空間。

最早使用軟件定義網絡技術的其實是用戶——傳統網絡設備依賴性最強的電信運營商,而在今天雲計算大潮中,積極推進SDN(Software Defined Network,軟件定義網絡)的也是雲計算領域的提供商。

為什麽電信運營商和雲計算領域如此積極的推動SDN的發展呢,因為傳統的網絡設備使用的ASIC、DSP等核心芯片都掌握在少數幾家巨頭手中,是封閉的平臺,用戶只能基於這些芯片定義的功能來使用,可是在雲計算的大環境中,各類新型的應用層出不窮,應用模式千差萬別,這些傳統網絡設備的功能大都固化在硬件平臺上,缺乏靈活性。

早期的網絡設備都是基於專有芯片、專有系統的封閉式產品,用戶只能在設備供應商所提供的功能和服務範疇內使用,這些專有設備因為封閉的生態體系,因此生產數量少,價格自然昂貴,就像Unix小型機一樣,屬於封閉系統。基於英特爾架構的x86平臺目前已經在絕大多數計算環境中成功的取代了小型機,依靠的就是開放架構+開源系統,當然,x86計算性能的提升是關鍵。

软件定义 硬件驱动,云计算的Hybrid时代

圖註:SK電信提出的全面轉向IT網絡架構的思路圖

在2016年3月的OCP大會中,老牌電信運營商at&T和SK都提出了SDI的概念,他們使用基於英特爾至強處理器的服務器平臺+開源的Linux系統,來解決傳統ASIC、DSP和FPGA難以解決的靈活性問題。他們提出的SDN/ NFV(Network Function Virtualization,網絡功能虛擬化)在靈活性和易用性上較傳統網絡設備有巨大的提升,而且靈活的部署擴展能力也更符合雲計算時代網絡快速部署和調整的需求,同時SDN/NFV的應用降低了大規模業務部署時的復雜度。

從電信運營商和公有雲提供商的角度來看,未來的SDN/NFV方案將由開放的x86標準服務器+開源Linux環境來構建,具有系統開源、易構建,接口標準化等特點。自從2009年英特爾推出集成內存控制器的SNB架構處理器平臺後,轉發等關鍵的網絡評估性能追上了傳統網絡設備使用的ASIC芯片,x86的強計算能力也成為開源Linux平臺的天然合作夥伴。

基於開放x86標準服務器和開源Linux的平臺具備了開源特性和標準接口的優勢,英特爾也推出了DPDK來優化網絡性能和虛擬化應用,大量網絡廠商從2010年後就在這個開放開源基礎平臺上,來構造高性能、可編程、低成本的SDN架構。

伴隨x86平臺的發展,業界逐漸流行使用雙路至強服務器來作為SDN/NFV的平臺,而從2010年到今天的6年時間裏,面向企業應用領域的至強處理器系列從雙路8核(雙路的英特爾至強5600產品家族)快速發展到最新一代的至強處理器E5 v4的雙路44核88線程的高性能計算平臺。且先不論平臺的計算性能提升多少倍,單就多核的設計思路就讓雲計算領域嘗到了足夠的甜頭。一臺服務器從最初只能支持幾臺虛擬主機,到今天商業化的公有雲平臺上可以在一臺物理主機上提供100臺的虛擬主機,這期間,雲計算的進步依賴於基於英特爾至強處理器平臺的發展。

目前在國內典型的電信環境下,基於雙路至強處理器的NFV類設備,往往會將6~7塊10Gbps網卡捆綁在一起,利用至強E5 v3平臺的性能,來獲得更高的網絡帶寬和處理能力。那麽在升級到最新的至強E5 v4後,應該很快就會在運營商端看到使用100Gbps網卡的新一代高性能NFV設備的出現。

雲計算帶來的SDN

SDN大規模應用之一是公有雲數據中心,隨著公有雲規模的擴張,對於SDN的需求也持續上升,虛擬主機數量今年來的增長讓傳統網絡設備在管控上捉襟見肘。從某種角度講,1000臺以下虛擬雲主機依然占據目前雲計算的絕大多數,管理方便、調整靈活的x86+Linux開源平臺的SDN成為這類公有雲/私有雲首選的網絡平臺。

在全新的至強E5 v4平臺的支持下,一臺雙路的物理服務器可以具備多達44核88線程(使用E5 v4 2699處理器),所支持的內存也達到了1.5TB,這就為在一臺物理主機上運行超過100臺虛擬主機提供了基礎,那麽對於大規模部署雲計算的數據中心而言,SDN設備的性能和靈活性在這裏就成為雲計算網絡是否能勝任的關鍵。

無論是傳統的集中式SDN還是分布式SDN,都圍繞著靈活易用的特征。在典型的公有雲中,SDN設備完全基於x86服務器平臺,運行開源的Linux系統,目前在雲計算/開源領域中有大量此類應用模型可供選擇。

相較傳統服務器一臺一個ip的應用模式,雲主機也隨著x86平臺性能的提升得以在一個盒子裏支持更多的虛擬主機IP。目前最新的至強處理器E5 2699 v4可以提供88線程的強大計算性能,也許在2016年內,我們就能看到一臺物理設備提供超越一個網段的虛擬主機數量,這反過來對SDN也提出了更高的要求。

強調性能的NFV

SDN源於數據中心,而NFV則是由電信運營商提出的方案。電信運營商的每一次轉型都帶來大量的機會,今天的運營商趨向提供越來越多的網絡服務,這些復雜化的網絡服務需要大量的專有硬件來支撐,但是隨著網絡服務的細分和變化,傳統的網絡硬件設備帶來了大量設備投入,背後是資本和能耗的挑戰,可是用戶端的驅動模式隨時會帶來新的應用,顯然這不是一個單純依靠硬件就能完成的任務。NFV就是用標準計算平臺的虛擬化網絡技術來解決多種網絡應用如何融合數據中心的技術,利用高性能的x86服務器、交換機等數據中心的設備,使用開源軟件自定義網絡功能,應用於數據業務應用。

软件定义 硬件驱动,云计算的Hybrid时代

圖註:在基於最新的英特爾至強處理器E5 v4產品的服務器平臺中,利用DPDK技術,可以提供25倍於上一代x86數據包處理能力,而這一切都是免費、開源的,全面支持虛擬化應用。同傳統軟件供應商習慣於用軟件來解決一切問題不同,英特爾更擅長將軟硬件統籌考慮,硬件擅長的事情移交給硬件完成,而軟件只需要使用一個API來驅動硬件設備接口,這就是軟件定義,硬件加速的原力。

相比SDN的高度靈活和可管理特性,NFV則更看重性能和應用能力,因此我們在二者的配置上就可以看出明顯的不同。SDN對設備硬件需求較低,往往配備單塊10Gb網卡就可以滿足需求;而NFV承載著運營商的業務,對計算性能、內存容量,特別是網絡吞吐能力都有極高的要求,現在電信運行商業務中的NFV設備往往都有4塊以上的10Gb網卡捆綁在一起,甚至有運營商在積極推動100Gb網卡在NFV設備中的應用,而這些都是英特爾至強E5 v4 + DPDK大展身手的領域。

截至到今天,在雲計算的三大要素中,計算、存儲和網絡領域都已經有大量廠商宣布支持使用DPDK來提升系統性能,減少基礎x86系統的額外開銷,增強雲計算整體實力。當雲計算基於開放的x86+開源的系統,在軟、硬件一體化應用的道路上提供了Hybrid模式的時候,軟件定義、硬件驅動的雲計算新時代就揭開了新的篇章。

延伸阅读

评论