您好,登錄后才能下訂單哦!
這篇文章主要介紹“KVM虛擬化是什么”,在日常操作中,相信很多人在KVM虛擬化是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”KVM虛擬化是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1、虛擬化分為:全虛擬化和半虛擬化,需要CPU的支持。
2、全虛擬化:不需要做任何配置,讓用戶覺得就是一臺真實的服務器
3、半虛擬機化:需要用戶配置,有點麻煩。
4、KVM 僅僅是 Linux 內核的一個模塊。管理和創建完整的 KVM 虛擬機,需要更多的輔助工具。
5、與Xen相比較,KVM就簡化的多了。它不需要重新編譯內核,也不需要對當前kernel做任何修改,它只是幾個可以動態加載的.ko模塊。它結構更加精簡、代碼量更小。所以,出錯的可能性更小。并且在某些方面,性能比Xen更勝一籌。
6、/etc/libvirt/qemu目錄,存放虛擬機的配置文件。
7、kvm的備份:拷貝/etc/libvirt/qemu目錄下的xml配置文件,以及xml中設置的img文件。
8、kvm的還原:進入virsh,執行define 目錄下的xml文件路徑,且確保鏡像文件的存在。
virsh # define /etc/libvirt/qemu/winxp.xml
9、KVM允許客戶機過載使用(over-commit)物理資源,即給客戶機分配的CPU和內存數量多于物理上實際存在的資源。
10、CPU的過載使用,是讓一個或多個客戶機使用vCPU的總數量超過實際擁有的物理CPU數量,QEMU會啟動更多的線程來為客戶機提供服務,這些線程也是被Linux內核調度運行在物理CPU硬件上。
11、最推薦的做法是對多個單CPU的客戶機使用over-commit,比如:在擁有4個邏輯CPU的宿主機中,同時運行多于4個(如8個、16個)客戶機,其中每個客戶機都被分配一個vCPU。這時,如果每個宿主機的負載不很大的情況下,宿主機Linux對每個客戶機的調度是非常有效的,這樣的過載使用并不會帶來客戶機中的性能損失。
12、最不推薦的做法是讓某一個客戶機的vCPU數量超過物理CPU數量。比如,在擁有4個邏輯CPU的宿主機中,同時運行一個或多個客戶機,其中每個客戶機的vCPU數量多于4個(如16個)。這樣的使用方法會帶來比較明顯的性能下降,其性能反而不如將客戶機分配2個(或4個)vCPU,而且如果客戶機中負載過重時,可能會讓整個系統運行不穩定。不過,在并非100%滿負載的情況下,一個(或多個)有4個vCPU的客戶機運行在擁有4個邏輯CPU的宿主機中并不會帶來明顯的性能損失。
13、總的來說,KVM允許CPU的過載使用,但是并不推薦在實際的生產環境(特別是負載較重的環境)中過載使用CPU。在生產環境中過載使用CPU,有必要在部署前進行嚴格的性能和穩定性測試。
14、KVM中內存也是允許過載使用(over-commit)的,KVM能夠讓分配給客戶機的內存總數大于實際可用的物理內存總數。
15、一般來說,有如下三種方式來實現內存的過載使用:
(1)內存交換(swapping):用交換空間(swap space)來彌補內存的不足。
(2)氣球(ballooning):通過virio_balloon驅動來實現宿主機Hypervisor和客戶機之間的協作來完成。
(3)頁共享(page sharing):通過KSM(Kernel Samepage Merging)合并多個客戶機進程使用的相同內存頁。
其中,第一種內存交換的方式是最成熟的(Linux中很早就開始應用),但不推薦使用虛擬內存swap。
16、KVM(模塊):
modprobe 命令加載 KVM 模塊,如果用 RPM 安裝 KVM 軟件包,系統會在啟動時自動加載模塊。加載了模塊后,才能進一步通過其他工具創建虛擬機。但僅有 KVM 模塊是遠遠不夠的,因為用戶無法直接控制內核模塊去做事情,還必須有一個用戶空間的工具。
17、QEMU (管理工具):
QEMU 是一個強大的虛擬化軟件,它可以虛擬不同的 CPU 構架。比如說在 x86 的 CPU 上虛擬一個 Power 的 CPU,并利用它編譯出可運行在 Power 上的程序。
18、QEMU-KVM (管理工具):
KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 內核模塊的用戶空間工具 QEMU-KVM。所以 Linux 發行版中分為 內核部分的 KVM 內核模塊和 QEMU-KVM 工具。
19、Libvirt、virsh、virt-manager(管理工具):
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 實現的。
20、在 KVM 模型中,每一個虛擬機都是一個由 Linux 調度程序管理的標準進程,你可以在用戶空間啟動客戶機操作系統。一個普通的 Linux 進程有兩種運行模式:內核和用戶。 KVM 增加了第三種模式:客戶模式(有自己的內核和用戶模式)。
21、內核模塊導出了一個名為 /dev/kvm 的設備,它可以啟用內核的客戶模式(除了傳統的內核模式和用戶模式)。有了 /dev/kvm 設備,VM 使自己的地址空間獨立于內核或運行著的任何其他 VM 的地址空間。
到此,關于“KVM虛擬化是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。