天天看點

虛拟化 - KVM 虛拟化 - KVM

虛拟化 - KVM

轉自:http://www.cnblogs.com/sammyliu/articles/4389810.html

2008年9月,紅帽以1.07億美元的價格收購Qumranet,後者為解決虛拟化桌面RDP的缺點開發了基于核心的虛拟機(KVM),從此,KVM頻繁出現在大衆視線中。

KVM(Kernel-based Virtual Machine,基于核心的虛拟機),比Xen晚生四年,完全内置于Linux。IT管理者隻需幾個核心子產品的支援就能安裝KVM,而Linux核心都支援這種hypervisor。

1、什麼是KVM

KVM虛拟化技術發展史及未來: http://www.ha97.com/4881.html

”在的KVM肯定沒有VMware和Xen那樣成熟,比如在低延時、高網絡I/O方面,KVM做的還不夠好。目前能保證的,就是在使用者有需求的時候,KVM能夠在一台主控端上建立超過300台虛拟機,并有可能實作理論上的最大可擴充性“。

KVM 的架構:

http://virtual.51cto.com/art/201212/374985.htm

從上圖KVM架構中可以看到,KVM作為一個輕量級的虛拟化管理程式子產品,利用Linux做大量hypervisor能做的事情,如任務排程、記憶體管理與硬體裝置互動等。

KVM具有高性能、高擴充與高安全性特點,适合運作Linux或Windows的環境,在異構環境也能很好的進行管理,而在虛拟化桌面方面,可以提供可靠的可擴充的鏡像伺服器。 

KVM(Kernel-based Virtual Machine)是基于虛拟化擴充(Intel VT或AMD-V)的X86硬體平台實作的Linux的全虛拟化解決方案,其基本結構由兩部分組成:

  • 一個是KVM Driver ,是Linux 核心的一個子產品,負責虛拟機的建立,虛拟記憶體的配置設定,虛拟CPU寄存器的讀寫以及虛拟CPU的運作等;
  • 另一個部分是稍微修改過的Qemu,用于模拟PC硬體的使用者空間元件,模拟I/O裝置模型以及提供通路外設的途徑。

KVM基本架構如下圖所示。

如上圖所示,客戶模式即是guest,它自身有自己的使用者模式和核心模式;guest是在host中是作為一個使用者态程序存在的,這個程序就是qemu,qemu本身就是一個虛拟化程式,隻是純軟體虛拟化效率很低,它被KVM進行改造後,作為KVM的前端存在,用來進行建立程序或者IO互動等;而KVM Driver則是Linux核心模式,它提供KVM fd給qemu調用,用來進行cpu虛拟化,記憶體虛拟化等。Qemu通KVM提供的LibKvm應用程式接口,通過ioctl系統調用建立和運作虛拟機。KVM Driver使得整個Linux成為一個虛拟機監控器,負責接收qemu模拟效率很低的指令。

其中 KVM 加入到标準的 Linux 核心中,被組織成Linux中标準的字元裝置(/dev/kvm)。Qemu利用 KVM 提供的LibKvm應用程式接口,通過 ioctl 系統調用建立和運作虛拟機。KVM Driver使得整個Linux成為一個虛拟機監控器。并且在原有的Linux兩種執行模式(核心模式和使用者模式)的基礎上,新增加了客戶模式,客戶模式擁有自己的核心模式和使用者模式。在虛拟機運作下,三種模式的分工如下:

  • 客戶模式:執行非I/O的客戶代碼,虛拟機運作在客戶模式下。在KVM模型中,每一個Guest OS 都作為一個标準的Linux程序,可以使用Linux的程序管理指令管理。
  • Linux 使用者模式:代表客戶執行I/O指令。Qemu運作在這種模式下。
  • Linux 核心模式:實作到客戶模式的切換,處理因為I/O或者其它指令引起的從客戶模式的退出,KVM Driver工作在這種模式下。  

KVM 的基本工作原理:

使用者模式的 Qemu 利用接口 libkvm 通過 ioctl 系統調用進入核心模式。KVM Driver 為虛拟機建立虛拟記憶體和虛拟CPU後執行VMLAUCH指令進入客戶模式,然後裝載Guest OS執行。如果Guest OS發生外部中斷或者影子頁表缺頁之類的事件,暫停Guest OS的執行,退出客戶模式進行一些必要的處理。然後重新進入客戶模式,執行客戶代碼。如果發生I/O事件或者信号隊列中有信号到達,就會進入使用者模式處理。

