虚拟化技术的发展史

写在前面

本文章属于虚拟化技术系列文章,点击查看本系列的说明

在我们了解如今成熟稳定的虚拟化技术之前,有必要去了解一下它的发展史。因为虚拟化并不是一项全新的技术,而是基于之前的努力。

1950年 – 1990年

虚拟存储器的概念可以追溯到 20 世纪 50 年代末,当时曼彻斯特大学的一个小组在 Atlas 系统(一种晶体管计算机)中引入了自动换页功能,其原理是将分页作为一种在内存层次结构之间存储和传输数据的方法。虽然这个原理之前就有,但Atlas是第一个将这一过程自动化,从而提供了第一个虚拟存储器的工作原型。

虚拟机这个词可以追溯到20世纪60年代,最早的虚拟机系统来自 IBM。1967 年前后,IBM 推出了型号为 67 的 System/360,它是第一个带有虚拟存储器的系统。这个系统中有一个概念名为处理器虚拟化指令集,这个概念也在也在后续的型号中得到完善。起初这个系统被称为 CP-67,之后就演化成了虚拟机系统。虚拟机允许在一台处理机上运行多个操作系统。本质上来说虚拟机和硬件通过合作来启动多个操作系统,让它们可以受保护地访问完整的指令集。

20 世纪 60 年代中期,IBM 还率先推出了 M44/44X 项目,探索新兴的分时概念。系统架构的核心是一组虚拟机,每个用户可以使用其中的一个。宿主机是 IBM 7044(简称 M44),每个虚拟机是 7044 的实验镜像(简称44X)。这项工作最终促成了虚拟机/分时系统,包括 IBM 著名的 VM/370。

硬件虚拟化的概念也是在这个时期出现的,VMM 可以在一个隔离和保护的环境中运行虚拟机。因为 VMM 对运行在虚拟机中的软件来说是透明的,软件认为它独占控制权。随着时间的推移,这一概念得到了完善,最终 VMM 只会消耗较少的性能和资源。

20 世纪 70 年代中期,虚拟化技术已经在各个操作系统被用户所接受。在这几十年中,虚拟化技术解决了许多重要问题,例如应用还在大规模操作系统中虚拟存储器使得应用程序的编程变得简单,因为程序员不需要像以前那么关心内存不足的问题。

虚拟出来资源是很便宜的,但是真实的物理资源却很贵,虚拟资源可以让我们按需分配这些昂贵的物理资源以获取最大的利益。比如现在厂商可以将多余的算力虚拟化成一个个的云服务器出售给客户。

虽然在 20 世纪 60 年代和 70 年代,硬件级虚拟机在研究和商业市场上都很流行,但在 20 世纪 80 年代和 90 年代,它们基本上消失了。因为低成本的微型计算机和 PC 进入市场导致了虚拟化的需求在总体上有所下降。

顺便一提,另一种类型的虚拟机在历史上仍有一席之地,典型的代表就是 JVM 和 微软的 CLR。这一类型的虚拟机不是本文所要介绍的虚拟机,它们并不虚拟化出一个硬件平台,而是为编程语言提供可移植性。所以请不要混淆概念。

Runtime Virtual Machines

虚拟化的重新兴起

20 世纪 90 年代,企业部署的服务器数量越来越多,但是服务器资源的利用效率却越来越低。

一个服务器仅仅部署一个应用会大量浪费服务器的硬件资源。一个服务器部署多个应用则会遇到更为严重的问题,比如其中一个应用崩溃了可能会带着整个服务器崩溃,那么这台服务器上所有的应用都会停止。又比如某个应用更新后需要重启服务器,但是这台服务器上还有别的应用,所以其它应用也被迫重启。

服务器数量的激增带来了部署、更新和支持方面的挑战,以及安全和灾难恢复方面的问题。

虚拟化技术很好地解决这一问题。可以在一台宿主机上虚拟出多个虚拟机,每个虚拟机仅部署一个应用。由于每个虚拟机时互相隔离的,所以崩溃一个其它的依然可以正常运行,上面的问题也就迎刃而解了。

虽然虚拟化技术重新兴起,但是开发用于虚拟化的操作系统和软件是一件十分复杂的事情。Intel VT 的出现消除或大大减少了其中的一些复杂因素。Intel 开始与 VMM 的开发者合作,在 Intel 处理器和芯片组中实现硬件辅助虚拟化,并推动相关规范的制定以促进虚拟化在未来的发展。

参考资料

本文作者:ADD-SP
本文链接https://www.addesp.com/archives/1869
版权声明:本博客所有文章除特别声明外,均默认采用 CC-BY-NC-SA 4.0 许可协议。
暂无评论

发送评论 编辑评论


上一篇
下一篇