用于服务器的轻量级资源虚拟化方法及轻量级资源虚拟化装置与流程

文档序号:21626553发布日期:2020-07-29 02:33阅读:239来源:国知局
用于服务器的轻量级资源虚拟化方法及轻量级资源虚拟化装置与流程

本发明涉及一种软件技术领域,尤其涉及一种用于服务器的轻量级资源虚拟化方法及轻量级资源虚拟化装置。



背景技术:

目前市场上现有的轻量级虚拟化技术,换言之即容器技术,指有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求。资源分配技术,即云计算资源分配需要对云计算环境下的异构资源资源进行统一地管理和合理地分配,分配方案的目标包括用户目标和服务供应商目标。不同的云计算资源分配策略,往往通过不同的资源分配算法来实现,这样一来资源分配算法就成为大家的研究重点。

现有的用于服务器的轻量级资源虚拟化方法存在的问题包括:其一,受限于固有硬件资源,虚拟化框架自身对资源消耗较大,服务对资源的利用率较低。其二,在间歇窄带宽情况下,容器快速分发技术性能不稳定。其三,现有的容器技术安全隔离性不足。其四,zs条件下的非通用计算资源的虚拟化能力有待进化。



技术实现要素:

本发明的一个优势在于提供一种用于服务器的轻量级资源虚拟化方法,其中该用于服务器的轻量级资源虚拟化方法能够提高服务的可靠高效性以及资源的充分利用性。

本发明的另一优势在于提供一种用于服务器的轻量级资源虚拟化方法,针对容器镜像中存在大量冗余,导致内存资源消耗大、传输过程冗余多的情况,设计镜像分层机制模块与基础环境镜像预加载方法,最大化的优化容器栈内资源利用率,同时研究镜像快速分发机制,提升镜像分发速度与镜像加载速度,最终实现尽量快的服务启动与尽量低的系统资源消耗。

本发明的另一优势在于提供一种用于服务器的轻量级资源虚拟化方法,针对开源容器等隔离性较差的问题,体系化的重新设计与构建容器隔离技术,实现容器依赖的处理器、内存、句柄、存储、网络等资源的隔离,防止容器间串扰与非故意性破坏,同时也防止容器集群雪崩。

本发明的另一优势在于提供一种用于服务器的轻量级资源虚拟化方法,针对国产化、异构计算单元如何实现虚拟化进行研究与资源分配优化,提升轻量级虚拟化技术与国产化服务器及异构加速处理器的适应性。

本发明的另一优势在于提供一种用于服务器的轻量级资源虚拟化方法,通过研究镜像分层机制模块,实现基于镜像分层的管理与传输,改变原先需要冗余传输基础镜像层的现状。

本发明的另一优势在于提供一种用于服务器的轻量级资源虚拟化方法,通过研究p2p分发与预加载技术,提高镜像分发速度,降低镜像仓库压力,以及进一步降低镜像下载所需的传输量。

本发明的另一优势在于提供一种用于服务器的轻量级资源虚拟化方法,通过研究镜像构建文件优化技术模块,改进镜像合成过程,以达到精简镜像分层,减小镜像文件大小的目的。

本发明的其它优势和特点通过下述的详细说明得以充分体现并可通过所附权利要求中特地指出的手段和装置的组合得以实现。

依本发明的一个方面,能够实现前述目的和其他目的和优势的本发明的一种用于服务器的轻量级资源虚拟化方法,包括以下步骤:

(a)设置一个容器公共镜像具有一个内核层、一个操作系统层、一个公共组件层、一个开发语言层和一个开发框架层,其中该内核层、该操作系统层、该公共组件层、该开发语言层和该开发框架层被自下往上地设置;和

(b)根据镜像层管理信息分析、节点硬件特征和/或任务使命,预加载一个必要基础共性镜像层。

根据本发明的一个实施例,进一步包括步骤c1部署一个镜像加载器在每个具有容器引擎的物理节点上。

根据本发明的一个实施例,进一步包括步骤c2部署一个中心镜像加载器。

根据本发明的一个实施例,进一步包括步骤d1根据连续相邻多条的run命令使用&&符号合成一条run命令。