上圖是一個執行過程圖,首先啟動一個虛拟化管理軟體qemu,開始啟動一個虛拟機,通過ioctl等系統調用向核心中申請指定的資源,搭建好虛拟環境,啟動虛拟機内的系統,虛拟機内的系統向核心回報相關資源申請處理,如果是io請求,則送出給使用者模式下的qemu處理,非io請求則将處理結果回報給客戶模式。

KVM 的特點:

  • kvm是開源軟體,全稱是kernel-based virtual machine(基于核心的虛拟機)。
  • 是x86架構且硬體支援虛拟化技術(如 intel VT 或 AMD-V)的linux [全虛拟化] 解決方案。
  • 它包含一個為處理器提供底層虛拟化 可加載的核心子產品kvm.ko(kvm-intel.ko 或 kvm-AMD.ko)。
  • kvm還需要一個經過修改的QEMU軟體(qemu-kvm),作為虛拟機上層控制和界面。
  • kvm能在不改變linux或windows鏡像的情況下同時運作多個虛拟機,(ps:它的意思是多個虛拟機使用同一鏡像)并為每一個虛拟機配置個性化硬體環境(網卡、磁盤、圖形擴充卡……)。
  • 在主流的linux核心,如2.6.20以上的核心均包含了kvm核心。 

KVM的作用:  

  • 提高實體伺服器的資源使用率(較少的在硬體上的投入) 
  • 可以批量部署 
  • 實作實時快照技術 
  • 支援克隆技術 
  • 可以實作虛拟機的離線遷移和動态遷移(提高IT部署的靈活性) 
  • 可以将資源動态調整(傳統的IT架構資源是固定的,無法動态配置設定) 

2、KVM的優勢

 2.1 KVM與VMware的優勢 

  • ESX的底層是 VMkernel + linux,VMkernel啟動後開始接管對硬體管理,然後啟動第一個linux虛拟機,協助VMkernel一起來管理和排程硬體資源。 
  • KVM 是直接将 linux kernel 變成hypervisor,隻需要從标準linux核心啟動即可,linux kernel擁有的特性可以全部利用上。KVM架構上的優勢使得它非常簡潔,在開發出來僅三個多月就被合并到了标準核心。 

2.2 KVM與Xen的優勢 

  • Kvm和xen的最大差別就是架構,KVM是直接建構在linux kernel之上,把linux kernel變成hypervisor,是利用kernel已有的的功能基礎上開發KVM所不具備的功能。 
  • Xen的 hypervisor 是自己從頭開始建構的,對硬體資源的排程管理,虛拟機的管理,還有很多接口與linux kernel不相容,然後對于xen,hypervisor需要通過Domain0對虛拟機提供硬體通路驅動支援。雖然說現在3.0的kernel中結合了xen,但是大部分linux OS的核心還是2.6,即便是一些新的發行版OS,也還是2.6的核心,新核心要單獨去更新。
  • Kernel Virtual Machine (KVM) 虛拟化在很大程度上已取代 Xen,成為在大多數 Linux 系統上建立和支援虛拟機 (VM) 的預設開源方案。盡管這種變化的動機主要與建構和支援相關,而不是技術,但事實是許多對虛拟化感興趣的企業 IT 小組需要學習 KVM 所使用的管理和控制工具。類似地,已投資 Xen 虛拟化且正在轉向使用 KVM 的 IT 小組,可能希望盡可能将現有的虛拟機轉換為 KVM 支援的格式,而不是重新建立它們。
  • Ubuntu和紅帽這兩家企業級Linux産品的主流供應商都明确表示選擇KVM作為其hypervisor。這樣的話,如果堅持在Linux平台上使用開源Xen,SUSE Linux Enterprise Server和Oracle将是唯一的選擇。開源領域在紅帽和Ubuntu的帶領下已經明确選擇了KVM。

2.3 KVM 與 vbox的差別

vbox 是由 qemu 改寫而成,包含大量 qemu 代碼。

  • 可以使用于"不支援"虛拟化技術的cpu。
  • 值得說的一點:vbox 在圖形方面比較好,能進行2D 3D加速。
  • 但cpu控制不理想(估計是因為圖形支援的緣故)。
  • 操作上有獨立的圖形界面,易于上手。

