探索 QEMU-KVM 虛擬化:麒麟系統下傳統與云鏡像創建虛擬機的優秀實踐
隨著云計算和虛擬化技術的不斷進步,虛擬化在管理服務器、隔離資源以及提升性能方面的好處越來越明顯。麒麟操作系統Kylin OS是我們國家自己開發的操作系統,在政府機構和企業中用得很多。這篇文章會教你如何在麒麟操作系統上設置QEMU-KVM虛擬化環境,讓你能夠更有效地管理和分開不同的操作系統及應用程序。
一、什么是QEMU-KVM虛擬化?
QEMU-KVM是基于QEMU(Quick Emulator)和 KVM(Kernel-based Virtual Machine)技術的虛擬化平臺。QEMU負責虛擬化硬件資源的模擬,而KVM是Linux內核提供的硬件加速虛擬化技術。結合這兩者,可以在一臺物理主機上高效地運行多個虛擬機,每個虛擬機都有獨立的操作系統和資源。
二、部署虛擬化
安裝qemu-kvm及其依賴包。運行以下命令:
sudo yum install -y qemu-kvm libvirt virt-install bridge-utils
- qemu-kvm:KVM虛擬化的核心組件。
- libvirt:用于管理虛擬機的庫。
- virt-install:用于通過命令行創建虛擬機的工具。
- bridge-utils:用于網絡橋接配置的工具。
1. 啟動libvirt服務
虛擬化管理工具libvirt需要啟動并設置為開機自動啟動。運行以下命令:
systemctl start libvirtd
systemctl enable libvirtd
三、創建虛擬機
創建虛擬機主要有兩種方法:一種是用傳統的辦法,通過安裝系統鏡像來設置;另一種是使用云鏡像,就是用已經配置好的模板來快速生成多臺一樣的虛擬機。
1. 傳統方式
在傳統虛擬化方式下,虛擬機的創建通常是基于一個操作系統的安裝鏡像文件(ISO 文件)。通過安裝過程,虛擬機會從該鏡像文件中引導系統安裝程序,進而完成操作系統的安裝與配置。
(1) 準備系統鏡像
首先,您需要準備一個操作系統的ISO鏡像文件。例如,您可以使用麒麟操作系統的安裝鏡像,也可以使用其他Linux發行版如Ubuntu、CentOS等的鏡像文件。
創建一個虛擬磁盤,相當于我們的系統盤。
qemu-img create -f qcow2 /home/kylin-vm.qcow2 20G
(2) 創建虛擬機
可以使用 virt-install 命令來創建虛擬機,并指定 ISO 鏡像作為引導源。
例如,以下命令將在麒麟操作系統上創建一臺名為kylin-vm 的虛擬機,使用麒麟操作系統的安裝鏡像進行安裝:
sudo virt-install \
--name kylin-vm \
--vcpus 2 \
--memory 4096 \
--cdrom /home/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso \
--disk path=/home/kylin-vm.qcow2,size=20 \
--os-type linux \
--os-variant rhel7 \
--network network=default \
--graphics vnc \
--console pty,target_type=serial \
--boot cdrom
參數說明:
- name:指定虛擬機的名稱
- vcpus:分配2核心
- memory:分配4G內存
- cdrom:指定系統鏡像的路徑
- disk:指定硬盤的路徑文件
- os-type:指定系統的類型,linux或Windows
- network:指定網絡的類型,默認NAT模式。
- graphics: 指定虛擬機的圖形界面方式
2. 云鏡像方式
云鏡像方式是基于已經安裝并配置好的操作系統鏡像文件(通常為 QCOW2 格式),這些鏡像包含了操作系統以及必要的配置和軟件包。在該方式下,虛擬機創建的過程更加快速,因為操作系統已經事先配置好,虛擬機只是直接復制鏡像中的內容。
(1) 準備云鏡像文件
首先,您需要準備一個云鏡像文件(例如 .qcow2 格式)。 以ubuntu為例子,從以下網址下載云鏡像
http://cloud-images-archive.ubuntu.com/releases/noble/release-20240423/ubuntu-24.04-server-cloudimg-amd64.img
(2) 編輯元數據信息
配置用戶與SSH,并設置主機名。
cat > user-data << EOF
#cloud-config
user: root
password: password@321
chpasswd: { expire: False }
ssh_pwauth: True
package_update: true
packages:
- qemu-guest-agent
EOF
cat > meta-data << EOF
instance-id: my-cloud-vm
local-hostname: ubuntu-cloud
EOF
(3) 生成cloud-init ISO
genisoimage -output ubuntu-cloud-vm.iso -volid cidata -joliet -rock user-data meta-data
(4) 創建虛擬機
利用 virt-install 命令的 --import 選項,您可以直接從現有的云鏡像文件創建虛擬機,而無需進行操作系統安裝過程。
virt-install \
--name ubuntu-cloud-vm \
--vcpus 2 \
--memory 1024 \
--disk path=/var/lib/libvirt/images/ubuntu-24.10-vm1.img \
--disk path=/var/lib/libvirt/images/ubuntu-cloud-vm.iso \
--import \
--os-type linux \
--os-variant ubuntu24.04 \
--network network=default \
--graphics none \
--console pty,target_type=serial
啟動成功,可以通過以下界面查看虛擬機的狀態:
[root@kylin-node2 ~]# virsh list --all
Id Name State
----------------------------------
1 ubuntu-cloud-vm running
四、管理虛擬機
常用命令:
virsh list --all # 查看所有虛擬機
virsh start kylin-vm1 # 啟動虛擬機
virsh shutdown kylin-vm1 # 正常關閉
virsh destroy kylin-vm1 # 強制停止
virsh edit kylin-vm1 # 編輯虛擬機配置
virsh undefine kylin-vm1 # 刪除虛擬機(需先destroy)
連接虛擬機控制臺:
virsh console kylin-vm1 # 進入串口控制臺(需在虛擬機內啟用ttyS0)
五、總結
通過在麒麟系統上部署qemu-kvm虛擬化環境,我們可以高效地實現虛擬機的管理和資源隔離。虛擬化技術不僅提高了硬件資源的利用率,還提供了更高的靈活性和可擴展性,適用于多種應用場景 。