文档首页> 常见问题> 如何安装和配置KVM?

如何安装和配置KVM?

发布时间:2025-12-04 05:01       

从零开始:手把手教你安装与配置KVM虚拟化平台

在当今的IT基础设施中,虚拟化技术已成为提高资源利用率、简化管理和降低成本的核心手段。而KVM(Kernel-based Virtual Machine)作为Linux内核原生的开源虚拟化解决方案,凭借其高性能、强安全性和与Linux生态的无缝集成,吸引了众多开发者和系统管理员的青睐。本文将为您提供一份详尽的KVM安装与配置指南,帮助您快速搭建自己的虚拟化环境。

一、准备工作:系统要求与硬件检查

在开始安装KVM之前,请确保您的系统满足以下基本条件:

  • 操作系统:建议使用较新版本的Linux发行版,如Ubuntu 20.04 LTS及以上、CentOS 8/RHEL 8或Fedora 33+。本文将以Ubuntu 22.04为例进行演示。
  • CPU支持:KVM需要CPU具备虚拟化扩展功能(Intel VT-x或AMD-V)。您可以通过以下命令检查:
    grep -Eoc '(vmx|svm)' /proc/cpuinfo
    若输出值大于0,则表示CPU支持。同时,请确保BIOS/UEFI设置中已启用虚拟化选项。
  • 内存与存储:建议主机至少配备4GB内存和20GB可用磁盘空间,具体需求取决于您计划运行的虚拟机数量与负载。
  • 网络:建议为主机配置静态IP地址,以便于虚拟机网络管理。

二、安装KVM及相关组件

打开终端,执行以下步骤完成KVM及其管理工具的安装。

  1. 更新系统软件包列表
    sudo apt update && sudo apt upgrade -y
  2. 安装KVM核心包
    sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils
    • qemu-kvm:提供硬件模拟与虚拟化核心功能。
    • libvirt-daemon-system:Libvirt守护进程,用于管理虚拟化平台。
    • libvirt-clients:用于与Libvirt交互的客户端工具。
    • virtinst:提供创建虚拟机的命令行工具。
    • bridge-utils:用于配置网络桥接的工具。
  3. 安装图形化管理工具(可选但推荐)
    sudo apt install -y virt-manager

    Virt-manager提供了一个直观的GUI界面,方便初学者管理虚拟机。

  4. 验证安装
    sudo systemctl status libvirtd
    确保服务状态显示为active (running)。您也可以运行virt-host-validate命令进行更全面的检查。

三、配置网络桥接(关键步骤)

默认的NAT网络模式可能无法满足所有需求(如虚拟机需要独立的公网IP或与外部网络直接通信)。配置桥接网络是更灵活的选择。

  1. 禁用Netplan对网络接口的管理(Ubuntu特有)

    编辑Netplan配置文件(例如/etc/netplan/01-netcfg.yaml),将其内容替换为以下桥接配置(请根据您的实际网络接口名,如ens33,进行调整):

    network:
      version: 2
      renderer: networkd
      ethernets:
        ens33:
          dhcp4: no
      bridges:
        br0:
          interfaces: [ens33]
          dhcp4: yes
          parameters:
            stp: false
            forward-delay: 0
  2. 应用网络配置
    sudo netplan apply
    重启系统或网络服务使配置生效。
  3. 配置Libvirt使用桥接网络

    创建一个新的XML文件(如bridge-network.xml),定义桥接网络:

    
      br0-network
      
      
    
    然后将其添加到Libvirt并启动:
    sudo virsh net-define bridge-network.xml
    sudo virsh net-start br0-network
    sudo virsh net-autostart br0-network

四、创建并管理您的第一台虚拟机

您可以使用命令行工具virt-install或图形工具virt-manager创建虚拟机。以下是使用命令行的示例:

sudo virt-install \
  --name=ubuntu-vm1 \
  --ram=2048 \
  --vcpus=2 \
  --disk path=/var/lib/libvirt/images/ubuntu-vm1.qcow2,size=20 \
  --os-variant=ubuntu22.04 \
  --network bridge=br0 \
  --graphics spice \
  --location='http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/' \
  --extra-args='console=ttyS0'

参数说明:

  • --name: 虚拟机名称。
  • --ram--vcpus: 分配的内存和虚拟CPU核心数。
  • --disk: 指定虚拟磁盘路径和大小(GB)。
  • --os-variant: 指定操作系统类型以优化配置。
  • --network: 指定使用之前创建的桥接网络br0
  • --location: 指定ISO安装源的位置(此处使用Ubuntu网络安装镜像)。

命令执行后,将启动一个基于文本的安装界面,按照提示即可完成操作系统安装。

五、后续管理与优化建议

  • 日常管理命令
    • 启动/关闭/重启虚拟机:sudo virsh start/shutdown/reboot
    • 列出所有虚拟机:sudo virsh list --all
    • 进入虚拟机控制台:sudo virsh console
  • 性能优化
    • 启用KSM(内核同页合并)以减少内存冗余:sudo echo 1 > /sys/kernel/mm/ksm/run
    • 为I/O密集型虚拟机使用virtio驱动以获得更好的磁盘和网络性能。
    • 考虑使用CPU固定(pinning)NUMA调优以优化高性能应用。
  • 安全加固
    • 将非root用户加入libvirtkvm组以进行管理,避免过度使用root权限。
    • 定期更新主机和虚拟机系统补丁。
    • 利用AppArmorSELinux为Libvirt进程提供强制访问控制。

结语

通过以上步骤,您已经成功在Linux系统上搭建了一个功能完整的KVM虚拟化平台,并创建了第一台桥接网络的虚拟机。KVM的学习曲线可能稍显陡峭,但其提供的强大控制力和灵活性是许多商业解决方案无法比拟的。随着实践的深入,您可以进一步探索高级功能,如虚拟机快照、动态迁移和资源池管理,从而构建更健壮、高效的云基础设施或开发测试环境。虚拟化世界的大门已经为您敞开,现在就开始您的探索之旅吧!