OpenVZ是一种基于Linux内核的操作系统级虚拟化

OpenVZ 是一种基于 Linux 内核的操作系统级虚拟化(OS-Level Virtualization)技术
核心思想很简单但非常高效:一套 Linux 内核,同时运行多个相互隔离的用户空间实例。这些实例通常叫 容器(Container),在 OpenVZ 中称为 VE(Virtual Environment)或 CT(Container)


1.OpenVZ 的核心架构

OpenVZ 依赖 修改过的 Linux Kernel,在内核层实现资源隔离与管理。

flowchart TB

    subgraph Hardware
        HW[Physical Server]
    end

    subgraph Kernel
        K[OpenVZ Kernel]
    end

    subgraph Containers
        CT1[Container 101]
        CT2[Container 102]
        CT3[Container 103]
    end

    HW --> K
    K --> CT1
    K --> CT2
    K --> CT3

关键点:

  • 只有一个 Linux Kernel

  • 每个容器有独立:

    • root filesystem
    • network stack
    • process tree
    • user
  • 内核统一调度 CPU、内存、IO

这意味着一个容器启动几乎是秒级


2.OpenVZ 的核心隔离机制

OpenVZ在Linux内核里实现了多种隔离技术。

1 Process Isolation(进程隔离)

每个容器拥有自己的 PID空间

容器内:

PID 1 -> init
PID 2 -> sshd
PID 3 -> nginx

但宿主机实际上可能是:

PID 14321 nginx (container101)

2 Filesystem Isolation(文件系统隔离)

每个容器拥有独立 rootfs:

/vz/root/101/
/vz/root/102/
/vz/root/103/

容器内部看到:

/
├── bin
├── etc
├── var

类似 chroot,但安全和功能更强。


3 Network Isolation(网络隔离)

每个容器有独立网络接口

venet0
eth0
veth101

容器内部:

eth0 -> 192.168.1.101

宿主机:

veth101 -> bridge -> physical NIC

4 Resource Control(资源控制)

OpenVZ 有一套很细致的资源限制系统:

资源 机制
CPU CPU units / CPU limit
Memory UBC(User Beancounters)
Disk quota
Network traffic shaping

例如:

CPU: 2 core
RAM: 2GB
Disk: 50GB

容器无法突破限制。


3.OpenVZ 关键组件

1 容器 ID

每个容器有唯一 ID

CTID = 101

目录:

/vz/private/101

2 模板(Template)

创建容器使用 OS 模板

例如:

centos-7-x86_64
debian-11-x86_64

创建容器:

vzctl create 101 --ostemplate centos-7

3 管理工具

OpenVZ 常见工具:

工具 作用
vzctl 管理容器
vzlist 列出容器
vzquota 磁盘配额
vzcfgvalidate 配置检查

例子:

vzctl start 101
vzctl stop 101
vzctl enter 101

4.OpenVZ vs 传统虚拟化

特性 OpenVZ KVM
虚拟化类型 OS级虚拟化 硬件虚拟化
Kernel 共享宿主机 每VM独立
启动速度 秒级 分钟级
资源开销 非常低 较高
操作系统 只能Linux 任意OS

核心限制:

OpenVZ 只能运行 Linux


5.OpenVZ 与现代容器技术关系

很多现代容器技术其实是 OpenVZ思想的进化版

技术演化:

flowchart LR
    Chroot --> OpenVZ
    OpenVZ --> LXC
    LXC --> Docker
    Docker --> Kubernetes

关键技术来自 Linux:

  • LXC
  • Docker
  • Kubernetes

而底层机制:

Namespaces
Cgroups
UnionFS

OpenVZ 在很多年前就实现了类似机制。


6.OpenVZ 的典型应用场景

VPS主机商

大量 VPS:

1 台服务器
100+ 容器

典型提供商:

  • VPS hosting
  • 云服务器

高密度服务器

运行:

Web server
Mail server
DB server

几十甚至几百个容器。


7.OpenVZ 的演进

后来 OpenVZ 发展成:

Virtuozzo

区别:

版本 说明
OpenVZ 开源版本
Virtuozzo 商业版本

现在 OpenVZ 7 已经:

  • 基于 RHEL7 Kernel
  • 支持 KVM + Container

8.总结

OpenVZ 的核心价值只有一句话:

极致密度的 Linux 虚拟化。

优点:

  • 启动快
  • 资源占用极低
  • 密度极高

缺点:

  • 内核共享
  • 安全隔离弱于VM
  • 只能Linux