首页> 中国专利> 一种深度整合GIS框架的虚拟机模板性能优化方法及装置

一种深度整合GIS框架的虚拟机模板性能优化方法及装置

摘要

本发明涉及一种深度整合GIS框架的虚拟机模板性能优化方法及装置。包括以下步骤:内核精简步骤,用于精简操作系统,摒弃与GIS业务无关的冗余功能模块;内核定制步骤,用于分析并提取符合标准的GIS框架,嵌入操作系统,完成OS内核层优化;驱动优化步骤,用于针对不同的虚拟化版本提供不同的驱动层,去掉不需要的驱动层次,降低整体的系统开销;模板封装步骤,将精简并嵌入GIS框架的系统内核与驱动封装成高性能GIS服务节点模板。优化后的虚拟机模板体积约为传统模板的十分之一;派生虚拟机的速度提高了10余倍,并且实现了GIS服务在虚拟模板中的优化配置,改善了GIS服务体系在虚拟机中的运行。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-16

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F 9/455 专利号:ZL2016107838019 变更事项:专利权人 变更前:武大吉奥信息技术有限公司 变更后:吉奥时空信息技术股份有限公司 变更事项:地址 变更前:430223 湖北省武汉市东湖开发区庙山小区江夏大道武大科技园 变更后:430000 湖北省武汉市东湖开发区庙山小区江夏大道武大科技园

    专利权人的姓名或者名称、地址的变更

  • 2020-07-31

    专利权质押合同登记的生效 IPC(主分类):G06F9/455 登记号:Y2020980003911 登记生效日:20200708 出质人:武大吉奥信息技术有限公司 质权人:交通银行股份有限公司武汉江夏支行 发明名称:一种深度整合GIS框架的虚拟机模板性能优化方法及装置 授权公告日:20190510 申请日:20160831

    专利权质押合同登记的生效、变更及注销

  • 2019-05-10

    授权

    授权

  • 2017-03-01

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20160831

    实质审查的生效

  • 2017-02-01

    公开

    公开

说明书

技术领域

本发明涉及一种虚拟机模板性能优化方法及装置,属于云服务领域,具体涉及一种深度整合GIS框架的虚拟机模板性能优化方法及装置。

背景技术

近年来,各种各样的“云”越来越频繁的出现在公众的视野中,IT行业基础设施资源的云化已经是大势所趋。然而,在“云”技术的最底层还是服务器虚拟化技术在支撑。服务器虚拟化中非常重要的核心技术之一是虚拟机模板的制作和调优。模板是虚拟化平台为虚拟机提供的一项功能,可以让用户在其中一台虚拟机的基础上,很方便的“派生”或“克隆”出多台虚拟机,这减轻了管理员的负担。一个模板的容量和内部结构关系到从该模板“派生”的虚拟机能否快速投入到实际生产中去,这种快速投入实际生产中的能力我们称之为模板性能。换句话说,性能好的模板,能够快速生成虚拟机,做好相应的配置优化工作,且不用再进行人工干预,直接就可以投入使用,产生价值;反之,如果某个模板不仅需要经过很长时间才能生成虚拟机,且生成的虚拟机还需要经过大量人工配置才能投入使用,我们则认为此模板的性能不够好,还有优化的空间。

目前与本发明最相似的技术方案是将一台已生成的虚拟机或者虚拟机快照封装成模板,在创建虚拟机模板之前,先安装一台“样板”虚拟机,并且将该虚拟机转化(或克隆)成“模板”,以后再需要此类的虚拟机时,可以以此为模板,派生或克隆出多台虚拟机。同时优化仅仅局限于传统的OS优化、中间件优化等项目。对于GIS领域常见的服务质量信息、服务权限管理、服务流控QoS等均未有涉及,因此目前还未见针对GIS行业虚拟机模板性能优化的相关技术方案。并且,现有技术的方中存在以下问题:

(1)传统模板派生新虚拟机的过程耗时太长,无任何GIS平台需要的优化,无法直接投入生产环境使用

因为传统模板封装时无法确定目标应用场景的网络环境以及对虚拟机唯一性的要求,所以传统的模板封装时只是简单的用系统(Windows系列操作系统)自带的封装工具解除了SID的唯一性冲突问题,但是还有很多参数无法保证其唯一性(例如IP地址和MAC地址等),这样的虚拟机直接放到封闭的生产环境中会造成各种资源的冲突,传统的解决方案是在新的虚拟机生成后,手动修改各项参数。然而,手动修改的过程会打断生产系统全自动化的进程,且当生成的虚拟机数量过大时,手动修改的方式对运维管理人员来说几乎是不可接受的。同时,采用传统的模式下部署GIS服务和应用没有GIS服务和应用所需的软件或者功能,缺乏开箱即用的能力。还需要额外配置不同的软件或者辅助硬件才能完成工作。

