文章1、为什么要虚拟化,虚拟化是什么,虚拟化技术的分类(1)完全虚拟化技术)2)半虚拟化技术)3)寄生体系结构)4)裸金属体系结构,Docker与现有技术的对比5、Docker技术6、Docker技术6
一.为什么要虚拟化
虚拟化前:
1、系统资源利用率低。 调查显示,只有5%的服务器资源被利用。
2 .在每台主机一个操作系统中,在一台计算机上运行多个进程会导致冲突。
3、硬件成本高,不灵活。
虚拟化后:
1、打破系统和硬件的相互依存。
2、强大的安全和故障隔离。
3 .通过封装到虚拟机中,虚拟机管理程序和APP应用程序是单个个体。
4、虚拟机可以在任何硬件上运行。
二、虚拟化是指将一台计算机虚拟为多台逻辑计算机,可以在一台计算机上同时运行多台逻辑计算机。 每个逻辑计算机可以有不同的操作系统,它们运行时互不影响,从而大大提高了效率。
从linux进程的角度来看,运行进程时,周边资源如下所示。
1、linux内核
2、文件系统
3、网络系统
4、进程间通信)。
5、CPU、内存、磁盘
所有进程共享这些资源,并确保周边环境相同。 然而,技术发展有以下需要:
1、安全隔离:不同流程、独立环境
2、资源限制:限制某些进程使用资源
3、对一组以上流程进行上述隔离
Docker满足这些约束的进程组称为容器。 集装箱是谷歌2006提出的,2010Docloud提供完整的解决方案Docker,京东阿里正在开发类似的技术。
三.虚拟化技术分类技术角度:全虚拟化技术、半/准虚拟化技术
体系结构级别:寄生体系结构、裸机体系结构
)1)完全虚拟化技术,也称为硬件辅助虚拟化技术,在虚拟机(VM )和硬件层之间添加软件层虚拟机管理程序,即虚拟机监控容器(VMM )。 此监视器直接通过物理硬件或KVM技术工作; 它在另一个叫做QEMU和WINE技术的操作系统上运行。
其实这一层是虚拟机和硬件层的瘦肉精。 以下是KVM的图。
)2)半虚拟化技术,也称为准虚拟化技术,基于整个虚拟化对客户操作系统进行修改,并添加专用的API以优化客户操作系统指令。 这意味着Hypervision不需要在翻译上花费资源,从而减轻了Hypervision的工作负担,并大幅提高了整体性能。 但这需要修改操作系统系统,一般只有大厂商才能提供这种技术支持,而且性能明显优于全虚拟化,因此得不偿失。
(3)暂留架构在操作系统中安装并运行虚拟化程序,依赖于主机操作系统对设备的支持和物理资源的管理。
优点:容易实现。
缺点:安装取决于主机操作系统对设备的支持(如果主机万一出现故障,为黑色! 请参阅。 资源消耗很大。
示例: gsx服务器、VMware、Workstation
)4)裸机架构是直接在硬件上安装虚拟化软件,在其上安装操作系统和APP应用,并依赖虚拟层内核和服务器控制台进行管理。
优点:灵活性。
缺点:虚拟层内核开发难度大。
示例: VMware esxi服务器
四、Docker与传统技术的对比如下图,主要无Guest OS层。
好处:
1、占用磁盘小,原来不动GB,现在镜像层只有几十kb
2、启动速度快,本来需要几分钟,现在只需要几秒钟
3、驾驶状态更加灵活
4、并发性高,原是最多几十台虚拟机,现在可以启动几百、几千个容器
5、性能高,本来不如寄宿主机,但现在和寄宿主机一样
6、资源利用率高
7、开发、部署、测试和管理效率大幅提高
五、Docker技术Docker运行环境如海运,操作系统如货船,各操作系统上软件如集装箱,用户可通过标准化手段自由组织运行环境,集装箱内容也由用户定制或专家制造
Docker所需的文件系统结构和内容位于只读镜像模板中,并构成静态文件系统或rootfs。 对于linux引导,首先挂载rootfs并验证系统完整性,然后进入读/写模式。 Docker也是如此,首先启动并挂载rootfs,然后利用联合挂载技术在只读层的rootfs上挂载读/写层,再在下面联合挂载一个到多个只读层。
作为主要的实现技术,有LXC容器技术、AUFS文件分层技术、cggroups资源限制技术,但是对于具体太下层的事情不求解答,我也忘记了。
大家可以看到Docker容器的构成:
六. Docker的重要概念1、镜像(image )。
与虚拟机的快照相似,但重量更轻。 包含用于创建容器的完整系统环境。 镜像可以直接从仓库中拉出pull,也可以将我们的镜像传递给仓库的推送。
docker images可以看到当前仓库中有什么镜像。
2、集装箱(container ) )
其实是image的实例,共享内核。 如果你学过编程,就很容易理解这一点。
3、Docker Daemon
创建运行Docker的linux守护进程。 可以理解为容器的容器。
4、数据量。
提供供一个或多个容器使用的特殊目录。
5、链接(链接)。
与非端口映射容器的交互方式相当于源容器和目标容器的安全隧道。 避免端口暴露到外部网络。
6、仓库(储存库)
集中存放镜像的地方。