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