您好,登錄后才能下訂單哦!
Ubuntu中怎么構建Kvm環境,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
在 x86-64 架構的處理器中, KVM 必需的硬件虛擬化擴展分別為: Intel 的虛擬化技術(Intel VT) 和 AMD 的 AMD-V 技術。首先處理器(CPU) 要在硬件上支持 VT 技術, 還要在 BIOS 中將其功能打開, KVM 才能使用到。 目前, 多數流行的服務器和部分桌面處理器的 BIOS 都默認將 VT 打開了。
Linux 系統中, 可以通過檢查 /proc/cpuinfo 文件中的 CPU 特性標志(flags) 來查看 CPU 目 前是否支持硬件虛擬化。 在 x86 和 x86-64 平臺中, Intel 系列 CPU 支持虛擬化的標志為“vmx”,AMD 系列 CPU 的標志為“ svm”, 所以可以用如下命令行查看“ vmx” 或者“ svm” 標志。
grep -E '(vmx|svm)' /proc/cpuinfo
KVM 是基于內核的虛擬化技術, 要運行 KVM 虛擬化環境, 安裝一個 Linux 操作系統的宿主機(Host) 是必需的。下面將使用ubuntu18.04為例進行安裝。
download Kvm
url: https://git.kernel.org/pub/scm/virt/kvm/kvm.git/
version: linux-4.16.tar.gz
使用可視化的配置選項,否則9k+的配置會讓你崩潰。
make menuconfig
如果出現錯誤:Unable to find the ncurses libraries
sudo apt-get install ncurses-dev
選擇了 Virtualization 之后, 進入其中進行詳細配置, 包括選中 KVM、 選中對處理器的支持等。
CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y CONFIG_HAVE_KVM_MSI=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m # CONFIG_KVM_AMD is not set CONFIG_KVM_MMU_AUDIT=y
確保以上與Kvm相關的配置正確。
需要經過編譯 kernel、 編譯 bzImage 和編譯 module 等三個步驟。
編譯 kernel
make vmlinux -j 20
-j參數表示使用20個進程進行編譯,不是必須。
遇到錯誤:scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: No such file or directory
sudo apt install libssl-dev
編譯 bzImage
make bzImage
編譯 module
make modules -j 20
KVM 的安裝包括兩個步驟: module 的安裝、 kernel 與 initramfs 的安裝。
安裝 module
make modules_install
以上命令可以將編譯好的 module 安裝到相應的目錄之中, 在默認情況下 module 被安裝到 /lib/modules/$kernel_version/kernel 目錄之中。
報錯Makefile:934: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev,libelf-devel or elfutils-libelf-devel"
在配置文件暫時去掉這個配置:
# CONFIG_STACK_VALIDATION is not set
安裝好 module 之后, 可以查看一下相應的安裝路徑, 可看到 kvm 模塊也已經安裝.
ls -l /lib/modules/4.15.0/kernel/ ls -l /lib/modules/4.15.0/kernel/arch/x86/kvm/
安裝 kernel 和 initramfs
make install
報錯:gzip: stdout: No space left on device
清理/boot分區或者調整/boot分區的大小。
ls -l /boot/
通過以上命令可見, 在 /boot 目錄下生成了內核(vmlinuz) 和 initramfs 等內核啟動所需的文件。
cat /boot/grub/grub.cfg
通過以上命令看到,在運行 make install 之后, grub 配置文件(如 : /boot/grub/grub.cfg) 中也自動添加了一個 grub 選項。
重新啟動系統, 選擇剛才為了 KVM 而編譯、 安裝的內核啟動。
在通常情況下, 系統啟動時默認已經加載了 kvm 和 kvm_intel 這兩個模塊; 如果沒有加載, 請手動用 modprobe 命令依次加載 kvm 和 kvm_intel 模塊。
# 查看是否加載 lsmod | grep kvm # 如果沒有就手動加載 modprobe kvm modprobe kvm_intel
檢查 /dev/kvm 文件
它是 kvm 內核模塊提供給用戶空間的 qemu-kvm 程序使用的一個控制接口, 它提供了客戶機(Guest) 操作系統運行 所需要的模擬和實際的硬件設備環境。
ls -l /dev/kvm
除了在內核空間的 kvm 模塊之外,在用戶空間需要 QEMU 來模擬所需要 CPU 和設備模型以及用于啟動客戶機進程,這樣才有了一個完整的 KVM 運行環境。 而 qemu-kvm 是為了針對 KVM專門做了修改和優化的 QEMU 分支。
下載 qemu-kvm 源碼
url: https://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git
version: qemu-kvm-2.3.0.tar.gz
配置 qemu-kvm 直接運行代碼倉庫中 configure 文件進行配置.
./configure
報錯ERROR: pkg-config binary 'pkg-config' not found
sudo apt install pkg-config
報錯ERROR: zlib check failed Make sure to have the zlib libs and headers installed.
sudo apt-get install zlib1g-dev
報錯ERROR: glib-2.12 gthread-2.0 is required to compile QEMU
sudo apt-get install libglib2.0-dev
報錯ERROR: pixman >= 0.21.8 not present.
apt-get install libpixman-1-dev
報錯ERROR: DTC (libfdt) not present.
apt-get install libfdt-dev
修正以上錯誤后還是會編譯出錯。
發現kernel.org下載的版本兩年沒更新了,到官網下載最新的穩定版:
url: https://www.qemu.org/download/ version: 2.12.0
確保一下配置正確:
VNC support yes # 通常需要通過 VNC 連接到客戶機中 KVM support yes # 這是對 KVM 的支持
編譯 qemu-kvm 直接make進行安裝:
make -j 20
可以看到, 最后有編譯生成 qemu-system-x86_64 文件, 它就是我們常用的 qemu-kvm 的命令行工具
安裝 qemu-kvm 編譯完成之后, 運行make install
命令即可安裝 qemu-kvm。
qemu-kvm 安裝過程的主要任務有這幾個 : 創建 qemu 的一些目錄, 復制一些配置文件到相應的目錄下, 復制一些 firmware 文件(如 : sgabios.bin, kvmvapic.bin) 到目錄下以便 qemu-kvm 的命令行啟動時可以找到對應的固件提供給客戶機使用, 復制 keymaps 到相應的目錄下以便在客戶機中支持各種所需鍵盤類型, 復制 qemu-system-x86_64、 qemu-img 等可執行程序到對應的目錄下。
檢查 qemu-kvm 安裝之后的系統狀態
which qemu-system-x86_64 which qemu-img ls /usr/local/share/qemu/ ls /usr/local/share/qemu/keymaps/
由于 qemu-kvm 是用戶空間的程序, 安裝之后不用重啟系統, 直接用 qemu-systemx86_64、 qemu-img 這樣的命令行工具即可使用 qemu-kvm 了。
創建一個鏡像文件或者磁盤分區等來存儲客戶機的系統和文件
dd if=/dev/zero of=rhel6u3.img bs=1M count=40960
啟動客戶機
qemu-system-x86_64 -usbdevice tablet -m 4096 -smp 2 --enable-kvm -boot order=cd -hda /home/micle/Proj/VirtDemo/win7sp1.img -cdrom /home/micle/Proj/VirtDemo/win7pro_sp1_x64_dvd_u_677031.iso
安裝vncviewer 并連接客戶機
sudo apt install vnc4server sudo apt install xvnc4viewer
vncviewer ip:5900
Ctrl+Alt+2
切換到 QEMU 監視器窗口
在監視器窗口中可以執行一些命令, 比如執行info kvm
命令來查看當前 QEMU 是否使用著 KVM. Ctrl+Alt+1
可以切換回原窗口。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。