您的当前位置: 首页 > 三个皮匠报告百科 > 虚拟化技术

虚拟化技术

目录

虚拟化技术是什么

虚拟化本质是提供一个虚拟的操作系统执行环境,让多个操作系统能够并行运行在同一硬件环境上。最早的虚拟化技术是将一个CPU切分为多个时间片,并通过循环轮询的方式虚拟成多个CPU去执行不同的任务。随着硬件的发展,虚拟化技术在桌面PC和服务器领域迅速发展,基于X86架构的虚拟化产品VMware的诞生更是意味着该技术走向成熟。

VMware采用二进制翻译技术和优先级压缩技术,直接将二进制程序代码翻译到另一种处理器运行,实现了PC机上操作系统的完全虚拟化。经过多年的发展,虚拟化技术已经形成了一套合理且受业界认可的理论体系。一般在虚拟化技术中,运行在真实物理环境上的称为宿主机(host OS),而通过虚拟化技术实现的虚拟操作系统运行环境称为虚拟机(virtual machine VM),在虚拟环境中执行的系统称为客户机(guest OS),运用虚拟化技术在硬件和客户机软件之间引入一个新层级,通过这个软件层管理底层和上层的交互,即称之为hypervisor或是VMM(virtual machine monitor)[1]

虚拟化技术发展历程

虚拟化的概念的提出最早可以追溯到20世纪50年代末,1959年牛津大学计算机教授Christopher Strachey在国际信息处理大会上发表了一篇名为《大型高速计算机中的时间共享》的学术报告,首次提出了“虚拟化”的概念。此时的虚拟化技术还处在最初的阶段,与现在所称的狭义的虚拟化技术有较大的差别,但仍然被认为是最早的关于虚拟化技术的论述。

1961年由麻省理工学院Fernando Corbato教授团队着手研发的兼容性分时系统(Compatible Time Sharing System,CTSS)项目形成了虚拟化技术的根本,并对后续Supervisor的设计提供了基础。1965年由IBM公司开发的IBM7044系统首次实现了多个突破性的虚拟化概念,包括部分硬件共享、时间共享、内存分页和虚拟内存管理的虚拟机监视器(Virtual Machine Monitor,VMM),被认为是世界上第一个支持虚拟机的系统。VMM通过对计算机硬件资源进行抽象,形成一个物理硬件层之上的抽象软件层,并以此实现将原本由单一用户独占的计算机系统复制为多份,支持多个用户同时进行交互。此时的虚拟化技术已经成为现代狭义虚拟化技术的雏形。

虚拟化技术

虚拟化技术的层次

按照抽象程度的不同,虚拟化被分为五个层次:

(1)指令集架构级虚拟化。指通过软件模拟不同架构的处理器、存储器、总线、计时器等I/O设备,软件将虚拟机上运行的指令转换为本机可以执行的指令在本机硬件上运行。由于每条指令均需要通过软件模拟,因此性能方面可能受到一定影响。

(2)硬件抽象层级虚拟化。硬件抽象层级虚拟化即一般意义上的虚拟机。由虚拟机监视器来隐藏不同厂商的CPU、存储、芯片组等的不同之处,为虚拟机提供抽象统一的虚拟平台。当前绝大多数的x86架构平台的商业计算机都使用这种虚拟化,并且处理器厂商还对硬件抽象进行了专门的支持,称为硬件辅助虚拟化技术,如Intel公司的VT-d,AMD公司的AMD-Vi等。硬件抽象层级虚拟化的隔离度非常高,支持不同的操作系统,风险低,维护方式也与一般主机一致。但由于此等级的平台能够访问宿主机操作系统的底层,用户要安装一个这样的虚拟机,所耗费的精力几乎与安装一台全新的电脑相同,因此这样的虚拟机部署成本相对较高。

(3)操作系统级虚拟化。操作系统内核的虚拟化可以最大程度减少新增虚拟机所耗费的成本。硬件抽象层级虚拟化是对实际的物理硬件进行的抽象,而操作系统级虚拟化则是对宿主机的操作系统内核进行抽象,为虚拟实体呈现相互隔离的运行环境。应用软件在这些虚拟实体中的运行环境由宿主机操作系统、库、相依性软件、特定的数据结构和文件系统以及其他的环境设置构成。当这些运行环境保持不变时,应用软件几乎难以发现它所处的环境与真实操作系统环境的区别,这是操作系统级虚拟化的关键。操作系统级虚拟化的一个典型代表是容器技术和Docker平台。

