久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

OpenStack中如何理解KVM和QEMU

190次閱讀
沒有評論

共計 1406 個字符,預計需要花費 4 分鐘才能閱讀完成。

OpenStack 中如何理解 KVM 和 QEMU,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一、KVM 概述

KVM 是 Kernel-based Virtual Machine 的縮寫,即基于 linux 內核的虛擬機,是一種的完全虛擬化的解決方案,也就是說普通的操作系統不需經過修改就可以在 KVM 上運行。它使用 linux 自身的調度器進行管理,所以相對于 xen,其核心源碼很少。KVM 的虛擬化需要硬件的支持(如 intel VT 技術或者 AMD V 技術),是基于硬件的完全虛擬化。

準確來說,KVM 是 Linux 的一個模塊。可以用 modprobe 去加載 KVM 模塊。加載了模塊后,就可以使用 KVM 模塊創建虛擬機,實現虛擬內存的分配,虛擬 CPU 寄存器的讀寫以及管理虛擬 CPU 的運行。但僅有 KVM 模塊是遠遠不夠的,因為用戶無法直接控制內核模塊去作事情,所以還必須有一個用戶空間的工具才行。這個用戶空間的工具,開發者選擇了已經成型的開源虛擬化軟件 QEMU,使用它來模擬 PC 硬件的用戶空間組件,模擬 I / O 設備模型以及提供訪問外設的途徑。后邊會詳細的介紹 QEMU,這里先知道它用了 QEMU 就好了。

KVM 基本架構如下圖所示。

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

客戶模式:執行非 I / O 的客戶代碼,虛擬機運行在客戶模式下。

內核模式:實現到客戶模式的切換,處理因為 I / O 或者其它指令引起的從客戶模式的退出,KVM Driver 工作在這種模式下。

用戶模式:代表客戶執行 I / O 指令 Qemu 運行在這種模式下。

KVM 的具體工作流程如下:
用戶模式的 qemu 利用 libkvm 通過 ioctl 進入內核模式,kvm 模塊未虛擬機創建虛擬內存,虛擬 CPU 后執行 VMLAUCH 指令進入客戶模式。加載 Guest OS 并執行。如果 Guest OS 發生外部中斷或者影子頁表缺頁之類的情況,會暫停 Guest OS 的執行,退出客戶模式出行異常處理,之后重新進入客戶模式,執行客戶代碼。如果發生 I / O 事件或者信號隊列中有信號到達,就會進入用戶模式處理。

二、QEMU 概述

QEMU(Quick Emulator)是一個獨立的開源虛擬機軟件,它是通過純軟件來仿真 X86 平臺處理器的取指、解碼和執行,虛擬客戶機的指令并不在物理平臺上直接執行,它利用其中的微型代碼生成器模塊進行動態翻譯,將需要模擬的客戶機的代碼架構轉換成主機代碼架構并最終執行。QEMU 虛擬機是一個純軟件的實現(KVM 需要硬件虛擬化技術支持),所以性能低下。但是,其優點是虛擬機可以與宿主機并不是同一個架構。與 KVM 不同的是,QEMU 的代碼中有整套的虛擬機實現,包括處理器虛擬化、內存虛擬化,以及 KVM 使用到的虛擬設備模擬(比如網卡、顯卡、存儲控制器和硬盤等)

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1406字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 松桃| 克什克腾旗| 广宁县| 福建省| 西贡区| 武义县| 兖州市| 旬邑县| 宾川县| 黄平县| 洛阳市| 宁乡县| 望奎县| 镇安县| 高安市| 花莲县| 平武县| 西乌| 峡江县| 丽江市| 建德市| 贵德县| 砀山县| 修水县| 新疆| 略阳县| 河津市| 上林县| 西安市| 苏尼特右旗| 荆州市| 鲁甸县| 水富县| 神农架林区| 镇巴县| 随州市| 平远县| 永安市| 佛坪县| 蒙城县| 嘉黎县|