天天看點

從雲1.0時代到雲2.0時代

本文節選自《大話存儲2》一書中第20章,轉載請注明出處及作者(冬瓜頭)

20.8.4 雲基礎架構的

藝術與哲學意境

另外,我發揮了一下想象力,将雲想象成為一部精密機械,并畫了一張圖,如圖20-40所示。希望通過這張圖能夠讓大家更加深刻的認識雲這個東西。這張圖檔其實是可以運動的,大家可以聯系我以獲得這張圖檔的動态版。這張圖是對一片小雲種子的一個總結。最中心的物質本源,也就是硬核心。在這層硬核心之外,包裹一層彈性存儲層,包括可靈活擴充的叢集SAN、叢集NAS或者叢集/分布式檔案系統等,以及Thin、Dedup等增加資料彈性的技術,還有增加管理靈活性的虛拟化技術。之外再覆寫以彈性計算層,最後覆寫以資源管理層,最外面則是營運層,包括業務展現子層與營運管理子層。至此這片雲就徹底運轉起來了。

從雲1.0時代到雲2.0時代
圖20- 40 小雲的5層結構

大家再仔細分析一下這張圖,會發現其中包含有無窮奧妙。你先想象它是一台電動機,其中每個圈都可以旋轉,誰來給它提供能量呢?當然,雲資料中心必須有足夠的電力,電動機要旋轉,需要有電刷給其供電。大家可以看看業務展現層與營運管理層,這兩個子產品是不是很像兩把電刷,将使用者需求這種動力不斷地提供給中心部件,進而讓這台電動機持久地轉動。如果沒有了使用者需求,或者你已經想不出足夠新穎的業務展現方式,那麼就算有電,這個資料中心也無法再營運下去了。

計算存儲硬核層:處于這台精密機械的最核心層次的,就是硬核了,也是運轉最快而且最硬最實的一個角色。在資料中心中表現為大量的和儲存設備,這個核心是雲資料中心的物質本源,也是密度最高的實體。硬核相當于雲中的種子。伺服器

存儲彈性軟化層:這一層緊密地包裹在物質實體之外,通過分布式、叢集、虛拟化、Thin、Dedup、Snapshot、Clone等技術,将原本高密度的硬實體充分軟化,為上面的層次提供一個彈性軟化的基座。

計算彈性軟化層:在彈性軟化的存儲基座之上,計算資源也通過各種主機虛拟化技術手段被充分地軟化。

資源管理排程層:物質硬核+富有彈性的軟化計算與存儲資源層,共同構成了一個系統内的陰與陽相合的資源核心。資源管理與排程層起到一個适配内外層次的作用,外層陽氣的生發需要底層物質源泉的積聚、配置設定和運化,如何将這個系統内的資源進行良好的調動與配合,便是這一層的任務。這一層中存在諸多角色,比如資源監控、資源配置設定與排程、并行計算配置設定與排程等。

業務展現營運層:這一層則是陽氣外發外散與運化升華的至極之層次,也是整個雲資料中心的精神本源。中心的硬核為太陰,這一層則為太陽,為最終将輻射展現出去的一層,也是外界直接可見的一層。表裡相合,一為實一為虛,一為陰一為陽,一為物質一為精神。

整個雲資料中心便是一個陰陽表裡虛實相合的一個有機體。這也正像一個星雲,不斷孕育出[微軟使用者1] 星體,對應着雲基礎架構之上不斷孕育着各種應用業務服務。生物體、社會、企業、公司、宇宙,其實都是這樣演化的,那麼可以這麼說,系統即雲,雲即系統,雲是大統一的系統模型。