根据本发明的一个实施例,进一步包括步骤d2根据多条env命令合成为一条env命令。

根据本发明的一个实施例,进一步包括步骤d3判断add命令的源地址是否为本地压缩文件。

根据本发明的一个实施例,进一步包括步骤d4使用数组方式表示cmd与enrtypoint命令的参数。

依本发明的另一个方面,能够实现前述目的和其他目的和优势的本发明的一种轻量级资源虚拟化装置,包括:

一个镜像分层机制模块,其中该镜像分层机制模块包括一个内核层、一个操作系统层、一个公共组件层、一个开发语言层和一个开发框架层;

一个镜像预热机制模块,其中该镜像预热机制模块包括一个镜像层管理信息分析、一个节点硬件特征和一个任务使命,其中该镜像预热机制模块被连接至该镜像分层机制模块;

一个p2p镜像分发技术模块,其中该p2p镜像分发技术模块被连接至该镜像预热机制模块;和

一个镜像构建文件优化技术模块,其中该个镜像构建文件优化技术模块包括一个连续相邻多条的run命令使用&&符号合成一条run命令、一个多条env命令合为一条env命令、一个判断add命令源地址和一个使用数组的方式表示cmd与enrtypoint命令的参数,其中该镜像构建文件优化技术模块被连接至该p2p镜像分发技术模块。

根据本发明的一个实施例,其中该p2p镜像分发技术模块包括一个服务中心的场景和一个服务中心之间的场景。

根据本发明的一个实施例,其中当处于该服务中心的场景时,该p2p镜像分发技术模块为同集群物理节点之间的p2p镜像分发,当处于该服务中心之间的场景时,p2p镜像分发技术模块为服务中心与节点之间的镜像分发问题。

通过对随后的描述和附图的理解,本发明进一步的目的和优势将得以充分体现。

本发明的这些和其它目的、特点和优势,通过下述的详细说明,附图和权利要求得以充分体现。

附图说明

图1是根据本发明的一个实施例的用于服务器的轻量级资源虚拟化方法的结构示意图。

图2是根据本发明的上述实施例的用于服务器的轻量级资源虚拟化方法的镜像分层机制模块示意图。

图3是根据本发明的上述实施例的用于服务器的轻量级资源虚拟化方法的镜像预加载示意图。

图4是根据本发明的上述实施例的用于服务器的轻量级资源虚拟化方法的服务中心内的镜像分发示意图。

图5是根据本发明的上述实施例的用于服务器的轻量级资源虚拟化方法的服务中心分发镜像数据示意图。

图6是根据本发明的上述实施例的用于服务器的轻量级资源虚拟化方法的隔离增强技术的进程访问proc代理的示意图。

具体实施方式

以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。

本领域技术人员应理解的是,在本发明的揭露中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系是基于附图所示的方位或位置关系,其仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术语不能理解为对本发明的限制。

可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。

参考本发明说明书附图之图1至图5,依本发明的一个实施例的用于服务器的轻量级资源虚拟化方法被揭露。一种用于服务器的轻量级资源虚拟化方法,包括以下步骤:a.设置一个容器公共镜像具有一个内核层、一个操作系统层、一个公共组件层、一个开发语言层和一个开发框架层,其中该内核层、该操作系统层、该公共组件层、该开发语言层和该开发框架层被自下往上地设置;和b.根据镜像层管理信息分析、节点硬件特征和/或任务使命,预加载一个必要基础共性镜像层。具体地,还包括以下步骤:步骤c1部署一个镜像加载器在每个具有容器引擎的物理节点上;步骤c2部署一个中心镜像加载器;步骤d1根据连续相邻多条的run命令使用&&符号合成一条run命令;步骤d2根据多条env命令合成为一条env命令;步骤d3判断add命令的源地址是否为本地压缩文件;步骤d4使用数组方式表示cmd与enrtypoint命令的参数。

