虚拟化
主机级虚拟化
虚拟的整个物理平台
TYPE-I: 直接在硬件上安装虚拟机管理器
TYPE-II: 在物理机上安装操作系统,在操作系统上安装虚拟机管理器
虚拟机的目的
资源隔离
image.png
我们可以在linux上创建一个个隔离环境,在里面跑进程,我们把隔离环境称为容器。为了使进程能够隔离,我们需要对UTS(主机名,域名),PID(进程号),IPC(进程间通信)
,mount(文件系统),net(网络),user(用户),六种名称空间进行拆分,即每个容器都有上述六种名称空间。
因此我们的内核必须支持以上6种名称空间的拆分
user名称空间是linux3.8内核之后才支持的,为了更好的支持容器,我们应该用3.8之后的内核。centos6 内核是redhat打了补丁,可以支持。
分配隔离环境,拆分名称空间,我们称为容器级虚拟化
容器限制资源
主机级虚拟化,我们可以指定cpu和内存。因此容器级虚拟化,必须限制其中一个容器使用的资源。比如以下三个容器 image.png
cpu按比例1:2:1,进行对三个容器分配资源,当B和C不用时,A可以使用全部的cpu资源,当B和C大量使用cpu资源时,就按比例进行分配。我们也可以限制A使用2核,B使用1核,C使用1核。这样分配资源的功能,我们使用control Groups(cgroups)来指定实现
容器开始的实现
容器最早出席是在FreeBSD中用jail实现的,后台被人移植到linux上是vserver(chroot),chroot是把目录变成根目录
容器级虚拟化实现的条件
chroot,namespace,cgroups
网友评论