熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

虛擬機監視器Xen和虛擬化技術(一)

2013-11-15 11:46:50  來源: JSP教程 

   引言
  
  現代計算機具有足夠強大的能力來利用虛擬化技術支持多個虛擬機(VM: virtual machines)並且在每個虛擬機上各自運行單獨的操作系統實例這直接導致了虛擬機技術發展的又一個春天在本文中我們提出了Xen一個高性能的用於資源管理的虛擬機監視器(VMM: VM monitor)Xen能夠支持的應用比如server consolidationcolocated hosting facilitiesdistributed web servicessecure computing platforms[]和application mobility
  
  成功地對一台機器進行劃分使它能夠支持多個操作系統的並發執行這個過程具有很多的挑戰首先虛擬機必須是彼此相隔離的如果一個虛擬機的執行會影響另一個的性能這是不可以被接受的這一點在操作各個虛擬機的用戶相互間並不信任的情況下顯得特別重要其次它必須支持多種多樣的不同操作系統以提供給各種異構(heterogeneity)的流行應用的支持(//這裡的異構指的是應用開發依托的操作系統不同因此在實現上也就有很大差異使得應用並不能夠跨平台移植因為Xen不需要對應用程序進行修改那麼它就必須支持各種常用的操作系統所謂流行的應用就是那些大家常用的必需的應用)第三由虛擬化技術引入的性能開銷必須要小
  
  Xen操控(//host操作和控制)的是常用的操作系統但是需要對操作系統中的某些相關部分進行一些修改在本文中描述和評估的Xen原型系統能夠支持多個我們研發的XenoLinux guest OS實例的並發執行每個實例都給出了和非虛擬化情況下的Linux 中相同的應用二進制接口目前我們對Windows XP到Xen的移植還沒有完全完成但是已經能夠運行簡單的用戶空間進程移植NetBSD的工作也在進行中
  
  Xen使得用戶能夠動態地實例化一個操作系統以執行他們需要的應用在XenoServer項目[]中我們在ISP或者Internet exchange(//布置在這些場合中經濟劃算而且又具有戰略意義的地方)的標准服務器硬件上配置了Xen我們在啟動一個新的虛擬機的時候需要執行許可控制(admission control)希望每個虛擬機能夠以某種方式為它需要的資源付出代價我們在其它文章中討論過我們在這個方向上的思路和方法[]現在這篇文章則將焦點關注於虛擬機
  
  現在有一些方法用於構建能夠在共享的機器上操控多個應用和服務器(//server這裡提到的server應該是大規模應用的意思比如數據庫服務器)的系統也許最簡單的方法就是部署一個或多個運行著標准操作系統(如Linux或者Windows)的主機然後允許用戶們安裝文件和啟動進程— 應用間的保護是由傳統的操作系統技術提供的(//這裡提到的做法就是類似並行機性質的各個節點都是獨立的主機但是一個應用可以在多個節點上面並行執行)實驗顯示由於要針對各個脫節(//supposedly disjoint邏輯上脫節指的是應用不具有連貫性/兼容性所以針對每個應用都要單獨配置一次如果能想辦法將前後有關聯的應用放在一起執行可以大大減少相關的開銷如配置開銷通信開銷等等)的應用進行復雜的配置這些配置過程導致的交互行為會使系統管理任務迅速成為時間消耗巨大的任務
  
  更重要的是這樣的系統不能夠充分地支持性能隔離某個進程的調度優先級存儲要求網絡通信量和磁盤訪問等等特征都會影響到其它進程的性能如果是在資源供應充足而且用戶群體是限定(比如計算網格或者PlanetLab平台實驗)的情況下這個系統還是可以接受的但是當資源是供不應求的時候或者用戶間不相協作(//uncooperative不相協作比如用戶間的需求有沖突那麼一定會互相影響的)的時候就不行了一個解決這個問題的方法是改進對操作系統性能隔離的支持這已經在resource containersLinux/RKQLinux和SILK中被或多或少地實現了這些方法中存在著一個難點是難以確保所有的資源都能夠正確地分配給有相應資源需求的進程例如緩沖區cache或者存儲頁面的替換算法導致的在應用間的復雜的交互行為(//比如存儲頁面替換的時候某個進程的頁面替換序列會干擾到其它進程的要免除這個影響就需要有復雜的機制用於進程間的協調)這就是存在於操作系統中的QoS干擾問題(QoS crosstalk)在低層采用多路執行技術能夠緩解這個問題帶來的影響這已經在Exokerne和Nemesis操作系統中得到證明在這些操作系統中任務間無意識的或者不受歡迎的交互行為被最小化了
  
  我們使用了同樣的基本方法來構建XenXen就是以整個操作系統的粒度復用物理資源它能夠提供在操作系統間的性能隔離相對於進程級的資源復用Xen要允許一定范圍內的guest OS和平共存而並非去指定一個特殊的應用二進制接口(//如果限定了應用二進制接口就意味著只能支持某個特定的操作系統)為了獲得這種靈活性就必須付出一些代價 — 無論是在初始化過程(比如boot和resume與fork和exec的比較)中還是在資源消費上運行一個完整的操作系統與運行一個進程相比分量都要重得多
  
  為了達到我們的能夠支持多至個被操控的操作系統實例的目標我們認為這些代價是值得付出的付出這些代價後獲得的系統允許單個用戶在資源受控的形式下直接運行那些不需要修改的二進制代碼或者二進制代碼集合(例如後端為PostgreSQL的Apache服務器)更進一步的因為用戶能夠動態地精確創建他們的軟件所需要的執行環境所以這個系統也就提供了在非常高的層次上的靈活性另外在各種服務和應用間的配置交互也是可以避免的(例如每個Windows實例都有它們自己的寄存器文件)
  
  本文的余下部分是這樣組織的部分解釋了我們的虛擬化方法和Xen的工作概況部分描述了我們的設計和實現的關鍵特征部分給出了使用業界標准的測試程序評估運行在Xen上的XenoLinux與單獨的LinuxVMware Workstation和用戶模式Linux(UML)的性能比較結果最後的第部分討論了未來的工作並作了總結
  
  

From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19609.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.