1. 程式人生 > >金海:從網格計算到雲端計算——虛擬化的探索與實踐

金海:從網格計算到雲端計算——虛擬化的探索與實踐

金海:大家好,我是金海,華中科技大學計算機學院的。今天想和大家分享的是從網格計算到雲端計算——虛擬化的探索與實踐。

我的演講主要分為幾個方面: 1、網格計算和雲端計算 2、計算系統虛擬化基礎理論與方法研究973專案簡介 3、桌面虛擬化技術實踐 4、最後進行一個小的總結

什麼是網格計算呢?動態多機構虛擬組織中的資源共享和協同問題求解。 下面我先說一下網格計算的本質: 1、資源異構 2、多機構 3、虛擬組織 4、以科學計算為主 5、採用高效能運算機 6、問題求解環境緊耦合

說到雲端計算大家比較喜歡,現在沒有非常權威的專家說,雲端計算是什麼樣的定義,虛擬的資源把它變成一種服務,這就叫做雲端計算,從這個定義本身來看,你可以看出,雲端計算它的本質是什麼呢?我們比較一下網路計算,我們就給出雲端計算這幾個本質。

第一,雲端計算並不強調資源,首先在構建領域資源的時候,它是由機構來進行構件,就是它自己的一個雲端計算平臺。雲端計算是以現在從這幾年比較熱的虛擬經濟。WAS上面各種包括視訊共享網站,等等各種它都有很多的商業應用。對雲端計算來說,並不強調某一個雲端計算中心我需要非常強大的超級計算機,座談早上李院士在報告當中就說得非常清楚,雲端計算是以普通的伺服器械叢集,作為它的一個基本共享單元。通過大量的分散在各個地方的這種伺服器叢集,來完成它的服務。所以從我們在整個計算機體系結構這個角度來看,有分故事系統的一種集中的管理。它需要把這些資源分佈在各個地方。 另外,它是採用是普通伺服器叢集,分在各個不同地方,因此是一種鬆耦合環境下的處理,就是在鬆耦合環境下做海量處理的處理方式,變成一種環境,這是雲端計算的一個本質。

說到虛擬化這是雲端計算的一個基礎的基礎,大家談雲端計算跟網路計算,在技術層面上有甚麼最基礎的差異,虛擬化怎麼來定義,因為很早就有虛擬化,虛擬化本身就是把底層物理設和上層的操作化,或者上層的軟體進行分離的一種去耦合技術,各個層面做各個層面的工作,大家不要捆綁在一起,它希望能夠把它進行去耦合,目的就是為了實現資訊資源的利用效率和靈活性的最大化。

大家也知道,在雲計算出來之前,我們大量叢集的時候,它的利用率其實是非常低的,其原因就在於各個機器都採用單一的叢集,比如E—mail伺服器,每個伺服器它的峰值是不一樣的,因此會帶來整個系統利用率非常不均衡,平均利用率會非常低。我們採用虛擬化技術以後,就可以把這些資源整合在一臺機器上,或者相鄰的一些機器上,來提高它的利用效率和靈活性的最大化,這就是虛擬化的基礎。

說起虛擬化,本來昨天還想公佈,我們CSDN這本雜誌,網上評的雲端計算十大事件,我們就沒有公佈。後來追訴虛擬化歷史是可以追溯到1959年,ifip這個組織大家很多人都不知道,這幾年這個組織影響力比較小,對ifip這個組織部知道,其實ifip這是非常老的組織,是1959年在奧地利的維也納成立的一個叫國際資訊化聯合組織,這個組織它有一個非常大的會議,就是是全世界計算機大會,成立於2000年的時候這個大會是在中國舉行,當時國家主席江澤民親自到場。當時1959年成立ifip的時候,有一篇文章就是再講。這片文章就是後來虛擬化的基礎,一也是作業系統的一個基礎,當時是因為資源不夠,所以採用共識的方法用一個CPU的資源,當時虛擬化是這種目的,但是現在虛擬化是因為我們資源太多了,這麼多的資源怎麼樣有效的利用這個虛擬化資源,這是虛擬化最早的一個歷史。

前面簡單的介紹一下我個人對網格計算和雲端計算簡單一個認識和一個體會,這幾年大家在講雲端計算的時候,很多人都會問網格計算和雲端計算有甚麼好處。下面給大家介紹973專案,計算系統虛擬化與方法研究的這個973專案。具體關於專案的詳細資訊,以及包括專案的研究進展和研究成果,都可以在這個網站上獲得,這個網站大家可以去訪問。