kvm 是linux核心包含的東西,使用qemu作為上層管理(指令行)。

  • 要求cpu 必須支援虛拟化。
  • 性能:作為伺服器很好,可是圖形能力十分的差。即使放電影,圖像也是像刷油漆一樣,一層一層的。
  • cpu使用率控制很好。
  • 控制上比較簡潔,功能比較豐富:比如使用 “無敵功能”所有更改指向記憶體,你的鏡像永遠保持幹淨。 “母鏡像”功能讓你擁有n個獨立快照點。 還有很多參數。另外,kvm作為核心級的虛拟機,剛開始發展關注的公司比較多——但是還沒有達到商業應用的水準。

總體而言:在支援 虛拟化的情況下,vbox 和 kvm 的性能差不多,主要是面向對象不同:kvm适用于伺服器,vbox适用于桌面應用。

 3、KVM 問答

http://www.vsharing.com/k/server/2013-2/679012.html

KVM是什麼?

KVM (Kernel-based Virtual Machine,基于核心的虛拟機) 是Linux下 x86硬體平台上的全功能虛拟化解決方案,包含一個可加載的核心子產品 kvm.ko提供和虛拟化核心架構和處理器規範子產品。使用KVM可允許多個包括Linux和Windows每個虛拟機有私有的硬體,包括網卡、磁盤以及圖形适配卡等。

由于KVM在性能、擴充性與安全等方面的優勢,成為企業級的經濟高效的虛拟化開放解決方案。紅帽将KVM作為首選的虛拟化平台,IBM将KVM作為最佳虛拟化開放技術,參與KVM技術開發,涉及性能、安全和雲計算等廣泛領域。

如何擷取KVM?

購買Linux版本獲得KVM。很多Linux發行版本都内置有KVM,包括紅帽企業Linux 5.4及以上版本,SUSE Linux Enterprise Server 11 SP1及以上版本,Canonical Ubuntu 10.04 LTS及以上版本。如果想虛拟運作Linux的伺服器,或者虛拟運作Linux與Windows伺服器的話,該購買方法最合适。

将KVM作為獨立hypervisor購買。KVM與Linux的組合進行了優化,并拆開成傳遞hypervisor的子產品。紅帽企業虛拟化RHEV使用的就是這種方式。此種擷取方式适合雲環境,或者适合運作Windows伺服器的(大型)環境。

KVM使用的存儲類型有哪些?

KVM的存儲選項有多種,包括虛拟磁盤檔案LVM、基于檔案系統的存儲和基于裝置的存儲。

為實作KVM存儲管理,可以使用LVM(Logical Volume Manager)和建立存儲池。當系統建立KVM虛拟機的時候,預設使用虛拟磁盤檔案作為後端存儲。安裝後,虛拟機認為在使用真實的磁盤,但實際上看到的是用于模拟硬碟的虛拟磁盤檔案。這一額外的檔案系統層會降低系統速度。

當然,基于磁盤鏡像的虛拟磁盤并非全無益處,磁盤檔案系統可以很輕松地用于其它的KVM虛拟化主控端。但是如果您希望優化KVM虛拟化性能,最好考慮其它的存儲方式。

如何運作KVM網絡?

RHEL 6現在支援基于KVM管理程式。KVM的抽象層——稱為libvirt——運作KVM網絡,管理者能夠在libvirt的配置檔案中定制虛拟機連接配接并追蹤網絡裝置。

在libvirt中運作KVM網絡有兩種方法:網絡位址轉換(NAT)和 橋接網絡。網絡位址轉換是預設方法,橋接網絡僅對非常特殊的基礎設施有意義。

對大多數管理者來說,最好從了解KVM網絡在預設安裝中如何工作開始。如果想建立定制安裝,通過學習導航用于網絡位址轉換的NAT配置檔案,同樣可以熟悉相關設定。例如,你可以建立多個允許你改變不同虛拟機之間的網絡流量的NAT接口。

如何管理KVM?

首先是單個資源的基礎虛拟化管理,有開源的虛拟化工具集libvirt,通過指令行接口提供安全的遠端管理,可管理單個系統。

