一、传统虚拟化技术
1.1 传统虚拟化技术简介
1.纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统。
2.硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Inter-VT技术,具有更高的运行效率。
1.2 传统虚拟化部署
1.3 解决方案
商业解决方案:VMware vSphere , VMware Fusion
开源解决方案:OpenStack , KVM
二、system-level 虚拟化 (application 或者 container 虚拟化)
2.1 简介
server virtualization method where the kernel allows multiple isolated user space instances
不需要模拟硬件层
共享同一个Host OS 的Kernel
user space instances==container
2.2 部署
2.3 解决方案
1.LXC
2.OpenVZ
3.Docker
4.Imactfy Google开源的容器虚拟化的实现
三、传统虚拟化技术与容器虚拟化的区别
四、container核心技术
1 Cgroup-限制容器的资源使用
Linux内核提供的机制,记录和隔离进程组使用的资源,由Google的工程师提出,后来被整合到Kernel。通过不同的子系统(blkio,cpu,cpuacct等)来实现对不同资源使用的控制和记录。
2 Linux NameSpace-实现容器间的隔离
(1)pid:容器有自己独立的进程表和1号进程。
(2)net:容器自己独立的network info。
(3)ipc:在ipc通信的时候,需要加入额外信息来标示进程。
(4)mnt:每个容器都有自己唯一的目录挂载。
(5)utc:每个容器有独立的hostname和domain。
3 chroot-文件系统的隔离
隔离根文件系统。