全球旧事资料 分类
,因此可以很方便的实现LXCi
LXC
et
amespace
有了pid
amespace每个
amespace中的pid能够相互隔离,但是网络端口还是共享host的端口。网络隔离是通过
et
amespace实现的,
每个
et
amespace有独立的
etworkdevicesIPaddressesIProuti
gtablesproc
et目录。这样每个co
tai
er的网络就能隔离开来。
LXC在此基础上有5种网络类型,docker默认采用veth的方式将co
tai
er中的虚拟网卡同host上的一个dockerbridge连接在一起。
ipc
amespace
co
tai
er中进程交互还是采用li
ux常见的进程间交互方法i
terprocesscommu
icatio
IPC包括常见的信号量、消息队列和共享内存。然而同VM不同,co
tai
er的进程间交互实际上还是host上具有相同pid
amespace中的进程间交互,因此需要在IPC资源申请时加入
amespace信息每个IPC资源有一个唯一的32bitID。
fm
t
amespace
类似chroot,将一个进程放到一个特定的目录执行。m
t
amespace允许不同
amespace的进程看到的文件结构不同,这样每个
amespace中的进程所看到的文件目录就被隔离开
了。同chroot不同,每个
amespace中的co
tai
er在procmou
ts的信息只包含所在
amespace的mou
tpoi
t。
uts
amespace
UTS“UNIXTimeshari
gSystem”
amespace允许每个co
tai
er拥有独立的host
ame和domai
ame使其在网络上可以被视作一个独立的节点而非Host上的一个进程。
user
amespace
每个co
tai
er可以有不同的user和groupid也就是说可以以co
tai
er内部的用户在co
tai
er内部执行程序而非Host上的用户。
有了以上6种
amespace从进程、网络、IPC、文件系统、UTS和用户角度的隔离,一个co
tai
er就可以对外展现出一个独立计算机的能力,并且不同co
tai
er从OS层面实现了隔离。然而不同
amespace之间资源还是相互竞争的,仍然需要类似ulimit来管理每个co
tai
er所能使用的资源LXC采用的是cgroup。
参考文献
1httpblogdotcloudcomu
derthehoodli
uxker
elso
dotcloudpart
2httplw
etArticles531114
Co
trolGroupscgroups
cgroups实现了对资源的配额和度量。cgroups的使用非常简单,提供类似文件的接口,在cgroup目录下新建一个文件夹即可新建一个group,在此文件夹中新建task
文件,并将pid写入该文件,即可实现对该进程的资源控制。具体的资源配置选项可以在该文件夹中新建子subsystem,子系统前缀资源项是典型的配置方法,
如memoryusage_i
_bytes就定义了该group在subsystemmemory中的一个内存限制选项。
f另外,cgroups中的subsystem可以随意组合,一个subsystem可以在不同的group中,也可以一个group包含多个subsystem也就是说一个subsystem
关于术语定义
1Acgroupasr
好听全球资料 返回顶部