然後是管理全部運作KVM的多個伺服器,有兩種:用Red Hat Enterprise Virtualization-Management,即RHEV-M(管理多個RHEV-H系統)和IBM Systems Director VMControl(管理多個RHEL系統)。

最後有IBM Tivoli産品與開源虛拟化項目oVirt,為主機和子機提供進階功能,包括高可用性熱遷移存儲管理系統排程等。

如何提升KVM使用性能?

如果在主機上使用KVM,通常會激活數個客戶作業系統,而且這些作業系統經常運作相同的OS,這意味着大量的核心頁面被多次加載。通過應用KSM(kernel samepage merging,核心同頁合并),許多虛拟機可以使用相同數量的記憶體啟動。

在RHEL 6和Fedora 14中,KSM預設是打開的。KSM通過兩個服務:ksmd和ksmtuned實作,這兩個服務在系統初始化時自動啟動。管理者應該判斷他們的環境并決定保持KSM處于運作狀态還是關閉它。

開源虛拟化聯盟OVA

KVM一出現便收到各大廠商追捧。2011年五月,IBM、惠普、英特爾、紅帽、BMC、Eucalyptus與SUSE宣布聯合組建開放虛拟化聯盟OVA,緻力于促進KVM等開放虛拟化技術的應用。到目前為止,OVA的會員已經超過250個。

OVA不是一個開發組織或标準體。OVA主要承諾有五點:一是提升開源KVM虛拟化的采用率;二是加速建立圍繞KVM的第三方解決方案生态系統;三是增加市場對KVM的整體認知度;四是鼓勵互操作性;五是分享最佳實踐與客戶成功經驗。

OVA為客戶提供了一個平台,推銷與KVM相關的最佳實踐與KVM産品。此外,OVA還會組織教育部落格與技術講座,幫助客戶了解學習KVM。

RedHat KVM 産品

多數主流Linux版本現在都内置KVM,比如Red Hat Enterprise Linux(RHEL),或者将KVM作為獨立hypervisor擷取,例如Red Hat Enterprise Virtualization(RHEV)。紅帽的這兩個方案都提供KVM虛拟化,但在管理、功能與實施中有重大差別。

RHEL為小型環境打造

Red Hat Enterprise Linux (RHEL)是款很通用的Linux伺服器産品,依賴KVM虛拟化。它由Linux核心與大量包組成,包括Apache Web伺服器與MySQL資料庫,以及一些KVM管理工具。使用RHEL 6可以安裝并管理少量虛拟機,但不能傳遞最佳的性能與最優的KVM管理平台。當然,在小型環境中,RHEL 6能滿足你對開源虛拟化的所有要求。如果想虛拟運作Linux的伺服器,或者虛拟運作Linux與Windows伺服器的話,該購買方法最合适。

RHEL6.3提供了一個Virt-P2V工具,可以将Windows和RedHat Linux的實體機轉換成虛拟機,使用KVM進行部署。将于2013年傳遞的RHEL 7将有幾個關鍵主題,包括資料中心運作效率、虛拟化與雲增強,以及內建開發工具的改進。

在管理方面,有開源的虛拟化工具集libvirt管理單個系統,IBM Systems Director VMControl管理多個RHEL系統。VMControl即能管理實體資源也能管理虛拟資源,還能管理異構hypervisor。新版VMControl 2.4,可管理KVM與其他hypervisor。

RHEV适合大型企業與雲環境

如果虛拟化是你IT架構中的關鍵部分,那麼你就不僅僅需要管理一些虛拟機了。對于企業級KVM虛拟化,你需要的是輕松的KVM管理、高可用性、最佳性能與其他進階功能。Red Hat Enterprise Virtualization (RHEV)包含RHEV Manager (RHEV-M),這個是集中的KVM管理平台,能同時管理實體與虛拟資源。

RHEV-M能管理虛拟機與其磁盤鏡像,安裝ISO,進行高可用性設定,建立虛拟機模闆等,這些都能從圖形web界面完成。也可使用RHEV-M管理兩種類型的hypervisor。RHEV自身帶有一個獨立的裸機hypervisor,基于RHEL與KVM虛拟化,作為托管的實體節點使用。另外,如果你想從RHEV管理運作在RHEL上的虛拟機,可注冊RHEL伺服器到RHEV-M控制台。RHEV管理器同樣還支援運作KVM的RHEL主機。這一特性使在現有RHEL環境中部署RHEV更加容易。

