插件窝 干货文章 如何在Linux上设置虚拟化环境(如KVM)

如何在Linux上设置虚拟化环境(如KVM)

虚拟 sudo virsh libvirt 571    来源:    2025-04-15

在Linux上设置KVM虚拟化环境指南

前提条件

  1. 确认CPU支持虚拟化技术:

    • Intel CPU需支持VT-x
    • AMD CPU需支持AMD-V
    • 运行命令检查:egrep -c '(vmx|svm)' /proc/cpuinfo(输出大于0表示支持)
  2. 确保BIOS中已启用虚拟化支持

安装步骤

1. 安装KVM及相关组件

对于基于Debian/Ubuntu的系统:

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

对于基于RHEL/CentOS的系统:

sudo yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager

2. 启动并启用libvirtd服务

sudo systemctl enable --now libvirtd

3. 验证安装

sudo virsh list --all

如果看到空列表表示安装成功

4. 添加用户到libvirt组(可选)

sudo usermod -aG libvirt $(whoami)
sudo usermod -aG kvm $(whoami)

需要注销后重新登录生效

网络配置

默认网络

KVM安装后会自动创建一个名为"default"的NAT网络

sudo virsh net-list --all
sudo virsh net-start default
sudo virsh net-autostart default

创建桥接网络(可选)

  1. 编辑网络配置文件(路径可能因发行版而异):

    sudo nano /etc/netplan/01-netcfg.yaml
    
  2. 添加桥接配置示例:

    network:
     version: 2
     renderer: networkd
     ethernets:
       enp3s0:
         dhcp4: no
     bridges:
       br0:
         interfaces: [enp3s0]
         dhcp4: yes
         parameters:
           stp: false
           forward-delay: 0
    
  3. 应用更改:

    sudo netplan apply
    

创建虚拟机

使用virt-install命令行

sudo virt-install \
  --name=ubuntu-vm \
  --ram=2048 \
  --vcpus=2 \
  --disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=20 \
  --os-type=linux \
  --os-variant=ubuntu20.04 \
  --network bridge=br0 \
  --graphics spice \
  --location='http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/' \
  --extra-args="console=tty0 console=ttyS0,115200n8"

使用virt-manager图形界面

  1. 启动virt-manager:virt-manager
  2. 点击"创建新虚拟机"按钮
  3. 按照向导步骤操作

管理虚拟机

常用命令:

# 列出所有虚拟机
virsh list --all

# 启动虚拟机
virsh start vm-name

# 关闭虚拟机
virsh shutdown vm-name

# 强制停止虚拟机
virsh destroy vm-name

# 删除虚拟机
virsh undefine vm-name

# 编辑虚拟机配置
virsh edit vm-name

# 查看虚拟机信息
virsh dominfo vm-name

性能优化建议

  1. 启用KSM(内核同页合并):

    echo 1 > /sys/kernel/mm/ksm/run
    
  2. 使用virtio驱动提高I/O性能

  3. 考虑使用CPU pinning和NUMA亲和性配置

  4. 对于生产环境,考虑使用OVS(Open vSwitch)代替标准Linux桥接

常见问题解决

  1. 权限问题:确保用户属于libvirt和kvm组

  2. 网络问题:检查防火墙设置,确保libvirt相关端口开放

  3. 性能问题:检查是否启用了嵌套虚拟化(对于虚拟机中运行虚拟机的情况)

  4. 图形显示问题:确保SPICE或VNC服务正常运行

如需更详细的配置或遇到特定问题,可以提供更多信息以便给出针对性建议。