全部博文(339)
分类: 其他平台
2019-08-25 10:07:07
Namespaces 命名空间
PID (Process id) 进程隔离
NET (Network) 管理网络接口
IPC (InterProcess Communication) 管理跨进程通信的访问
MNT (Mount) 管理挂载点,文件系统相关的隔离
UTS (Unix Timesharing System ) 隔离内核和版本的标识
那么这些隔离的资源是如何管理起来的呢?
用到control groups 控制组,他是linux内核提供的可以控制限制记录隔离物理资源的机制,最初由googole工程师提出,然后在linux内核2.6.4版本的时候整合进来, 可以说cgroups就是了实现容器而生的。没有cgroups就没有容器的今天。
Cgroups提供了哪些功能呢?
首先是 资源限制,比如memory内存组可以为进程设置使用的上限,如果进程使用的内存达到了上限,那么再申请内存,就会报错,out of memory的报错。
第二是 优先级设定,设定哪个进程使用cpu,磁盘IO的资源大小和优先级。
第三是 资源计量, 进程使用了多少资源,尤其在计费系统中更加重要。
第四是 资源控制,可以将进程组挂起和恢复。
上面是 namespaces和 cgroups。
下面讲
Docker容器的能力
文件系统隔离: 每隔容器都有自己的root文件系统。