要管理雲環境,紅帽的合作夥伴IBM打造了一套SmartCloud解決方案。其中,IBM SmartCloud Provisioning是一款雲端服務軟體,提供面向虛拟基礎設施的雲服務(IaaS),它允許使用者按照其需求對虛拟機以及資料存儲進行操作與管理。無論你在背景采用KVM還是其他虛拟化技術都支援,存儲采用Hadoop分布式檔案系統,終端使用者界面使用也更簡單,易于操作。

4、KVM 和 QEMU、libvirt

4.1 QEMU

  qemu 也是一款虛拟化技術,就算不使用kvm,單傳的qemu也可以完全實作一個虛拟機。那為何還會有qemu-kvm這個名詞那。是因為雖然kvm的技術已經相當成熟而且可以對很多東西進行隔離,但是在某些方面還是無法虛拟出真實的機器。比如對網卡的虛拟,那這個時候就需要另外的技術來做補充,而qemu-kvm則是這樣一種技術。它補充了kvm技術的不足,而且在性能上對kvm進行了優化。

準确來說,KVM是Linux kernel的一個子產品,可以用指令modprobe去加載KVM子產品。加載了子產品後,才能進一步通過其他工具建立虛拟機。但僅有KVM子產品是 遠遠不夠的,因為使用者無法直接控制核心子產品去作事情,你還必須有一個運作在使用者空間的工具才行。這個使用者空間的工具,kvm開發者選擇了已經成型的開源虛拟化軟體 QEMU。

說起來QEMU也是一個虛拟化軟體,它的特點是可虛拟不同的CPU。比如說在x86的CPU上可虛拟一個Power的CPU,并可利用它編譯出可運作在Power上的程式。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的使用者空間工具了。是以你會看到,官方提供的KVM下載下傳有兩大部分(qemu和kvm)三個檔案(KVM子產品、QEMU工具以及二者的合集)。也就是說,你可以隻更新KVM子產品,也可以隻更新QEMU工具。這就是KVM和QEMU 的關系。

是以,除了在核心空間的KVM子產品之外,在使用者空間需要 QEMU 來模拟所需要CPU和裝置模型以及用于啟動客戶機程序,這樣才有了一個完整的KVM運作環境。而qemu-kvm是為了針對KVM專門做了修改和優化的QEMU分支,在2012年,qemu-kvm分支裡面的小部分特性還沒有完全合并進入到qemu的主幹代碼之中。

qemu 全稱Quick Emulator。是獨立虛拟軟體,能獨立運作虛拟機(根本不需要kvm)。kqemu是該軟體的加速軟體。kvm并不需要qemu進行虛拟處理,隻是需要它的上層管理界面進行虛拟機控制。虛拟機依舊是由kvm驅動。

Qemu可以模拟CPU - 通過二進制翻譯将一個指令集翻譯成另一種指令集;可以模拟MMU - 管理使用者os,或者使用者程序(取決于qemu是工作在系統态還是使用者态);可以模拟IO - 抽象實際的實體裝置。以上三點都是軟體模拟,強大但是效率較低。是以,qemu本身是個emulator,機器指令都由軟體翻譯執行。機器狀态由軟體資料結構儲存。是以隻要有時間,有閑心,理論上一個emulator可以虛拟任何硬體。

但是,qemu單獨很慢,因為一條虛拟機的機器指令要翻譯成host機的多條指令。在不考慮cache miss的情況下,速度會有十或者百數量級的降低(相比于直接運作在硬體上的機器)。kvm幫助qemu把很多代碼扔到硬體上執行,這部分代碼的速度就不慢了。是以qemu-kvm快很多。

虛拟化 - KVM 虛拟化 - KVM

KVM和QEMU關系