另外,大家可以繼續領悟一下,這片小雲種子,是否就是一台計算機呢?硬核心就相當于硬體,看得見摸得着,外層的彈性存儲層,相當于計算機的存儲系統,任何計算機啟動時首先都要去從存儲系統裡讀入代碼執行;再外層就是作業系統核心層,基于存儲層的支撐,核心得以啟動;再往外就是作業系統管理界面層了,利用界面來管理和配置設定各種計算機資源,其中并行計算排程子產品也相當于作業系統中的線程排程器等角色;最外面一層,也就相當于計算機的應用程式層了,各式各樣的應用程式,對應着雲中各式各樣的業務展現。各種應用(業務展現)可以在一台計算機上(雲中)迅速的安裝解除安裝(部署)。那麼,“雲即計算機”,這句話,不記得之前哪位提到過,至此我也徹底了解了。雲為何就是計算機?雲由大量計算機組成,而其堆疊之後的樣子和架構,仍然還是一台計算機。計算機各處總是展現着輪回的形态。為何呢?因為它骨子裡就是由計算機組成的,它永遠造不出異形,隻會造出它自己,除非它有自己的強烈向往,希望自身向某個異形發展。這種行為,骨子裡已經根植到了基因當中,這種上下聯系看上去非常微妙。

對比一下:

1.計算機加電,硬體啟動→雲資料中心硬體核心層啟動。

2.從磁盤讀取代碼以便啟動OS→雲中的資料承載層。各種分布式FS分布式DB,key-value DB等。

3. OS啟動→雲中的虛拟計算層,生成大量VM。

4.啟動到使用者界面→雲中的管理層,比如微軟System Center,Novell Cloud Manager,思科UCS的Unified Manager等。

5.核心的線程排程器→雲中的并行計算排程層,比如Mapreduce以及其衍生物。

6. OS提供的開發API,VC,Java→雲中的PaaS開發平台。

7.各種運作在OS上的應用程式→SaaS展現層,各種雲業務。

又比如各種分布式檔案系統,其本質是什麼呢?其實還是本地檔案系統思想的外散。本地檔案系統通過一個跟入口,然後一級指針、二級指針、三級指針,一直到最後一層0級塊用來存放最終的檔案資料。而分布式檔案系統,大家思考一下,對稱式分布式檔案系統,其各級中繼資料其實也都是分部到所有節點當中的,比如一級指針用1個節點承擔,二級指針用2個節點承擔,3級指針用3個節點承擔,這樣可以将檔案系統分布到非常大的範圍。或者幹脆把所有指針中繼資料放到一個節點中,那麼這個節點也就是MDS,這樣就屬于非對稱式叢集檔案系統了。但是不管怎麼弄,其本質其實就是本地檔案系統的思想。

至此,“輪回”的道理在計算機世界已經充分展現了出來。

20.8.5 縱觀存儲發展

時代——雲發展預測

如圖20-41所示為存儲系統的發展時代。這張圖所要表達的兩個最重要的地方,一個是所謂“小雲時代”與“大雲時代”,另一個則是“分”與“合”的輪回變化。

從雲1.0時代到雲2.0時代

圖20-41 存儲系統架構變遷發展

早期的直連存儲,每個計算節點都有各自的存儲系統,計算節點之間的存儲系統沒有共享,屬于分;今天的網絡存儲時代,所有計算節點可以共享通路同一個存儲系統,屬于合。目前,由于單台網絡存儲系統性能受限,叢集存儲系統的地位開始上升,利用大量分開的存儲節點來獲得更高的性能擴充性,以滿足資料爆炸時代的需求,這又屬于分;而在将來,将是一個業務爆炸的時代,各種各樣的網際網路服務層出不窮,如何快速滿足業務部署需求?傳統資料中心,部署一台新伺服器和業務,需要至少一天的時間,比如上架、安裝OS、安裝支撐系統、安裝應用系統、測試,而如果加上前期采購等流程,則需要更長時間。而雲的出現,利用彈性核心,将底層大量分開的計算或者存儲節點屏蔽,抽象為各種IT服務,使得部署一個新應用可能隻需要幾個小時的時間就可以了,雲整合了所有IT資源,這又屬于合。而在遙遠的未來,随着技術革命的到來,計算與存儲将會發生質的變化,單個節點的計算與存儲能力發生革命,另外,網際網路帶寬的革命,也會促使大範圍的網格節點互聯,共同組成一個整體,而不是向某個固定的雲中獲得資源,這又屬于分。