(3)传统模板派生的新虚拟机无法直接提供GIS服务能力

GIS服务发布涉及到专业基础地理信息平台的选择,且对应的运行时环境的配置复杂,还涉及到如何在云中进行协同工作(多节点心跳、集群服务、会话维持等)。而传统的虚拟机模板对于具体的业务来说是没有特征的,并没有和业务系统进行有效的集成。所以传统模板派生的虚拟机是无法直接提供GIS服务能力的。

为此,本发明的发明者鉴于上述缺陷,通过潜心研究和设计,综合长期多年从事相关产业的经验和成果,研究设计出一种深度整合GIS框架的虚拟机模板性能优化方法及装置,以克服以上述缺陷。

发明内容

本发明主要是解决现有技术所存在的传统模板派生虚拟机的速度过慢,效率过低等问题,提供了一种深度整合GIS框架的虚拟机模板性能优化方法及装置。该方法及装置在操作系统内核层面上将与GIS业务无关的冗余模块剥离,结合GIS业务(服务与应用)的实际情况,开发了对应的虚拟设备完成对应的GIS业务的能力提供,包括网络负载、服务QoS、服务质量信息、以及集群间的心跳信息等关键能力。从而实现了GIS服务于应用的智能自动迁移和动态伸缩等能力的平滑应用。

本发明还有一目的是解决现有技术所存在的派生出新的虚拟机后,还需手工修改其应用访问地址、消息中间件地址、MAC地址、IP地址等配置参数后才能正式投入使用的问题。提供了一种深度整合GIS框架的虚拟机模板性能优化方法及装置。该方法及装置在内核中集成动态获取参数并启动内核之后,利用当前用户的初始化脚本在系统分区对应文件自动修改IP、MAC地址等系统内可以获知的参数的配置,并且使用内置域名服务器来约定系统应用所需要的访问地址,虚拟机模板中的配置文件在内核启动时自动获取所有域名列表,并在用户初始化脚本中进行对照修改,从而减少了大量的手动运维工作,可以极大的提升生产效率。

本发明再有一目的是解决现有技术所存在的传统GIS服务发布需要经过安装操作系统->安装中间件->安装GIS软件->安装数据库->配置GIS软件环境->配置数据库->发布服务等七大步骤的流程复杂技术问题,提供了一种深度整合GIS框架的虚拟机模板性能优化方法及装置。该方法及装置分析并提取GIS服务的核心业务逻辑,形成了一套符合OGC服务标准的GIS框架,并将该框架与OS内核深度耦合,使得每一个由此模板派生出的虚拟机都可以按照用户需求提供各类GIS服务。解决了传统GIS服务发布流程冗长,生产效率低下的问题。

本发明的上述技术问题主要是通过下述技术方案得以解决的:

一种深度整合GIS框架的虚拟机模板性能优化方法,包括以下步骤:

集成优化与GIS相关的操作系统核心,提供关键模块内核级别驱动层,利用虚拟化设备提高整体GIS在虚拟化中的效率,并摒弃与GIS业务无关的冗余功能模块;

内核定制步骤,用于分析并提取符合标准的GIS框架涵盖服务框架、GIS服务通讯、GIS服务QoS控制等,嵌入操作系统,完成OS内核层优化;

驱动优化步骤,用于针对不同的虚拟化版本提供不同的驱动层,去掉不需要的驱动层次,降低整体的系统开销;

模板封装步骤,将精简并嵌入GIS框架的系统内核与驱动封装成高性能GIS服务节点模板。

优化的,上述的一种深度整合GIS框架的虚拟机模板性能优化方法,所述内核定制步骤中,保留操作系统外壳与GUI,删除不需要的驱动及动态库。

优化的,上述的一种深度整合GIS框架的虚拟机模板性能优化方法,在Shell层次嵌入全自动配置功能模块,实现虚拟机开机即用。

优化的,上述的一种深度整合GIS框架的虚拟机模板性能优化方法,将实体GIS服务/应用、软件运行时环境、中间件与高性能GIS服务节点模板一起封装成定制的虚拟机模板投递到云环境中。

优化的,上述的一种深度整合GIS框架的虚拟机模板性能优化方法,虚拟机的工作流程为:

模板选择步骤,根据虚拟化平台选择不同的虚拟机模板;

服务启动步骤,启动所选择的虚拟机模板,并发执行以下步骤:

核心优化子步骤,判断当前的GIS服务所用的操作系统文件读取数量,GIS服务和中间件网络并发数,JavaVM以及系统内存调度,虚拟化支撑和运行监控,根据环境处理子步骤传的初始化脚本写入GIS服务所需要的配置、地址、参数;