(4)编程语言级虚拟化。这一级别的虚拟化平台负责将高级编程语言直接翻译为硬件的执行指令,具有跨平台、跨语言等优点。典型的是Java。

(5)库级虚拟化。大多数的应用程序依赖于大量的运行库API进行设计,使用动态链接的方式隐藏库API的实现细节,可以使程序员直接调用该API,免去对API实现的理解,且克服了不同语言带来的麻烦。这也促成一种新的虚拟化方式的产生,即通过不同的API与不同系统底层的ABI(Application Binary Interface)进行模拟的工作。典型的代表是微软为Windows开发的动态链接库(Dynamic-link Library,DLL)和WSL(Windows Subsystem for Linux)。

虚拟化技术的分类

到目前为止,虚拟化技术的发展,使得原本单一的虚拟化概念逐渐模糊,虚拟化出现许多类型,并在不同领域有所发展。主要有网络虚拟化、服务器虚拟化、存储虚拟化、桌面虚拟化、数据虚拟化等:

(1)网络虚拟化。

网络虚拟化指在一个物理网络之上引入多个异构网络体系结构,具有代表性的是虚拟覆盖网络技术(Overlay)。通过应用层协议增强物理网络的划分,根据需求将物理网络通道的复杂连接抽象成面向应用的简单拓扑,使得网络的复杂性被掩盖,对上层用户的呈现更为简洁。

(2)服务器虚拟化。

服务器虚拟化是一种将服务器的硬件信息细节屏蔽,并对用户表现为单一主机的方法。用户在申请一定量的资源后通过服务器虚拟化为其生成虚拟机,而多台虚拟机可以在同一台物理机上共存。服务器虚拟化为用户程序提供了独立主机资源视图,使用户更便捷地利用服务器资源,同时提高了服务器资源利用率,避免多用户之间资源与运行环境的冲突,还提供了扩展性。服务器虚拟化是云计算的关键技术之一,得到了相当的发展。

(3)存储虚拟化。

由于网络数据的不断膨胀,使得单台计算机无法存储巨大的数据量。存储虚拟化将来自网络上不同物理主机整合起来,形成统一的网络存储。对用户则表现为原本的存储特性,操作均与在单台主机上一致,而却能实现存储的跨主机、跨地域,大大提升了网络存储能力。与之相关的技术有网络附加存储、独立磁盘冗余阵列和存储区域网格等。

(4)桌面虚拟化。

桌面虚拟化与服务器虚拟化所面向的对象不同。桌面虚拟化面向工作站主机,将工作站集中交由运营商进行管理,并允许用户远程访问桌面,使得用户可以获得与本地主机相近似的计算机使用体验。由于用户对工作站的使用以虚拟形式汇集在运营商处,便于运营商对主机的统一管理与运行维护。

(5)数据虚拟化。

数据虚拟化允许应用程序在数据相关的技术细节(如格式化方式或物理存储位置)的情况下对数据进行检索,扩展了数据的访问并提升了数据相关业务的弹性[2]

按照技术规范的不同可以分为五大类:主动可编程网络APN、虚拟局域网VLAN、覆盖网络ON、虚拟专用网络VPN和网络功能虚拟化NFV。

(1)虚拟局域网(VLAN)

VLAN是对局域网设备进行配置,使之划分成多个局域子网,以实现虚拟对接的用户组。与传统技术不同,VLAN并不使用物理手段划分网段。以太网作为一种传统网络通信技术,使用单一广播域作为资源管理策略,这种手段存在固有弊端,即网络对于资源的管理手段较为匮乏。网络管理人员使用VLAN技术对局域网用户进行划分,可以实现群组广播、增强隔离性和方便管理等好处。VLAN技术具备多种实现方式,用户可以自定义VLAN实现。其实现方式还可以分为基于端口、基于MAC、基于网络地址等方式。IEEE802.IQ协议的提出,对VLAN技术的发展起到了重要影响。首先对VLAN设备生产商的标签格式进行了统一,其次补充完善了VLAN的体系结构,对于VLAN有着里程碑式的意义。然而,受限于标识符空间(通常为4094个),传统VLAN已经无法满足云计算等大型网络应用场景,近年来又出现了VXLAN(Virtual Extensible LAN)技术,可以支持多达1600万个VN。

(2)虚拟专用网络(VPN)

