首页 > 编程知识 正文

docker属于什么虚拟化,虚拟化iommu(io内存管理单元)

时间:2023-05-06 05:44:16 阅读:136819 作者:4576

文章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、仓库(储存库)

集中存放镜像的地方。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。