《企业级容器云架构开发指南》—1.1.2 X86平台虚拟化历史

举报
华章计算机 发表于 2019/05/30 16:11:19 2019/05/30
【摘要】 本书摘自《企业级容器云架构开发指南》一书中的第1章,第1.1.2节,编著是闫健勇 龚 正 吴治辉  屈晓萌 王健飞 王 伟 刘晓红。

1.1.2 X86平台虚拟化历史

虚拟化技术在大型机时代诞生,在随后的小机时代得到进一步发展,而虚拟化技术的真正爆发则是在“X86时代”,图1-2是X86平台虚拟化进程的示意图。1999年虚拟化技术首次亮相X86平台,随后加速普及到个人计算机,正所谓“旧时王谢堂前燕,飞入寻常百姓家”。

image.png

图1-2 X86平台虚拟化进程

长期以来,由于X86 CPU缺乏虚拟化技术所需的关键指令,不能很好地支持虚拟化技术,导致上层相关的虚拟化软件很难实现。后来Intel与AMD意识到虚拟化的重要性,在其新一代的CPU上提供了专门用于虚拟化的指令集,从而加速了X86虚拟化的发展。此外,X86处理器的性能长期以来大大落后于UNIX小机的处理器,因此虚拟化的价值并不大,但随着X86处理器的加速多核化发展,其性能也得到了飞跃式提升。随着硅谷互联网泡沫的破灭,UNIX服务器的市场份额快速萎缩,被X86服务器侵蚀了大部分市场。后来在云计算浪潮的推动下,X86虚拟化技术才首次被真正重视起来。我们看到,X86虚拟化具备了天时、地利、人和的优势,所以注定爆发。

1999年是X86虚拟化技术发展的一个重要里程碑:这一年,VMware公司首次解决了X86平台的虚拟化问题,推出了面向X86平台的商业化虚拟机软件——VMware Workstation,使虚拟化技术开始走向普通用户。

VMware公司的Workstation虚拟机软件可以让普通用户在自己的Windows笔记本式计算机或者台式计算机上很方便地创建出一个虚拟机,并且可以在这个虚拟机上安装各种版本的Linux系统或者Windows系统。我们知道,企业级应用大部分都是安装和部署在Linux服务器上的,为了开发并测试这些应用,项目组通常需要一个专门的服务器,有了VMware Workstation之后,一个普通的笔记本式计算机就可以创建出几个Linux虚拟机来,在无须其他IT人员介入的情况下,开发和测试人员就可以独立完成整个系统的部署和测试过程,从而大大方便了软件开发工作。此外,有了VMware Workstation之后,销售或者售前团队很容易为客户演示一个复杂且庞大的软件系统,只要配备一个高性能的笔记本式计算机,即可在本机虚拟出多个虚拟机,将待演示的系统部署到虚拟机中,随时进行“移动演示”。此外,得益于虚拟机快照功能,采用虚拟机方式进行的软件回归测试、系统备份恢复以及POC演示等活动都极大地节省了工作量和时间。

VMware Workstation技术主要是针对Windows用户开发的,总体上来说属于客户端的虚拟化技术,而VMware服务器端的虚拟化产品则是ESXi。VMware的这些虚拟化产品都是商业软件,并不符合Linux开源精神。所以,2003年Linux(X86平台)上首次出现了开源虚拟化技术——Xen。

Xen是英国剑桥大学推出的一种半虚拟化技术,其特点是需要对部署在虚拟机上的操作系统的代码进行少量修改,使其适应虚拟化环境,因此Xen使用起来有些麻烦。但从另一方面来看,因为修改虚拟机的操作系统代码可以实现比较高的虚拟化性能,所以目前公有云巨头如亚马逊、阿里巴巴的公有云虚拟机都是基于Xen技术定制演变而来的。虽然目前Xen技术已经没落,但它大大加速了X86与Linux虚拟化技术的研究与应用过程,可以说功不可没。但Xen需要修改虚拟机上的操作系统才能实现虚拟化,因此也存在种种弊端和限制,如第三方修改Windows这种闭源操作系统的代码是违反软件许可证的做法。为了更好地支持全虚拟化,2005年Intel和AMD相继推出支持虚拟化技术的全新CPU和芯片组,从而在硬件基础上第一次有了重大突破,实现了硬件辅助虚拟化技术。其原理是在CPU中加入虚拟化指令,这种指令的加入大大加速了整个X86的服务器端虚拟化的发展进程,也促进了新一代Linux虚拟化软件的诞生,这就是后起之秀——KVM。

2006年以色列公司Qumranet宣布了新一代Linux虚拟化软件KVM的诞生,KVM在不到一年的时间里即被纳入Linux内核中并得到支持,成为第一个Linux内核级支持的开源虚拟化软件。KVM实际上已经成为云计算标配的虚拟化技术,也就是从KVM被推出之后,大规模的云计算开始在各个行业当中得到推广,OpenStack底层的虚拟化技术即采用了KVM。

总体来说,X86平台的虚拟化从技术上来讲,主要分为半虚拟化和全虚拟化两种。Xen属于半虚拟化技术,需要对客户操作系统进行定制化改造,这样才能在虚拟层上运行,半虚拟化为用户提供了一个可以改造的通道,可以对虚拟机操作系统进行定制化的改造;后来的KVM则属于全虚拟化,即无须对操作系统进行任何改造,直接就可以在虚拟机上安装。Xen需要对操作系统进行一定的改造,而且长期以来没有被纳入Linux内核中,慢慢地被边缘化了,而KVM则成为真正的赢家。

因为X86平台可以提供便宜、高性能和高可用的服务器,所以X86平台的虚拟化技术突飞猛进,并且首次向人们展示了虚拟化应用的广阔前景。更重要的是,一些用户已经开始在生产环境中大量使用虚拟化技术,他们需要得到新的管理工具,反过来进一步促进了虚拟化技术的发展。不过,与已经有多年历史的UNIX服务器、大型主机上的虚拟化技术相比,X86服务器上的虚拟化仍旧处于早期阶段,但自2006年以来,从X86处理器层面的AMD和Intel积极发布新的芯片,到操作系统层面厂商(如微软、红帽等公司)的推动,以及服务器厂商的积极跟进和数量众多的第三方软件厂商不断涌现,我们看到一个趋于完整的服务器虚拟化的产业生态系统正在逐渐形成。时至今日,虚拟化技术已经不是一个新技术,而是一个越来越普遍的重要基础技术,随着云计算、大数据、物联网、人工智能等新技术的飞速发展,虚拟化技术还将进一步深入发展,最终实现软件定义一切的终极梦想。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。