随着云计算和虚拟化技术的不断进步,虚拟化在管理服务器、隔离资源以及提升性能方面的好处越来越明显。麒麟操作系统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
:用于网络桥接配置的工具。
启动libvirt服务
虚拟化管理工具libvirt
需要启动并设置为开机自动启动。运行以下命令:
systemctl start libvirtd
systemctl enable libvirtd
创建虚拟机
创建虚拟机主要有两种方法:一种是用传统的办法,通过安装系统镜像来设置;另一种是使用云镜像,就是用已经配置好的模板来快速生成多台一样的虚拟机。
传统方式
在传统虚拟化方式下,虚拟机的创建通常是基于一个操作系统的安装镜像文件(ISO 文件)。通过安装过程,虚拟机会从该镜像文件中引导系统安装程序,进而完成操作系统的安装与配置。
准备系统镜像
首先,您需要准备一个操作系统的ISO镜像文件。例如,您可以使用麒麟操作系统的安装镜像,也可以使用其他Linux
发行版如Ubuntu
、CentOS
等的镜像文件。
创建一个虚拟磁盘,相当于我们的系统盘。
qemu-img create -f qcow2 /home/kylin-vm.qcow2 20G
创建虚拟机
可以使用 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
: 指定虚拟机的图形界面方式
云镜像方式
云镜像方式是基于已经安装并配置好的操作系统镜像文件(通常为 QCOW2
格式),这些镜像包含了操作系统以及必要的配置和软件包。在该方式下,虚拟机创建的过程更加快速,因为操作系统已经事先配置好,虚拟机只是直接复制镜像中的内容。
准备云镜像文件
首先,您需要准备一个云镜像文件(例如 .qcow2
格式)。 以ubuntu
为例子,从以下网址下载云镜像
http://cloud-images-archive.ubuntu.com/releases/noble/release-20240423/ubuntu-24.04-server-cloudimg-amd64.img
编辑元数据信息
配置用户与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
生成cloud-init ISO
genisoimage -output ubuntu-cloud-vm.iso -volid cidata -joliet -rock user-data meta-data
创建虚拟机
利用 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
虚拟化环境,我们可以高效地实现虚拟机的管理和资源隔离。虚拟化技术不仅提高了硬件资源的利用率,还提供了更高的灵活性和可扩展性,适用于多种应用场景 。