小雲也就是不遠的将來會大行其道的、由小規模的硬核作為種子所生成的雲[微軟使用者2] 。而大雲則是借助高速網際網路而組成的大範圍的網格型的硬核心,大家共同參與組成雲。此時,任何節點可以申請加入這個雲而成為雲中的一粒種子,不斷貢獻着資源而同時也吸收着資源。其實P2P就相當于一個大網格雲,隻不過網格雲時代P2P的不僅是電影,而是一切IT資源了,比如存儲和計算。假如你有一個視訊需要渲染,但是你的機器自身的顯示卡太差,那麼你可以直接利用P2P渲染平台服務将你的任務送出,其背景就會将這個任務分解到所有擁有高渲染能力的節點中去并行計算,然後結果彙總到你這裡,這個速度将會是相當快的。

在網格雲時代,此時整個系統又屬于分了。在這個大雲時代,網際網路上的所有節點都會有高接入帶寬,比如萬兆以太網到戶,再加上IPv6,使得每個人都變成了網際網路營運商,那麼之前被大集中到營運商以及各個資料中心中的資源,在這個時代将會重新流入到網際網路所有節點中。之前被大集中在營運商資料中心的資料業務,此時會被大範圍分散到網際網路的各個節點中去,此時的形态又屬于分了。如果說叢集存儲時代對應着資料爆炸,那麼小雲時代便對應了業務爆炸,資料與業務共同在幾個點上爆炸之後,必将經過彌散的時代,這個時代也就是大網格雲時代。在這個時代,整個網際網路内的資源被虛拟地整合起來,人們可以利用P2P技術運作超大程式,渲染圖檔以及海量存儲等其他各種服務。那時候的營運商,有一種很重要的角色,這個角色就相當于分布式檔案系統中的MDS,它會給整個網際網路提供一個用于P2P共享的分布式平台,儲存所有網際網路中繼資料。比如大分布式檔案系統、大并行計算排程系統,都會有營運商來掌握和部署,将整個網際網路範圍内的資源整合了起來,資料和資源彌散在整個網際網路範圍。

另外,小雲自身也相當于大雲中的一粒種子,目前各地都在興建小規模雲資料中心,這些建好的資料中心,将來會成為種子,然後各自聯合起來形成大範圍雲。我們姑且稱小雲時代為雲1.0時代,或者也可以叫它種雲時代。而大雲時代為雲2.0時代。雲2.0時代的時候,之前雲1.0時代的種子便完成了它的使命,成功地發芽開花并結果。

那麼在大雲時代之後,按照之前一路分分合合的變化規律,勢必又會變為合的形态。這裡先這樣推測,然後再找論據,它憑什麼要合呢?你說合它就合麼?顯然不是的。我們暢想一下,那時候計算與存儲将會發生革命,比如從電路計算與電路存儲,轉為量子計算或者生物計算與分子存儲。大家知道,生物細胞中的DNA可以存儲大量的資訊,可能一個細胞可以存儲的資料堪比一塊硬碟,那麼一片樹葉中将可以存儲海量的資料。那麼誰來讀取其上的資料呢?當然是靠核糖體,核糖體就相當于磁盤中的磁頭。細胞也可以用來計算,一個細胞中包含多種子產品,每一個都被精确設計,來完成一系列的生化過程,這個過程如果可以被翻譯為其他邏輯,那麼就可以被用作高速計算。那個時候,将會出現利用革新技術生産的計算機,整個時代又會回到最原始的形态,也就是大量終端通過網絡連接配接到中心計算機來擷取資源。

