如何在 Rocky Linux 9 / AlmaLinux 9 上安裝 KVM
KVM 是 內(nèi)核虛擬機Kernel Virtualization Machine
與大多數(shù)虛擬化平臺一樣,它將硬件資源(如 CPU、內(nèi)存、存儲、網(wǎng)絡、圖形等)抽象化,并將它們分配給獨立于宿主機運行的客戶機。
先決條件
- 預裝 Rocky Linux 9 / AlmaLinux 9
- 具有管理員權(quán)限的 sudo 用戶
- 互聯(lián)網(wǎng)連接
1、驗證是否啟用了硬件虛擬化
首先,你需要驗證你的系統(tǒng)是否啟用了虛擬化功能。在大多數(shù)現(xiàn)代系統(tǒng)上,此功能已在 BIOS 中啟用。但可以肯定的是,你可以驗證是否如圖所示啟用了虛擬化。
該命令探測是否存在 VMX(虛擬機擴展Virtual Machine Extension),它是英特爾硬件虛擬化的 CPU 標志,或 SVM,它是 AMD 硬件虛擬化的標志。
$ cat /proc/cpuinfo | egrep "vmx|svm"
從以下輸出中,你可以看到我們的系統(tǒng)啟用了英特爾硬件虛擬化:
2、在 Rocky Linux 9 / AlmaLinux 9 上安裝 KVM
確保啟用虛擬化后,下一步就是安裝 KVM 和管理工具。為此,請運行以下 dnf
命令。
$ sudo dnf install qemu-kvm virt-manager libvirt virt-install virt-viewer virt-top bridge-utils bridge-utils virt-top libguestfs-tools -y
安裝完成后,運行以下命令檢查是否已加載所需的 KVM 模塊。
$ lsmod | grep kvm
你應該得到以下輸出以確認已加載必要的模塊:
3、啟動并啟用 libvirtd 守護進程
在下一步中,一定要啟動 libvirtd 守護進程。這是一個服務器端守護程序組件,可在虛擬化的客戶機上運行和管理任務。它用于管理虛擬化技術,例如 Xen、KVM 和 ESXi 等等。
要啟動 libvirtd 守護進程,請運行以下命令:
$ sudo systemctl start libvirtd
請務必啟用該服務以在引導時啟動:
$ sudo systemctl enable --now libvirtd
驗證 libvirtd 守護進程是否正在運行,如下所示:
$ sudo systemctl status libvirtd
4、設置橋接接口
到目前為止,我們已經(jīng)安裝了 KVM 和所有管理工具,事實上,我們可以繼續(xù)啟動虛擬機。但是,如果我們可以從管理程序網(wǎng)絡外部訪問虛擬機,那就太好了。為此,我們需要創(chuàng)建一個橋接接口。
首先,確定系統(tǒng)上的網(wǎng)絡接口。
$ sudo nmcli connection show
從輸出來看,ens160
是活動的網(wǎng)絡接口,請務必注意你的情況下的接口,因為你將一路使用它。
要開始創(chuàng)建網(wǎng)橋,首先,使用以下語法用其 UUID 刪除連接:
$ sudo nmcli connection delete UUID
在我們的例子中,命令將是:
$ sudo nmcli connection delete 19e98123-9a84-30a6-bc59-a7134446bb26
你將收到連接已成功刪除的確認信息。
在繼續(xù)進行之前,最好準備好以下詳細信息:
- 網(wǎng)橋名稱 – 新網(wǎng)橋的首選名稱(例如
br1
) - 設備名稱 – 這是你的網(wǎng)絡接口的名稱。它將作為網(wǎng)橋的從屬設備(例如,
ens160
) - IP 地址/子網(wǎng) – 橋接網(wǎng)絡的 IP 地址和子網(wǎng)(例如
192.168.2.50/24
)。請注意,這應該與你的網(wǎng)絡子網(wǎng)和 IP 地址相對應。 - 網(wǎng)關 – 你網(wǎng)絡的默認網(wǎng)關地址(例如
192.168.2.1
) - DNS1 和 DNS2 – 首選 DNS 地址(例如
8.8.8.8
和8.8.4.4
)
繼續(xù),使用以下語法創(chuàng)建一個新的橋接接口。
$ sudo nmcli connection add type bridge autoconnect yes con-name BRIDGE NAME ifname BRIDGE NAME
在我們的例子中,br1
是首選的網(wǎng)橋接口名稱。因此,命令將如圖所示:
$ sudo nmcli connection add type bridge autoconnect yes con-name br1 ifname br1
在接下來的步驟中,你將通過指定 IP 子網(wǎng)、網(wǎng)關和 DNS 值來修改網(wǎng)橋。
首先使用以下語法指定 IP 子網(wǎng):
$ sudo nmcli connection modify BRIDGE NAME ipv4.addresses IP ADDRESS/SUBNET ipv4.method manual
根據(jù)我們的設置,命令將是:
$ sudo nmcli connection modify br1 ipv4.addresses 192.168.2.150/24 ipv4.method manual
接下來,使用以下語法指定網(wǎng)關地址:
$ sudo nmcli connection modify BRIDGE NAME ipv4.gateway GATEWAY
根據(jù)我們的網(wǎng)絡,該命令采用以下格式:
$ sudo nmcli connection modify br1 ipv4.gateway 192.168.2.1
DNS 地址的語法如下:
$ sudo nmcli connection modify BRIDGE NAME ipv4.dns DNS1 +ipv4.dns DNS2
該命令采用以下格式:
$ sudo nmcli connection modify br1 ipv4.dns 8.8.8.8 +ipv4.dns 8.8.4.4
此后,使用以下命令添加網(wǎng)橋從屬設備:
$ sudo nmcli connection add type bridge-slave autoconnect yes con-name DEVICE NAME ifname DEVICE NAME master BRIDGE NAME
使用我們的值,命令如圖所示:
$ sudo nmcli connection add type bridge-slave autoconnect yes con-name ens160 ifname ens160 master br1
你將收到以下確認信息,表明已成功添加網(wǎng)橋從屬設備。請記住,橋接從屬設備是你的網(wǎng)絡接口或適配器。
要確認網(wǎng)橋已創(chuàng)建,請運行以下命令:
$ sudo nmcli connection show
從輸出中,你可以看到列出了網(wǎng)橋接口。
激要活它,請運行以下命令:
$ sudo nmcli connection up br1
此外,你可以使用 ip addr
命令驗證:
$ ip addr | grep br1
最后,編輯網(wǎng)橋配置文件。
$ sudo vi /etc/qemu-kvm/bridge.conf
添加以下行:
allow all
然后重新啟動虛擬化守護進程以應用更改
$ sudo systemctl restart libvirtd
5、創(chuàng)建虛擬機
安裝 KVM 并配置橋接連接后,現(xiàn)在讓我們創(chuàng)建一個虛擬機。在執(zhí)行之前,為登錄用戶分配必要的所有權(quán),以便在不切換到 root 的情況下運行命令。
$ sudo chown -R $USER:libvirt /var/lib/libvirt/
在命令行上,我們將使用以下語法使用 Ubuntu 20.04 ISO 鏡像創(chuàng)建虛擬機。
$ virt-install \
--name Ubuntu \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/ubuntu-20.04.img,size=15 \
--os-variant ubuntu20.04 \
--network bridge=br1,model=virtio \
--graphics vnc,listen=0.0.0.0 \
--console pty,target_type=serial \
--cdrom /home/linuxtechi/Downloads/ubuntu-20.04.4-desktop-amd64.iso
執(zhí)行該命令后,將啟動圖形屏幕會話,并開始安裝客戶操作系統(tǒng)。
總結(jié)
我們關于如何在 Rocky Linux 9 / AlmaLinux 9 上安裝 KVM 的文章到此結(jié)束,非常歡迎你提供反饋。