ubuntu安装使用LXC

1. LXC 是什么?

LXC 是 Linux containers 的简称,是一种基于容器的操作系统层级的虚拟化技术。

2. LXC 可以做什么?

LXC 可以在操作系统层次上为进程提供的虚拟的执行环境,一个虚拟的执行环境就是一个容器。可以为容器绑定特定的 cpu 和 memory 节点,分配特定比例的 cpu 时间、IO 时间,限制可以使用的内存大小(包括内存和是 swap 空间),提供 device 访问控制,提供独立的 namespace(网络、pid、ipc、mnt、uts)。

3. LXC 如何实现?

Sourceforge 上有 LXC 这个开源项目,但是 LXC 项目本身只是一个为用户提供一个用户空间的工具集,用来使用和管理 LXC 容器。LXC 真正的实现则是靠 Linux 内核的相关特性,LXC 项目只是对此做了整合。基于容器的虚拟化技术起源于所谓的资源容器和安全容器。

LXC 在资源管理方面依赖与 Linux 内核的 cgroups 子系统,cgroups 子系统是 Linux 内核提供的一个基于进程组的资源管理的框架,可以为特定的进程组限定可以使用的资源。LXC 在隔离控制方面依赖于 Linux 内核的 namespace 特性,具体而言就是在 clone 时加入相应的 flag(NEWNS NEWPID 等等)。

4. 为什么要选择 LXC?

LXC 是所谓的操作系统层次的虚拟化技术,与传统的 HAL(硬件抽象层)层次的虚拟化技术相比有以下优势:

  1. 更小的虚拟化开销(LXC 的诸多特性基本由内核特供,而内核实现这些特性只有极少的花费,具体分析有时间再说)
  2. 快速部署。利用 LXC 来隔离特定应用,只需要安装 LXC,即可使用 LXC 相关命令来创建并启动容器来为应用提供虚拟执行环境。传统的虚拟化技术则需要先创建虚拟机,然后安装系统,再部署应用。

LXC 跟其他操作系统层次的虚拟化技术相比,最大的优势在于 LXC 被整合进内核,不用单独为内核打补丁。

  1. 如何使用 LXC?
    TODO
本文总阅读量