跳到主要内容

第2章 KVM安装和基本命令

安装前准备

在安装KVM之前,需要确保系统满足以下要求:

硬件要求

重要提示

安装KVM前必须确认CPU支持虚拟化技术,否则无法正常使用KVM。

  1. 检查CPU虚拟化支持
# 检查CPU是否支持虚拟化
egrep -c '(vmx|svm)' /proc/cpuinfo

# 返回值大于0表示支持虚拟化
# vmx: Intel VT-x
# svm: AMD-V
  1. 检查虚拟化是否启用
# 检查KVM模块是否可用
lsmod | grep kvm

# 如果没有输出,可能需要在BIOS中启用虚拟化

系统要求

  • 操作系统:CentOS 7/8、RHEL 7/8、Ubuntu 18.04+
  • 内存:建议最少4GB(宿主机)
  • 存储:建议预留足够的空间存放虚拟机镜像

BIOS设置

注意事项

如果CPU支持虚拟化但KVM无法使用,需要进入BIOS进行设置:

常见问题

  1. 主板BIOS虚拟化未开启

    • Intel平台:找到"Intel Virtualization Technology"或"VT-x"选项,设置为Enabled
    • AMD平台:找到"SVM Mode"或"AMD-V"选项,设置为Enabled
  2. Windows 11 Hyper-V冲突

    • Windows 11默认开启Hyper-V,需要关闭
    • 以管理员身份运行命令提示符:
    bcdedit /set hypervisorlaunchtype off
    • 如果提示找不到命令:
    .\bcdedit /set hypervisorlaunchtype off
    • 重启Windows系统生效
  3. VMware兼容性问题

    • 关闭Hyper-V后可能导致旧版VMware蓝屏
    • 解决方案:升级VMware到16.2.2或更新版本

安装KVM软件包

CentOS/RHEL系统

# 安装KVM核心组件
yum install -y qemu-kvm libvirt virt-install

# 安装管理工具(可选)
yum install -y virt-manager virt-viewer

# 安装网络相关工具
yum install -y bridge-utils

Ubuntu/Debian系统

# 更新软件包列表
apt update

# 安装KVM核心组件
apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst

# 安装管理工具(可选)
apt install -y virt-manager virt-viewer

# 安装网络相关工具
apt install -y bridge-utils

软件包说明

软件包功能说明
qemu-kvmQEMU的KVM模块,提供硬件虚拟化
libvirt虚拟化管理API和守护进程
virt-install命令行虚拟机安装工具
virt-manager图形化虚拟机管理工具
virt-viewer虚拟机控制台查看工具
bridge-utils网桥管理工具

启动服务与验证

启动libvirtd服务

# 启动libvirtd服务
systemctl start libvirtd

# 设置开机自启
systemctl enable libvirtd

# 检查服务状态
systemctl status libvirtd

验证安装

  1. 检查KVM模块加载
# 查看KVM模块
lsmod | grep kvm

# 预期输出示例:
# kvm_intel 188688 0
# kvm 636931 1 kvm_intel
  1. 检查libvirt版本
# 查看libvirt版本
virsh version

# 预期输出示例:
# Compiled against library: libvirt 4.5.0
# Using library: libvirt 4.5.0
# Using API: QEMU 4.5.0
# Running hypervisor: QEMU 2.12.0
  1. 验证虚拟化能力
# 检查虚拟化能力
virt-host-validate

# 预期输出(所有项应该显示PASS):
# QEMU: Checking for hardware virtualization : PASS
# QEMU: Checking if device /dev/kvm exists : PASS
# QEMU: Checking if device /dev/kvm is accessible : PASS

用户权限配置

最佳实践

将需要管理虚拟机的用户添加到libvirt组,避免使用root权限

# 将用户添加到libvirt组
usermod -aG libvirt $USER

# 重新登录后生效
# 或者使用以下命令立即生效
newgrp libvirt

基础网络配置

查看默认网络

KVM安装后会创建一个默认的NAT网络:

# 查看网络列表
virsh net-list --all

# 预期输出:
# Name State Autostart Persistent
# -------------------------------------------
# default active yes yes

# 查看网络详情
virsh net-info default

# 查看网络配置
virsh net-dumpxml default

默认网络说明

  • 网络名称:default
  • 网络模式:NAT
  • 默认网段:192.168.122.0/24
  • DHCP范围:192.168.122.2 - 192.168.122.254
  • 网关地址:192.168.122.1
网络模式

KVM支持多种网络模式:

  • NAT模式:虚拟机通过宿主机NAT访问外网(默认)
  • 桥接模式:虚拟机直接连接到物理网络
  • 仅主机模式:虚拟机只能与宿主机通信
  • 隔离模式:虚拟机之间可以通信,但无法访问外部

存储池配置

查看默认存储池

# 查看存储池列表
virsh pool-list --all

# 查看存储池信息
virsh pool-info default

# 默认存储位置
ls -la /var/lib/libvirt/images/

创建自定义存储池(可选)

# 创建存储目录
mkdir -p /data/kvm/images

# 定义存储池
virsh pool-define-as mypool dir - - - - "/data/kvm/images"

# 构建存储池
virsh pool-build mypool

# 启动存储池
virsh pool-start mypool

# 设置自动启动
virsh pool-autostart mypool

故障排查

常见问题及解决方案

  1. 错误:不支持虚拟化
# 检查BIOS设置
# 确认CPU虚拟化已启用
dmesg | grep -E "vmx|svm"
  1. 权限问题
# 确保用户在libvirt组中
groups $USER

# 检查/dev/kvm权限
ls -l /dev/kvm
  1. 网络问题
# 重启默认网络
virsh net-destroy default
virsh net-start default

# 检查防火墙规则
iptables -L -n -t nat

日志查看

# 查看libvirtd日志
journalctl -u libvirtd -f

# 查看qemu日志
ls /var/log/libvirt/qemu/

总结

完成以上步骤后,KVM虚拟化环境就已经准备就绪。主要配置包括:

  • ✅ CPU虚拟化支持验证
  • ✅ KVM核心组件安装
  • ✅ libvirtd服务启动
  • ✅ 默认网络配置
  • ✅ 存储池配置

在下一章中,我们将学习如何使用virt-install创建第一台KVM虚拟机。