使用雲端計算就是把資訊處理任務交付給資料中心去處理。下一代資料中心大多采用虛擬化技術,把一臺物理硬體伺服器分割成多臺邏輯虛擬機器,可同時執行多個資訊處理任務,使昂貴稀缺的計算資源利用率大為提高。我這年齡段的人都諳熟故主席哲學偉人關於萬事都可以一分為二的最高教誨(1957年毛澤東在《黨內團結的辯證方法》中明確指出:“一分為二,這是個普遍的現象,這就是辯證法”,《毛澤東選集》第5卷第498頁)。所以下一代資料中心裡伺服器虛擬化做法也就是對伺服器一分為二(其實是一分為N)。偉人斷言一分為二的普遍性,套用到今天伺服器虛擬化情形就是:將一臺物理伺服器分割成多臺虛擬機器對於我們通常大多數情況遇到的資訊處理任務而言,這是一個具有普遍意義放之四海而皆準的做法,在大多情況下無需特別考慮所要處理任務的性質與規模。的確,在過去的一二十年中,我們一般日常業務的資訊處理任務在數量與規模上的增長與GDP的增長,這兩者之間應該有一個近似正比例的對應關係。年均增長率10%算是相當高了。然而眾所周知同期內IT裝置處理資訊能力的增長率則遠遠超過GDP的增速。這就是為何對一個物理伺服器做虛擬化分割,一分為二的做法具有一般性和通用性。一般日常業務的資訊處理任務,哪怕是比較大規模的,以多租客方式共享使用一臺物理伺服器,應該沒有什麼問題。
然而近年來有些種類資料的增長率遠遠超過GDP的增長率。根據IDC幾年前發表的預測,從2006年到今年底,全球的資料量將增長6倍。到2010年底,大約70%的資料是由個人產生的,而且這些資料中至少85%的部分將由各種組織來負責管理,主要是為資料在安全、隱私、可靠及法規遵從這幾個方面進行管理(While nearly 70% of the digital universe will be generated by individuals by 2010, organizations will be responsible for the security, privacy, reliability and compliance of at least 85% of the information,http://alexbarnett.net/blog/archive/2007/03/06/The-Expanding-Digital-Universe.aspx)。IDC繼續強調:非結構化資料佔有這些資料的95%以上(Over 95% of the digital universe is unstructured data)。這些非結構化資料中最典型的就是從網路2.0應用中和大規模行動通訊應用中所產生的。所以儲存、處理、分析這種2.0資料所需的IT裝置能力也必須具有相應的高速增長率。用網路搜尋引擎在網上搜尋內容就是一個對2.0資料作大規模處理的典型應用。對這種資料處理任務,僅使用一臺伺服器來處理已經會力不從心,更不要說把一臺伺服器分割成多個虛擬機器來處理多個這樣的任務。所以對這一類資料處理問題,一分為二方法不再適用,合二為一才是要領,即:如何將多臺伺服器聯合起來處理解決一個問題。近年來十分熱門的map-reduce演算法就是把多臺伺服器連線起來,讓它們並行合作解決一個大規模資料處理任務。所以map-reduce可以看作是將資料中心裡的伺服器“合二(多)為一”。作為一個合二為一的問題,map-reduce演算法通常不是跑在一個虛擬化的計算或儲存平臺上。事實上map-reduce“把計算搬到資料附近”(moving computation to the data)的理念隱含了一個緊耦合計算儲存架構:一個資料處理問題的map計算步驟並行傳送到許多map workers節點平臺上,每一個節點都採用CPU與本地磁碟一一對應的緊耦合儲存架構,將處理的中間結果寫在本地磁碟上。
我們知道資料中心的伺服器如果不採用虛擬化技術,則計算資源的利用率非常低。Map-reduce由於不跑在虛擬化平臺上,因而在計算與儲存資源的利用上和節電綠色環保方面效率很低。比如想要對非虛擬化的worker節點群實現動態附載均衡是一個很難實現的任務。我們注意到網路搜尋引擎具有很可觀的碳足跡。有人做過統計:兩次Google搜尋在資料中心伺服器上所耗的電能可以燒開一壺水。如何對資料中心裡的合二為一問題實現比較綠色的解決方案,比如在虛擬平臺上跑具有動態附載均衡效能的map-reduce,是一個很有意義的研究課題。