本篇介紹如何在 CentOS Linux 7 的系統之下,安裝 KVM/QEMU 虛擬機器環境,在 VM 中運行各種不同的作業系統。
KVM 是一套以 Linux 核心為基礎的虛擬機器架構,採用開放原始碼的授權,通常會搭配 QEMU 與 libvirt 一起使用,KVM 負責存取 CPU 與記憶體,QEMU 負責模擬其他硬體資源(例如硬碟、網路、顯示卡、USB 設備等),而 libvirt 則提供一個統一的操作的介面,可用於管理虛擬機器、Daemon、儲存與網路等。
KVM 的執行必須仰賴 Intel VT 或 AMD-V 這兩種 CPU 硬體虛擬化功能,若在 Linux 中想要檢查自己的 CPU 是否有開啟這個功能,可以查看 /proc/cpuinfo
中是否有 vmx
或 svm
這兩個關鍵字:
# 檢查 CPU 是否支援硬體虛擬化 grep -E '(vmx|svm)' /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm arat pln pts spec_ctrl intel_stibp flush_l1d
如果查出來沒有硬體虛擬化功能的話,有可能是因為在 BIOS 中沒有啟用,可以嘗試去 BIOS 中找一下。
使用 yum 安裝 KVM 相關套件:
# 安裝 KVM 相關套件
sudo yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils
將 SELinux 關閉,編輯 /etc/sysconfig/selinux
設定檔,將 SELinux
修改為 disabled
:
# SELinux=enforcing
SELinux=disabled
重新開機,讓 SELinux 設定生效,並載入 kvm
核心模組:
# 重新開機
reboot
重新開機之後,檢查 kvm
核心模組是否有被載入
# 檢查 kvm 核心模組是否有被載入
lsmod | grep kvm
kvm_intel 183621 0 kvm 586948 1 kvm_intel irqbypass 13503 1 kvm
啟動 libvirtd
服務:
# 啟動 libvirtd 服務
sudo systemctl start libvirtd
設定開機自動啟動 libvirtd 服務:
# 設定開機自動啟動 libvirtd 服務
sudo systemctl enable libvirtd
安裝好 KVM、QEMU 與 libvirt 之後,接著就可以開始建立虛擬機器了。
建立虛擬機器的方式有很多種,最簡單的方式就是使用 Virtual Machine Manager,透過圖形化的操作介面來建立虛擬機器。
# 執行 Virtual Machine Manager
sudo virt-manager
使用 root
管理者權限執行 Virtual Machine Manager 之後,就會開啟圖形介面的虛擬機器管理員視窗。
以下是使用 Virtual Machine Manager 建立虛擬機器的步驟。
Step 1
在 Virtual Machine Manager 主視窗中,選擇「File」中的「New Virtial Machine」(或是點選工具列中的新增虛擬機器按鈕),開啟新增虛擬機器的視窗。
Step 2
選擇安裝媒體,最常見的方式就是使用 ISO 檔或 CDROM 來安裝。
Step 3
選擇安裝作業系統用的 ISO 檔案所在位置。
Step 4
設定 CPU 核心數量以及記憶體大小。
Step 5
設定硬碟大小,預設的硬碟影像檔會放在 /var/lib/libvirt/images
。
如果預設的位置沒有足夠的空間,也可以選擇在別處自行建立 qcow2 的映像檔。
自行建立好 qcow2 映像檔後,即可指定給新的虛擬機器使用。
Step 6
設定 VM 名稱,同時亦可調整網路設定。
網路設定預設是使用 NAT,也就是說 VM 可以上網,但是外部的電腦無法連進來,如果想要讓外部的連線以進入,就要改用橋接器(bridge)的設定。
Step 7
VM 使用指定的安裝 ISO 檔案開機之後,按照一般的方式安裝作業系統。
在 Virtual Machine Manager 的視窗中,可以查看各 VM 的 CPU 使用量。
這是在 CentOS Linux 7 桌面上使用 KVM/QEMU 運行 Ubuntu Linux 的畫面。
安裝完成後即可使用新的 VM 了。
在預設的 NAT 網路環境中,VM 會以 DHCP 的方式取得 192.168.122.1/24 網段的 IP 位址,直接透過 host OS 的網路上網,對於普通的系統測試來說,這種網路環境設定是最方便的。
在 KVM/QEMU 虛擬機器設定的視窗中,可以自由調整 VM 的各項細部設定值,例如 CPU、記憶體、網路、顯示卡等各種硬體設備,都可以在這裡更改。
如果要安裝 Windows 10 作業系統,只要將安裝的 ISO 檔案改為 Windows 10 的安裝 ISO 檔即可,其餘的設定步驟都相同。
安裝完成之後,即可使用 VM 中的 Windows 10 作業系統了。