您好,登錄后才能下訂單哦!
Qemu是一個獨立的虛擬化解決方案,通過inter-VT或AMD SVM實現虛擬化,安裝qemu的系統,可以直接 模擬吹另一個完全不同的系統環江,虛擬機的創建通過qemu-image即可完成。Qemu本身可以不依賴KVM,但是如果有KVM的存在并且硬件(處理器)支持比如Inter VT功能,那么QEMU在對處理器虛擬化這一塊可與里哦用KVM提供的功能來提升性能。
KVM 是集成到 Linux 內核的 Hypervisor 是 X86 架構且硬件支持虛擬化技術(IntelVT或AMD-V)的Linux 的全虛擬化解決方案。它是Linux 的一個很小的模塊,利用 Linux 做大量的事,如任務調度、內存管理與硬件設備交互等。準確來說,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 內核模塊本身只能提供CPU 和內存的虛擬化,所以它必須結合QEMU 才能構成一個完成的虛擬化技術,這就是下面要說的qemu-kvm。
Qemu 將KVM 整合進來,通過 ioctl 調用/dev/kvm 接口,將有關CPU 指令的部分交由內核模塊來做。kvm 負責 cpu 虛擬化+內存虛擬化,實現了 cpu 和內存的虛擬化,但kvm不能模擬其他設備。qemu 模擬 IO 設備(網卡,磁盤等),kvm 加上 qemu 之后就能實現真正意義上服務器虛擬化。因為用到了上面兩個東西,所以稱之為qemu-kvm。 Qemu 模擬其他的硬件,如 Network, Disk,同樣會影響這些設備的性能,于是又產生了pass through 半虛擬化設備virtio_blk, virtio_net,提高設備性能。
Libvirt 是管理虛擬機和其他虛擬化功能,比如存儲管理,網絡管理的軟件集合。它包括一個API 庫,一個守護程序(libvirtd)和一個命令行工具(virsh);libvirt 本身構建于一種抽象的概念之上。它為受支持的虛擬機監控程序實現的常用功能提供通用的 API。 libvirt 的主要目標是為各種虛擬化工具提供一套方便、可靠的編程接口,用一種單一的方式管理多種不同的虛擬化提供方式。
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 管理。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。