我們整個973專案一個基本的思路就是以使用者為中心構建虛擬化計算系統。這裡麵包括三個部分:

一、任務執行環境實現虛擬化,這是第一個層面,就是保證任務在執行環境所需要各種資源的力度是可變的。我們大家知道如果不採用虛擬化的技術,整個機器是以機器為單位為大家提供計算資源,我們希望能夠在以和為單位來給大家提供資源,無論是單機還是多機,這是任務執行環境的虛擬化。

二、資源使用環境的虛擬化,希望能夠保證各種資源能夠透明、高效的使用。

三、使用者操作環境方面的虛擬化。就是說怎麼樣來提高使用者操作環境的靈活性和自動配置的能力,這裡面更多是強調整個三個層面可以看出,任務執行環境的虛擬化,是指從硬體這個層面來實現虛擬化的各種機制,資源使用環境虛擬化是在從軟體這個層面怎麼來透明使用各種不同的異購軟體,其實這就是異購資源透明高效的使用。 從使用者操作環境的虛擬化,主要是用來從使用者這個層面,也就是我們後面會講到的,怎麼提高使用者操作環境的靈活性和自動配置能力。

整個專案分成8個具體課題。 課題1:叫做計算系統虛擬化基礎理論模型和體系結構研究,主要是從基礎理論方面來研究,包括怎麼在不同異購平臺上,執行未經修改的程式碼,這裡面牽扯到翻譯的問題,怎麼樣去解決這個問題?可能是一個非常重要的問題,因為我們國家也自己研製很多國產CPU,原來在原來產品的平臺上,可以用的軟體,因為很多軟體我們並不一定都有它的程式碼,我怎麼能夠在新的平臺上,我們國產CPU平臺上,能夠應用這個程式。所以這裡面我們提這方面研究工作,而且在做,這個工作主要是國防科技大學在完成的,因為他們是在做這個結構方面的研究包括動態二翻譯的模組放主機板上面,通過一個專門的模組來加速動態二體系翻譯,這是他們研究的。

課題2:單計算系統內的資源虛擬化方法。這裡面主要就是類似於有點像虛擬經濟研究,在單個上面怎麼實現虛擬化,這個是北京大學在研究。虛擬機器能夠感知地層的OS,並且樣來進行協同以後,能夠實現下面的動態的管理。比如說大家知道,因為中間加了一層虛擬機器以後,上面的OS基本上無法控制底下的裝置,兩者怎麼進行協同,比如說我們去年是發表了一篇文章,就是通過兩者的協同,來對底下的這些各種管理模組進行管理,從而達到上層OS同樣能夠實現節能的功能,以前一個作業系統可以完成這個工作,但是現在是兩個作業系統,中間加一個虛擬機器,這個是在虛擬化裡面要做的工作。

課題3:清華大學在完成,多計算系統,這個多計算系統是指在一個系統裡面,而不是不同的節點,我們以前稱之為網路虛擬化,在多個計算系統裡面怎麼來實現虛擬化。在這裡面有不同的系統,當我需要4個和的時候,我是在一個機器裡面選4個核?還是各選兩個核?這個需要根據當時的情況來做。

課題4:虛擬計算系統普適化執行環境。我是不是可以不用各種軟體,軟體都在雲端比如我們現在講SARS,我們這裡面做普適化的執行環境研究。

課題5:虛擬計算的安全可性機制研究。大家知道虛擬機器可以有效的隔離每一個不同的虛擬機器,因為它相當於,儘管在一個CPU上面,但是我可以認為是單獨一個不同的獨立的資源,資源之間怎麼能夠有效的隔離,從而使得某一個和,上面裝的作業系統被攻擊掉以後,或者壞掉以後,不會影響其他的和,虛擬機制能夠正常執行工作,所以能夠提供一些安全可信的機制來研究。

課題6:虛擬計算系統評測理論與方法。因為我們大家知道,我如果在一個高效能運算機上,高效能運算機上面其實用虛擬機器的並不多,它的效能會下降,但是某種程度上提供了高效能運算機在計算中心裡面的靈活性,所以怎麼樣來評測它,如果我裝上虛擬機器以後怎麼評測它?怎麼衡量它?高效能運算機能夠接收這些資訊,是浙江大學在做評測。