该用于服务器的轻量级资源虚拟化方法基于以下用于服务器的轻量级资源虚拟化装置。该用于服务器的轻量级资源虚拟化装置包括一个镜像分层机制模块11、一个镜像预热机制模块12、一个p2p镜像分发技术模块13和一个镜像构建文件优化技术模块14,其中该镜像分层机制模块11包括一个内核层111、一个操作系统层112、一个公共组件层113、一个开发语言层114和一个开发框架层115,一个容器公共镜像被分为上述五个部分,在实际操作中,开发人员可以根据自身需求选择附图1中任意节点的镜像作为一个基础镜像,以此为基础开发一个应用服务镜像,以便充分利用容器分层特性最大化公共镜像的利用率。

进一步地,该镜像预热机制模块12包括一个镜像层管理信息分析121、一个节点硬件特征122和一个任务使命123,以此对一个必要基础共性镜像层进行预加载,提高镜像分发效率,降低网络传输量。通过预加载该必要基础共性镜像层,能够较大程度地节省镜像带宽,在实际操作中,如果一个应用利用了该镜像预热机制模块12,其服务中心节点基于规则和预设要求,在执行任务前即已经加载了python库、公共组件等镜像基础层,后续在部署应用服务时可基于该镜像分层机制模块11,仅传输缺少的内容,大大减少需要传输的数据量。

进一步地,该p2p镜像分发技术模块13能够进一步提高获取镜像的效率,节约时间,节省带宽,提高了信息平台在zs环境下的可用性。

在使用场景中,第一,当在服务中心内时,该p2p镜像分发技术模块13为同集群物理节点之间的p2p镜像分发。在服务中心内,会有一个唯一的镜像仓库,每个部署了容器引擎的物理节点上会有一个镜像加载器。镜像加载器会汇报本机拥有镜像元信息到镜像仓库,这样在镜像仓库中就拥有所有镜像层在集群中的分布数据。当容器引擎需要拉取镜像时,镜像加载器首先会去镜像仓库检索需要的镜像层的分布,然后选择若干节点,并行得分块拉取镜像数据。

第二,当在服务中心之间时,该p2p镜像分发技术模块13被实施为服务中心与节点之间的镜像分发问题,即弱连接节点之间的镜像分发问题。对于服务中心之间的镜像分发,会依靠各个服务中心里的中心镜像加载器。每个中心镜像加载器,会从本服务中心的镜像仓库获取镜像元数据,与其他服务中心里的中心镜像加载器建立联系,互通镜像元数据,建立镜像数据传输的p2p网络。

进一步地,该镜像构建文件优化技术模块14包括一个连续相邻多条的run命令使用&&符号合成一条run命令141、一个多条env命令合为一条env命令142、一个判断add命令源地址143和一个使用数组的方式表示cmd与enrtypoint命令的参数144,其中,连续相邻多条的run命令使用&&符号合成一条run命令141能够减少最终生成镜像的层数以及大小,该多条env命令合为一条env命令142能够减少镜像层数,该判断add命令源地址143能够判断是否为本地压缩文件,如果不是压缩文件则修改为一个copy命令,该使用数组的方式表示cmd与enrtypoint命令的参数144能够避免出现不可预料的错误。该镜像构建文件优化技术模块14能够通过研究该镜像生成过程,基于dockerfile语法,研究容器语法优化策略,通过优化达到精简镜像分层,以此减小镜像文件大小。

综上所述,通过研究该镜像分层机制模块11,实现基于镜像分层的管理与传输,改变原先需要冗余传输基础镜像层的现状;通过该镜像预热机制模块12和该p2p镜像分发技术模块13,提高镜像分发速度,降低镜像仓库压力,以及进一步降低镜像下载所需的传输量;通过该镜像构建文件优化技术模块14,改进镜像合成过程,以达到精简镜像分层,减小镜像文件大小的目的。

如附图5所示,本发明的用于服务器的轻量级资源虚拟化方法的隔离增强技术的替换docker为容器准备proc文件系统的步骤包括一个容器内的/proc位置准备特别的挂载以代替之前直接挂载系统的proc虚拟文件系统21、一个接管/proc为宿主机上运行的fuse程序22和一个在docker中加入对容器的rootfs的容量限制23,

