资讯专栏INFORMATION COLUMN

服务器虚拟化技术演进

yibinnn / 2674人阅读

摘要:无论是微服务架构还是服务网格架构,都是在服务器虚拟化技术日渐成熟后才得以大规模使用。超虚拟化技术就能很好的解决二进制翻译的问题。于是和的组合就奠定了服务器虚拟化的基石。

欢迎关注我的公众号睿Talk,获取我最新的文章:

一、前言

服务器虚拟化技术是云计算的基石,在最大化利用硬件资源的同时,又降低了使用成本,让系统具备弹性伸缩能力,促使现代系统的架构出现了革命性的变化。无论是微服务架构还是服务网格架构,都是在服务器虚拟化技术日渐成熟后才得以大规模使用。本文主要介绍 CPU 虚拟化技术的演进过程,以英特尔的 x86 平台为主,为掌握云计算相关知识打好基础。

二、CPU 保护环

为了提升系统的安全性,避免恶意操作,CPU 厂商设计了一种分级保护的机制。以 x86 芯片为例,就分为 Ring 0 到 Ring 3 几个级别。

Ring 0 拥有最高特权,可以和硬件直接交互,操作系统就是跑在 Ring 0。而应用软件一般跑在 Ring 3 上,当需要调用特权指令(如写内存)的时候,就会触发一个软中断,操作系统捕获到后再去做相应的操作,操作完再将控制权交还给应用。

保护环暂且聊到这里,下面还会讲这种设计存在的一些问题,请继续往下看。

三、CPU 虚拟化技术的演进

服务器虚拟化最早在 19 世纪 60 年代就提出了,当时的机器都是单线程的,一台机只能跑一个程序,很浪费硬件资源。于是就有人研究在一台物理机上跑多个操作系统,这样就能跑多个程序了。但后来由于操作系统的改进,出现了多进程和多线程技术,于是虚拟化技术就被暂时搁置了。

到了 1998 年,随着二进制翻译技术的成熟,在一台机器上跑不同的操作系统已经不成问题。二进制翻译技术简称BT,是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行。二进制翻译技术将机器代码从源机器平台映射(翻译)至目标机器平台,包括指令语义与硬件资源的映射,使源机器平台上的代码“适应”目标平台。最早作出尝试的是VMware,实现原理见下图:

操作系统和 VMM (Virtual Machine Monitor)跑在 Ring 0 上,虚拟化的 OS 跑在 Ring 1 上。当虚拟化 OS 需要跑内核指令的时候,就会触发软中断,VMM 捕获后就会进行必要的翻译和执行操作。但x86架构有一类特殊的指令,称为敏感指令,它既能执行特权操作,又无法被 Ring 0 捕获,导致虚拟机无法正确的执行这些指令。

为了解决这个问题,前后发展出 3 种方案:

二进制翻译(Binary Translation)

超虚拟化(Para Virtualization)

硬件辅助虚拟化(Hardware Assistance)

二进制翻译原理就是 VMM 动态的扫描虚拟操作系统的内核,一旦发现不能被捕获的敏感指令,就将其替换为一条或多条的特权指令,这样就能保证指令的正确执行。典型的代表是VMware的第一代虚拟桌面。这种技术有一个致命的弱点,就是能明显的感觉到虚拟机会卡顿,因为动态扫描和替换指令是一种很耗资源的操作。

超虚拟化技术就能很好的解决二进制翻译的问题。它的原理是提前修改安装在虚拟机上的操作系统,将敏感指令替换掉,这样所有的特权指令都能被 VMM 捕捉到了,典型的代表是第一代的Xen。但这又带来另一个问题,就是安装的操作系统必须是内核被修改过的系统,不能随意安装任意的系统。

英特尔慢慢意识到自己芯片存在的问题,于是改良了芯片设计,在 CPU 保护环中新增了 Ring -1 层。VMM 跑在 Ring -1 层后,所有的指令都能被捕捉了,而且还新增了一些专门用于虚拟化的指令,这就是 VT-X 技术。最早使用这一技术的KVM公司,在成功商业化后就被英特尔收购了。随后英特尔宣告将KVM技术开源,造福整个产业。