課題7:我怎麼在高效能計算機上去用虛擬化技術。其實在美國都不用虛擬化,因為他有一個大型任務,一個大的能夠吃滿,但是在我們國家這種高效能運算機環境下,基本上這個大的機器吃滿的情況不可能,它可能要有很多高效能的任務,同時在大的計算機上執行,這時間需要提供不同的環境,這需要有虛擬機器的支援。那怎麼樣設計一個輕量級的虛擬機器,使得在高效能計算機能力仍然能夠發揮高效能的能力,提高整個計算機利用效率,這就是高效能計算機上面怎麼用虛擬化技術來做這些工作。這個課題是神威計算機在做這個事情。

課題8:虛擬化模擬應用。昨天李院士用到的,原來在網路平臺上去做,現在隨著多和的出現以後,怎麼在模擬虛擬化平臺上做模擬,比如說機器的模擬,武器的模擬。這是我們8個課題,這是航天部二院做課題8。

7和8在應用層面上,這就是我們大概的一個對應關係。1、2、3、5主要是解決任務執行環境怎麼來實現動態構建和資源環境的高效透明使用,一個是從硬麵環境,一個從軟面環境,怎麼來實現軟體的使用。課題4從使用者操作環境的虛擬化,6、7、8主要做效能評測、理論驗證和應用示範的一些研究工作,這是我們的課題任務。

我們這個研究團隊分散在全國,我們有6個高等院校,兩個研究所共同來承擔我們的任務,一共有8個單位。下面重點給大家介紹一下,我們在桌面虛擬化的研究工作,這個研究工作在實驗室部署,而且我們跟兩家企業在合作,一個在移動平臺做合作,另外桌面平臺上做合作,我想把這個工作的結果大家展示一下。

桌面虛擬化是雲端計算落一的一個非常好的手段,就是怎麼能夠動態的吸引使用者的需求的變化,為使用者提供一個高效、安全、易用語音資源的桌面虛擬化所需要做的工作。這裡面要這麼幾件事情。 1、按需動態的構建虛擬化的桌面環境。 2、與客戶端現有作業系統沒有任何差別的,就是無縫的實現人機介面。 3、實現計算資源和資料資源的遠端部署和安全可信。 4、動態調配雲中計算資源。

這就是桌面虛擬化面臨的幾個問題。 我們實驗室做了一套系統,做了一個雲端計算的使用者桌面,這個使用者桌面的幾個圖。左邊的圖體系框架,我下面會給大家介紹。右邊是在實驗室做測試的時候,可以看到個人工作環境,會把你的工作環境彈出來。這裡面有這幾項技術能夠實現: 1、雲中異購資源的聚合與共享。 2、工作環境的個性化定製。 3、工作環境的儲存與恢復。 4、工作環境的線上遷移。 5、移動環境的虛擬接入。 6、本地環境的協同訪問。這也是非常重要的,在這裡面大家知道有很多Data surver,各種不同的使用者端,包括PC,或者透明計算的PDA等等,都可以在上面來使用。

這裡面有幾頁我跳過去,因為後面有幾個演示。 一、這裡面牽扯到大量的部署和使用者環境的儲存和恢復,因此一切多個虛擬機器的斷點保護,多個虛擬機器之間怎麼來協同保護和恢復,多個虛擬機器的一個端面保護,這裡面有一些內容包括我們現在正在做的事情和已經取得的成果,我們這裡面就列出來,就不再仔細講了。

二、還有一個剛才講到的,本地資源有效利用。這裡面我們做了一個非常重要的工作,這個工作是什麼?因為牽扯到雲安全,昨天李院士專門講到雲安全實際上是信任和被信任的一個關係。我們為了防止現代大家還解決不了的問題,我們就做了敏感資料,比如我們這個桌面,桌面上已經沒有這個軟體,這個軟體是裝在雲端,這個桌面怎麼讓遠端的應用軟體能夠知道桌面的資料,是他的一個部分,這樣就有一種訪問進行。比如現在插進來以後,它可以通過某種方式,讓遠端伺服器下面應用軟體知道桌面的資料,通過對桌面資料訪問,彷彿這個資料在遠端,實際上是協同訪問,並不是把資料拷過去,讓遠端程式能夠知道這個資料,但是資料並不拷貝,這樣能夠有效保證使用者在使用雲端資源的時候,能夠把一些涉密的資源放在自己這裡。

