libvirt、kvm、qumu等之間的關係
阿新 • • 發佈:2019-02-13
轉自oschina的一篇回答,講的簡單易懂,原地址如下:http://www.oschina.net/question/1050447_156315。
1. qemu, libvirt, virt-manager的關係:qemu和KVM的關係,我在http://my.oschina.net/kelvinxupt/blog/265108這篇部落格中有提到。libvirt是一箇中間層專門用於管理虛擬化的函式庫,將底層不同的虛擬化驅動如qemu+kvm, XEN等都用統一的介面封裝。這樣對使用者而言,只需要知道libvirt的介面就能使用虛擬機器,而不用關心底層的各種驅動的細節。virsh和virt-manager還有kimchi等軟體都是呼叫libvirt來實現虛擬機器的管理。使用者通常是直接使用上面這三個軟體的。
2. qemu-img通常和qemu-system-x86等命令配合使用,用來建立和管理qemu的映象檔案。kvm是一個核心模組,虛擬了一個裝置/dev/kvm,利用該檔案的ioctl來提供介面。qemu就是呼叫了這些介面來使用kvm。使用者不會直接和kvm打交道,只需要在執行qemu的時候加入--enable-kvm就可以使用kvm來加速了。
3. 個人覺得kvm的學習路線從上往下學比較容易些,可以從virsh,virt-manager,libvirt的使用入手,然後學習qemu,再到核心的kvm。
4. 生產環境中為了提高資源的利用率,會專門做一個專注於虛擬化的發行版。該發行版至包含了虛擬化的軟體包如qemu,libvirt,kernel以及一些必要的軟體包,及其精簡。如redhat的rhev-h。然後將該發行版直接安裝在裸機上,用作VMM。