环境处理子步骤,用于分析并加载核心环境,判断基本环境并加载驱动,向核心优化子步骤传递初始化脚本,并将加载的驱动提前加载至运行时环境。

1.完成了云中虚拟化模板的定制虚拟化设备以及驱动体系,与此同时在此驱动上完善OS的配套支撑,包括网络、IO、安全等模块;为GIS服务和应用的所有对外接口都通过该虚拟化设备输出,从而一次性从OS底层输出这些数据流,因此还可以做到对服务的QoS的数据搜集和授权优化等功能。

2.针对GIS的特性,优化OS的核心、OS Shell并实现了动态参数的传递和必须的GIS服务优化体制,实现了GIS服务在本实现方案中的优化配置,改善了GIS服务体系在虚拟机中的运行机制。

附图说明

附图1是本发明的高性能GIS服务节点模板原理图;

附图2是本发明的新模式模板图;

附图3是OS核心操作系统优化图;

附图4是本发明的新的虚拟机工作流程图;

附图5是本发明在虚拟机中工作的虚拟化设备的结构图。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。

实施例:

本发明分析并提取GIS服务的核心业务逻辑,包括多源异构数据的动态接入、多维动态空间数据的ETL处理、时空数据挖掘、自适应多模态地图信息的可视表达等;在系统内核层次剥离GIS业务非必需的冗余模块,对系统内核和驱动进行了优化改造,制作出与GIS深度耦合的、可移植的、最小粒度的、采用GIS服务都具备的QoS能力对外提供状态信息,利用内核监控其GIS服务进程并通过GIS服务的QoS接口实现自我描述、彼此通讯能力的高性能GIS服务节点模板;并基于此模板,建立了需求驱动下的GIS服务节点智能部署机制,完成模板->虚拟机->GIS服务从无到有的全自动化生成与维护。本质上本发明是一套虚拟化模板内的软件包以及配套在虚拟化运行中的虚拟化设备的驱动软件包。

本发明原理图如图1所示,从实现原理上上分四步,第一步是精简操作系统,摒弃与GIS业务无关的冗余功能模块;第二步是分析并提取符合标准的GIS框架,嵌入操作系统,完成OS内核层优化;第三步是完成驱动层的优化,针对不同的虚拟化版本提供不同的驱动层,去掉所有不需要的驱动层次,大大降低整体的系统开销,同时利用Shell层次嵌入全自动配置功能模块,实现虚拟机开机即用。第四步自动化完成对应的虚拟化设备安装和驱动部署。完成此四步优化后封装而成的虚拟机模板我们称之为高性能GIS服务节点模板。相应的,由此模板派生而来的虚拟机则称之为高性能GIS服务节点如图2所示。它具备派生速度快、无需人工配置、原生支持GIS服务等优点。

对于第四部自动化的虚拟化设备的驱动主要的原理是构建一个虚拟化的网络设备,该设备必须是做为一个标准的网络通讯设备而存在,从而能够兼容不同的虚拟化的运行时环境,同时也为虚拟机中运行的GIS服务和应用提供完全无差别的兼容性。同时该设备还起到了链接不同的外部网络设备的作用。

而本发明中涉及到的网络设备在Linux里做专门的处理是Linux三大驱动模式之一的网络设备驱动。考虑到针对不同Linux发行版本的兼容性,本驱动层采用基于BSD unix的Socket机制来实现。在系统和驱动程序之间定义有专门的数据结构进行数据的传递。虚拟驱动层里支持对发送数据和接收数据的缓存,提供7层的QoS流量控制机制,还要提供对外的控制方式和方法提供给上层(用于GIS服务的权限控制和授权等),由于要支撑我们的GIS服务的各种网络协议因此是都需要进行支持的。

1.GIS服务虚拟网络驱动程序的基本结构

该虚拟设备本质就是一个对象(device结构),它内部有自己的数据和方法。例如该网络设备最基本的方法有初始化、发送和接收。其代码逻辑如下:

构建一个网络收发包的对象与普通驱动层一样,不再累述。

(dev_queue_xmit())them(netif_rx())

----------------------------------------

methods and variables(initialize,open,close,hard_xmit,

interrupt handler,config,resources,status...)

-------------------------------------------------------

send to应用请求/外部请求receivce from真实网络设备

---------------------------------------

2.虚拟化驱动与设备的构建流程:

