天天看点

linux 学习(一)lxc

CGROUPS: 限制、记录、调整进程组使用的物理资源。 比如,使用CGROUPS 可以给某些进程组多分配一些CPU 使用周期,同样 也可以限制某些进程使用的内存上限,一旦达到上限,内核就会抱一个 out of Memory 的错误。同时,CGROUPS 也具有记录物理资源使用情况的功能,比如CGROUPS 调用cpuacct 子系统就可以记录每个进程使用的内存数量、cpu 时间等数据。正因为 linux 有了CGROUPS资源管理系统,内核虚拟化才 变成了可能。

NAMESPACES: 资源隔离机制。将进程、进程组、IPC、网络、内存等资源都变得不再是全局性资源,而是将这些资源从内核层面属于某个特定的Namespace。在不同的Namespace 之间,这些资源是相互透明的、不可见的。比如说,A用户登录系统后,可以查看到B用户的进程PID。 虽说A用户不能杀死B 用户的进程,但是A和B 却是可以相互感知。但假如A用户在Namespaces-A中,B用户在 Namespaces-B 中,虽然A和B仍然共存与同一个linux操作系统中,但是 A 却无法感知到 B .在这种情况下, linux 内核不仅将 Namespaces 相互隔离 ,而且将所有资源牢牢固定在各自空间之中。

LXC : LXC就是基于linux内核通过调用CGROUPS 和 Namespaces 来实现 容器轻量级虚拟化的一种技术,与此同时,LXC 也是一组面向 linux 内核容器的 用户态 API 接口。用户通过 lxc 提供的资源隔离限制和隔离功能,可以创建一套完并且互相隔离的 虚拟隔离应用运行环境。

LXC : 是Docker 运行的基础,Docker就是采用 lxc 来创建 容器的工具,而Docker则是lxc 的杀手级应用。

继续阅读