4.2 libvirt

  libvirt 是一系列提供出來的庫函數,用以其他技術調用,來管理機器上的虛拟機,包括各種虛拟機技術,kvm、xen與lxc等,都可以調用libvirt提供的api對虛拟機進行管理。有這麼多的虛拟機技術,它為何能提供這麼多的管理功能那。是因為它的設計理念,它是面向驅動的架構設計。對任何一種虛拟機技術都開發設計相對于該技術的驅動。這樣不同虛拟機技術就可以使用不同驅動,而且互相直接不會影響,友善擴充。而且libvirt提供了多種語言的程式設計接口,可以直接通過程式設計,調用libvirt提供的對外接口實作對虛拟機的操作。如今流行的雲計算中的IaaS是與該庫聯系相當密切的。通過下圖可以看出它的架構設計思想。

  從該圖可以看出,在libvirt api之上會有很多個driver,對于每一種虛拟機技術都會有一種driver,用來充當該虛拟機技術與libvirt之間的包裝接口。如此設計就可以避免libvirt需要設計各種針對不同虛拟機技術的接口,它主要關注底層的實作,提供對外接口調用,而不同的虛拟機技術通過調用libvirt提供的接口來完成自己所需要的功能。

虛拟化 - KVM 虛拟化 - KVM

5. KVM 的安裝和使用

http://baike.baidu.com/view/3474915.htm

5.1 安裝方法

一、安裝準備 1.确定機器有VT 終端輸入指令: grep vmx /proc/cpuinfo (INTEL晶片) grep  svm /proc/cpuinfo (AMD晶片) 不知道晶片的生産廠商則輸入:egrep '(vmx| svm)' /proc/cpuinfo 如果flags: 裡有vmx 或者 svm就說明支援VT;如果沒有任何的輸出,說明你的cpu不支援,将無法成功安裝KVM虛拟機。 2. 確定BIOS裡開啟VT Intel(R) Virtualization Tech [Enabled] 如有必要,還需在BIOS中開啟VT-d 3. 確定 核心版本較新,支援KVM 用uname –r檢視 核心版本,如果在2.6.20以下的linux版本,需更新核心。   二、安裝KVM   下面就Ubuntu和CentOS下安裝使用KVM虛拟機做介紹:   Ubuntu 中用guest登陸,安裝KVM的指令為: sudo  apt-get install kvm qemu qemu-kvm virt-manager kernel-package linux-source kqemu-source build-essential   kvm安裝成功後會有/dev/kvm,如果無需圖形管理器,隻需要安裝前三個即可。 再來檢視下KVM是否安裝成功,執行:virsh -c qemu:///system list 如果輸入結果像下面這樣的,那麼成功了: Connecting to uri: qemu:///system Id Name State ---------------------------------- 注1:CentOS中安裝時,先要選擇Selinux為enalble,使用指令 #system-config-securitylevel-tui 可檢視或修改selinux的狀态。 注2: CentOS中用root登陸時則安裝指令為: yum install kvm kmod-kvm qemu 再裝入kvm子產品:modprobe kvm-intel (Intel機器) 或者 modprobe kvm-amd (amd機器) 注3:可以用以下指令來檢查是否裝入kvm子產品: /sbin/lsmod | grep kvm 如果輸出關于kvm版本的資訊則已裝入kvm子產品 注4: 安裝好後,可使用qemu-kvm指令,輸入該指令,如果系統顯示未知的指令,可檢視/usr/libexec中是否有qemu-kvm 可執行檔案,如果有,将其拷貝到/bin目錄下即可。如果确實按照上面的步驟進行了,卻在/bin,/usr/libexec,/usr/bin,/usr/sbin裡都找不到qemu-kvm 可執行檔案,可執行以下指令: #yum provides "*/qemu-kvm" 注5:安裝新 核心後,可能有部分 軟體版本過低,不相容。比如firefox因版本過低,無法啟動。 CentOS下可使用如下指令更新該 軟體(以firefox為例): #yum update firefox 

5.2、在KVM下安裝虛拟機 

1.用QEMU建立 磁盤鏡像 sudo qemu-img create –f qcow windows.img 8G 注:在CentOS和新版Qemu中為:qemu-img create –f qcow2 windows.img 8G   2.使用KVM安裝Guest VM CD光牒安裝: sudo kvm –localtime –cdrom /dev/cdrom -m 512 -boot d win2.img 硬碟安裝: sudo kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –clock –rtc –no-acpi 注:官方推薦使用 -no-acpi 參數,原因是 qemu/kvm不太支援,可能造成 cpu 的占用偏高。 注1:CentOS下 硬碟安裝為 qemu-kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –no-acpi 即需要去掉了-clock rtc選項,否則會出現無法初始化時鐘。 注2:CentOS quest mouse: export SDL_VIDEO_X11_DGAMOUSE=0可解決VM中無法識别USB滑鼠的問題。 注3: 安裝win 7時,不能使用-no-acpi選項。