CPU 的虚拟化是服务器虚拟化的关键技术,但如内存和网卡等其它硬件的虚拟化技术也不容忽视,在这方面QEME公司就做得很好。于是KVMQEMU的组合就奠定了服务器虚拟化的基石。

四、Hypervisor 类型

虚拟化层,也就是上文提到的 VMM,现在一般会命名为 Hypervisor。Hypervisor 有 2 种类型:

Type 1,裸金属(Bare Mental)

Type 2,基于操作系统

Type 1 的 Hypervisor 不依赖操作系统,直接安装在硬件之上,典型的代表是XenKVM
Type 2 的 Hypervisor 安装在特定的操作系统之上,像跑应用一样的启动和操作虚拟机,典型的代表是Oracle VirtualBoxVMware Workstation

总结

本文介绍了 CPU 虚拟化技术的演进过程,从二进制翻译、超虚拟化再到终极的解决方案硬件辅助虚拟化。虚拟化技术的不断演进,为云计算的工业化铺平了道路。在后面的文章中,我还会继续介绍云计算的相关知识,敬请期待。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/11499.html

相关文章

  • 务器拟化技术演进

    摘要:无论是微服务架构还是服务网格架构,都是在服务器虚拟化技术日渐成熟后才得以大规模使用。超虚拟化技术就能很好的解决二进制翻译的问题。于是和的组合就奠定了服务器虚拟化的基石。 欢迎关注我的公众号睿Talk,获取我最新的文章:showImg(https://segmentfault.com/img/bVbmYjo); 一、前言 服务器虚拟化技术是云计算的基石,在最大化利用硬件资源的同时,又降低...

    SexySix 评论0 收藏0
  • UCloud 虚拟网络VPC技术演进之路

    摘要:在实践中,我们开发并上线了网关和负载均衡网关。而负载均衡网关则支持无缝替换传统交换机实现网关集群,支持一致性,并支持根据任意字段,内存和端口来计算哈希,支持协议。网络作为信息时代的重要载体,在云服务的快速发展下形成了独具特色的虚拟网络服务架构和模式。12月19日,2020中国云网络峰会于北京顺利召开,会上UCloud虚拟网络VPC负责人陈煌栋给大家带来了演讲《UCloud VPC技术演进之路...

    Tecode 评论0 收藏0
  • 腾讯云李丛:基础架构演进应当为整个社会运作效率的提升作出贡献_云资讯

    摘要:月日,全球分布式云大会上海站隆重召开。因此,分布式架构的演进为带来的就是扎实的内功,当内功足够雄厚,无论市场和需求千变万化,腾讯云都能依靠完善的基础能力作出完美应对。当分布式操作系统构建完成后,也将迎来升级质变,成为分布式云的组成部分。 9月16日,Distributed Cloud|2021全球分布式云大会·上海站隆重召开。在全球分布式云大会不懈布道下...

    xzavier 评论0 收藏0
  • 云计算变革下的企业IT运维管理演进

    摘要:当企业各个业务对于的需求日益强烈,数据中心不断地集约整合,云计算时代的数据中心,甚至企业私有云的雏形开始形成的时候,越来越多的管理者感受到了新型数据中心给他们带来的运维挑战。对于运维人员来说,对于分散的资源进行统一的管理是基本要求。        云计算的大势犹如奔腾咆哮的江水滚滚而来,势不可挡。当企业各个业务对于IT的需求日益强烈,数据中心不断地集约整合,云计算时代的数据中心,甚至企业私有...

    ChristmasBoy 评论0 收藏0
  • IaaS的演进!一文读懂裸金属和容器即服务

    摘要:英特尔机架规模设计则能实现以机架为单位的软硬件解耦,为裸金属即服务提供容量更大的资源池,并可通过开放的和协议如和,高效发掘管理和调配这些资源。江湖上,一直流传着 得IaaS(基础设施即服务),得公有云天下的说法。 想握紧IaaS这柄云端杀手锏,  大热的裸金属即服务和容器即服务, 还不了解一下? 它们为什么如此受人关注? 近年来,只要与IaaS相关的业界峰...

    My_Oh_My 评论0 收藏0

发表评论

0条评论

yibinnn

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<