在x86-64架構的處理器中,kvm必需的硬體虛擬化擴充套件分別為:intel的虛擬化技術(intel vt)和amd的amd-v技術。
除了必需的處理器虛擬化擴充套件以外,如果伺服器晶元還支援vt-d,也建議在bios中將其開啟,因為後面一些相對高階的裝置的直接分配功能會需要硬體vt-d技術的支援。vt-d(virtualization technology for directed io)是對裝置i/o的虛擬化硬體支援。
在linux系統中,可以通過檢查 /proc/cpuinfo 檔案中的cpu特性標誌(flags)來檢視cpu目前是否支援硬體虛擬化。在x86或x86-64平台中,intel系列cpu支援虛擬化的標誌為vmx,amd系列cpu的標誌為svm,所以可用如下命令列檢視vmx或者svm標誌。
grep -e '(vmx|svm)' /proc/cpuinfo
清華的映象站點:
進入kvm.git之後:
- 檢視幫助資訊
make help
常用配置命令:
- make config
- 輸入y 將該特性編譯進核心
- 輸入n 不將該特性編譯進核心
- 輸入m 將該特性作為模組進行編譯
- 輸入? 顯示幫助資訊
需要經過編譯kernel、編譯bzimage和編譯module三步。其中編譯bzimage這一步不是必須的。
直接執行 make 或 make all 也可以將以上三步全部包括。
編譯kernel的命令為 make vmlinuz
make vmlinuz -j 8
此處,-j 引數是讓make工具採用多程序來編譯。
執行編譯bzimage的命令 make bzimage
執行編譯核心模組的命令 make modules
kvm的安裝包括2個步驟:module的安裝, kernel和initramfs的安裝
安裝 module
make modules_all - 可以將編譯好的module安裝到相應的目錄中。
在預設情況下,module被安裝到 /lib/modules//kernel 目錄中。
安裝kernel和initramfs
make install - 可以安裝kernel和initramfs.
可以在 /boot 目錄下看見生成了的核心(vmlinuz)和 initramfs 等核心啟動所需的檔案。
在執行make install之後,grub配置檔案(如 /boot/grub/grub.conf)中也自動新增了乙個grub選項。
重啟系統,就可以選擇剛才為了kvm而編譯、安裝的核心來啟動了。
通常情況下,系統啟動時缺省會載入 kvm 和 kvm_intel 這2個模組。若沒有載入,可以手動用 modprob 命令依次載入 kvm 和 kvm_intel 模組。
modprob kvm
modprob kvm_intel
lsmod | grep kvm
確認kvm相關模組載入成功後,檢查 /dev/kvm 這個檔案,它是kvm核心模組提供給使用者空間的qemu-kvm程式使用的乙個控制介面,它提供了客戶機作業系統執行所需的模擬和實際的硬體裝置環境。
ls -l /dev/kvm
注: 錯誤:
出現問題」glib-2.12 required to compile qemu」.
解決:
在執行 apt-cache search glib2 之後,決定執行 apt-get install libglib2.0-dev
make -j 2
sudo make install
注: 錯誤:
在make的時候會報錯,說有乙個warning,而編譯過程又將所有的warning當成了error.
解決:
在makefile中找到qemu_cflags最開始出現的地方新增一行: qemu_cflags += -w
暫略 暫略
《kvm虛擬化技術 實戰與原理解析》讀書筆記
x86平台虛擬化技術中,新引入的虛擬化層通常稱為虛擬機器監控器 virtual machine monitor,vmm 也叫做hypervisor.宿主機是真實的物理平台,客戶機是虛擬出來的平台。虛擬化實現的技術方式有多種,比如軟體虛擬化和硬體虛擬化,再比如準虛擬化和全虛擬化。準虛擬化需要修改客戶機...
開源KVM虛擬化技術
1.kvm虛擬機器技術原理 kvm全稱kernel based virtual machine,是乙個基於linux環境的開源虛擬化解決方案。與xen vmware等提供完整解決方案的商業化虛擬產品不同,kvm的思想是在linux核心的基礎上新增虛擬機器管理模組,重用linux核心中已經完善的程序排...
Linux 桌面虛擬化技術 KVM
虛擬化產品對比介紹 虛擬化技術 vmware 支援 虛擬化 kvm 概述 kvm 即 kernel based virtual machine 基於核心的虛擬機器 kvm,是乙個開源系統虛擬化模組,自 linux 2.6.20 之後整合在 linux 的各個主要發行版中,它使用linux 自身的排程...