在Linux上配置和管理虚拟化环境主要涉及KVM、QEMU、Libvirt等工具。以下是详细指南:
硬件检查
egrep -c '(vmx|svm)' /proc/cpuinfo # 大于0表示支持虚拟化
lsmod | grep kvm # 检查KVM模块
安装软件包
bash
sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system virt-manager bridge-utils
bash
sudo yum install -y qemu-kvm libvirt virt-install virt-manager bridge-utils
启动服务
sudo systemctl enable --now libvirtd
默认NAT网络
virsh net-list --all # 查看网络
virsh net-start default # 启动默认网络
创建桥接网络
编辑 /etc/netplan/01-netcfg.yaml
(Ubuntu) 或 /etc/sysconfig/network-scripts/ifcfg-*
(RHEL):
# Ubuntu示例
network:
version: 2
renderer: networkd
bridges:
br0:
interfaces: [eth0]
dhcp4: yes
应用配置:
sudo netplan apply
创建虚拟机
virt-install \
--name vm1 \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/vm1.qcow2,size=20 \
--os-type linux \
--os-variant ubuntu20.04 \
--network bridge=br0 \
--graphics spice \
--cdrom ~/Downloads/ubuntu-20.04.iso
常用命令
virsh list --all # 查看虚拟机
virsh start vm1 # 启动
virsh shutdown vm1 # 正常关机
virsh destroy vm1 # 强制停止
virsh edit vm1 # 修改配置
virsh console vm1 # 连接控制台
创建存储池
virsh pool-define-as --name storage --type dir --target /mnt/storage
virsh pool-start storage
快照管理
virsh snapshot-create-as vm1 --name snap1
virsh snapshot-list vm1
virsh snapshot-revert vm1 snap1
PCI直通
intel_iommu=on
或 amd_iommu=on
)bash
echo "options vfio-pci ids=10de:13c2,10de:0fbb" > /etc/modprobe.d/vfio.conf
update-initramfs -u
嵌套虚拟化
echo "options kvm-intel nested=1" > /etc/modprobe.d/kvm-intel.conf
modprobe -r kvm-intel && modprobe kvm-intel
资源监控
virt-top # 类似top的虚拟化监控
sar -r 1 3 # 内存使用
性能调优
virtio
驱动(磁盘和网络)bash
echo 1 > /sys/kernel/mm/ksm/run
日志检查
journalctl -u libvirtd -f # 实时日志
cat /var/log/libvirt/qemu/vm1.log
常见问题
libvirt
和 kvm
组:
bash
sudo usermod -aG libvirt,kvm $USER
bash
sudo iptables -L -n | grep libvirt
通过以上步骤,您可以高效管理Linux虚拟化环境。对于生产环境,建议结合Cockpit或OpenStack等工具实现更集中的管理。