KVM 是指基於內核的虛擬機,它使用自己的操作系統和虛擬專用硬件來促進多個 Linux 或基於窗口的獨立客戶機的執行。 要運行 KVM,您的系統必須與 AMD-V 和 Intel-VT 等硬件虛擬化擴展兼容。
VM 模板是包含特定虛擬機配置和來賓操作系統的虛擬機副本。如果您需要在同一個實例上部署多個虛擬機,使用模板創建虛擬機非常有用。這將為您節省大量時間和存儲空間。
本教程將向您展示如何從 KVM 上的現有 VM 創建 VM 模板。在本文中,KVM 安裝和 Linux OS 模板創建是在 Ubuntu 20.04 系統上完成的。在繼續該過程之前,系統將提示您準備安裝了 KVM 的系統。
創建 KVM 虛擬機
首先,確保 libvirtd 守護程序正在您的系統上運行。如果沒有,請使用 systemctl 命令啟動並啟用守護程序。
$ sudo systemctl start libvirtd
$ sudo systemctl enable libvirtd
檢查 libvirtd 守護進程的狀態。
$ sudo systemctl status libvirtd
如果您當前的系統是 Ubuntu / Debian,請使用以下命令啟用 vhost-net 內核模塊。
$ sudo modprobe vhost_net
要創建模板,您首先需要在系統上安裝一個實例。使用以下 qemu-img 命令創建 15 G centos8 KVM 鏡像。
$ sudo qemu-img create -o preallocation=metadata -f qcow2 /var/lib/libvirt/images/centos8.qcow2 15G
然後使用下面的 virt-install 命令創建一個虛擬機。它使用 CentOS 8 作為客戶操作系統,但也可以使用其他發行版。請注意調整包含您正在安裝的操作系統的 ISO 映像的路徑,以匹配您正在安裝的操作系統的路徑 (/home/janak/Downloads/CentOS-8.4.2105-x86_64-boot.iso) ..虛擬機。
$ sudo virt-install --virt-type kvm --name centos8 --ram 2048 --disk /var/lib/libvirt/images/centos8.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7.0 --cdrom=/home/janak/Downloads/CentOS-8.4.2105-x86_64-boot.iso
上面的命令用下載的 centosiso 鏡像替換了 –cdrom 選項的參數。該命令在 KVM 上安裝並運行 VM,因此使用 virt-manager 打開 KVM。
$ sudo virt-manager
如果你打開 KVM,你會看到 VM 正在運行。因此,當您打開虛擬機時,系統將啟動引導過程,您將看到以下 centos 初始設置頁面。然後運行設置過程以完成設置。
使用 KVM 創建虛擬機模板
設置完成後,登錄您的系統,更新您的系統,並安裝所有基本和必需的軟件包。
要更新系統存儲庫中的包信息,請使用:
$ sudo yum update -y
安裝一些您認為需要的基本軟件包。就我而言,我安裝了以下軟件包:
$ sudo yum install curl epel-release unzip telnet wget -y
然後禁用 zeroconf 路由。 Zeroconf 是一種網絡方法,它允許兩台計算機相互通信和共享資源。使用 Internet 協議 (IP) 在兩台計算機之間建立通信。
$ echo "NOZEROCONF=yes" | sudo tee -a /etc/sysconfig/network
然後關閉虛擬機繼續處理。
$ sudo poweroff
通過在常規終端上運行以下 virt-sysprep 命令來清理實例。 virt-sysprep 是一個命令行實用程序,用於重新配置或重置 VM 以使其可克隆。
$ sudo virt-sysprep -d centos8
在命令中,centos8 指的是已安裝的虛擬機名稱,所以如果您使用不同的虛擬機名稱,請將其替換為虛擬機名稱。如果您的系統上沒有安裝 virt-sysprep,您可以使用以下命令安裝它:
$ sudo apt update
$ sudo apt install libguestfs-tools
最後,運行以下 virsh undefined domain 命令刪除來賓虛擬機配置。
$ sudo virsh undefine centos8
恭喜。模板已創建。您現在可以克隆和部署它的許多實例。
結論是
感謝您閱讀本文。在本文中,您將學習如何創建虛擬機並創建模板來創建多個實例及其部署。