简述虚拟化层次结构原理 虚拟化层的作用

虚拟化技术概述-虚拟化层次

上一期有介绍虚拟机的特点与优势,本期会为大家介绍虚拟化从层次上的技术分类。

传统方式的应用程序运行是在操作系统上,而操作系统需要适应主机的特定体系结构,比如x86的机器上就只能运行win,linux,MaxOS等几种操作系统,AIX则无法运行。

有了虚拟化之后,用于的应用程序由相应的客户操作系统管理,且客户操作系统可以独立于主机的操作系统,运行在同一个硬件上,且不需要适配硬件的特定体系结构。这通常通过增加一个虚拟化层来实现,该虚拟化层称为hypervisor或VMM(Virtual Machine Monitor)。

多个操作系统在Hypervisor的协调下可以共享这些虚拟化后的硬件资源,同时每个操作系统又可以保存彼此的独立性。

虚拟化的层次

虚拟化层将主机的物理硬件资源虚拟为可被各虚拟机互斥使用的虚拟硬件资源,这可以在不同的层面实现。

①指令集体系结构级(Instruction Set Architecture Level)

——代码解释和动态二进制翻译。

通过使用物理主机的ISA模拟一个给定的ISA来实现。基本的模拟方式是“代码解释”,一个软件翻译层的程序将源指令逐条翻译为目标指令,一条源指令可能会对应上百条目标指令来实现相同的功能。为改进性能,出现了动态二进制翻译技术,将动态源指令的基本块转换为目标指令,基本块可以转化为超级块来进一步提升转换的效率。

②硬件抽象级(Hardware Abstraction Layer Level)

——虚拟化一个计算机硬件资源。

该类虚拟化直接在原始硬件上进行。该方法虚拟CPU、内存和I/O设备,目的是通过多个并行用户来改进硬件资源的利用率。该类的典型代表是常用的VMware和Xen。这个层级的虚拟化有全虚拟化、半虚拟化等方式。

③操作系统级(Operating System Level)

——在单一物理服务器上创建隔离的容器和操作系统实例。

指处于传统操作系统和用户应用程序之间的抽象层。操作系统级虚拟化在一个单一的物理服务器上创建隔离的容器和操作系统实例,常被用来创建虚拟主机环境,在大量互斥的不信任用户之间分配硬件资源。这种虚拟机也称为VE(虚拟执行环境)、VPS(虚拟专用系统)或容器。

操作系统级虚拟化方案解决了硬件级虚拟化的很多问题,使操作系统级虚拟化非常适合云计算场景:

①物理机器和虚拟机实例数可以动态改变;

②硬件级虚拟化的虚拟机初始化很慢,而操作系统级虚拟化几乎不需要时间;

③就是硬件全虚拟化性能较低,半虚拟化又需要修改客户操作系统(全虚拟化和半虚拟化后面讲),但操作系统级虚拟化就几乎没有开销。

④库支持(用户级API)级(Library (user-level API) Level)

——库接口的虚拟化。

大部分应用都是基于用户库API而不是系统级调用的,因此可以通过API钩子控制应用程序和其他系统部分之间的连接,使得带有库接口的虚拟化成为可能。

⑤应用程序级(Application (Programming Language) Level)

——进程级虚拟化、高级语言(HLL)虚拟机。

这个级别的虚拟化是将一个应用程序虚拟化为一个虚拟机。在这种情况下,虚拟化层作为一个应用程序处于操作系统之上,并且这一层抽象出一个虚拟机,其可以运行为特定的机器环境所编写和编译的程序。

本期内容就到这里,喜欢的朋友可以点一下“关注”和“转发”,小编会时不时地进行资料的福利分享哦!

我们下期再见!

原文链接:,转发请注明来源!