回到首页 中心介绍
 

首页 >> 最新动态 - 国产通用CPU芯片虚拟化技术调研

国产通用CPU芯片虚拟化技术调研

 
 

一、 虚拟化技术简介

(一) 概述

虚拟化是一个广义的术语,不同语境下具有不同的含义。在计算机科学技术语义下,虚拟化即为对计算资源的抽象。例如内存虚拟化就是对物理内存的抽象,使得应用程序认为其自身拥有连续可用的地址空间,但在底层物理资源上,应用程序的代码和数据可能是被分隔成多个碎片页或段),甚至被交换到磁盘、闪存等外部存储器上。类似的,计算平台虚拟化技术通过对计算机或操作系统进行抽象,隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境,这一模拟的计算环境根据抽象对象的不同具有不同的称谓,对计算机进行抽象得到的虚拟计算环境通常被称为虚拟机,对操作系统进行抽象得到的虚拟计算环境通常被称为容器。随着云计算产业落地以及云计算应用的全面推开,虚拟化技术这一词大部分情况下成为计算平台虚拟化技术的代名词。

(二) 虚拟化技术的分类

按照抽象的对象不同,虚拟化技术可以分为两大类:虚拟机技术和容器技术。

1、 虚拟机技术

虚拟机技术通过对计算机整机进行抽象,可以模拟一个具备完整硬件系统功能的完整计算机系统。该模拟的计算机系统被称为客户机,运行模拟计算机的物理计算机系统被称为宿主机,宿主机中控制客户机的程序即为虚拟机监视器(hypervisor)。客户机与宿主机相互隔离,各自独立运行。

实现一个良好的虚拟机系统所需的充分条件最先由PopekGoldberg1974年发表的论文《Formal Requirements for Virtualizable Third Generation Architectures》提出:

1)资源控制。控制程序必须能够管理所有的系统资源。

2)等价性。在控制程序管理下运行的程序(包括操作系统),除时序和资源可用性之外的行为应该与没有控制程序时的完全一致,且预先编写的特权指令可以自由地执行。

3)效率性。绝大多数的客户机指令应该由主机硬件直接执行而无需控制程序的参与。

从是否需要修改客户机操作系统角度划分,可划分为半虚拟化技术和全虚拟化技术两种。半虚拟化技术修改客户机操作系统代码,客户机在处理特权指令时主动调用宿主机专用接口,提高虚拟机性能;全虚拟化技术不需要对客户机操作系统代码进行修改即可正常运行任何非虚拟化环境中已存在的操作系统,这点是全虚拟化无可比拟的优势。

从模拟过程中硬件软件的参与方式角度划分,虚拟机技术又可划分为硬件虚拟化和软件虚拟化两种。软件虚拟化使用纯软件的方法模拟硬件的取指、解码和执行,客户机的指令并不在宿主机硬件上直接执行;硬件虚拟化使用宿主机硬件支持的虚拟化指令模拟客户机系统,客户机指令直接运行在宿主机硬件上。软件虚拟化具备较高的灵活度,但性能效率极低,不具备实用价值;硬件虚拟化具备较高的性能效率,但宿主机硬件平台需要具备硬件虚拟化能力。

2、容器技术

容器技术通过操作系统内核创建多个虚拟的操作系统实例,并在虚拟的操作系统实例中运行应用程序。虚拟出的操作系统实例共享一个系统内核,位于不同的虚拟操作系统实例中的应用程序互相隔离,独立运行。

(三) 主流虚拟化技术

在虚拟机技术领域,目前主流的虚拟机技术有KVMXenVMwareHyper-V等。其中KVMXen为开源虚拟机技术,VMwareHyper-V为商用闭源虚拟机技术。

VMware是一种全虚拟化技术,支持X86架构下的WindowsLinux以及Mac OS系统,由VMware公司研发。在X86架构芯片硬件虚拟化技术还不完善的时代,VMware提出动态二进制指令转义技术,有效提高了特权指令访问效率,在虚拟机技术发展史上占据有重要的地位。

