第2章 KVM安装和基本命令
安装前准备
在安装KVM之前,需要确保系统满足以下要求:
硬件要求
重要提示
安装KVM前必须确认CPU支持虚拟化技术,否则无法正常使用KVM。
- 检查CPU虚拟化支持
# 检查CPU是否支持虚拟化
egrep -c '(vmx|svm)' /proc/cpuinfo
# 返回值大于0表示支持虚拟化
# vmx: Intel VT-x
# svm: AMD-V
- 检查虚拟化是否启用
# 检查KVM模块是否可用
lsmod | grep kvm
# 如果没有输出,可能需要在BIOS中启用虚拟化
系统要求
- 操作系统:CentOS 7/8、RHEL 7/8、Ubuntu 18.04+
- 内存:建议最少4GB(宿主机)
- 存储:建议预留足够的空间存放虚拟机镜像
BIOS设置
注意事项
如果CPU支持虚拟化但KVM无法使用,需要进入BIOS进行设置:
常见问题:
-
主板BIOS虚拟化未开启
- Intel平台:找到"Intel Virtualization Technology"或"VT-x"选项,设置为Enabled
- AMD平台:找到"SVM Mode"或"AMD-V"选项,设置为Enabled
-
Windows 11 Hyper-V冲突
- Windows 11默认开启Hyper-V,需要关闭
- 以管理员身份运行命令提示符:
bcdedit /set hypervisorlaunchtype off
- 如果提示找不到命令:
.\bcdedit /set hypervisorlaunchtype off
- 重启Windows系统生效
-
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-kvm | QEMU的KVM模块,提供硬件虚拟化 |
libvirt | 虚拟化管理API和守护进程 |
virt-install | 命令行虚拟机安装工具 |
virt-manager | 图形化虚拟机管理工具 |
virt-viewer | 虚拟机控制台查看工具 |
bridge-utils | 网桥管理工具 |
启动服务与验证
启动libvirtd服务
# 启动libvirtd服务
systemctl start libvirtd
# 设置开机自启
systemctl enable libvirtd
# 检查服务状态
systemctl status libvirtd
验证安装
- 检查KVM模块加载
# 查看KVM模块
lsmod | grep kvm
# 预期输出示例:
# kvm_intel 188688 0
# kvm 636931 1 kvm_intel
- 检查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
- 验证虚拟化能力
# 检查虚拟化能力
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
故障排查
常见问题及解决方案
- 错误:不支持虚拟化
# 检查BIOS设置
# 确认CPU虚拟化已启用
dmesg | grep -E "vmx|svm"
- 权限问题
# 确保用户在libvirt组中
groups $USER
# 检查/dev/kvm权限
ls -l /dev/kvm
- 网络问题
# 重启默认网络
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虚拟机。