12年老牌互聯(lián)網(wǎng)IT解決方案提供商
騰佑科技咨詢熱線咨詢熱線: 400-996-8756
工單提交 注冊/登錄
百度云服務(wù)中心騰佑科技公司
云服務(wù)器活動 服務(wù)器租用 服務(wù)器托管 機(jī)柜租賃 帶寬租賃
  • 最新資訊
  • 熱門資訊
  • 最熱資訊
智能建站

分析篇:Linux虛擬主機(jī)及托管的技術(shù)分析

發(fā)布時間:2016-03-23 10:41 作者:admin

簡述:在Linux 2.6內(nèi)核中, UML存在于主內(nèi)核樹中, 但是必須打開和重新編譯才能使用UML. 一些修改包括, 設(shè)備虛擬, 允許客戶操作系統(tǒng)分享存在的物理設(shè)備, 比如塊設(shè)備(磁盤, CD-ROM, 和文件系統(tǒng)), 控制臺, 網(wǎng)卡, 聲卡等.

     

       虛擬化技術(shù)的應(yīng)用十分廣泛. 當(dāng)前虛擬化技術(shù)主要關(guān)注于服務(wù)器的虛擬化, 或在單個主機(jī)上寄存多個獨(dú)立的操作系統(tǒng). 本文首先介紹虛擬化技術(shù)的原理, 然后討論多個虛擬化技術(shù)的實(shí)現(xiàn)方法. 另外介紹了一些其它的虛擬化技術(shù), 比如Linux上操作系統(tǒng)級的虛擬化技術(shù).

  虛擬化把事物從一種形式改變?yōu)榱硪环N形式. 計(jì)算機(jī)的虛擬化使單個計(jì)算機(jī)看起來像多個計(jì)算機(jī)或完全不同的計(jì)算機(jī).

  虛擬化技術(shù)也可以使多臺計(jì)算機(jī)看起來像一臺計(jì)算機(jī). 這叫做服務(wù)器聚合(server aggregation)或網(wǎng)格計(jì)算(grid computing).

  首先我們回顧一下虛擬化技術(shù)的歷史.

  虛擬化技術(shù)的歷史

  虛擬化技術(shù)不是一個新的主題; 實(shí)際上, 它已有40年的歷史. 最早使用虛擬化技術(shù)的是IBM 7044計(jì)算機(jī), 它是基于MIT(麻省理工學(xué)院)為IBM704計(jì)算機(jī)開發(fā)的分時系統(tǒng)CTSS(Compatible Time Sharing System), 和曼徹斯特大學(xué)的Atlas項(xiàng)目(世界最早的超級計(jì)算機(jī)之一), 首次使用了請求調(diào)頁和系統(tǒng)管理程序調(diào)用.

  硬件虛擬化

  IBM早在1960年就認(rèn)識到虛擬化技術(shù)的重要性, 于是開發(fā)了型號為Model 67的System/360主機(jī). Model 67主機(jī)通過虛擬機(jī)監(jiān)視器(VMM, Virtual Machine Monitor)虛擬所有的硬件接口. 在早期的計(jì)算中, 操作系統(tǒng)被稱做Supervisor. 能夠運(yùn)行在其它操作系統(tǒng)之上的操作系統(tǒng)被稱做hypervisor(名稱首次出現(xiàn)在1970年).

  VMM直接運(yùn)行在底層硬件上, 允許執(zhí)行多個虛擬機(jī)(VMs). 每一個VM(虛擬機(jī))運(yùn)行自己的操作系統(tǒng)實(shí)例 -- 早期時候稱為CMS, 或會話監(jiān)視系統(tǒng)(CMS, Conversational Monitor System). 然后VM繼續(xù)發(fā)展. 今天你能夠在System z9主機(jī)上發(fā)現(xiàn)VM, 它能夠向后兼容, 甚至是System/360.

  處理器虛擬化

  另外一個早期使用的虛擬化技術(shù), 仿真處理器, 也叫做P-code(or pseudo-code)機(jī). P-code是一種機(jī)器語言, 運(yùn)行在虛擬機(jī)上而不是實(shí)際的硬件. 知名的P-code語言在1970年由加州大學(xué)圣地亞哥分校的Pascal系統(tǒng)項(xiàng)目組開發(fā). 它可以把Pascal程序編譯成P-code代碼, 然后在具有P-code功能的虛擬機(jī)上運(yùn)行. P-code程序具有高度可移植性, 能夠運(yùn)行在任何具有P-code功能的虛擬機(jī)上.

  1960年的BCPL語言(基本組合程序設(shè)計(jì)語言, Basic Combined Programming Language)也使用了同樣的概念, 它是C語言的前身. 編譯器首先把BCPL代碼編譯成一個中間機(jī)器代碼: O-code. 然后, O-code被編譯成目標(biāo)機(jī)器代碼. P-code模型已被廣泛使用到各種編譯器當(dāng)中, 從而為編譯器移植到新的主機(jī)架構(gòu)提供了復(fù)雜性.(通過一個中間語言分成前端和后端).

  Java虛擬機(jī)(JVM)

  Java虛擬機(jī)也采用了P-code模型. 從而我們可以簡單通過移植JVM程序到新架構(gòu)的機(jī)器上來廣泛發(fā)布Java程序.

  指令虛擬化

  近來頻繁出現(xiàn)的虛擬化概念: 指令虛擬化, 也叫做二進(jìn)制翻譯. 在這個模型中, 虛擬指令被動態(tài)翻譯成底層硬件的物理指令. 程序執(zhí)行后, 代碼一段一段地被翻譯. 如果出現(xiàn)分支, 一套新的代碼指令將被引入和翻譯. 這十分類似于緩存操作, 指令塊從內(nèi)存移動到本地的快速緩存內(nèi)存中執(zhí)行.

  近來Transmeta公司設(shè)計(jì)的Crusoe中央處理器使用了該模型. 二進(jìn)制翻譯由Code Morphing專利技術(shù)實(shí)現(xiàn). 類似的一個實(shí)例, 全虛擬技術(shù)通過使用動態(tài)生成代碼掃描來發(fā)現(xiàn)和重定向特權(quán)指令(解決特殊處理指令集中的問題).

  虛擬化技術(shù)的類型

  現(xiàn)在不只存在一種虛擬化技術(shù). 事實(shí)上有多種方法可以使用不同層次的抽象來實(shí)現(xiàn)同樣的結(jié)果. 本章介紹Linux上三種最常用虛擬化技術(shù)的優(yōu)點(diǎn)和弱點(diǎn). 業(yè)屆有時使用不同的術(shù)語來描述同一個虛擬化技術(shù). 為了保持連續(xù)性, 下面使用的術(shù)語參考了其它的術(shù)語.

  虛擬化技術(shù)和游戲

  一篇虛擬化技術(shù)的文章如果沒有提到復(fù)合式大型電玩模擬器(MAME)就不是一篇完整的文章. MAME, 就如名字一樣, 是一個能夠模擬以往arcade游戲的機(jī)器模擬器(全部). 做一個補(bǔ)充, 整個機(jī)器是被虛擬的, 包括聲音和圖形還有控制硬件. MAME是一個非常棒的應(yīng)用程序, 你也可以通過仔細(xì)閱讀源碼來了解它是如何實(shí)現(xiàn)的.

  硬件模擬器

  無可否認(rèn), 最復(fù)雜的虛擬化技術(shù)是硬件模擬器. 在這個方法中, 首先在主機(jī)系統(tǒng)上創(chuàng)建硬件VM, 然后模擬硬件的功能, 如圖1顯示:

  圖1. 硬件模擬器: 使用VM模擬需要的硬件

  正如你可能猜到, 硬件模擬器的主要問題是速度極慢. 因?yàn)槊恳粋€指令在底層硬件都需模擬, 所以速度慢了100倍. 高保真模擬還包含了循環(huán)校驗(yàn), 用于模擬CPU的管道和緩存行為, 實(shí)際速度會慢了1000倍.

  硬件模擬有自己的優(yōu)點(diǎn). 比如, 使用硬件模擬, 你能夠在基于ARM處理器的主機(jī)上模擬運(yùn)行基于PowerPC未經(jīng)任何修改的操作系統(tǒng). 你甚至能在每個不同模擬處理器上運(yùn)行多個虛擬機(jī).

  模擬器和開發(fā)

  硬件模擬器最有意思的一個應(yīng)用是firmware(固件)和硬件協(xié)作開發(fā). firmware開發(fā)人員無需等待最新硬件的推出, 他們可以使用目標(biāo)硬件的虛擬機(jī)來驗(yàn)證實(shí)際代碼中的許多概念.

  全虛擬化

  全虛擬化(Full virtualization), 也稱為原始虛擬化技術(shù), 是另一種虛擬化方法. 該模型使用虛擬機(jī)協(xié)調(diào)客戶操作系統(tǒng)和原始硬件(見圖2). 這里"協(xié)調(diào)"是一個關(guān)鍵詞, 因?yàn)閂MM在客戶操作系統(tǒng)和裸硬件之間用于工作協(xié)調(diào). 一些受保護(hù)的指令必須由Hypervisor(虛擬機(jī)管理程序)來捕獲和處理. 因?yàn)椴僮飨到y(tǒng)是通過Hypervisor來分享底層硬件.

  圖2. 全虛擬化: 使用Hypervisor分享底層硬件

  全虛擬化的運(yùn)行速度要快于硬件模擬, 但是性能方面不如裸機(jī), 因?yàn)镠ypervisor需要占用一些資源. 全虛擬化最大的優(yōu)點(diǎn)是操作系統(tǒng)沒有經(jīng)過任何修改. 它的唯一限制是操作系統(tǒng)必須能夠支持底層硬件(比如, PowerPC).

  老機(jī)器上的Hypervisors

  一些老的硬件如x86, 全虛擬化遇到了問題. 比如, 一些敏感的指令需要由VMM來處理(VMM不能設(shè)置陷阱). 因此, Hypervisors必須動態(tài)掃描和捕獲特權(quán)代碼來處理問題.

  半虛擬化

  半虛擬化(Paravirtualization)是另一種類似于全虛擬化的熱門技術(shù). 它使用Hypervisor(虛擬機(jī)管理程序)分享存取底層的硬件, 但是它的客戶操作系統(tǒng)集成了虛擬化方面的代碼. 該方法無需重新編譯或引起陷阱, 因?yàn)椴僮飨到y(tǒng)自身能夠與虛擬進(jìn)程進(jìn)行很好的協(xié)作.

  圖3. 半虛擬化: 通過客戶操作系統(tǒng)分享進(jìn)程

  上面提到過, 半虛擬化需要客戶操作系統(tǒng)做一些修改(配合Hypervisor), 這是一個不足之處. 但是半虛擬化提供了與原始系統(tǒng)相近的性能. 與全虛擬化一樣, 半虛擬化可以同時能支持多個不同的操作系統(tǒng).

  操作系統(tǒng)級的虛擬化

  最后一個我們需要了解的虛擬化技術(shù)是操作系統(tǒng)級的虛擬化(Operating system-level virtualization), 它使用不同于上面的虛擬化方法. 該技術(shù)在操作系統(tǒng)之上虛擬多個服務(wù)器, 支持在單個操作系統(tǒng)上簡單隔離每一個虛擬服務(wù)器(見圖4).

  圖4. 操作系統(tǒng)級的虛擬化: 隔離單個服務(wù)器

  操作系統(tǒng)級的虛擬化需要修改操作系統(tǒng)內(nèi)核, 它的優(yōu)點(diǎn)是具有原始主機(jī)的性能.

  為什么虛擬技術(shù)如此重要?

  在了解當(dāng)今主流的linux虛擬化技術(shù)之前, 我們先來看虛擬化技術(shù)的優(yōu)點(diǎn).

  從商業(yè)角度來看, 使用虛擬化技術(shù)有非常多的原因. 不過大多是用于服務(wù)器加固. 簡單來說, 如果你能夠在單個服務(wù)上虛擬多個系統(tǒng), 這樣少數(shù)的幾臺計(jì)算機(jī)顯然能夠節(jié)省耗電, 空間, 冷卻和管理開支. 考慮到確定服務(wù)器利用狀況的困難, 虛擬化技術(shù)支持動態(tài)遷移(Live Migration). 動態(tài)遷移允許操作系統(tǒng)能夠遷移到另一臺全新的服務(wù)器上, 從而減少當(dāng)前主機(jī)的負(fù)載.

  虛擬化技術(shù)對開發(fā)人員來說也非常重要. Linux內(nèi)核占用了一個單一的地址空間, 這意味內(nèi)核或任何驅(qū)動程序錯誤都能導(dǎo)致整個操作系統(tǒng)停止工作. 而通過虛擬化你可以運(yùn)行多個操作系統(tǒng), 如果其中一個系統(tǒng)由于錯誤而宕機(jī), Hypervisor和其它的操作系統(tǒng)不會受到任何影響. 這對調(diào)試內(nèi)核來說就如同調(diào)試用戶空間程序一樣.

  Linux相關(guān)的虛擬化項(xiàng)目

  表1顯示了幾個可能加入到Linux(內(nèi)核)的虛擬化技術(shù), 主要關(guān)注于開源.

  表1. Linux相關(guān)的虛擬化項(xiàng)目

  CODE:

  項(xiàng)目 / 類型 / 許可證

  Bochs 模擬器 LGPL

  QEMU 模擬器 LGPL/GPL

  VMware 全虛擬化 閉源

  z/VM 全虛擬化 閉源

  Xen 半虛擬化 GPL

  UML 半虛擬化 GPL

  Linux-VServer 操作系統(tǒng)級虛擬化 GPL

  OpenVZ 操作系統(tǒng)級虛擬化 GPL

  更多其它的虛擬化技術(shù), 請查閱參考資料欄目.

  Bochs(模擬器)

  Bochs是一個仿真x86 CPU的計(jì)算機(jī)模擬器, 它具有可移植性和可運(yùn)行在多種平臺上, 如x86, PowerPC, Alpha, SPARC和MIPS. Bochs的優(yōu)點(diǎn)是不僅能模擬處理器, 而且能模擬整臺計(jì)算機(jī), 包括外設(shè)如鍵盤, 鼠標(biāo), 視屏圖像硬件, 網(wǎng)卡等.

  Bochs能被配置成一臺老的Intel 386計(jì)算機(jī), 或更新的處理器如486, Pentium, Pentium Pro, 或64位處理器. 甚至能模擬圖形指令如MMX和3DNow.

  你也能夠通過Bochs模擬器在Linux系統(tǒng)上運(yùn)行任何Linux發(fā)行版, 還有Microsoft? Windows? 95/98/NT/2000(和多種應(yīng)用程序), 甚至是BSD操作系統(tǒng)(FreeBSD, OpenBSD,等).

  庫級的虛擬化

  這里沒有討論另一個虛擬化技術(shù), 它通過庫來模擬操作系統(tǒng)的一部分. 比如Wine(一部分為linux開發(fā)的win32 API)和LxRun(一部分為Solaris開發(fā)的Linux API).

  QEMU(模擬器)

  QEMU是另一個類似于Bochs的模擬器, 它有一些值得注意的地方. QEMU支持2個操作模式. 一個是全系統(tǒng)模擬模式. 該模式類似Bochs模擬整個計(jì)算機(jī)系統(tǒng)(包括處理器和外設(shè)). 而且能在合理的速度下使用動態(tài)翻譯模擬一些處理器架構(gòu)如X86, X86_64, ARM, SPARC, PowerPC和MIPS. 你還可以在Linux, Solaris和FreeBSD系統(tǒng)上模擬Windows系統(tǒng)(包括XP)和Linux系統(tǒng). QEMU支持其它的操作系統(tǒng)組合(更多信息見參考資料欄目).

  QEMU的第二個模式: 用戶模式模擬. 該模式能寄存在Linux上, 不同平臺的二進(jìn)制程序也能運(yùn)行. 比如, 一個MIPS平臺上的二進(jìn)制程序能夠運(yùn)行在x86平臺上的Linux系統(tǒng). 其它支持的平臺包括ARM, SPARC和PowerPC, 而且還有更多正在開發(fā)的平臺.

  VMware(全虛擬化)

  VMware是一個商業(yè)級的全虛擬化技術(shù). Hypervisor是客戶操作系統(tǒng)和硬件之間的抽象層. 該抽象層允許任何其它客戶操作系統(tǒng)運(yùn)行在主機(jī)操作系統(tǒng)之上.

  VMware也能虛擬I/O硬件, 增加了高性能設(shè)備驅(qū)動到Hypervisor中.

  整個虛擬(機(jī))環(huán)境實(shí)際上是一個單獨(dú)的文件, 這意味整個系統(tǒng)(包括客戶操作系統(tǒng), 虛擬機(jī)和虛擬硬件)可以簡單快速地整合到一個新的主機(jī), 從而實(shí)現(xiàn)負(fù)載均衡.

  z/VM(全虛擬化)

  當(dāng)IBM System z?是一個全新名稱的時候, 事實(shí)上可以追述到1960年. System/360在1965年使用虛擬機(jī)方法實(shí)現(xiàn)了虛擬技術(shù). 令人感興趣的是System z能夠與最老的System/360系列主機(jī)兼容.

  z/VM?是System z操作系統(tǒng)的Hypervisor. 核心程序是控制程序(CP), 向客戶機(jī)操作系統(tǒng)提供硬件資源虛擬, 包括Linux(見圖5). 允許在多個客戶操作系統(tǒng)上虛擬多個處理器和其它資源.

  圖5. 使用z/VM的操作系統(tǒng)級虛擬化技術(shù)

  z/VM可以為那些需要相互通訊的客戶操作系統(tǒng)虛擬一個客戶局域網(wǎng)(LAN). 整個客戶局域網(wǎng)位于Hypervisor中, 所以很安全.

  Xen(半虛擬化)

  Xen由XenSource開發(fā), 一個開源免費(fèi)的操作系統(tǒng)級準(zhǔn)虛擬技術(shù). 回顧一下半虛擬技術(shù), Hypervisor和操作系統(tǒng)共同協(xié)作, 雖然操作系統(tǒng)需要做一些修改, 但是性能上比較接近于原始性能.

  Xen需要與系統(tǒng)共同協(xié)作(客戶操作系統(tǒng)需要修改), 只有打過補(bǔ)丁的系統(tǒng)才能使用Xen. 從Linux角度來看, Linux本身是開源的, 結(jié)果是Xen的性能要好于全虛擬化技術(shù). 但是從系統(tǒng)支持(比如支持其它非開源的操作系統(tǒng))的角度來看, 這顯然是一個不足之處.

  在Xen上可以運(yùn)行Windows客戶機(jī), 但需要Intel Vanderpool或AMD Pacifica處理器的支持. 其它支持的操作系統(tǒng)包括Minix, Plan 9, NetBSD, FreeBSD, 和OpenSolaris.

  用戶模式Linux(半虛擬化)

  用戶模式Linux(UML, User-Mode Linux)支持在linux系統(tǒng)的用戶空間運(yùn)行其它Linux操作系統(tǒng). 每一個客戶操作系統(tǒng)是主機(jī)Linux系統(tǒng)上的一個標(biāo)準(zhǔn)的進(jìn)程(見圖6). UML允許多個Linux內(nèi)核(有自己的用戶空間)運(yùn)行在單個Linux內(nèi)核之中.

  圖6. 用戶模式Linux: Linux寄存

  在Linux 2.6內(nèi)核中, UML存在于主內(nèi)核樹中, 但是必須打開和重新編譯才能使用UML. 一些修改包括, 設(shè)備虛擬, 允許客戶操作系統(tǒng)分享存在的物理設(shè)備, 比如塊設(shè)備(磁盤, CD-ROM, 和文件系統(tǒng)), 控制臺, 網(wǎng)卡, 聲卡等.

  注: 客戶操作系統(tǒng)內(nèi)核運(yùn)行在用戶空間模式, 內(nèi)核必須專門編譯才能在客戶系統(tǒng)中使用(可與主機(jī)操作系統(tǒng)內(nèi)核版本不同). 整個主機(jī)存在兩套內(nèi)核, 一個是主機(jī)內(nèi)核(直接位于物理硬件之上), 另一個是客戶內(nèi)核(運(yùn)行在主機(jī)內(nèi)核的用戶空間之中). 這些內(nèi)核甚至可以相互嵌套, 允許客戶機(jī)內(nèi)核運(yùn)行在另外一個客戶機(jī)內(nèi)核之中.

  Linux-VServer(操作系統(tǒng)級虛擬化)

  Linux-VServer是操作系統(tǒng)級的虛擬化解決方案. Linux-VServer虛擬Linux內(nèi)核, 可以有多個用戶空間環(huán)境, 也稱做虛擬專用服務(wù)器(VPS), 各個VPS各自獨(dú)立運(yùn)行. Linux-VServer是通過修改Linux內(nèi)核來隔離用戶空間.

  為了隔離每個單獨(dú)的用戶空間, 我們先了解上下文環(huán)境. 上下文是一個VPS進(jìn)程的容器, 因此我們可以使用ps等工具來了解vps進(jìn)程的狀況. 系統(tǒng)首次初始化后, 內(nèi)核定義了一個缺省的上下文, 管理端能夠查看所有的上下文(所有正在執(zhí)行的進(jìn)程). 你會猜到, 內(nèi)核和內(nèi)部數(shù)據(jù)結(jié)構(gòu)需做一些修改來支持虛擬化.

  Linux-VServer使用chroot隔離每個VPS的root目錄. 我們知道chroot允許指定新的root目錄, 但需額外的功能(叫做chroot-Barrier)來限制VPS不會跨越到上級目錄. 在設(shè)定一個隔離的root目錄后, 每一個VPS有自己的用戶列表和root口令.

  Linux 2.4和2.6內(nèi)核支持Linux-VServer, 可運(yùn)行在許多平臺上, 包括x86, x86-64, SPARC, MIPS, ARM和PowerPC.

  OpenVZ(操作系統(tǒng)級虛擬化)

  OpenVZ是一個類似于Linux-VServer的操作系級級虛擬化解決方案. 它有一些自己獨(dú)特的地方. OpenVZ是一個內(nèi)嵌虛擬化的內(nèi)核(修改過的), 它支持用戶空間隔離, 虛擬專用主機(jī)(VPS)和一套用戶管理工具. 比如, 你可以通過下面命令簡單創(chuàng)建一個新的VPS:

  列表1. 從命令行創(chuàng)建一個VPS

  $ vzctl create 42 --ostemplate fedora-core-4

  Creating VPS private area 正在創(chuàng)建VPS專用區(qū)域

  VPS private area was created VPS專用區(qū)域成功創(chuàng)建

  $ vzctl start 42

  Starting VPS ... 啟動VPS

  VPS is mounted 加載VPS分區(qū)

  你也可以使用vzlist命令列出所有已創(chuàng)建的VPS, 這有點(diǎn)類似于標(biāo)準(zhǔn)的Linux命令ps(查看進(jìn)程的狀態(tài)).

  OpenVZ包含一個兩級的CPU調(diào)度器來調(diào)度進(jìn)程. 首先, 調(diào)度器確定需要使用CPU的VPS. 然后第二級調(diào)度器根據(jù)進(jìn)程的優(yōu)先級來執(zhí)行vps進(jìn)程.

  OpenVZ支持beancounters. 一個beancounters包含了定義vps資源屬性的許多參數(shù). 這為vps提供了控制, 定義多少可有內(nèi)存, 多少可用IPC資源, 等.

  OpenVZ獨(dú)特的地方是能夠設(shè)置檢查點(diǎn)和vps遷移(從一臺服務(wù)器遷移到另一臺服務(wù)器). 檢查點(diǎn)能夠停止正在運(yùn)行vps并保存當(dāng)前狀態(tài)到一個文件. 該文件在遷移過程中可用于在新服務(wù)器上恢復(fù)運(yùn)行VPS.

  OpenVZ支持許多硬件結(jié)構(gòu), 包括x86, x86-64, 和PowerPC.

  全虛擬化和半虛擬化的硬件支持

  回顧一下IA-32(x86)體系結(jié)構(gòu)上存在的一些問題. 某個特權(quán)指令不能夠引起陷阱, 可基于模式返回不同結(jié)果. 比如, x86的STR指令可以獲取安全狀態(tài), 但返回值是基于特別請求者的權(quán)限級別. 當(dāng)試圖在不同級別虛擬不同操作系統(tǒng)的時候是一個問題. 比如, x86支持4環(huán)保護(hù), 0級(最高權(quán)限)通常運(yùn)行操作系統(tǒng), 1和2級支持操作系統(tǒng)服務(wù), 3級(最低級別)支持應(yīng)用程序. 不過硬件廠商已經(jīng)認(rèn)識到這些問題(和其它的問題), 而且開發(fā)了新的設(shè)計(jì)來支持和加速虛擬化技術(shù).

  Intel正在開發(fā)新的虛擬技術(shù), 能在x86(VT-x)和Itanium(VT-i)結(jié)構(gòu)上支持Hypervisors. VT-x支持兩個新的操作. 一個是VMM(root), 另一個是客戶操作系統(tǒng)(非root). root方式具有最高權(quán)限, 而非root方式是非特權(quán)的(甚至ring 0). 結(jié)構(gòu)方面也支持自定義指令(使用vmm)終止VM(客戶操作系統(tǒng))和保存處理器狀態(tài). 其它功能請查閱參考資源欄目.

  AMD也正在開發(fā)硬件級的虛擬化技術(shù), 代號為Pacifica. Pacifica維護(hù)了一個客戶操作系統(tǒng)的控制塊(通過特殊指令保存執(zhí)行狀態(tài)). VMRUN指令允許虛擬機(jī)(和它相聯(lián)系的客戶操作系統(tǒng))運(yùn)行直到VMM重新獲得控制權(quán)(可自定義). 可配置性允許VMM為每一個客戶機(jī)自定義權(quán)限. Pacifica也能使用主機(jī)和客戶機(jī)內(nèi)存管理單元(MMU)表來提高地址翻譯.

  這些硬件虛擬化技術(shù)能夠應(yīng)用到許多的虛擬化技術(shù)當(dāng)中, 包括Xen, VMware, User-mode Linux, 和其它的.

  Linux KVM(內(nèi)核虛擬機(jī))

  最近的Linux新聞經(jīng)常報道Linux 2.6.20內(nèi)核增加了KVM虛擬化技術(shù). KVM是全虛擬化的解決方案, 它的特點(diǎn)是系統(tǒng)內(nèi)核通過添加內(nèi)核模塊使內(nèi)核自身成為一個Hypervisor(虛擬機(jī)管理程序). 內(nèi)核中的KVM模塊通過/dev/kvm字符串設(shè)備顯示被虛擬的硬件. KVM使用修改過的QEMU進(jìn)程做為客戶操作系統(tǒng)接口.

  圖7. KVM的虛擬化

  KVM模塊向內(nèi)核增加了一個新的執(zhí)行模式: 客戶模式. 官方原始內(nèi)核(vanilla kernel)支持內(nèi)核和用戶模式. 客戶模式用于執(zhí)行所有非I/O客戶代碼, 普通用戶模式支持客戶I/O.

  增加KVM到Linux內(nèi)核是Linux發(fā)展的一個重要里程碑, 這也是第一個整合到Linux主線內(nèi)核的虛擬化技術(shù). KVM將包含于2.6.20內(nèi)核數(shù)中, 現(xiàn)在你也可以通過內(nèi)核模塊方式在2.6.19內(nèi)核使用kvm. 當(dāng)運(yùn)行在支持的硬件(需Intel VT和AMD SVM處理器)上, kvm支持Linux(32和64為)和Windows(32為)客戶機(jī). 更多KVM信息, 請查閱參考資源欄目

  總結(jié)

  虛擬化技術(shù)是一個新的而且重要的領(lǐng)域, 如果"新"包括了過去的40年. 在過去它已經(jīng)使用于許多場合, 但是現(xiàn)在最主要的一個焦點(diǎn)是服務(wù)器和操作系統(tǒng)的虛擬化. 比如像Linux, 虛擬化給性能, 可移植性和復(fù)雜性提供了許多選項(xiàng). 這也意味者你能夠?yàn)槟愕膽?yīng)用程序和項(xiàng)目選擇最合適的虛擬化方法.

點(diǎn)擊展開全文

騰佑科技(mubashirfilms.com)成立于2009年,總部位于河南鄭州,是一家集互聯(lián)網(wǎng)基礎(chǔ)設(shè)施及軟硬件于一體化的高新技術(shù)企業(yè),具有IDC/ISP/ICP/云牌照、雙軟等資質(zhì),并擁有多個國家版權(quán)局認(rèn)證。公司自成立以來,一直致力于發(fā)展互聯(lián)網(wǎng)IDC數(shù)據(jù)中心DataCenter、云計(jì)算Cloud、大數(shù)據(jù)BigDate、人工智能AI、內(nèi)容加速CDN、互聯(lián)網(wǎng)安全、軟件定制開發(fā)等產(chǎn)品服務(wù)及行業(yè)客戶技術(shù)一體化智能解決方案;2018年成為百度智能云AI河南服務(wù)中心。

售前咨詢熱線:400-996-8756

備案提交:0371-89913068

售后客服:0371-89913000

熱門活動

百度云服務(wù)中心
  • 熱門資訊
  • 隨便看看