初始化程序完成硬件的初始化、device中变量的初始化和系统资源的申请。发送程序是在驱动程序的上层协议层有数据要发送时自动调用的。一般驱动程序中不对发送数据进行缓存,而是直接使用硬件的发送功能把数据发送出去而本方案的设计中要针对GIS服务特性提供缓存对象并提高效率。接收数据一般是通过硬件中断来通知的。在中断处理程序里,把硬件帧信息填入一个skbuff结构中,然后调用netif_rx()传递给上层处理。而本方案的实现中,由于是虚拟网络设备采用了软件中断的形式来完成。

虚拟设备驱动程序必须有一个初始化方法。在把驱动程序载入系统的时候会调用这个初始化程序。它首先检测已有的物理网络设备。在初始化程序里你可以根据硬件的特征检查硬件是否存在,然后决定是否启动这个驱动程序。配置和初始化硬件,在初始化程序里你可以完成对硬件资源的配置,本方案的虚拟化驱动软件包打包了各种流行的硬件网卡的实际的驱动,在启动初始化时配置或协商好硬件占用的资源以后,就可以向系统申请这些资源。激活实际硬件之后,再启动虚拟化驱动实体,这样可以确保虚拟化驱动模式能够正常进行。假如networkdev(0-n)->open返回非0(error),则硬件的状态还是deactivated。在系统调用驱动程序的xmit时,发送的数据放在一个sk_buff结构中。一般的驱动程序把数据传给硬件发出去,而我们的虚拟设备把数据组成一个接收数据再回送给系统的实际的NetWork Device。

假如发送成功,hard_start_xmit方法里释放sk_buff,返回0(发送成功)。假如设备暂时无法处理,比如硬件忙,则返回1。这时假如dev->tbusy置为非0,则系统认为硬件忙,要等到dev->tbusy置0以后才会再次发送。tbusy的置0任务一般由中断完成。硬件在发送结束后产生中断,这时可以把tbusy置0,然后用mark_bh()调用通知系统可以再次发送。在发送不成功的情况下,也可以不置dev->tbusy为非0,这样系统会不断尝试重发。假如hard_start_xmit发送不成功,则不要释放sk_buff。

传送下来的sk_buff中的数据已经包含硬件需要的帧头。所以在发送方法里不需要再填充硬件帧头,数据可以直接提交给硬件发送。sk_buff是被锁住的(locked),确保其他程序不会存取它。

虚拟化驱动程序并不存在一个接收方法。有数据收到应该是驱动程序来通知系统的。实际网络设备收到数据后都会产生一个中断,在中断处理程序中驱动程序申请一块sk_buff,从硬件读出数据放置到申请好的缓冲区里。接下来填充sk_buff中的一些信息。skb->dev=dev,判定收到帧的协议类型,填入skb->PRotocol(多协议的支持)。把指针skb->mac.raw指向硬件数据然后丢弃硬件帧头(skb_pull)。还要设置skb->pkt_type,标明第二层(链路层)数据类型。支持以下类型:

PACKET_BROADCAST:链路层广播

PACKET_MULTICAST:链路层组播

PACKET_SELF:发给自己的数据帧

PACKET_OTHERHOST:发给其它人的数据帧

硬件一般都会在上层数据发送之前加上自己的硬件帧头,这个帧头是加在上层ip、ipx等数据包的前面的。虚拟化驱动程序提供一个hard_header方法,协议层(ip、ipx、arp等)在发送数据之前会调用这段程序。该方法还提供了GIS相关的授权访问、QoS的信息等头内容。

3.自动安装驱动程序的逻辑

使用Linux标准的模块方式加载驱动程序,需要在模块初始化时把设备注册到系统设备表里去,该逻辑与普通的Linux模式类似。不同的是:系统定义在drivers/net/net_init.h里的三个函数完成这个工作。

int register_vitnetdev(struct device*dev);(注册虚拟设备)

int find actnetdev(struct device*dev);(找到/遍历并注册所有的实际可用的网络设备)

void unregister_netdev(struct device*dev);

dev就是要注册进系统的设备结构指针。在register_vitnetdev()时,由于虚拟设备需要找到所有当前的Network Device,因此需要使用int find actnetdev初始化所有系统内的网络设备。一旦初始化成功,虚拟设备驱动器就可以正常工作了。

图4是本方案下的新的虚拟机工作流程图。包括:

模板选择步骤,根据虚拟化平台选择不同的虚拟机模板;

服务启动步骤,启动所选择的虚拟机模板,并发执行以下步骤:

核心优化子步骤,判断当前的文件读取数量,网络并发数,内存调度,虚拟化支撑和运行监控,根据环境处理子步骤传的初始化脚本写入GIS服务所需要的配置、地址、参数;

环境处理子步骤,用于分析并加载核心环境,判断基本环境并加载驱动,向核心优化子步骤传递初始化脚本,并将加载的驱动提前加载至运行时环境。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号