进一步地,该容器内的/proc位置准备特别的挂载以代替之前直接挂载系统的proc虚拟文件系统21接管容器内进程对/proc的访问,以此来增强容器的隔离性。该接管/proc为宿主机上运行的fuse程序22,可以称为proc代理,proc代理会利用fuse实现一个虚拟文件系统,容器内的进程在访问/proc时,会访问到proc代理准备的虚拟文件系统,proc代理就能根据策略,去准备特别的数据返回给那些进程,并且这些策略还可以动态变动,利用proc代理可以一定程度上实现容器之间资源视图的隔离,解决绝大部分因资源视图未隔离而带来的问题。该在docker中加入对容器的rootfs的容量限制23能够确保容器的管理者能够限制容器内的磁盘配额(包括空间大小和inode数量),支持以容器为基础的资源管理顾全到容器对磁盘的使用。

在实际操作中,在zs机动环境下,计算能力与能源供给是稀缺资源,为保障虚拟化对系统性能影响最小化,国产平台采用低性能折损的容器虚拟化手段作为应用服务的承载环境。异构资源分为两类,一类是异构处理器,如飞腾、龙芯、申威等国产化处理部件,另一类则是异构的计算加速部件,如gpu、dsp与fpga。针对第一类异构国产化自主可控处理器,开源的通用容器技术如docker可以完成适配,但是docker是基于x86的体系结构设计而来,其大量设计思路包括内存管理、i/o管理、cpu中计算单元调度管理都是基于现有主流x86处理芯片完成,并不一定适应国产化的处理器特点,因此,对容器与自主可控处理器的结合,单单做到适配还远远不够,还需要做到优化,步骤如下。

其一,针对cpu虚拟化。虚拟化引擎需要调整调度策略算法,频繁的处理器核切换将带来较大的性能损耗与资源开销,将大大降低容器内服务与应用的执行效率。提高对众处理器计算执行单元分配的适应性,根据计算负载类型有目标的对任务进行优化,优化处理器核的分配策略,减低容器对系统资源的损耗率。

其二,对于i/o密集型应用场景。i/o访问带来大量cpu中断,大大降低了系统处理吞吐,现有容器调度算法导致计算资源分配不均衡,带来性能瓶颈。通过研究优化调度算法,为i/o中断处理分配固定的计算执行单元,将i/0事物进行统一的处理,并优化i/o请求排队过程,避免i/o中断对正在处理业务逻辑的计算执行单元的影响,提高应用运行效率。

其三,对于多路cpu的硬件而言,需要针对国产处理器的大内存访问模型,研究基于处理器大内存访问模型调度优化方法,使容器平台及容器虚拟化引擎能够自动识别硬件的内存管理拓扑关系,在资源调度和进程运行中尽量避免跨路内存访问,提高应用运行性能。

针对第二类异构的计算加速部件,gpu、dsp与fpga资源多为专用资源,由于本身硬件特性,往往对某些特殊计算任务有极高的性能加速提升。出于对gpu、dsp与fpga等计算加速硬件设计架构与理念的不同,部分硬件本身不支持“分时”或“分核心”的虚拟化方式,但是应用系统又需要一个对这类硬件的抽象与调度。因此,可以构建一套针对特定加速部件的类似“驱动”的加速计算部件虚拟化方案,通过接口可以提交计算任务,并在“驱动”内部实现资源的调度与多同类加速计算部件资源的分配。因此,对加速计算部件的虚拟化需要考虑两个方面,一个是应用在计算集群内的调度,就是说需要将对应的计算任务调度到该加速计算设备上,另外就是在同一计算节点上,多个任务同时请求gpu或fpga的资源的使用分配问题。对于前者,通过为包含特殊计算资源的计算节点添加标签,调度系统参考标签进行调度的方式实现系统对特殊计算资源的识别与使用。在容器启动时,启动参数中需要声明对特殊资源的使用要求。对于多任务争用的情况,应该因地制宜,不支持分时调度的资源应以独占专用的形式使用。对于支持分时调用的,应该结合资源驱动程序设计资源虚拟化粒度并在容器云调度系统中添加相应的设计,同时也要求用户基于该设计,在编写应用服务系统时,申明对该特殊资源的用量要求。

本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明。本发明的目的已经完整并有效地实现。本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1