1. 环境准备
1.1 物理主机与 BIOS 设置
硬件虚拟化支持是搭建 KVM 的前提,请确认 CPU 支持 VT-x/AMD-V,并在 BIOS/UEFI 中启用该特性。同时,若计划进行 PCIe 设备直通(PCI Passthrough),还需要启用 VT-d/AMD-Vi 等 IOMMU 功能。未开启这些特性,将导致后续的虚拟化能力受限或无法启动。
在准备阶段,建议记录以下关键项:CPU 支持情况、BIOS 设置状态、当前内核是否加载了 virtualization 模块。这样可以快速定位问题并降低排错成本。
grep -E "vmx|svm" /proc/cpuinfo || true
1.2 Linux 发行版与内核版本
选择一个稳定的 Linux 发行版作为主机系统,常见的有 Ubuntu Server、Debian、RHEL/CentOS、Fedora 等。对虚拟化性能与兼容性而言,内核版本应尽量较新且带有稳定的 virt 层(libvirt、QEMU、KVM 等组件)。如果需要长期支持,建议使用 LTS 版本并保持内核的及时更新。
同时,确保主机系统具备充足的内存和存储资源,以支撑多台虚拟机的运行,避免因资源争抢导致性能波动。
lsb_release -a
uname -r
df -h / # 查看根分区剩余空间
1.3 硬件隔离、网络与存储规划
合理的网络与存储规划能提升虚拟化环境的可用性。常用做法包括:创建独立的网桥 (bridge) 或使用 NAT/私有网络、为虚拟机准备专用的存储池、以及对虚拟机镜像进行分级备份。
在设计阶段,应明确以下要点:网络拓扑、镜像存放路径、存储池类型(文件、块存储)、以及备份策略,以确保后续的创建与扩展流程顺畅。
# 安装 bridge-utils 以创建网桥
sudo apt-get update
sudo apt-get install -y bridge-utils# 示例:创建一个桥接网络
# 具体配置可能因发行版与网络环境不同,请结合实际网段调整
2. 安装 KVM 与 QEMU
2.1 安装包与仓库
安装 KVM 与 QEMU 相关组件,是实现 Linux 虚拟化的第一步。常见组件包括 qemu-kvm、libvirt、virt-manager 等,数量可根据需要灵活增减。
在基于 Debian/Ubuntu 的系统上,典型的安装命令如下,能够同时安装必要的虚拟化前端与后端组件:
sudo apt-get update
sudo apt-get install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
在基于 Red Hat/CentOS/Fedora 的系统上,可以通过 EPEL 或系统自带仓库安装相应包:
sudo dnf install -y @virtualization 从 system
sudo dnf install -y virt-manager libvirt-daemon-kvm qemu-kvm
2.2 启用 libvirt、virsh 与 virt-manager
libvirt 是 KVM 的核心管理守护进程,通过 virsh 命令行与 virt-manager 图形界面可以高效创建与管理虚拟机。
启用并启动相关服务,以及将当前用户加入 libvirt 组,确保具备管理权限:
sudo systemctl enable --now libvirtd
sudo systemctl status libvirtd
sudo usermod -aG libvirt $USER
3. 虚拟机创建与管理
3.1 使用 virsh 与 virt-install 创建虚拟机
通过 virsh 可以实现对虚拟机生命周期的细粒度控制,当然也可以借助 virt-install 进行快速创建。下面给出一个常见的创建流程示例,包含名称、内存、CPU、磁盘与网络等核心参数。
在命令行创建虚拟机时,请确保镜像路径、存储池及网络配置事先准备就绪。
virt-install \--name ubuntu-test \--ram 4096 \--vcpus 2 \--os-type linux \--os-variant ubuntu20.04 \--disk path=/var/lib/libvirt/images/ubuntu-test.qcow2,size=20 \--network network=default \--graphics vnc,listen=0.0.0.0 \--cdrom /path/to/ubuntu-20.04-live-server-amd64.iso
virsh 命令也能对已有虚拟机进行控管,如启动、暂停、快照等,便捷性与灵活性都较高。
virsh define /path/to/ubuntu-test.xml
virsh start ubuntu-test
virsh shutdown ubuntu-test
virsh dominfo ubuntu-test
3.2 网络、存储镜像与性能优化
为了获得更佳的网络性能与存储吞吐,建议使用稳定的网桥与本地镜像缓存策略。为虚拟机分配合适的磁盘镜像大小与缓存模式,是稳定运行的关键。

常见优化点:启用 virtio 驱动、选择带缓存模式的磁盘、对 CPU 拟态进行适当配置、以及使用巨页内存提高性能。
# 创建一个带 VirtIO 磁盘
qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-test.qcow2 40G# virtio 网络设备通常在默认网络配置下生效,确保客机安装 virtio 驱动
4. 性能调优与安全加固
4.1 CPU/内存调控
合理分配 CPU 与内存资源,避免过度分配是提升虚拟化环境稳定性的关键。可以通过设置 vCPU、RAM 以及 CPU 拟态策略,确保宿主机有足够的资源来处理主机进程与 IO 任务。
在实际生产中,建议使用限额与权重来进行资源调度,必要时开启 NUMA 优化以提升本地内存访问速度。
# 查看当前 libvirt CPU 与内存分配状况
virsh dominfo ubuntu-test# 设置对 guest 的内存与 vCPU 调整(示例:2G 内存、2 个 vCPU)
virsh setmem ubuntu-test 2048 --config --live
virsh setvcpus ubuntu-test 2 --config --live
4.2 安全与隔离
安全性与隔离是生产环境的重要考量,应该结合 selinux/apparmor、防火墙策略、以及虚拟机之间的隔离级别进行综合防护。
建议在初始阶段就设定最小权限原则,并对管理接口、网桥与 API 访问进行严格控制。
# 启用 SELinux/防火墙策略,限制 libvirt 的网络流量
sudo firewall-cmd --permanent --add-service=libvirt
sudo firewall-cmd --reload


