中文字幕无码久久精品,13—14同岁无码A片,99热门精品一区二区三区无码,菠萝菠萝蜜在线观看视频高清1

 首頁 > 新聞 > 專家觀點 >

數(shù)據(jù)中心2014:軟件定義的計算

2014-12-12 13:57:28   作者:   來源:ZDNet   評論:0  點擊:


  在《數(shù)據(jù)中心2013:硬件重構(gòu)與軟件定義》當(dāng)中,我們已經(jīng)介紹了硬件重構(gòu)與軟件定義的概念,如《生態(tài)系統(tǒng)與規(guī)模的角力》說的一樣,“軟件定義”的概念不是我們的發(fā)明,“硬件重構(gòu)”也不是,不過,把“硬件重構(gòu)”和“軟件定義”放在一起明確的提出,確是我們首創(chuàng)。

  盡管本年度的數(shù)據(jù)中心技術(shù)研究報告的標(biāo)題不會再用“軟件定義”,但是,我們?nèi)匀淮蛩憷^續(xù)談“軟件定義”,因為我們覺得,盡管計算實際上受軟件的“定義”已經(jīng)很多年,但大眾離真正意義上的“軟件定義”還有很大距離,實際上,我們認(rèn)為,軟件定義網(wǎng)絡(luò)在這方面還要更先進(jìn)一些。當(dāng)然,我們也會談到生態(tài)系統(tǒng)的問題,這也實際影響到了軟件定義計算的發(fā)展路線——變成了現(xiàn)在這個樣子的原因。

  我們希望的軟件定義計算是什么樣子呢?套用Andrew S. Tanenbaum在其著作《Distributed Operating Systems》中提到的五點:Transparency (透明性)、Flexibility(靈活性)、Reliability(可靠性)、Performance(性能)、Scalability(伸縮性)。計算機(jī)科學(xué)家Tanenbaum是Minix(一種Unix克隆操作系統(tǒng))和Amoeba(一種原生分布式操作系統(tǒng))的作者,這五點要求針對的是分布式系統(tǒng),而在現(xiàn)實世界中,多臺計算機(jī)組成的具有一定程度耦合的計算系統(tǒng)實際上都是分布式系統(tǒng)的一種——包含云計算、高性能計算在內(nèi),因此這五點要求包含了我們對實際上的計算系統(tǒng)的要求。

  分布式計算有Scale Out需求的原因,也有基于實際上地理分布計算的原因

  盡管分布式計算提起的不多,然而我們希望的軟件定義計算系統(tǒng)也同樣擁有相同的訴求,這樣的系統(tǒng)都需要通過特別開發(fā)的硬件或者軟件來達(dá)成,也就是硬件定義或者軟件定義。盡管邏輯上,我們不排除硬件上實現(xiàn)這樣的計算系統(tǒng),但毫無疑問,通過軟件實現(xiàn)可以最好地滿足其中Flexibility(靈活性)這一點,這也是軟件定義興起的重要原因之一。

  除了Flexibility靈活性之外,Reliability可靠性、Performance性能、Scalability伸縮性這三者是互相關(guān)聯(lián)的。分布式系統(tǒng)之所以存在除了物理上需要的分布之外,還因為分布式本質(zhì)上具有的容錯性,如HA高可用性,兩地三中心等等,都是通過分散的冗余系統(tǒng)來去除單點失效。注意到Reliability(可靠性)和Availability(可用性)以及Fault Tolerance(容錯)的聯(lián)系與區(qū)別,一個高可靠的系統(tǒng)必然是高可用的,而且還不僅如此,高可靠的系統(tǒng)還必須保障運作的正確性,就像在分布式存儲系統(tǒng)當(dāng)中,通常會通過保存多個副本來保持?jǐn)?shù)據(jù)的可用性,但是仍然需要額外的機(jī)制來保證數(shù)據(jù)的正確性——特別地,在存儲系統(tǒng)中就是“一致性”,實際上可靠性和一致性是需要取舍的,副本數(shù)量愈多保持一致性就越難;對于Fault Tolerance(容錯),基于Hypervisor的底層方案已經(jīng)可以提供一些不錯的方案,如VMware vSphere Hypervisor 6.0已經(jīng)可以提供4個vCPU的虛擬機(jī)Fault Tolerance,但是如果我們?nèi)绻枰鼜?qiáng)的虛擬機(jī)容錯能力呢?我們希望的是可靠的計算系統(tǒng),除去無法預(yù)測的人為故障、難以消除的軟件Bug之外,我們設(shè)計的計算系統(tǒng)本身的架構(gòu)能滿足這個需求嗎?從如Amazon等等的公有云廠商偶爾出現(xiàn)的大規(guī)模故障來看,我們還有很多的工作要做。

  Active-Active,主主模式(或稱雙活)已經(jīng)算是一種比較高級的HA模式

  其次是Performance性能,性能是非常重要的,因為性價比關(guān)系到運營成本,和整個生態(tài)系統(tǒng)都有關(guān)聯(lián),這一要點也是和硬件和軟件都緊密相關(guān)的。在HPC領(lǐng)域,一個重要的部件就是InfiniBand,或者說,其核心:RDMA(Remote Direct Memory Access,遠(yuǎn)程直接內(nèi)存訪問),這是一個可以加速分布式系統(tǒng)中不同節(jié)點通信的技術(shù),簡而言之,RDMA是讓數(shù)據(jù)通信可以bypass掉操作系統(tǒng)的Kernel以及TCP/IP或者其它的協(xié)議層,以及降低數(shù)據(jù)復(fù)制的次數(shù),達(dá)到降低通信延遲的目的,一些HPC系統(tǒng)并沒有用InfiniBand而是使用了以太網(wǎng),關(guān)鍵在于高端的以太網(wǎng)也提供了RDMA的能力,并且成本更低,InfiniBand、RoCE、iWARP三種RDMA規(guī)范中后兩種就是基于以太網(wǎng)的。當(dāng)前,RDMA網(wǎng)卡的價格也已經(jīng)降低到了和普通網(wǎng)卡不太遠(yuǎn)的程度。

  RDMA(Remote Direct Memory Access,遠(yuǎn)程直接內(nèi)存訪問),允許跨網(wǎng)絡(luò)的快速內(nèi)存空間訪問

  至于軟件,有大量的工作是關(guān)于充分發(fā)揮硬件的特性,對NUMA的優(yōu)化是否已經(jīng)充分?Linux Kernel社區(qū)目前還在NUMA Awareness的內(nèi)存管理以及處理器調(diào)度方面進(jìn)行努力,而軟件定義計算上更為重要的部件——Hypervisor,在這方面的工作還未達(dá)到令人滿意的地步。此外,還有更多的硬件輔助虛擬化特性,如APICv、VMCS、VMFUNC,等等,在這方面仍然有非常多的工作可以做。

  然后是Scalability伸縮性,一套算法可能在數(shù)十上百個節(jié)點上工作良好,但到上千個節(jié)點可能就效率低下,到了更多的節(jié)點就徹底不能工作,不同的規(guī)模大小會影響到體系架構(gòu)的選擇,小到多達(dá)單個封裝達(dá)18個物理核心的Haswell-EP至強(qiáng)處理器,大到數(shù)百節(jié)點的Hadoop,MapReduce,Spark這樣的軟件計算系統(tǒng)、數(shù)量不明的Intel RSA這樣的硬件架構(gòu)、乃至數(shù)PiB級別的Ceph,GlusterFS這樣的分布式存儲系統(tǒng),都需要對其架構(gòu)、算法進(jìn)行衡量。我們期望的計算系統(tǒng)需要有良好的伸縮性,雖然一個算法不可能滿足所有的情況。

  Map/Reduce是一種時下很流行的大數(shù)據(jù)/分布式計算框架

  最后提到的是Transparency透明性,對于大多數(shù)人來說,透明性是最重要的一點,它實際上和上面的Scalability伸縮性有一定聯(lián)系。透明性的含義很多,其中大概最重要的一點就是Single System Image(SSI,單系統(tǒng)映像),很好滿足這個要求的系統(tǒng)很少,因為滿足它要求分布式系統(tǒng)對所有用戶來說,就像是單個系統(tǒng),區(qū)別僅僅是具備的CPU、內(nèi)存、硬盤更多更大。當(dāng)前的不少系統(tǒng)可以在不同的虛擬化層次上至少部分地滿足這個需求,例如一些超算系統(tǒng)使用作業(yè)系統(tǒng)來分發(fā)計算任務(wù)到不同的節(jié)點,就“作業(yè)”這個應(yīng)用程序的層次來說,整個計算系統(tǒng)呈現(xiàn)的是一個單系統(tǒng)映像,然而限制也在于應(yīng)用程序?qū),只有特定的?yīng)用才有可能進(jìn)行分發(fā);另一些超算系統(tǒng)則基于各種分布式通信的庫,如MPI等,只要基于這些庫進(jìn)行編程就可以應(yīng)用到更多的計算能力。更為理想地,SSI可以在操作系統(tǒng)層實現(xiàn),現(xiàn)有的多線程應(yīng)用不需要就可以透明地、自動地應(yīng)用不同節(jié)點上的運算能力。我們當(dāng)前的IaaS云計算環(huán)境很大程度上僅僅是提供了一堆松散的小虛擬機(jī),PaaS和SaaS有望提供一定程度的SSI能力。

  超級計算機(jī),在很大程度上是提供了SSI的多臺計算機(jī)的集群

  可以看到,目前的計算系統(tǒng),在Transparency (透明性)、Flexibility(靈活性)、Reliability(可靠性)、Performance(性能)、Scalability(伸縮性)這五點上可以做的還有很多,軟件定義計算還有很遠(yuǎn)的路要走。

分享到: 收藏

專題