路由器常用技术LXC简介

系统
容器是一个隔离的环境,可促进微服务并提供卓越的扩展性和快速部署等优势。本文介绍LXC(Linux容器)的特性、原理和应用范围。

Part 01、  LXC是什么  

Linux Containers (LXC)是一种操作系统级虚拟化方法,用于使用单个Linux内核在控制主机上运行多个独立的Linux系统(容器)。

图1  容器示意图


Part 02、 逻辑管线执行LXC可以做什么? 

Linux内核提供了cgroups功能,允许在不需要启动任何虚拟机的情况下对资源(CPU、内存、块 I/O、网络等)进行限制和优先排序,还提供了名称空间隔离功能,允许完全隔离应用程序对操作环境的视图,包括进程树、网络、用户 ID和挂载的文件系统。

LXC结合了内核的cgroup和对隔离名称空间的支持,为应用程序提供了一个隔离的环境。早期版本的Docker使用LXC作为容器执行驱动程序,尽管LXC在v0.9中是可选的,并且在Docker v1.10中放弃了支持。对Linux容器的引用通常指运行在Linux上的Docker容器的引用。

Part 03、 LXC实现原理 

LXC使用以下内核特性来来实现虚拟化:

  • Kernel namespaces (ipc, uts, mount, pid, network and user)
  • Apparmor and SELinux profiles
  • Seccomp policies
  • Chroots (using pivot_root)
  • Kernel capabilities Control groups (cgroups)

其中mount namespace与pivot_root的结合使用,实现了文件系统的隔离。在启动容器的时候,首先clone出一个容器进程,clone指定了CLONE_NEWNS标致,这样就会为这个新启动的容器创建一个新的mount namespace,结果使这个容器有一个新的文件层次视图,在clone过程中,子进程会复制父进程的mount namespace,mount namespace的作用主要是体现在mount与umount(其实还有pivot_root)上面,由于具有不同的文件层次图,每一个mount namespace中的mount、umount与pivot_root操作对其他mount namespace中的进程是不可见的,这样在容器启动过程中执行pivot_root操作将当前容器进程的root切换为/var/lib/lxc/<container>/rootfs时(注:不能将一个目录挂载到根目录/,所以要调用系统接口pivot_root),对容器外其他进程而言是不可见的,容器外进程的root仍为之前的root而不是/var/lib/lxc/<container>/rootfs。比如,容器中的进程访问/var与容器外进程访问/var其实是不同的/var, 容器中进程访问的实际是/var/lib/lxc/<container>/rootfs/var。换句话说,如果clone时不指定CLONE_NEWNS,这样当容器执行pivot_root时,会影响到容器之外的所有进程,容器外的所有进程的root目录都会被改变。

Part 04、  为什么要选择LXC?  

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

➤ 更小的虚拟化开销(LXC的诸多特性基本由内核特供,而内核实现这些特性只有极少的花费)。

➤ 快速部署。利用LXC来隔离特定应用,只需要安装LXC,即可使用LXC相关命令来创建并启动容器来为应用提供虚拟执行环境。传统的虚拟化技术则需要先创建虚拟机,然后安装系统,再部署应用。

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

责任编辑:庞桂玉 来源: 移动Labs
相关推荐

2009-11-16 14:50:50

路由器技术

2009-12-14 14:15:47

路由器配置模式

2010-08-12 09:55:10

华为路由器虚接口

2010-08-17 09:55:07

路由器技术

2009-11-10 16:41:13

2011-08-29 13:04:09

路由器设置路由器连接路由器

2010-07-30 13:49:22

2009-11-10 11:12:53

华为路由器

2010-08-17 09:31:14

思科配置

2010-08-10 13:52:31

路由器IOS简介

2010-08-23 11:41:13

路由器IOS

2010-06-02 11:08:28

IPv6核心路由器

2009-12-08 15:02:48

路由器技术

2015-11-05 11:56:56

SDN路由器技术路由器

2009-09-09 12:10:40

2010-08-19 10:34:21

2009-12-01 09:43:19

路由协议路由器技术

2009-12-15 15:54:11

路由器技术

2009-11-13 08:52:47

无线网状网路由器

2010-08-23 14:24:24

点赞
收藏

51CTO技术栈公众号