5.3 KVM 使用

KVM啟動Guest ① sudo kvm –boot c –m 512 –hda windows.img ② sudo kvm -boot c -m 512 -hda /home/lm/kvm/winxp.img -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tap0,script=no -clock rtc -soundhw es1370 -smp 2 注意:在KVM-87下,請去掉df=h -m 512 配置設定512MB的記憶體 -hda /home/lm/kvm/winxp.img -localtime 使用本地時間(一定要加這個參數,不然虛拟機時間會有問題) -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tapo,script=no 使用網絡,并連接配接到一個存在的網絡裝置tap0,注意mac位址一定要自己編一個,特别是如果你虛拟了多個系統并且要同時運作的話,不然就MAC沖突了,在KVM-87下去掉df=h -boot d 從 CD光牒啟動 (從 鏡像啟動也是用這個。從硬碟啟動則為 -boot c ) -smp 2 smp處理器個數為2個,如果你是4核處理器,後面的數字就為4 -clock rtc 使用rtc時鐘(如果不開啟此選項,WINXP可能會很慢)

5.4 KVM管理工具

能夠管理KVM的工具很多。 首先是單個資源的基礎虛拟化管理,有開源的虛拟化工具集 libvirt,通過指令行接口提供安全的遠端管理,可管理單個系統。   然後是管理全部運作KVM的多個伺服器,有兩種:用Red Hat Enterprise Virtualization-Management,即RHEV-M(管理多個RHEV-H系統)和IBM Systems Director VMControl(管理多個RHEL系統)。   最後有 Tivoli産品。包括Tivoli Provisioning Manager、Tivoli Service Automation Manager與Tivoli Monitoring for Virtual Servers。   RHEV-M RHEV-M(Red Hat Enterprise Virtualization-Management)使用圖形使用者界面管理實體與邏輯資源。允許管理者檢視并管理虛拟機及其鏡像,還支援熱遷移,配置高可用性叢集。随着RHEV 3.0的釋出,RHEV-M 3.0也已可用。 作為紅帽虛拟化平台的核心元件,RHEV-M管理控制台還能運作虛拟機的主機節點。可将RHEV-H hypervisor或帶有虛拟化授權的R紅帽企業Linux伺服器配置為節點。這兩種類型的節點使用KVM作為底層的hypervisor。RHEV-H hypervisor是設定RHEV節點的預設選項,它是裸機 hypervisor,隻包含了運作虛拟機RHEL代碼的一個子集。正因為如此,RHEV-H主機的維護更加容易。此外,這些主機需要較少的更新檔和維護就能確定其安全性。 RHEV-H基礎檔案系統隻有100多MB而且運作在記憶體中,這避免了對基礎鏡像的改變。專用的安全增強型 Linux政策以及防火牆阻塞了所有流量,保證了RHEV-H節點的安全性。 RHEV管理器同樣還支援運作KVM的RHEL主機。這一特性使在現有RHEL環境中部署RHEV更加容易。   此外,還有很多開源工具可以管理KVM。比如, IBM、 紅帽等廠商加入到oVirt,這個開源虛拟化項目提供功能豐富的伺服器虛拟化管理系統,為主機和子機提供進階功能,包括高可用性熱遷移存儲管理系統排程等。[1]  

6. OpenStack, kvm, qemu-kvm以及libvirt之間的關系

http://www.huangwei.me/wiki/tech_cloud_kvm_qemu_libvirt_openstack.html

KVM 是最底層的hypervisor,它是用來模拟CPU的運作,它缺少了對network和周邊I/O的支援,是以我們是沒法直接用它的。

QEMU-KVM 就是一個完整的模拟器,它是建構基于KVM上面的,它提供了完整的網絡和I/O支援。

Openstack 不會直接控制 qemu-kvm,它會用一個叫 libvirt 的庫去間接控制 qemu-kvm。libvirt 提供了跨VM平台的功能,它可以控制除了QEMU之外的模拟器,包括vmware, virtualbox, xen等等。

是以為了 openstack 的跨VM性,是以openstack隻會用 libvirt 而不直接用qemu-kvm。libvirt還提供了一些進階的功能,例如pool/vol管理。

繼續閱讀