1、LXC是什么?
LXC是Linux containers的简称,是一种基于容器的操作系统层级的虚拟化技术,Sourceforge上有LXC这个开源项目。
2、LXC能做什么?
LXC和Linux内核特性结合,可以为进程提供虚拟执行环境,一个虚拟的执行环境就是一个容器,容器的资源限定管理和隔离控制还要依赖Linux内核特性。
LXC本身只提供用户空间,和Linux内核特性结合,可以为容器绑定特定的cpu,分配cpu时间、IO时间,限制内存大小(包括内存和是swap空间),控制device访问,提供独立的namespace(网络、pid、ipc、mnt、uts)。
LXC在资源管理方面依赖Linux内核的cgroups子系统,cgroups子系统是Linux内核提供的一个基于进程组的资源管理的框架,可以为特定的进程组限定可以使用的资源。
LXC在隔离控制方面依赖Linux内核的namespace特性,具体而言就是在clone时加入相应的flag(NEWNS NEWPID等等)。
3、为什么要选择LXC?
LXC是操作系统级虚拟化技术,与传统的虚拟化技术相比有以下优势:更小的系统开销和更快的应用部署
- 传统的虚拟化技术则需要先创建虚拟机,然后安装系统,再部署应用。
- 只要安装了LXC,就可以用LXC命令来创建并启动容器来为应用提供虚拟执行环境。
- LXC跟其他操作系统层次的虚拟化技术相比,最大的优势在于LXC被整合进内核,不用单独为内核打补丁