KVM 虚拟化技术完全指南:从入门到精通

一、KVM 简介

KVM(Kernel-based Virtual Machine)是基于 Linux 内核的开源虚拟化技术,它将 Linux 内核转变为一个 hypervisor,允许在单个物理主机上运行多个虚拟机(VM)。

二、安装 KVM

2.1 检查硬件虚拟化支持

# 检查 Intel VT-x 支持
egrep -c '(vmx|svm)' /proc/cpuinfo
# 输出大于 0 表示支持

2.2 Ubuntu/Debian 安装

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
sudo adduser $(whoami) libvirt
sudo adduser $(whoami) libvirt-qemu

2.3 CentOS/RHEL 安装

sudo yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
sudo systemctl enable --now libvirtd

2.4 验证安装

lsmod | grep kvm
sudo systemctl status libvirtd
kvm-ok

三、创建虚拟机

3.1 下载镜像

wget https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso

3.2 使用 virt-install 创建

sudo virt-install \
  --name ubuntu-vm1 \
  --ram 2048 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/ubuntu-vm1.qcow2,size=20 \
  --cdrom /path/to/ubuntu.iso \
  --os-type linux \
  --os-variant ubuntu22.04 \
  --network bridge=br0,model=virtio \
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole

四、virsh 命令管理

# 列出虚拟机
virsh list --all

# 启动/关闭
virsh start ubuntu-vm1
virsh shutdown ubuntu-vm1

# 查看信息
virsh dominfo ubuntu-vm1

# 连接控制台
virsh console ubuntu-vm1

五、网络配置

5.1 默认 NAT 网络

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

5.2 桥接网络

sudo apt install bridge-utils
# 配置网桥后使用 br0

六、存储管理

# 创建存储池
virsh pool-define-as datastore dir --target /data/vms
virsh pool-start datastore
virsh pool-autostart datastore

# 创建存储卷
virsh vol-create-as datastore vm1-disk.qcow2 20G --format qcow2

七、快照管理

# 创建快照
virsh snapshot-create-as ubuntu-vm1 snapshot-1 "初始配置"

# 恢复快照
virsh snapshot-revert ubuntu-vm1 snapshot-1

八、性能优化

  • 使用 Virtio 驱动(磁盘和网络)
  • 启用 KSM 内存合并
  • CPU 绑定和 NUMA 优化

总结

KVM 作为 Linux 内核原生的虚拟化解决方案,提供了出色的性能和灵活性。继续实践,构建高效可靠的虚拟化基础设施。

发表回复

后才能评论