Hyper-V也是一种全虚拟化技术,仅支持X86架构下的Windows系列操作系统,由微软公司研发。Hyper-V充分利用了win-intel联盟优势,对Intel芯片的虚拟化特性进行了充分的运用,与Windows操作系统深度集成。

Xen诞生于英国剑桥大学,最开始为一种半虚拟化技术,运行经过定制修改的操作系统,在硬件芯片虚拟化指令集还不完善的情况下具备很强的效率优势,也曾一度作为Linux社区使用量最大的虚拟机技术。随着硬件芯片对虚拟化技术的支持,Xen也开发了自己的全虚拟化技术。

KVM诞生于以色列,于2007年作为内核的一个模块导入到Linux 2.26.20核心中,当前,KVM已经是Linux操作系统的默认虚拟机管理器。KVM为一种全虚拟化技术的虚拟机,支持X86ARMPower PCS390架构,可充分利用硬件芯片的虚拟化能力。对于IO效率较高的场景需求,KVM使用半虚拟化技术模拟IO设备,以达到更高的效率。

在容器技术领域,目前主流的技术有LXCDocker技术。这两者均是Linux操作系统下的容器技术,使用Linux操作系统的NameSpaceCgroup机制实现虚拟操作系统实例之间的相互隔离。相对于虚拟机技术,容器技术具有更好的适配性,只要操作系统具备相应的机制即有实现的可能。

二、 国产通用CPU芯片虚拟化技术发展情况

经过多年的发展,国产通用CPU芯片产业取得了长久的进步,产生了飞腾、龙芯、申威、海思等为代表的具备一定竞争能力的通用CPU。下文将分析飞腾、龙芯、申威、海思四款国产通用CPU的虚拟化技术发展情况。

(一) 飞腾虚拟化技术发展情况

飞腾芯片由天津飞腾信息技术有限公司设计研发,现有两大系列,FT-1500系列以及FT-2000系列。两个系列均使用PSoC体系结构,其中FT-1500系列集成兼容ARMv8指令集的FTC660处理器核,FT-2000系列集成兼容ARMv8指令集的FTC661处理器核。

1、虚拟机技术发展情况

ARMv8指令集从低到高分为EL0EL1EL2EL3四个异常级别。虚拟机运行时各个组件运行的异常级别如下所述:

l  虚拟机监视器(Hypervisor)运行在normal world里的EL2上,此时虚拟机管理器可以管理normal world里其他所有异常级别中运行的软件;

l  客户机内核运行在EL1上,客户机应用运行在EL0上。

通过上述异常级别设计,ARMv8指令集可以保障虚拟机运行时特权级的正确性,确保虚拟机操作系统的正常运行。此外ARMv8指令集在中断控制、页表转换以及陷阱控制方面提供了专有指令支持可以有效支持虚拟机监视器的编写研发。

飞腾公司的FTC660以及FTC661实现了ARMv8指令集的硬件虚拟化扩展,具备虚拟机技术实现基础。目前,基于飞腾FT-1500FT-2000系列的服务器产品已全面支持KVM虚拟化。但目前并未对Xen虚拟化进行适配。由于Hyper-V以及VMware为商业软件,且均不支持除X86架构外的硬件架构,因此飞腾芯片无法对Hyper-VVMware进行适配。

目前已有云计算公司产品对FT-1500FT-2000进行了适配。较为典型的有品高软件公司的品高云产品,天津麒麟信息技术有限公司的银河麒麟云平台管理系统,中国长城科技集团股份有限公司的私有云产品等。

2、容器技术发展情况

FT-1500FT-2000的基础上天津飞腾信息技术有限公司全面适配LXC容器技术及Docker容器技术。品高软件公司的品高云产品,天津麒麟信息技术有限公司的银河麒麟云平台管理系统,中国长城科技集团股份有限公司的私有云产品,太极PaaS平台产品对飞腾容器技术进行了适配,在党政军办公领域有了一定的应用。

(二) 龙芯虚拟化技术发展情况