縱觀雲發展史,我們再往高層思考。一開始,PC在LAN内通路伺服器,這種狀态可以映射到現在的Micro Cloud;後來,IT組織越來越大,資料中心出現,組織内的PC可以跨越多個LAN被路由到資料中心LAN内通路所有資源,此時可以映射為Mini或者Normal Cloud;後來Internet發展,使得多個Internet上的伺服器可以互相通信互相要資源,PC可以連接配接到Internet通路其他LAN内的伺服器,這種狀态可以映射到大範圍的Seed Cloud;那麼再後來,Internet上的資源被一定程度地彌散,當然資料中心等雲種子依然存在,隻不過資源被極大地彌散到了所有節點之上,此時便映射到了Infinite Cloud,也就是大範圍Gird了。

請看一下圖20-42所示的IT系統基礎架構一開始都是孤島,煙囪。後來存儲開始被集中起來。再後來,存儲的上層,也就是計算層,也被集中整合起來。再後來,統一了開發平台,其上孕育出各種應用。這也是目前的新型IT基礎架構的形态,也就是人們常說的“雲”基礎架構。存儲從主機脫離出來成為SAN,那麼整個IT系統基礎架構的共享,就成為了Cloud。可以看到一層層的向上侵蝕,但是APP一層自身能被融合起來麼?恐怕不能了,每個業務都要對應一個APP。那麼這個系統正在幹什麼呢?它下一步将會是什麼形态呢?

從雲1.0時代到雲2.0時代

圖20-42 IT基礎架構演進示意圖

 IT系統最終是不是要長成這個樣子(見圖20-43)全部融合。一個作業系統執行個體可以管理所有伺服器、存儲、網絡資源,也即所謂“資料中心作業系統”或者“分布式作業系統”。這個DOS(Datacenter/Distributed OS,不僅寒了一下,确實是個輪回,到了DOS時代了)可以有兩種模式,就像分布式檔案系統一樣,一種模式是把多個檔案系統執行個體用目錄的方式虛拟,而另一種模式是直接在底層虛拟。

從雲1.0時代到雲2.0時代

圖20-43 分布式統一作業系統

那麼DOS也可以有這兩種類似的方式,要麼就用一種簡單松耦合的管理角色,比如微軟的System Center、Novell的Cloud Manager等;要麼,也就是要引出的另一種徹底底層融合方式,一個作業系統執行個體,高速網絡的出現,将總線延伸到計算機外部(請翻回閱讀本書第2章,外部網絡就是計算機總線的延伸),将記憶體的RDMA,這些都變得可能,此時多個實體上分離的節點可以直接進行總線級的通信和記憶體直接尋址,那麼一個分布式作業系統也就可以在此基礎上誕生了。

這個作業系統将會把整個資料中心中的所有元素統一管理起來,包括底層的供電、消防、監控等,及上層的存儲、計算、網絡資源管理和排程,以及各子產品間的消息轉發中間件平台,乃至最上層的應用業務展現開發平台。所有這些元素将被一種像微軟Windows作業系統一樣的統一平台來操作與管理。這又是一個大輪回了。同時,存儲早就準備好這一天的革命了,各種分布式虛拟化存儲已經成熟。此時,整個系統确實從骨子裡表現為一台大計算機了。這個DOS會将任務拆分為顆粒配置設定到底層所有計算節點中去,這也正如傳統OS将每個線程配置設定到CPU的每個核心中去執行一樣。

這種作業系統如果真的出現,其早期必然不能夠滿足高實時性計算的需求,隻能作為一個龐然大物級别的系統來處理一些非高實時性但是卻擁有極高的總吞吐量的系統,對于高實時性需求依然需要獨立的系統。其實這種演進就相當于目前的傳統作業系統與嵌入式高效實時的精簡作業系統的差別了,誰也離不了誰,總要有一種通吃一切的龐大系統,比如Windows、Linux等,也必然要有一些尖兵作業系統比如VxWorks等。随着規模的龐大,整體顆粒度必然變大,微觀運動必然相對變慢,但是總吞吐量數量級也必然升高,這就像一個細胞的運動與地球自轉的比較一樣。

那麼,這個系統究竟是否會朝着這個方向演進呢?讓我們拭目以待。