Skip to content

Arch LInux 的kvm 安装

  • 检测宿主机cpu是否支持虚拟化,如果flags里有vmx 或者svm就说明支持VT
grep -E "(vmx|svm)" --color=always /proc/cpuinfo

检查内核的KVM和VirtIO模块是否可用

zgrep KVM /proc/config.gz
zgrep VIRTIO /proc/config.gz 

查看内核模块是否装载

lsmod | grep kvm 
lsmod | grep virtio

手动加载内核模块

sudo modprobe virtio

当前用户加入组kvm

sudo usermod -a -G kvm username /*username改为你的用户名*/

安装qemu以及图形化客户端

sudo pacman -S qemu
sudo pacman -S libvirt virt-manager
  • 连接网络需要安装
sudo pacman -S ebtables dnsmasq bridge-utils openbsd-netcat

设置授权

sudo vim /etc/polkit-1/rules.d/50-libvirt.rules
1
2
3
4
5
6
7
/* Allow users in kvm group to manage the libvirt daemon without authentication */
polkit.addRule(function(action, subject) {
    if (action.id == "org.libvirt.unix.manage" &&
        subject.isInGroup("kvm")) {
            return polkit.Result.YES;
    }
});

启动服务

1
2
3
sudo systemctl enable libvirtd
sudo systemctl start libvirtd
sudo systemctl start virtlogd

启动virt-manager就可以使用kvm了

Virtualization 虚拟化

xen、kvm 是两种主要的虚拟化实现。

KVM (Kernel-based Virtual Machine) KVM 是 Linux 内核内置的全虚拟化(full virtualization)解决方案。

I/O 虚拟化实现类型

.1 全虚拟化 (Full Virtualization)

高兼容性但性能较低

准虚拟化 (Paravirtualization)

需要客户机安装驱动 显著提高 I/O 性能 xen 就是 准虚拟化。

设备直通 (PCI Passthrough)

将物理设备直接分配给客户机,依赖 IOMMU (VT-d/AMD-Vi),接近原生性能

VT-x(Intel Virtualization Technology)

Intel VT-x 是 Intel 处理器提供的硬件虚拟化扩展,允许 Hypervisor(如 KVM、VMware) 更高效地运行虚拟机(VM)。它依赖于 Intel VT-x 或 AMD-V 硬件辅助虚拟化技术。

EPT(Extended Page Tables)

EPT 是 Intel 的 内存虚拟化技术,用于优化 Guest OS 的物理内存管理。

传统虚拟化中,Hypervisor 需维护 影子页表(Shadow Page Tables) 来映射 Guest 物理内存到 Host 物理内存,开销大。

EPT 直接在硬件层面完成 Guest 物理地址 → Host 物理地址 的转换,无需软件介入。

工作原理 Guest OS 维护自己的页表(Guest Virtual → Guest Physical)。 CPU 通过 EPT 自动完成 Guest Physical → Host Physical 的转换。 无需 Hypervisor 干预,减少 VM Exit 次数。

IOMMU(Input-Output Memory Management Unit)

IOMMU 是一种硬件单元,用于管理设备(如 GPU、网卡)的 DMA(直接内存访问) 操作。