三、虛擬機器的全生命週期管理,怎麼去管理?虛擬機器使用的時候不是使用一次,可能是好幾天一直持續的使用,怎麼在全生命週期裡面,對它進行保護和管理。這是全生命週期的管理問題,這裡有很多細節,不再講了。這裡面是我們系統做出來以後實際應用的一個效果,實際上我們可以看到上面有兩個應用,一個是word,一個是interet,這兩個東西裝在雲端,是兩個不同作業系統做支援,這是在應用程式服務中心裡面來實現,本身將來的客戶端非常的輕,不需要裝作業系統,但可以應用不同作業系統上面不同的軟體。

下面我給大家演示,使用者桌面操作的流程。 1、一開始比如可以選擇,這是我們自己在做實驗驗證時候做的一些事情,比如可以去選擇幾個軟體,現在選擇幾個軟體,選擇完以後,它就會在後臺去配置所需要的硬性環境,配置完了以後,比如說你在windows,這裡面可以看到你定製的程式表,可以選擇任何一個程式,比如說選擇world得等之類,可以從後臺的服務開啟,這就可以看到你的程式。大家知道像google這之類的都有很多條,這些條都定製好的條,當然可以按照你的方式來定製,這樣可以應用後臺作業系統的任何軟體,只要後臺提供服務部署,就可以用這個軟體,也可以對它進行修改,比如現在再增加一個,增加完了以後,他重新進行配置vizta,配置完以後,就可以有這個軟體在上面,當然可以刪除。這樣免除你安裝軟體,每次換機器都安裝軟體,或者換一臺機器不一定有軟體,這就是我們在桌面虛擬化做的事情。這是一個具體的應用部署。

2、另外就是應用。比如我可以存很多歷史資料,這裡面給的一個測試的介面。比如一個人在不同地點不斷切換他的工作環境,這裡面就記錄了他近十次工作環境的一個列表,比如說可以去恢復那一天我執行的工作環境的情況,我把這一天的所有的儲存的斷點,就是工作環境的斷點把它恢復出來,恢復完了以後這就是那一天恢復出來的結果。然後讓你是不是重新起哪一天的工作環境?你說yes,他就會調出來,你退出工作環境所儲存三個應用程式的情況,甚至你的游標放在什麼地方,他都會儲存在那個地方,這樣的話,下面可以繼續工作。工作完以後,可以繼續儲存。比如你再儲存一次,你是不是儲存這個執行環境?你說yes,它就會繼續儲存。這樣多產生一個使用的列表。

這個工作現在在我們實驗室也在做大部分的測試,我們也希望能夠通過跟合作伙伴的合作,能夠把這件事情真正的大規模的環境下能夠做更多的測試。

總結一下,我們可以說虛擬化技術現在已經成為雲端計算等各種新型計算模式,因為我們大家都叫雲端計算,也不知道過幾年以後還會有甚麼樣的新計算,所以我們就叫做雲端計算等新型計算模型的一個基礎。但是還有很多基礎性問題沒有解決,所以我們國家在973專案專案當中專門做基礎理論研究,當然我們做了很多工作,有一點偏工程性,這個工程化的工作也產生了很多實際應用系統。同時我們面向國家重大戰略需求,解決計算設施的重大基礎性問題,比如說在高效能計算機上,怎麼實現輕量級的虛擬,我們希望我們研究成果能夠提供一些虛擬研究和產業發展做一些貢獻。

最後做一個宣傳,我們在2008年的時候,出版國家第一本關於虛擬化領域的學術專著,這是8個學校老師一起寫的一本書《計算系統虛擬化——原理與應用》,分別從指令級虛擬化,虛擬化方法,到使用者怎麼使用,包括安全可信、效能評測以及兩個應用方面我們都做詳細的綜述以及我們研究工作的一個基本的成果在裡面都有,如果大家有興趣可以看一下。

另外對虛擬研究的老師和同學,我們也對最大的軟體Xen,我們做了程式碼的分析,這也是我們這個國家第一本關於Xen虛擬的原始碼分析,包括每一個共享頁,授權表,記憶體虛擬化、CPU虛擬化,裝置虛擬化,訪問控制虛擬化,寫了一本分析書,如果大家以前開發虛擬機器,對Xen有興趣可以參考這本書。

我的報告,就到這裡,謝謝大家。