当前位置:首页 > Linux > 正文

Linux安装KVM虚拟机教程?

安装KVM需确保CPU支持虚拟化,安装 qemu-kvmlibvirt等包,启用 libvirtd服务,配置网络桥接(如 br0),最后使用 virt-manager图形工具或 virt-install命令创建虚拟机即可。

在Linux系统上安装KVM虚拟机的完整指南

KVM(Kernel-based Virtual Machine)是Linux内核原生支持的虚拟化技术,允许您直接在Linux主机上创建和管理虚拟机,它性能高效、资源占用低,是企业级应用和个人开发的理想选择,以下是详细的安装与配置步骤:


安装前的准备工作

  1. 检查CPU虚拟化支持
    运行命令验证CPU是否支持虚拟化(输出结果需包含vmx(Intel)或svm(AMD)):

    egrep -c '(vmx|svm)' /proc/cpuinfo  # 返回值≥1表示支持

    若返回0,需进入BIOS启用虚拟化(通常在Advanced > CPU Configuration中开启Intel VT-x/AMD-V)。

  2. 确认系统兼容性

    • 操作系统:Ubuntu 18.04+/CentOS 7+ 等主流发行版
    • 内核要求:Linux kernel 2.6.20+

安装KVM及相关组件

Ubuntu/Debian 系统:

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system virtinst bridge-utils virt-manager

CentOS/RHEL 系统:

sudo yum install -y qemu-kvm libvirt virt-install bridge-utils virt-manager

关键组件说明:

Linux安装KVM虚拟机教程?  第1张

  • qemu-kvm:提供虚拟化核心功能
  • libvirt:管理虚拟机的守护进程和API
  • virt-manager:图形化管理工具(可选)
  • bridge-utils:配置网络桥接

启动服务并设置自启

sudo systemctl start libvirtd
sudo systemctl enable libvirtd

验证服务状态:

sudo systemctl status libvirtd  # 显示"active (running)"表示成功

配置网络桥接(推荐)

默认NAT网络无法从外部访问虚拟机,桥接模式可使虚拟机获得独立IP:

  1. 创建桥接接口
    编辑网络配置(以Ubuntu为例):

    sudo nano /etc/netplan/01-netcfg.yaml

    添加桥接配置(示例):

    network:
      version: 2
      ethernets:
        enp3s0:  # 主机物理网卡名称
          dhcp4: no
      bridges:
        br0:
          interfaces: [enp3s0]
          dhcp4: yes
          parameters:
            stp: false
  2. 应用配置:
    sudo netplan apply

创建虚拟机

方法1:使用命令行(无图形界面)

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

方法2:使用图形界面(推荐新手)

  1. 启动Virt-Manager:
    sudo virt-manager
  2. 点击”创建新虚拟机”,按向导选择ISO镜像、分配CPU/内存、配置存储和网络。

虚拟机管理命令

操作 命令
启动虚拟机 virsh start VM_name
关闭虚拟机 virsh shutdown VM_name
强制停止 virsh destroy VM_name
删除虚拟机 virsh undefine VM_name
列出所有VM virsh list --all
控制台连接 virsh console VM_name

安全性与权限设置

  1. 避免使用root运行
    将用户加入libvirtkvm组:

    sudo usermod -aG libvirt,kvm $USER
  2. 启用防火墙规则
    允许KVM通信(CentOS示例):

    sudo firewall-cmd --add-service={dhcp,dns,vnc-server} --permanent
    sudo firewall-cmd --reload

常见问题解决

  • 错误:权限被拒绝
    运行sudo setfacl -m u:$USER:rw /var/lib/libvirt/images 赋予存储目录权限。

  • 虚拟机卡住无响应
    检查是否启用嵌套虚拟化:

    cat /sys/module/kvm_intel/parameters/nested  # 输出Y表示启用

    未启用时加载内核模块:

    echo "options kvm-intel nested=Y" | sudo tee /etc/modprobe.d/kvm.conf
  • 网络桥接失效
    重启NetworkManager服务:

    sudo systemctl restart NetworkManager

性能优化建议

  1. 启用KSM内存共享
    echo 100 | sudo tee /sys/kernel/mm/ksm/pages_to_scan  # 提高内存利用率
  2. 使用VirtIO驱动
    在虚拟机设置中选择VirtIO磁盘和网络接口,提升I/O性能。
  3. CPU绑定
    通过virsh vcpupin将vCPU绑定到物理核心,减少调度开销。

KVM为Linux提供了企业级的虚拟化能力,结合命令行工具与图形界面,可灵活管理各类工作负载,完成安装后,建议:

  1. 定期更新系统:sudo apt upgradesudo yum update
  2. 备份虚拟机镜像:复制/var/lib/libvirt/images/下的磁盘文件
  3. 探索高级功能:快照管理、虚拟网络隔离、GPU直通等

引用说明 参考以下权威来源:

  • Linux内核官方文档:https://www.kernel.org/doc/html/latest/virt/kvm/
  • Libvirt项目指南:https://libvirt.org/docs.html
  • Ubuntu KVM社区教程:https://help.ubuntu.com/community/KVM
  • Red Hat虚拟化手册:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_virtualization/
0