系统环境准备
在CentOS系统中安装QEMU KVM前,需确保系统满足基本要求,建议使用CentOS 7或更高版本,64位操作系统是必需的,检查CPU是否支持虚拟化技术(Intel VT-x或AMD-V),可通过命令grep -E 'vmx|svm' /proc/cpuinfo确认,若输出结果为空,则需在BIOS/UEFI中启用虚拟化支持。

更新系统并安装必要的依赖包,执行以下命令:
sudo yum update -y sudo yum install -y qemu-kvm libvirt virt-install bridge-utils
这些包包含了QEMU KVM的核心组件、虚拟化管理工具以及网络配置工具,安装完成后,验证KVM模块是否正常加载:
lsmod | grep kvm
若输出显示kvm_intel或kvm_amd,则模块加载成功。
配置虚拟化服务
安装完成后,需启动并启用libvirtd服务,这是管理虚拟化的核心守护进程,执行以下命令:
sudo systemctl start libvirtd sudo systemctl enable libvirtd
为确保虚拟机网络正常工作,建议配置默认网络,libvirtd默认会创建一个NAT网络,可通过以下命令查看:
virsh net-list --all
若默认网络未激活,使用以下命令启动并设为开机自启:
virsh net-start default virsh net-autostart default
创建虚拟机实例
使用virt-install命令可以快速创建虚拟机,以下是一个基本示例,创建一个基于CentOS 7的虚拟机:

sudo virt-install \ --name centos7-vm \ --ram 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/centos7-vm.qcow2,size=20 \ --cdrom /path/to/centos7.iso \ --network network=default \ --graphics spice
参数说明:
--name:虚拟机名称--ram:分配内存大小(MB)--vcpus:虚拟CPU核心数--disk:磁盘镜像路径及大小(GB)--cdrom:安装镜像路径--network:指定网络(默认为NAT)--graphics:图形显示协议(可选spice或vnc)
创建过程中,可通过VNC或Spice客户端连接虚拟机控制台完成安装。
磁盘管理与快照
QEMU支持多种磁盘格式,如qcow2(推荐,支持压缩和快照)、raw(性能高,但功能较少),可通过qemu-img命令管理磁盘镜像,例如创建一个10GB的qcow2磁盘:
qemu-img create -f qcow2 /var/lib/libvirt/images/disk.qcow2 10G
快照功能可用于虚拟机备份或状态恢复,使用virsh命令创建快照:
virsh snapshot-create-as centos7-vm --name snapshot1 --description "Pre-update snapshot"
恢复快照时,执行:
virsh snapshot-revert centos7-vm snapshot1
性能优化与安全建议
为提升虚拟机性能,可调整KVM参数,在/etc/libvirt/qemu.conf中启用hugepages:
echo "hugepages = { path = '/dev/hugepages', size = '1048576' }" | sudo tee -a /etc/libvirt/qemu.conf
重启libvirtd服务后生效。

安全方面,建议:
- 为虚拟机设置独立的网络,避免直接暴露宿主机网络。
- 定期更新QEMU和libvirt软件包,修复潜在漏洞。
- 使用SELinux增强系统安全性,可通过
semanage fcontext命令调整虚拟机文件的默认安全上下文。
相关问答FAQs
Q1:如何检查KVM是否已正确安装?
A1:可通过以下命令检查:
virsh -c qemu:///system list
若能正常列出虚拟机(即使为空),则说明KVM安装成功。lsmod | grep kvm命令也可验证内核模块是否加载。
Q2:虚拟机无法连接网络怎么办?
A2:首先检查虚拟机网络配置是否正确:
virsh net-info default
若网络未激活,使用virsh net-start default启动,检查虚拟机内部是否获取到IP地址(如DHCP未生效,可手动配置静态IP),确认宿主机防火墙是否拦截了相关流量,必要时调整防火墙规则。