KVM 虛擬化架構和實現原理__kvm

來源:互聯網
上載者:User
目錄

目錄 KVM虛擬化架構 devkvm QEMU OpenstackKVMQEMU 的關係 KVM的虛擬化實現

KVM虛擬化架構

KVM是嵌入在Linux作業系統標準核心中的一個虛擬化模組,它能夠將一個Linux標準核心轉換成為一個VMM,嵌有KVM模組的Linux標準核心可以支援通過kvm tools來進行載入的GuestOS。所以在這樣的作業系統平台下,電腦物理硬體層上直接就是VMM虛擬化層,而沒有獨立出來的HostOS作業系統層。在這樣的環境中HostOS就是一個VMM。

每個由KVM建立的GuestOS都是HostOS(或VMM)上的一個單個進程。而在GuestOS上的User-space中啟動並執行Applications可以理解為就是進程中的線程。

需要注意的是:KVM只是虛擬化解決方案的一部分,想要實現全虛擬化,還需要其他的條件:
1. CPU處理器提供的虛擬化支援(VT-x 硬體輔助虛擬化,可以為GuestOS建立虛擬化處理器,本質是對寄存器的隔離類比和對指令集的劃分)。
2. 記憶體可以通過kvm虛擬化成獨立的虛擬化地址(/dev/kvm)
3. I/O虛擬化(QEMU)

==> KVM虛擬化 = KVM核心模組 + /dev/kvm + QEMU /dev/kvm

Linux作業系統標準核心中的KVM核心模組產生了一個名為/dev/kvm的裝置,有了/dev/kvm裝置,使得GuestOS的地址空間(記憶體位址、磁碟地址)能夠獨立於標準核心或其他任何GuestOS的地址空間。Linux作業系統目錄結構包含的/dev分類樹下的裝置對於所有User-space進程或線程(無論是在GuestOS上,還是在VMM上)來說都是通用的,但是每個開啟/dev/kvm裝置的不同的進程或線程,所能使用的都是唯一且各不相同的地址映射(為了支援GuestOS間的隔離)。

KVM核心模組通過/dev/kvm裝置提供了記憶體虛擬化,給予GuestOS與核心或者其他GuestOS相對獨立的地址空間。每個GuestOS都有自己的地址空間,並且這些地址空間是在執行個體化GuestOS時建立映射的。映射給GuestOS的實體記憶體實際上是映射給這個GuestOS在VMM中相應進程的虛擬記憶體。
有兩種支援Guest地址到Host(VMM)地址的轉換方法: 應用LinuxOS維護的一組影子頁表(shadow page table) CPU也可以通過在訪問未經映射的記憶體位置時使用VMM(主機核心)來支援記憶體轉換進程。

所以總的來說,/dev/kvm裝置的作用就是:將不同的GuestOS之間的地址隔離,或將GuestOS和HostOS(VMM)之間的地址隔離 QEMU

QEMU是一個I/O虛擬化解決方案,能夠對一個完整的電腦物理層環境進行虛擬化(EG. 磁碟、圖形卡、網路裝置)。

在GuestOS中產生的所有I/O請求都會被QEMU中途截獲,並重新發送到QEMU進程類比的User Mode中。 Openstack、KVM、QEMU 的關係

KVM 用來類比 CPU 的運行,但缺少了對 Network 和 I/O 的支援。QEMU-KVM 是一個完整的模擬器,它基於 KVM 上,提供了完整的 Network 和 I/O 支援。其中 Openstack 為了跨 VM 性,所以不會直接控制 QEMU-KVM,而是通過 libvit 的庫去間接控制 QEMU-KVM 。 KVM的虛擬化實現

KVM核心模組為Linux標準核心引入了一種除現有的Kernel ModeUser Mode之外的新進程模式。這種新模式就稱為Guest Mode模式,顧名思義,它用來執行GuestOS的代碼。
Linux標準核心的執行模式可以針對不同的運行內容和目的進行定義。Guest Mode的存在就是為了執行GuestOS的代碼,但是只針對那些非I/O的代碼。I/O代碼還需要QEMU來作為支援。

GuestOS可以在兩種模式下運行: 在Guest Mode中啟動並執行GuestOS可以支援標準的核心。 在User Mode下啟動並執行GuestOS則支援自己的核心和User-space(Applications)。

相同的是,GuestOS只能夠在User Mode下執行I/O操作,而且這是單獨使用QEMU-KVM進行管理的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.