龙芯通用CPU由中科院计算所研发,产业化由龙芯中科技术有限公司进行。目前龙芯处理器有龙芯3号系列,龙芯2号系列,龙芯1号系列等。其中龙芯3号系列主要面向桌面和服务器领域,龙芯2号与龙芯1号系列主要面向工控、终端以及嵌入式领域。

1、虚拟机技术发展情况

龙芯CPU最初使用MIPS指令集,随着龙芯CPU技术的发展成熟,龙芯在MIPS的基础上研发了自主指令集LoongISA

当前龙芯自主指令集LoongISA在全虚拟化上存在一些困难:

l  LoongISA的内存管理机制会导致客户机操作系统内存以及宿主机操作系统内存映射到同一物理地址。

l  LoongISA无成熟的支持虚拟机技术的特权级机制,这将导致宿主机与客户机运行于同一特权级下,产生安全隐患。

l  龙芯微体系结构较为复杂,其多核架构给虚拟机技术的实现带来了一定的影响。

l  缺乏必要的硬件虚拟化指令,虚拟机监视器无法借助底层硬件虚拟化能力,效率相对而言较低。

目前,龙芯虚拟化主要采用半虚拟化技术从一定程度上避免上述的问题。龙芯于2013年发布一个龙芯KVM版本。航天706所基于龙芯的天钥服务器已支持KVM虚拟化,但在性能方面还存在一定的不足。对于Xen虚拟化,目前龙芯并未进行适配工作。同样由于Hyper-V以及VMware为商业软件,且均不支持除X86架构外的硬件架构,因此龙芯芯片无法对Hyper-VVMware进行适配。除上述主流虚拟化技术外,龙芯与云宏信息展开了联合攻关,开展云宏CNware虚拟化的适配工作。

基于龙芯芯片目前中科龙芯对开源IaaS技术OpenStack进行了适配,已测试适配HorizonNovaNeutronKeystoneGlance等主要模块,其他模块还在适配中。

2、容器技术发展情况

容器技术在龙芯CPU上得到了较为良好的发展,中科龙芯于2017年基于docker 1.12研发了一套容器平台。并且向docker官方提供了Loongnix操作系统镜像。浪潮集团有限公司、中国长城科技集团股份有限公司、品高软件公司、中国电子科技集团等公司也发布了基于龙芯容器技术的云平台产品。

(三) 申威虚拟化技术发展情况

申威芯片由成都申威科技有限责任公司研发,采用自主研发的申威指令集,在高性能计算领域有着不错的表现。

1、虚拟机技术发展情况

缺少相关信息

2、容器技术发展情况

缺少相关信息

(四) 海思虚拟化技术发展情况

海思半导体为华为技术有限公司旗下的一家半导体研发公司,在通用CPU领域推出了Hi16XX 64ARM处理器系列。现已推出三款处理器Hi1610Hi1612以及Hi1616。这三款均兼容ARMv8指令集。

1、虚拟机技术发展情况

海思Hi16XX系列处理器全面实现了ARMv8指令集中硬件虚拟化特性,具有良好的硬件虚拟化基础。

目前华为基于Hi16XX系列处理器推出了泰山系列服务器,华为在泰山服务器上实现了KVM虚拟化,但并未对Xen虚拟化进行适配,同样的,由于Hyper-V以及VMware为商业软件,且均不支持除X86架构外的硬件架构,因此Hi16XX系列芯片没有对Hyper-VVMware进行适配。

华为技术有限公司以泰山服务器为基础,推动华为云操作系统FusionCloud、华为大数据软件FusionInsight、华为虚拟化操作系统FusionnSphere、华为桌面云FusionAccess向自研架构硬件迁移,推出了华为全栈式自主可控云和大数据解决方案产品。同时,华为技术有限公司与国产操作系统厂商对接,推动国产操作系统与华为全栈式自主可控云和大数据解决方案产品深度集成。

2、容器技术发展情况

目前华为技术有限公司在泰山服务器上实现了Docker容器技术,并以此为基础推动华为云容器服务Service Stage向自研架构硬件迁移,取得了一定的进展。

 
上一条:
下一条:2018中国(天津)工业APP创新应用大赛决赛名单出炉