一、傳統虛擬化技術
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-文件系統的隔離
隔離根文件系統。