作为基于公用网络搭建的“虚拟”专用网络,VPN无需端到端的物理链路来连接节点,这与传统专用网络不同。由于VPN由公网运营商的物理网络承载,利用隧道技术来连接节点,实现物理网络资源共享,由于没有采用物理链路来连接节点,所以说它是一种逻辑网络。在实际应用场景中,公司或组织部门通过构建VPN来使其子部门间相互连通,公司员工也可使用VPN远程接入公司内部网络。现今常用二层VPN和三层VPN

(3)主动可编程网络(APN)

APN技术通过隐藏底层物理资源,通过网络可编程接口调用相应的资源,允许用户采用自主的方式进行应用。现有两类实现方式:第一类是采用电信信令的方式,区分转发和控制层面,在控制层允许用户对可编程接口进行报文自定义,服务提供者此时得到授权可以控制网络的运行状态;第二类方式是基于自身的网络资源,在传输报文中对相应的控制信息进行封装,路由器收到报文后处理其内信息,实现自主处理传输报文的功能

(4)覆盖网络(ON)

ON的本质是一个逻辑网络,基于现有的物理网络,通过封装和隧道技术,使相应传输的数据只对配置的节点进行感知并加以处理,实现透明传输的功能。ON具备虚拟网络拓扑,其拓扑结构由当前虚拟网络内传输的业务所感知的节点和链路所组成。由ON技术独立于底层网络,无需对网络特性进行改动,因此在实际应用场景中常被用于部署新的网络服务或者对现有的网络服务进行优化。

(5)网络功能虚拟化(NFV)

NFV的出现简化了网络部署,通过交换机、存储设备以及通用服务器承载网络服务,并取代传统网络设备。原则上,该技术可运用都具有网络功能的网络中的任意位置。而随着网络的发展,5G的实现也需要NFV这项技术[3]

虚拟化技术基本架构

虚拟化技术的产生,使得市场涌现出大量的虚拟化产品,其中包括KVM、XEN、VMWARE、ESXI等虚拟监控器,也称为Hypervisor。根据这些Hypervisor架构的不同可以分为1型架构和2型架构两种。l型架构又被称为“裸金属架构”,是指虚拟监控器直接运行在宿主机之上。一般情况下,这种架构底层是对硬件进行了优化,使得硬件能够支持某些虚拟化功能。如XEN、EXSI就是采用这种架构类型的Hypervisor。

虚拟化技术

2型架构也被称为“寄居架构”。在此架构下,虚拟监控器不是直接运行在宿主机物理硬件之上,而是作为宿主机操作系统之上的一个应用软件来运行,从而对其上的虚拟机进行管理。KVM、VMwareWorkstation就属于2型架构的Hypervisor。

虚拟化技术

常见的Hypervisor包括黑莓的QNX、英特尔与Linux主导的ACRN、Mobica为代表的XEN、松下收购的OpenSynergy的COQOS、德国大陆汽车的L4RE、法国VOSyS的VOSySmonitor等,其中最主流的是黑莓的QNX及英特尔与Linux主导的ACRN,而QNX作为唯一被认可达到ASILD等级的虚拟化操作系统,已经量产应用到实际车型中。整个操作系统是由微内核调度管理的一组进程集合,安全性与实时性有保障。目前,黑莓VAI项目的中国区系统集成商类的合作伙伴主要包括中科创达、武汉光庭信息、南京诚迈科技等。

虚拟化技术

参考资料:

[1]郭子伦.基于微内核的嵌入式虚拟化技术的研究与实现[D].四川:电子科技大学,2021.

[2]郭秉楠.基于虚拟化技术的网络安全服务功能链编排系统设计[D].四川:电子科技大学,2020.

[3]段玲.空间信息网络中的网络切片技术研究[D].四川:电子科技大学,2021.

虚拟化技术相关报告:

深信服-有一种“信服”叫硬核(30页).pdf

深信服-公司深度报告:XaaS一切皆服务全面云化构建未来-211231(48页).pdf

【研报】计算机行业:B端互联网的新存储体系-20200306[29页].pdf

【精选】2021年深信服公司核心能力与虚拟化趋势分析报告(25页).pdf

中国联通:中国联通NFV虚拟化中间件白皮书(18页).pdf

中国通信标准化协会:云化虚拟现实总体技术研究白皮书(2018)(76页).pdf

虚拟化场景下 GPU 应用的网络优化.pdf

云安全联盟:网络功能虚拟化安全意见书(25页).pdf

分享到微信 分享到微博 分享到QQ空间
客服
商务合作
小程序
服务号
折叠