歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Red hat Linux

紅帽企業版 6.0 KVM虛機實戰攻略

  在2010年4月發布的RHEL 6.0 Beta版中 ,去掉了Xen,這也許是第一個不包含Xen Hypervisor的知名Linux發行版,之前有報道過Red Hat有可能會在RHEL 6.0中用KVM完全代替Xen,現在看來以前的消息一點不假。KVM 是指基於 Linux 內核的虛擬機(Kernel-based Virtual Machine)。增加 KVM 到 Linux 內核是 Linux 發展的一個重要裡程碑,這也是第一個整合到 Linux 主線內核的虛擬化技術。在 KVM 模型中,每一個虛擬機都是一個由 Linux 調度程序管理的標准進程,你可以在用戶空間啟動客戶機操作系統。一個普通的 Linux 進程有兩種運行模式:內核和用戶。 KVM 增加了第三種模式:客戶模式(有自己的內核和用戶模式)。

  KVM 所使用的方法是通過簡單地加載內核模塊而將 Linux 內核轉換為一個系統管理程序。這個內核模塊導出了一個名為 /dev/kvm 的設備,它可以啟用內核的客戶模式(除了傳統的內核模式和用戶模式)。有了 /dev/kvm 設備,VM 使自己的地址空間獨立於內核或運行著的任何其他 VM 的地址空間。設備樹(/dev)中的設備對於所有用戶空間進程來說都是通用的。但是每個打開 /dev/kvm 的進程看到的是不同的映射(為了支持 VM 間的隔離)。KVM安裝 KVM 之後,您可以在用戶空間啟動客戶操作系統。每個客戶操作系統都是主機操作系統(或系統管理程序)的一個單個進程。 圖 1 提供了一個使用 KVM 進行虛擬化的視圖。

圖 1 KVM 原理圖

  一、KVM 虛擬機的管理工具

  准確來說,KVM 僅僅是 Linux 內核的一個模塊。管理和創建完整的 KVM 虛擬機,需要更多的輔助工具。QEMU-KVM:在 Linux 系統中,首先我們可以用 modprobe 命令加載 KVM 模塊,如果用 RPM 安裝 KVM 軟件包,系統會在啟動時自動加載模塊。加載了模塊後,才能進一步通過其他工具創建虛擬機。但僅有 KVM 模塊是遠遠不夠的,因為用戶無法直接控制內核模塊去做事情,還必須有一個用戶空間的工具。關於用戶空間的工具,KVM 的開發者選擇了已經成型的開源虛擬化軟件 QEMU。QEMU 是一個強大的虛擬化軟件,它可以虛擬不同的 CPU 構架。比如說在 x86 的 CPU 上虛擬一個 Power 的 CPU,並利用它編譯出可運行在 Power 上的程序。KVM 使用了 QEMU 的基於 x86 的部分,並稍加改造,形成可控制 KVM 內核模塊的用戶空間工具 QEMU-KVM。所以 Linux 發行版中分為 內核部分的 KVM 內核模塊和 QEMU-KVM 工具。這就是 KVM 和 QEMU 的關系。 Libvirt、virsh、virt-manager:盡管 QEMU-KVM 工具可以創建和管理 KVM 虛擬機,RedHat 為 KVM 開發了更多的輔助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易於使用。Libvirt 是一套提供了多種語言接口的 API,為各種虛擬化工具提供一套方便、可靠的編程接口,不僅支持 KVM,而且支持 Xen 等其他虛擬機。使用 libvirt,你只需要通過 libvirt 提供的函數連接到 KVM 或 Xen 宿主機,便可以用同樣的命令控制不同的虛擬機了。Libvirt 不僅提供了 API,還自帶一套基於文本的管理虛擬機的命令-- virsh,你可以通過使用 virsh 命令來使用 libvirt 的全部功能。但最終用戶更渴望的是圖形用戶界面,這就是 virt-manager。他是一套用 python 編寫的虛擬機管理圖形界面,用戶可以通過它直觀地操作不同的虛擬機。Virt-manager 就是利用 libvirt 的 API 實現的。

Copyright © Linux教程網 All Rights Reserved