公众号旧文

什么是KVM和LXD?虚拟化还有哪些种类?

作者:胖子阅读 —

在服务器和云计算领域,虚拟化是一个非常核心的技术。

简单的说:虚拟化就是一台物理机器,被切成很多虚拟机器来使用。

KVM、LXD 都是虚拟化的一种实现方式,但原理完全不同。

理解它们,先要知道虚拟化的几种主要类型。

一、虚拟化大体可以分为四类

类型 原理 代表技术
硬件虚拟化 模拟完整电脑硬件 KVM、VMware、Hyper-V
操作系统级虚拟化(容器) 共用宿主机内核 LXD、Docker
半虚拟化 客户机配合修改内核 Xen
应用虚拟化 只虚拟化应用运行环境 Wine、沙箱

最常见的就是这两种:

1️⃣ 硬件虚拟化(VM) 2️⃣ 容器虚拟化(Container)

KVM 和 LXD 正好分别代表这两类。

二、什么是 KVM

KVM 全称:

Kernel-based Virtual Machine

它是 Linux 内核里的一个模块。

简单理解:

KVM 可以把 Linux 变成一个“虚拟机管理程序(Hypervisor)”。

也就是说:

一台服务器可以跑很多“完整的电脑”。

例如:

物理服务器
│
├─ Ubuntu 虚拟机
├─ Windows 虚拟机
├─ Debian 虚拟机
└─ CentOS 虚拟机

每个虚拟机都有:

  • 自己的 CPU
  • 自己的内存
  • 自己的硬盘
  • 自己的操作系统

就像独立电脑。

常见使用 KVM 的平台:

  • Proxmox VE
  • OpenStack
  • oVirt

优点:

  • 完全隔离
  • 可以运行任何系统(Linux / Windows / BSD)
  • 安全性高

缺点:

  • 资源消耗大
  • 启动慢

三、什么是 LXD

LXD 属于 容器虚拟化。

它的底层是 Linux 的 LXC(Linux Containers)。

LXD 可以理解为“系统级 Docker”。

区别在于,Docker 通常只跑一个应用:

docker run nginx

而 LXD 是跑一个完整 Linux 系统:

lxd launch ubuntu

结构是这样的:

物理服务器
│
├─ Ubuntu 容器
├─ Debian 容器
└─ Alpine 容器

但是这些容器:

共享宿主机的 Linux 内核

所以:

  • 不能运行 Windows
  • 不能运行不同内核

优点:

  • 启动极快(秒级)
  • 资源占用很低
  • 密度很高(可跑上百个)

缺点:

  • 只能运行 Linux
  • 隔离性不如 VM

四、KVM vs LXD

项目 KVM LXD
类型 硬件虚拟化 容器虚拟化
操作系统 任意系统 只能 Linux
隔离性 非常强 较强
启动速度 慢 很快
资源占用 高 低
使用场景 VPS / 云服务器 PaaS / 开发环境

一句话总结:KVM 是“虚拟电脑”,LXD 是“虚拟系统环境”。

五、常见虚拟化技术

下面是比较常见的虚拟化方案:

1.Hypervisor 类

  • KVM
  • VMware ESXi
  • Microsoft Hyper-V
  • Xen

特点:完全虚拟一台电脑

2.容器类

  • Docker
  • LXD
  • Podman

特点:共享内核

3.轻量虚拟机

近几年还有一种新类型:

  • Firecracker
  • Kata Containers

特点:VM的安全 + 容器的速度

像云厂商很多 serverless 都用这种。

六、为什么云服务器大多用 KVM

大部分 VPS(云服务器)背后都是 KVM。

原因:

  1. 安全隔离强
  2. 可以跑 Windows
  3. 稳定成熟
  4. Linux 内核自带

很多云厂商底层结构:

OpenStack   (云平台管理)
      ↓
KVM         (虚拟化技术)
      ↓
物理服务器   (真实硬件)

可以用一个更形象的比喻:

OpenStack = 酒店前台
KVM       = 房间隔墙
物理服务器 = 整栋楼

七、写在最后

从 KVM 到 LXD,再到 Docker,本质上都是在解决同一个问题:

如何更高效地利用计算资源。

在早期,一台服务器通常只能运行一个系统,资源利用率往往很低。而虚拟化技术的出现,让一台物理机器可以被拆分成多个独立的运行环境,大大提升了资源利用效率。

KVM 是在虚拟“电脑”,LXD 是在虚拟“系统环境”,Docker 则是在虚拟“应用”。

它们并不是互相替代的关系,而是分别解决不同层面的需求。

也正因为这些技术的发展,今天的云计算、容器平台和各种在线服务才能如此高效地运行在全球的数据中心里。