LXC 是 OS 级容器(共享内核),KVM 是硬件虚拟机(独立内核)。同样是容器化,玩法完全不同。本文用对比表 + 实战场景说清楚怎么选。

本质差异

LXC 容器内的进程跑在宿主内核上,启动快(秒级)、内存开销低(几十 MB),但无法跑异构 OS;KVM 是 QEMU + KVM 内核模块,运行有独立内核,分钟级启动,能跑 Windows、FreeBSD。

一表速览

维度      LXC                  KVM
启动      1-2 秒              30-120 秒
内存      64MB 起              512MB 起
OS        Linux only           任意
内核      共享宿主              独立
隔离      Namespace + cgroup   QEMU 模拟
直通      受限                  完整

经验法则

  • 跑服务(nginx、mysql、redis、frp)→ LXC,省内存、起停快
  • 跑完整 OS(Windows、pfSense、ROS)→ KVM,无替代
  • 跑 GPU / USB 直通 → KVM,LXC 受限太多
  • 只是开发测试环境 → LXC,几秒钟一个干净环境

踩过的坑

LXC 容器默认没有 systemd,需要 init= 前缀开启;KVM 的 uefi 启动需要 OVMF,BIOS 启动用 SeaBIOS,两种别混用;直通时 iommu 必须打开。