Top Module Empty

Page Peel Banner

1775224711_38642aac41.jpg

RSS新聞供稿

投票

熱門虛擬化技術產品
 

用戶選單

powered_by.png, 1 kB
業界領先推出 WEB介面 遠端操控管理內建多台 Windows XP 電腦虛擬機器 PDF Print E-mail

  

透過WEB介面 遠端異地操控 多台WindowsXP電腦

針對運行在 x86 硬體,提供 x86 hypervisor 虛擬化。

  

 


KVM hypervisor的高级别视图 

 

KVM 系統管理程式

KVM 所使用的方法是通過簡單地載入內核模組而將 Linux 內核轉換為一個系統管理程式。這個內核模組導出了一個名為 /dev/kvm 的設備,它可以啟用內核的客戶模式(除了傳統的內核模式和用戶模式)。有了 /dev/kvm 設備,VM 使自己的位址空間獨立於內核或運行著的任何其他 VM 的位址空間。設備樹(/dev)中的設備對於所有用戶空間進程來說都是通用的。但是每個打開 /dev/kvm 的進程看到的是不同的映射(為了支持 VM 間的隔離)。

KVM 然後會簡單地將 Linux 內核轉換成一個系統管理程式(在安裝 kvm 內核模組時)。由於標準 Linux 內核就是一個系統管理程式,因此它會從對標準內核的修改中獲益良多(記憶體支援、調度程式等)。對這些 Linux 元件進行優化(例如 2.6 版本內核中的新 O(1) 調度程式)都可以讓系統管理程式(主機作業系統)和 Linux 客戶作業系統同時受益。但是 KVM 並不是第一個這樣做的程式。UML 很久以前就將 Linux 內核轉換成一個系統管理程式了。使用內核作為一個系統管理程式,您就可以啟動其他作業系統,例如另一個 Linux 內核或 Windows 系統。



 

KVM

安裝 KVM 之後,您可以在用戶空間啟動客戶作業系統。每個客戶作業系統都是主機作業系統(或系統管理程式)的一個單個進程。 圖 2 提供了一個使用 KVM 進行虛擬化的視圖。底部是能夠進行虛擬化的硬體平臺(目前指的是 Intel VT 或 AMD-SVM 處理器)。在裸硬體上運行的是系統管理程式(帶有 KVM 模組的 Linux 內核)。這個系統管理程式與可以運行其他應用程式的普通 Linux 內核類似。但是這個內核也可以支持通過 kvm 工具載入的客戶作業系統。最後,客戶作業系統可以支援主機作業系統所支援的相同應用程式。


圖 2. 使用 KVM 的虛擬化元件
使用 KVM 的虛擬化元件
 

KVM 向 Linux 中引入了一種除現有的內核和用戶模式之外的新進程模式。這種新模式就稱為客戶 模式,顧名思義,它用來執行客戶作業系統代碼(至少是一部分代碼)。回想一下內核模式表示代碼執行的特權模式,而用戶模式則表示非特權模式(用於那些運行在內核之外的程式)。根據運行內容和目的,執行模式可以針對不同的目的進行定義。客戶模式的存在就是為了執行客戶作業系統代碼,但是只針對那些非 I/O 的代碼。在客戶模式中有兩種標準模式,因此客戶作業系統在客戶模式中運行可以支援標準的內核,而在用戶模式下運行則支援自己的內核和用戶空間應用程式。客戶作業系統的用戶模式可以用來執行 I/O 操作,這是單獨進行管理的。

在客戶作業系統上執行 I/O 的功能是由 QEMU 提供的。QEMU 是一個平臺虛擬化解決方案,允許對一個完整的 PC 環境進行虛擬化。客戶作業系統所生成的任何 I/O 請求都會被中途截獲,並重新發送到 QEMU 進程類比的用戶模式中。

KVM 通過 /dev/kvm 設備提供了記憶體虛擬化。每個客戶作業系統都有自己的位址空間,並且是在實例化客戶作業系統時映射的。映射給客戶作業系統的實體記憶體實際上是映射給這個進程的虛擬記憶體。為了支援客戶物理位址到主機物理位址的轉換,系統維護了一組影子頁表(shadow page table)。處理器也可以通過在訪問未經映射的記憶體位置時使用系統管理程式(主機內核)來支援記憶體轉換進程。


 

 
 

實例化新客戶作業系統

新客戶作業系統的實例化是由一個名為 kvm 的工具提供的。這個工具可以與 kvm 模組協同工作,使用 /dev/kvm 來載入客戶作業系統,將它與虛擬磁片(主機作業系統中的一個普通檔)關聯起來,然後啟動客戶作業系統。

通過一組在 /dev/kvm 設備上執行的 ioctls 可以提供控制支援。當第一次打開這個特殊檔時,就會創建一個新的 VM 物件,它與一個虛擬 CPU 關聯在一起。您然後可以使用幾個 ioctls 來創建一個虛擬 CPU,檢查 kvm 版本,創建記憶體區域,然後啟動一個虛擬 CPU。您可以使用 kvm 命令實現這種功能。

 


 

 
< Prev   Next >
Copyright © 2010 Array Green Technology CO., LTD. All rights reserved.