探索 QEMU-KVM 虛擬化:麒麟系統(tǒng)下傳統(tǒng)與云鏡像創(chuàng)建虛擬機的優(yōu)秀實踐
隨著云計算和虛擬化技術的不斷進步,虛擬化在管理服務器、隔離資源以及提升性能方面的好處越來越明顯。麒麟操作系統(tǒng)Kylin OS是我們國家自己開發(fā)的操作系統(tǒng),在政府機構和企業(yè)中用得很多。這篇文章會教你如何在麒麟操作系統(tǒng)上設置QEMU-KVM虛擬化環(huán)境,讓你能夠更有效地管理和分開不同的操作系統(tǒng)及應用程序。
一、什么是QEMU-KVM虛擬化?
QEMU-KVM是基于QEMU(Quick Emulator)和 KVM(Kernel-based Virtual Machine)技術的虛擬化平臺。QEMU負責虛擬化硬件資源的模擬,而KVM是Linux內核提供的硬件加速虛擬化技術。結合這兩者,可以在一臺物理主機上高效地運行多個虛擬機,每個虛擬機都有獨立的操作系統(tǒng)和資源。
二、部署虛擬化
安裝qemu-kvm及其依賴包。運行以下命令:
sudo yum install -y qemu-kvm libvirt virt-install bridge-utils
- qemu-kvm:KVM虛擬化的核心組件。
- libvirt:用于管理虛擬機的庫。
- virt-install:用于通過命令行創(chuàng)建虛擬機的工具。
- bridge-utils:用于網(wǎng)絡橋接配置的工具。
1. 啟動libvirt服務
虛擬化管理工具libvirt需要啟動并設置為開機自動啟動。運行以下命令:
systemctl start libvirtd
systemctl enable libvirtd
三、創(chuàng)建虛擬機
創(chuàng)建虛擬機主要有兩種方法:一種是用傳統(tǒng)的辦法,通過安裝系統(tǒng)鏡像來設置;另一種是使用云鏡像,就是用已經(jīng)配置好的模板來快速生成多臺一樣的虛擬機。
1. 傳統(tǒng)方式
在傳統(tǒng)虛擬化方式下,虛擬機的創(chuàng)建通常是基于一個操作系統(tǒng)的安裝鏡像文件(ISO 文件)。通過安裝過程,虛擬機會從該鏡像文件中引導系統(tǒng)安裝程序,進而完成操作系統(tǒng)的安裝與配置。
(1) 準備系統(tǒng)鏡像
首先,您需要準備一個操作系統(tǒng)的ISO鏡像文件。例如,您可以使用麒麟操作系統(tǒng)的安裝鏡像,也可以使用其他Linux發(fā)行版如Ubuntu、CentOS等的鏡像文件。
創(chuàng)建一個虛擬磁盤,相當于我們的系統(tǒng)盤。
qemu-img create -f qcow2 /home/kylin-vm.qcow2 20G
(2) 創(chuàng)建虛擬機
可以使用 virt-install 命令來創(chuàng)建虛擬機,并指定 ISO 鏡像作為引導源。
例如,以下命令將在麒麟操作系統(tǒng)上創(chuàng)建一臺名為kylin-vm 的虛擬機,使用麒麟操作系統(tǒng)的安裝鏡像進行安裝:
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
參數(shù)說明:
- name:指定虛擬機的名稱
- vcpus:分配2核心
- memory:分配4G內存
- cdrom:指定系統(tǒng)鏡像的路徑
- disk:指定硬盤的路徑文件
- os-type:指定系統(tǒng)的類型,linux或Windows
- network:指定網(wǎng)絡的類型,默認NAT模式。
- graphics: 指定虛擬機的圖形界面方式
2. 云鏡像方式
云鏡像方式是基于已經(jīng)安裝并配置好的操作系統(tǒng)鏡像文件(通常為 QCOW2 格式),這些鏡像包含了操作系統(tǒng)以及必要的配置和軟件包。在該方式下,虛擬機創(chuàng)建的過程更加快速,因為操作系統(tǒng)已經(jīng)事先配置好,虛擬機只是直接復制鏡像中的內容。
(1) 準備云鏡像文件
首先,您需要準備一個云鏡像文件(例如 .qcow2 格式)。 以ubuntu為例子,從以下網(wǎng)址下載云鏡像
http://cloud-images-archive.ubuntu.com/releases/noble/release-20240423/ubuntu-24.04-server-cloudimg-amd64.img
(2) 編輯元數(shù)據(jù)信息
配置用戶與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) 創(chuàng)建虛擬機
利用 virt-install 命令的 --import 選項,您可以直接從現(xiàn)有的云鏡像文件創(chuàng)建虛擬機,而無需進行操作系統(tǒng)安裝過程。
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
啟動成功,可以通過以下界面查看虛擬機的狀態(tài):
[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)
五、總結
通過在麒麟系統(tǒng)上部署qemu-kvm虛擬化環(huán)境,我們可以高效地實現(xiàn)虛擬機的管理和資源隔離。虛擬化技術不僅提高了硬件資源的利用率,還提供了更高的靈活性和可擴展性,適用于多種應用場景 。