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 必须打开。