• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 18
    • 下载费用:30 金币  

    重庆时时彩龙虎和官网: 一种单节点同时运行不同类型虚拟机的方法及系统.pdf

    关 键 词:
    一种 节点 同时 运行 不同类型 虚拟机 方法 系统
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201410080648.4

    申请日:

    2014.03.06

    公开号:

    CN103870314A

    公开日:

    2014.06.18

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/455申请日:20140306|||公开
    IPC分类号: G06F9/455 主分类号: G06F9/455
    申请人: 中国科学院信息工程研究所
    发明人: 张章; 王旻; 汤学海; 周薇; 韩冀中; 孟丹
    地址: 100093 北京市海淀区闵庄路甲89号
    优先权:
    专利代理机构: 北京轻创知识产权代理有限公司 11212 代理人: 杨立
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410080648.4

    授权公告号:

    ||||||

    法律状态公告日:

    2017.01.25|||2014.07.16|||2014.06.18

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明涉及一种单节点同时运行不同类型虚拟机的方法及系统,实现方法为,解析任务请求中包含的对运行虚拟机的资源需求;将CPU参数转换成cgroup框架可识别的参数,判断待创建的虚拟机类型,如果是轻量级虚拟机,直接将资源需求传递给底层cgroup框架,建立并启动轻量级虚拟机;如果是全虚拟机,接将资源需求传递给底层cgroup框架,cgroup框架创建一个容器,在容器中建立所需的全虚拟机;利用网桥技术和TBF令牌桶过滤器技术将建立的轻量级虚拟机或全虚拟机接入局域网并进行网络I/O控制;本发明使得不同类型的虚拟机可以共享一台物理机的资源,提供给用户一种简单、透明、统一使用虚拟机的接口,提高了资源利用率。

    权利要求书

    权利要求书
    1.  一种单节点同时运行不同类型虚拟机的方法,其特征在于,包括如下步骤: 
    步骤101:单个物理节点接收任务请求,并解析任务请求中包含的对运行虚拟机的资源需求; 
    步骤102:判断任务请求中要求的虚拟机类型,如果是轻量级虚拟机,则直接执行步骤103;如果是全虚拟机,则执行步骤104; 
    步骤103:将资源需求中的第一类资源需求传递给底层cgroup框架,cgroup框架根据第一类资源需求直接建立并启动轻量级虚拟机,执行步骤105; 
    步骤104:将资源需求中的第一类资源需求传递给底层cgroup框架,cgroup框架根据第一类资源需求创建一个容器,在容器中建立所需的全虚拟机; 
    步骤105:利用网桥技术框架将建立的轻量级虚拟机或全虚拟机接入局域网; 
    步骤106:将资源需求中的第二类资源需求传递给网桥技术框架,根据第二类资源需求及TBF令牌桶过滤器技术进行网络I/O控制。 

    2.  根据权利要求1所述一种单节点同时运行不同类型虚拟机的方法,其特征在于,所述资源需求信息包括第一类资源需求和第二类资源需求,所述第一类资源需求包括CPU参数、内存参数、磁盘I/O参数,所述第二类资源需求包括网络I/O参数。 

    3.  根据权利要求2所述一种单节点同时运行不同类型虚拟机的方法,其特征在于,将第一类资源需求中的CPU参数传递给底层cgroup框架之前,需将CPU参数转换成cgroup框架可识别的参数类型。 

    4.  根据权利要求3所述一种单节点同时运行不同类型虚拟机的方法,其特征在于,将资源需求中的CPU参数转换成cgroup框架可识别的参数类型的具体实现为: 
    步骤201:预先为每个物理节点设定CPU比例因子k,其用于表示CPU映射比例份额; 
    步骤202:获取物理节点的CPU核数m,计算CPU核数m与CPU比例因子k的乘积,将计算结果为CPU总可用份数M; 
    步骤203:获取用户任务请求中对CPU个数n的需求; 
    步骤204:计算CPU比例因子k与用户请求中的CPU个数n的乘积,计算结果为该任务请求需要的CPU比例份数N; 
    步骤205:比较该任务请求需要的CPU比例份数N与CPU总可用份数M的大小,若N>M,则认为资源不足,虚拟机请求失败,结束;否则转至步骤206; 
    步骤206:比较该任务请求需要的CPU比例份数N与CPU剩余份数P的大小,若N>P,则认为资源不足,虚拟机请求失败,结束;否则执行步骤207; 
    步骤207:将该任务请求需要的CPU比例份数N赋值给参数cpu.shares,并将该cpu.shares参数传递给底层cgroup框架。 

    5.  根据权利要求2所述一种单节点同时运行不同类型虚拟机的方法,其特征在于,将资源需求中的内存参数和磁盘I/O参数传递给底层cgroup框架前要进行如下判断: 
    步骤301:预先设定所有虚拟机能使用的内存上限值及磁盘I/O上限值; 
    步骤302:将任务请求中的内存参数、磁盘I/O参数分别与内存上限值及磁盘I/O上限值比较,如果小于内存上限值及磁盘I/O上限值,则执行步骤303;否则认为资源不足,虚拟机请求失败,结束; 
    步骤303:将任务请求中的内存参数、磁盘I/O参数分别与内存剩余量 及磁盘I/O剩余量比较,如果小于则执行步骤304;否则认为资源不足,虚拟机请求失败,结束; 
    步骤304:将资源需求中的内存参数和磁盘I/O参数传递给cgroup框架。 

    6.  根据权利要求2所述一种单节点同时运行不同类型虚拟机的方法,其特征在于,步骤105中利用网桥技术将建立的轻量级虚拟机或全虚拟机接入局域网前要进行如下判断: 
    步骤401:预先设定所有虚拟机能使用的网络I/O上限值; 
    步骤402:将任务请求中的网络I/O参数与网络I/O上限值比较,如果小于网络I/O上限值,则执行步骤403;否则认为资源不足,虚拟机请求失败,结束; 
    步骤403:将任务请求中的网络I/O参数与网络I/O剩余量比较,如果小于则执行步骤404;否则认为资源不足,虚拟机请求失败,结束; 
    步骤404:将资源需求中的网络I/O参数传递给网桥技术框架。 

    7.  根据权利要求1所述一种单节点同时运行不同类型虚拟机的方法,其特征在于,步骤105中利用网桥技术将建立的轻量级虚拟机或全虚拟机接入局域网的具体实现为: 
    步骤501:建立一个虚拟网桥,为每个虚拟机分配相应的tap设备; 
    步骤502:将单节点上所有不同类型的虚拟机通过其内的虚拟网卡与虚拟网桥中对应的tap设备连接; 
    步骤503:虚拟网桥中的所有tap设备通过物理机的真实网卡接入局域网; 
    步骤504:利用流量控制机制,根据资源需求中网络I/O参数对接入局域网的轻量级虚拟机或全虚拟机进行网络I/O资源控制。 

    8.  一种实现权利要求1-7中任一项所述单节点同时运行不同类型虚拟机方法的系统,其特征在于,包括任务接收???、任务分析???、虚拟机创 建???、接入网???; 
    所述任务接收???,其用于接收发送给物理节点的任务,并传送给任务分析???; 
    所述任务分析???,其用于判断待创建的虚拟机类型,解析任务中包含的资源需求信息,将待创建虚拟机类型及资源需求信息发送给虚拟机创建???; 
    所述虚拟机创建???,其用于根据待创建的虚拟机类型决定是否通过cgroup框架创建容器,如果待创建虚拟机是轻量级虚拟机则不创建容器,直接建立轻量级虚拟机,如果待创建虚拟机是全虚拟则创建容器,并在容器中创建全虚拟机; 
    所述接入网???,其用于利用网桥技术和TBF令牌桶过滤器技术将创建的轻量级虚拟机或全虚拟机接入局域网。 

    9.  根据权利要求8所述一种单节点同时运行不同类型虚拟机的系统,其特征在于,还包括参数类型转换???,其用于将资源需求中的CPU参数转换成底层cgroup框架可识别的的参数类型。 

    说明书

    说明书一种单节点同时运行不同类型虚拟机的方法及系统
    技术领域
    本发明涉及计算机虚拟化领域,尤其涉及一种单节点上同时运行不同类型虚拟机的方法及系统。 
    背景技术
    近年来,随着计算资源种类日益增加、规模不断扩大、计算能力不断加大以及应用需求日渐多样化的背景下,新型的计算模式迫在眉睫。面对这些场景以及需求,虚拟化技术渐渐复兴。虚拟化是一个相对广义的术语,在本文指的虚拟化技术更多涉及的是服务器虚拟化,其本质是将一个物理机资源虚拟出不同的资源组合,即将物理机的资源划分成虚拟机提供给用户使用的技术。这些虚拟机上面可以安装其他客户操作系统。 
    虚拟化可以帮助提高系统资源的利用率,实现动态、弹性的运行系统架构。目前,云计算大行其道,而云计算平台的基石即为虚拟化技术。正是由于虚拟化技术的重要性,目前涌现出了多种比较成熟的虚拟化技术。目前主流的虚拟化技术主要可以分为三类:全虚化技术KVM,半虚拟化技术Xen以及轻量级虚拟化技术LXC。 
    在目前的云计算中心中,半虚拟化技术Xen由于其要求修改运行于其上的操作系统,因此,其流行和使用程度在大幅下降。现在使用最多虚拟化技术是全虚拟化KVM和轻量级虚拟化技术LXC,而且它们是目前唯一进入Linux内核主线的虚拟化技术,但是它们使用不同的“语言”描述与控制资源,这个也就造成了它们机制的不兼容。当它们在同一个服务器上运行的时候,并不能在整体上为这两种虚拟化技术分配并限制合适的资源。在有不同虚拟化技术需求的时候,通?;嵋笤谝桓鑫锢砘显诵幸恢中槟饣际?,并使用另外的服务器使用其他的虚拟化技术,但是在这种情况下,不同种虚拟化技 术不能同时运行在单个物理节点上,造成了极大的资源浪费,资源利用率比较低。 
    另外,目前很多云平台的应用对于I/O带宽资源管理也提出了需求。比如现在的很多编程模型应用,对于网络I/O带宽的无管制的竞争会影响其任务执行的速度,也影响了云平台整体的可用性,这就对网络I/O资源的隔离性和独占性提出了实际的需求,但现有技术中没有关于I/O宽带资源控制的技术。 
    发明内容
    本发明所要解决的技术问题是针对现有技术的不足,提供一种单节点上同时运行不同类型虚拟机的方法及系统,实现但节点上不同类型虚拟机的共存及合理分配资源,同时可实现多维度、细粒度的资源管理及控制。 
    本发明解决上述技术问题的技术方案如下:一种单节点同时运行不同类型虚拟机的方法,包括如下步骤: 
    步骤101:单个物理节点接收任务请求,并解析任务请求中包含的对运行虚拟机的资源需求; 
    步骤102:判断任务请求中要求的虚拟机类型,如果是轻量级虚拟机,则直接执行步骤103;如果是全虚拟机,则执行步骤104; 
    步骤103:将资源需求中的第一类资源需求传递给底层cgroup框架,cgroup框架根据第一类资源需求直接建立并启动轻量级虚拟机,执行步骤105; 
    步骤104:将资源需求中的第一类资源需求传递给底层cgroup框架,cgroup框架根据第一类资源需求创建一个容器,在容器中建立所需的全虚拟机; 
    步骤105:利用网桥技术框架将建立的轻量级虚拟机或全虚拟机接入局域网; 
    步骤106:将资源需求中的第二类资源需求传递给网桥技术框架,根据第二类资源需求及TBF令牌桶过滤器技术进行网络I/O控制。 
    本发明的有益效果是:多种虚拟机可以同时运行在同一物理机上;所有虚拟机的CPU资源、内存资源和I/O磁盘资源可以正确的被分配使用;可以同时满足用户对于不同操作系统运行环境的要求以及对于性能的要求;可以限制不同种虚拟机的网络I/O资源;对于底层不同虚拟化技术透明,即虚拟化技术不用作任何的修改;操作系统性能开销小,资源利用率高;本发明使得不同种虚拟机可以共享一台物理机的资源,并提供给用户一种简单、透明、统一使用虚拟机的接口,提高了资源利用率。 
    在上述技术方案的基础上,本发明还可以做如下改进。 
    进一步,所述资源需求信息包括第一类资源需求和第二类资源需求,所述第一类资源需求包括CPU参数、内存参数、磁盘I/O参数,所述第二类资源需求包括网络I/O参数。 
    进一步,将第一类资源需求中的CPU参数传递给底层cgroup框架之前,需将CPU参数转换成cgroup框架可识别的参数类型。 
    进一步,将资源需求中的CPU参数转换成cgroup框架可识别的参数类型的具体实现为: 
    步骤201:预先为每个物理节点设定CPU比例因子k,其用于表示CPU映射比例份额; 
    步骤202:获取物理节点的CPU核数m,计算CPU核数m与CPU比例因子k的乘积,将计算结果为CPU总可用份数M; 
    步骤203:获取用户任务请求中对CPU个数n的需求; 
    步骤204:计算CPU比例因子k与用户请求中的CPU个数n的乘积,计算结果为该任务请求需要的CPU比例份数N; 
    步骤205:比较该任务请求需要的CPU比例份数N与CPU总可用份数M 的大小,若N>M,则认为资源不足,虚拟机请求失败,结束;否则转至步骤206; 
    步骤206:比较该任务请求需要的CPU比例份数N与CPU剩余份数P的大小,若N>P,则认为资源不足,虚拟机请求失败,结束;否则执行步骤207; 
    步骤207:将该任务请求需要的CPU比例份数N赋值给参数cpu.shares,并将该cpu.shares参数传递给底层cgroup框架。 
    进一步,将资源需求中的内存参数和磁盘I/O参数传递给底层cgroup框架前要进行如下判断: 
    步骤301:预先设定所有虚拟机能使用的内存上限值及磁盘I/O上限值; 
    步骤302:将任务请求中的内存参数、磁盘I/O参数分别与内存上限值及磁盘I/O上限值比较,如果小于内存上限值及磁盘I/O上限值,则执行步骤303;否则认为资源不足,虚拟机请求失败,结束; 
    步骤303:将任务请求中的内存参数、磁盘I/O参数分别与内存剩余量及磁盘I/O剩余量比较,如果小于则执行步骤304;否则认为资源不足,虚拟机请求失败,结束; 
    步骤304:将资源需求中的内存参数和磁盘I/O参数传递给cgroup框架。 
    进一步,步骤105中利用网桥技术将建立的轻量级虚拟机或全虚拟机接入局域网前要进行如下判断: 
    步骤401:预先设定所有虚拟机能使用的网络I/O上限值; 
    步骤402:将任务请求中的网络I/O参数与网络I/O上限值比较,如果小于网络I/O上限值,则执行步骤403;否则认为资源不足,虚拟机请求失败,结束; 
    步骤403:将任务请求中的网络I/O参数与网络I/O剩余量比较,如果小于则执行步骤404;否则认为资源不足,虚拟机请求失败,结束; 
    步骤404:将资源需求中的网络I/O参数传递给网桥技术框架。 
    进一步,步骤105中利用网桥技术将建立的轻量级虚拟机或全虚拟机接入局域网的具体实现为: 
    步骤501:建立一个虚拟网桥,为每个虚拟机分配相应的tap设备; 
    步骤502:将单节点上所有不同类型的虚拟机通过其内的虚拟网卡与虚拟网桥中对应的tap设备连接; 
    步骤503:虚拟网桥中的所有tap设备通过物理机的真实网卡接入局域网; 
    步骤504:利用流量控制机制,根据资源需求中网络I/O参数对接入局域网的轻量级虚拟机或全虚拟机进行网络I/O资源控制。 
    本发明解决上述技术问题的另一技术方案如下:一种单节点同时运行不同类型虚拟机的系统,包括任务接收???、任务分析???、虚拟机创建???、接入网???; 
    所述任务接收???,其用于接收发送给物理节点的任务,并传送给任务分析???; 
    所述任务分析???,其用于判断待创建的虚拟机类型,解析任务中包含的资源需求信息,将待创建虚拟机类型及资源需求信息发送给虚拟机创建???; 
    所述虚拟机创建???,其用于根据待创建的虚拟机类型决定是否通过cgroup框架创建容器,如果待创建虚拟机是轻量级虚拟机则不创建容器,直接建立轻量级虚拟机,如果待创建虚拟机是全虚拟则创建容器,并在容器中创建全虚拟机; 
    所述接入网???,其用于利用网桥技术和TBF令牌桶过滤器技术将创建的轻量级虚拟机或全虚拟机接入局域网。 
    在上述技术方案的基础上,本发明还可以做如下改进。 
    进一步,上述技术方案还包括参数类型转换???,其用于将资源需求中 的CPU参数转换成底层cgroup框架可识别的的参数类型。 
    附图说明
    图1为本发明所述一种单节点同时运行不同类型虚拟机的方法流程图; 
    图2为本发明中将资源需求中的CPU参数转换成cgroup框架可识别的参数类型的具体实现流程图; 
    图3为本发明中根据资源需求中的内存参数和磁盘I/O参数传递给底层cgroup框架前进行判断的流程图; 
    图4为本发明中利用网桥技术将建立的轻量级虚拟机或全虚拟机接入局域网前进行判断的流程图; 
    图5为本发明中利用网桥技术将建立的轻量级虚拟机或全虚拟机接入局域网的具体实现流程图; 
    图6为本发明所述一种单节点同时运行不同类型虚拟机的系统框图; 
    图7为本发明所述实施例中物理机中运行环境示意图; 
    图8为本发明所述虚拟机接入接入局域网的结构示意图。 
    附图中,各标号所代表的部件列表如下: 
    1、任务接收???,2、任务分析???,3、虚拟机创建???,4、接入网???,5、参数转换???。 
    具体实施方式
    以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。 
    本发明还 
    如图1所示,一种单节点同时运行不同类型虚拟机的方法,包括如下步骤: 
    步骤101:单个物理节点接收任务请求,并解析任务请求中包含的对运行虚拟机的资源需求; 
    步骤102:判断任务请求中要求的虚拟机类型,如果是轻量级虚拟机,则直接执行步骤103;如果是全虚拟机,则执行步骤104; 
    步骤103:将资源需求中的第一类资源需求传递给底层cgroup框架,cgroup框架根据第一类资源需求直接建立并启动轻量级虚拟机,执行步骤105; 
    步骤104:将资源需求中的第一类资源需求传递给底层cgroup框架,cgroup框架根据第一类资源需求创建一个容器,在容器中建立所需的全虚拟机; 
    步骤105:利用网桥技术框架将建立的轻量级虚拟机或全虚拟机接入局域网; 
    步骤106:将资源需求中的第二类资源需求传递给网桥技术框架,根据第二类资源需求及TBF令牌桶过滤器技术进行网络I/O控制。 
    如图2所示,将资源需求中的CPU参数转换成cgroup框架可识别的参数类型的具体实现为: 
    其中,所述资源需求信息包括第一类资源需求和第二类资源需求,所述第一类资源需求包括CPU参数、内存参数、磁盘I/O参数,所述第二类资源需求包括网络I/O参数。 
    将第一类资源需求中的CPU参数传递给底层cgroup框架之前,需将CPU参数转换成cgroup框架可识别的参数类型。将资源需求中的CPU参数转换成cgroup框架可识别的参数类型的具体实现为: 
    步骤201:预先为每个物理节点设定CPU比例因子k,其用于表示CPU映射比例份额; 
    步骤202:获取物理节点的CPU核数m,计算CPU核数m与CPU比例因子k的乘积,将计算结果为CPU总可用份数M; 
    步骤203:获取用户任务请求中对CPU个数n的需求; 
    步骤204:计算CPU比例因子k与用户请求中的CPU个数n的乘积,计算结果为该任务请求需要的CPU比例份数N; 
    步骤205:比较该任务请求需要的CPU比例份数N与CPU总可用份数M的大小,若N>M,则认为资源不足,虚拟机请求失败,结束;否则转至步骤206; 
    步骤206:比较该任务请求需要的CPU比例份数N与CPU剩余份数P的大小,若N>P,则认为资源不足,虚拟机请求失败,结束;否则执行步骤207; 
    步骤207:将该任务请求需要的CPU比例份数N赋值给参数cpu.shares,并将该cpu.shares参数传递给底层cgroup框架。 
    本发明在KVM虚拟机自身的资源管理机制之外,包裹一层cgroup资源管理框架。这样就使得LXC虚拟机和KVM虚拟机同时接受cgroup资源框架的管理,故可以统一分配CPU资源,统一了不同虚拟化技术对于CPU资源的描述和分配,屏蔽了不同虚拟化技术的底层技术细节,将不同虚拟化技术都看成在操作系统中运行的普通进程,然后使用内核提供的可以限制、记录、隔离进程组物理机资源的机制去管理分配CPU资源,可以将CPU资源按比例分配给不同种类的虚拟化技术,使得它们可以共存在单个物理节点上,并且能正确的限制分配给它们的CPU资源。 
    如图3所示,根据资源需求中的内存参数和磁盘I/O参数传递给底层cgroup框架前要进行如下判断: 
    步骤301:预先设定所有虚拟机能使用的内存上限值及磁盘I/O上限值; 
    步骤302:将任务请求中的内存参数、磁盘I/O参数分别与内存上限值及磁盘I/O上限值比较,如果小于内存上限值及磁盘I/O上限值,则执行步骤303;否则认为资源不足,虚拟机请求失败,结束; 
    步骤303:将任务请求中的内存参数、磁盘I/O参数分别与内存剩余量及磁盘I/O剩余量比较,如果小于则执行步骤304;否则认为资源不足,虚 拟机请求失败,结束; 
    步骤304:将资源需求中的内存参数和磁盘I/O参数传递给cgroup框架。 
    本发明基于cgroup的多虚拟化技术统一框架将多种虚拟化技术的内存资源统一分配,统一管理。其架构与CPU资源的统一管理类似,不同的是使用cgroup框架限制每个虚拟机使用内存资源的上限,磁盘I/O资源与内存资源管理方式相同。 
    如图4所示,利用网桥技术将建立的轻量级虚拟机或全虚拟机接入局域网前要进行如下判断: 
    步骤401:预先设定所有虚拟机能使用的网络I/O上限值; 
    步骤402:将任务请求中的网络I/O参数与网络I/O上限值比较,如果小于网络I/O上限值,则执行步骤403;否则认为资源不足,虚拟机请求失败,结束; 
    步骤403:将任务请求中的网络I/O参数与网络I/O剩余量比较,如果小于则执行步骤404;否则认为资源不足,虚拟机请求失败,结束; 
    步骤404:将资源需求中的网络I/O参数传递给网桥技术框架。 
    如图5所示,利用网桥技术将建立的轻量级虚拟机或全虚拟机接入局域网的具体实现为: 
    步骤501:建立一个虚拟网桥,为每个虚拟机分配相应的tap设备; 
    步骤502:将单节点上所有不同类型的虚拟机通过其内的虚拟网卡与虚拟网桥中对应的tap设备连接; 
    步骤503:虚拟网桥中的所有tap设备通过物理机的真实网卡接入局域网; 
    步骤504:利用流量控制机制,根据资源需求中网络I/O参数对接入局域网的轻量级虚拟机或全虚拟机进行网络I/O资源控制。 
    本发明所述基于网桥技术框架将轻量级虚拟机或全虚拟机接入局域网, 并通过TBF令牌桶过滤器对多虚拟化技术网络I/O带宽资源进行管理,以一个绝对上限值将网络I/O带宽资源给不同虚拟化技术,并且能够正确的限制分配给它们的网络I/O带宽资源。本框架在单节点上建立一个虚拟网桥结构,并将不同种的虚拟化技术通过网桥共享单节点上的网络I/O带宽资源。本框架通过对于虚拟机在网桥中的tap设备上做网络I/O带宽的流量限制。本框架使用Linux内核支持的TBF(令牌桶过滤器),这种队列按照事先设定的速率来处理数据包的通过,达到网络流量控制的目的。 
    如图6所示,一种单节点同时运行不同类型虚拟机的系统,包括任务接收???、任务分析???、虚拟机创建???、接入网???; 
    所述任务接收???,其用于接收发送给物理节点的任务,并传送给任务分析???; 
    所述任务分析???,其用于判断待创建的虚拟机类型,解析任务中包含的资源需求信息,将待创建虚拟机类型及资源需求信息发送给虚拟机创建???; 
    所述虚拟机创建???,其用于根据待创建的虚拟机类型决定是否通过cgroup框架创建容器,如果待创建虚拟机是轻量级虚拟机则不创建容器,直接建立轻量级虚拟机,如果待创建虚拟机是全虚拟则创建容器,并在容器中创建全虚拟机; 
    所述接入网???,其用于利用网桥技术和TBF令牌桶过滤器技术将创建的轻量级虚拟机或全虚拟机接入局域网。 
    其中,上述技术方案还包括参数类型转换???,其用于将资源需求中的CPU参数转换成底层cgroup框架可识别的的参数类型。 
    由于在实际的数据中心中,使用的最多的是全虚拟化技术KVM以及轻量级虚拟化技术LXC,本实例就以这两种进入Linux内核的虚拟化技术的共存的实施例来解释本发明。 
    图7为此实例中物理机中运行环境示意图。在图中,该单节点接到两个任务请求,任务请求1和任务请求2,其中任务请求1中包含的资源需求为<LXC,1个CPU,(2GB softlimit,4GB hardlimt)内存,5MB/s磁盘I/O带宽,1Gb/s网络I/O带宽>,任务请求2中包含的资源需求为<KVM,2CPU,(3GB softlimit,6GB hardlimt)内存,10MB/s磁盘I/O带宽,1Gb/s网络I/O带宽>,有两个任务请求中包含的资源需求可知,两个任务需要分别运行在全虚拟机KVM和轻量级虚拟机LXC上,因此要在改节点上建立并同时运行了1个KVM虚拟机和1个LXC虚拟机。 
    其中,底层cgroup框架不能按照CPU个数为虚拟机分配CPU资源,需要将任务请求中的CPU个数转换为CPU比例份数。 
    具体为实现为, 
    1.预先为每个物理节点设定用于表示CPU映射比例份额的CPU比例因子k,本实施例中k=1024; 
    2.获取物理节点的CPU核数m(本实施例m=4),计算CPU核数m与CPU比例因子k的乘积,将计算结果为CPU总可用份数M,M=m*k=4*1024=4096; 
    3.获取用户任务请求1中对CPU个数n1的需求,n1=1; 
    4.计算CPU比例因子k与用户请求中的CPU个数n1的乘积,计算结果为该任务请求需要的CPU比例份数N1=n1*k=1*1024=1024; 
    5.比较N1与M的大小,若N1>M,则认为资源不足,虚拟机请求失败,结束;否则转至步骤6; 
    6.比较N1与CPU剩余份数P的大小,若N1>P,则认为资源不足,虚拟机请求失败,结束;否则执行步骤7;此时P=M=4096; 
    7.将该任务请求需要的CPU比例份数N(1024)赋值给参数cpu.shares,并将该cpu.shares参数传递给底层cgroup框架。 
    按照上述方法,当任务请求2到来时,用户任务请求2中对CPU个数n2 的需求,n2=3;该任务请求需要的CPU比例份数N2=n2*k=2*1024=2048;此时CPU剩余份数P=M-N1=4096-1024=3072;此时N2<4096,且N2<3072,所以剩余的CPU足够任务请求2使用,此时剩余的CPU份数P=1024。因此,任务请求1使用量、任务请求2使用量和剩余量三者的比例关系为1:2:1,cgroup框架按此比例分配CPU资源。 
    另外,关于内存、磁盘I/O带宽及网络I/O带宽,首先要设定每个虚拟机使用的上限值,在申请资源的时候不超过该上限值。其中,内存判断时根据内存需求量的最大值hardlimt判断可用内存是否足够该任务请求使用。 
    本发明的核心就是以统一的方式分配和控制分配给不同虚拟化技术的资源,对于不同种类的主流虚拟化技术(比如KVM虚拟机和LXC虚拟机),使用统一的cgroup作为统一的底层资源限制管理框架。本机制能够让多个虚拟化技术同时运行在单节点物理机上,并能正确的从整体上控制分配给不同虚拟化技术的资源。 
    下面分别叙述不同资源的控制管理办法: 
    1.CPU资源统一分配和管理 
    KVM虚拟机和LXC虚拟机的CPU控制策略完全不一样,KVM虚拟机使用了硬件虚拟化,LXC虚拟机使用了内核提供的特性。对于KVM虚拟机来说,配置其CPU的方式主要是配置其VCPU的个数来实现。而对于LXC来说,配置的是每个进程组的cpu shares参数,是一个比例参数,通过内核的调度,保证不同进程组之间的资源是按照一个比例使用。KVM虚拟机本质上也是一个进程。本发明把LXC使用cgroup的机制引入到KVM虚拟机,即把KVM虚拟机抽象为一个能被cgroup技术控制资源使用的进程,也就是将KVM虚拟机进程启动在经过cgroup资源限制的容器中。这样处理具有以下几个优点: 
    统一的资源控制策略可以使得KVM和LXC共享CPU资源,并可以保证它们获得相应的份数。即,通过预先设定的cgroup的shares份数使CPU 资源,而不管是什么虚拟化技术,都要受到内核cgroup资源框架的统一调度。资源消耗少,cgroup是目前可知的系统开销最小的资源管理框架。 
    2.内存资源的统一管理和分配 
    KVM在内核态使用的技术主要是影子页表技术来维护和控制虚拟机的内存数量。LXC管理内存的机制是与管理CPU相同的,也是通过cgroup的内存子系统并使用Linux内核提供的特性进行限定资源。通过cgroup对不同的虚拟化技术进程实现内存资源的统一分配和管理。本机制通过cgroups的memory子系统的hardlimit和softlimit两个参数来设置虚拟机的内存资源分配,hardlimit是一个资源上限,即系统内存资源丰富的时候,虚拟机能使用的最大内存量,softlimit是一个资源保证,即系统内存资源紧张的时候,系统能保证虚拟机的最少内存分配额。 
    3.磁盘I/O资源的统一管理和分配 
    目前KVM虚拟化技术只提供对磁盘大小的设置,并不支持磁盘带宽的控制,而LXC通过cgroup的blkio子系统能实现对磁盘I/O带宽的控制。本专利通过对KVM虚拟机进程进行抽象,推出其本质是一个系统进程,这样通过cgroup的blkio子系统实现虚拟机磁盘I/O带宽控制。这样就能通过cgroup技术实现对KVM和LXC两种虚拟化技术的磁盘I/O带宽统一的控制和管理。具体实现是通过cgroup的blkio子系统中throttle参数设置磁盘I/O的绝对带宽。虚拟机在启动时,通过以上设置能实现对其磁盘I/O带宽的分配和管理。 
    对于不同种类的主流虚拟化技术(比如KVM虚拟机和LXC虚拟机),使用统一的cgroup作为统一的底层资源限制管理框架。具体的方式是配置cgroup容器的是每个虚拟化技术进程的磁盘I/O throttle参数限制使用磁盘I/O的绝对带宽。 
    4.网络I/O资源的统一管理和分配 
    目前来说,无论是KVM或者是LXC都没有直接提供对于网络I/O资源的控制能力。本专利将考虑这部分的问题,并设计了一套在单个物理机上面同时运行这不同种虚拟机时候网络I/O资源分配方法。 
    虚拟机要接入网络,需要以一定的方式接入物理机网络进行网络虚拟化,本专利通过建立一个统一的虚拟网桥,并在网桥中分别创建对于不同虚拟化技术的网络接口tap,并将这些网络接口tap同真实的物理机网络接口桥接起来。 
    如图8中创建的虚拟网桥br0,不同种类的Linux内核是通过一个虚拟的网桥设备来实现桥接,这个设备可以绑定若干个以太网接口设备,从而将它们桥接起来。所述网桥br0,它连接了物理机的真实eth0网口,也连接了虚拟机的虚拟eth0网口,这个虚拟机的eth0网口对于操作宿主操作系统而言,看到的就是tap设备,也是一个虚拟的网络接口。虚拟机所有的流量都是通过虚拟的eth0到物理机上面的tap设备,最后经过物理机的eth0与外界进行通信。所以,要控制虚拟机的网络流量,可以在物理机上的tap设备上做限制。 
    本发明设计的策略使用Linux内核提供的网络流量控制。每个网络接口(如eth0和tap)都有一个队列,通过设置这个队列的类型和参数可以改变数据包发送的速率和优先级。本发明将队列类型设置为TBF(令牌桶过滤器),TBF是一种队列,其可以设置一个值,这个值可以限制该TBF队列的速率,这种队列按照事先设定的速率来处理数据包的通过,达到流量控制的目的。这里的网络I/O资源管理机制类似于cgroup的磁盘I/O资源管理机制,均是基于一个绝对的速度上限来限制和管理相应资源的。 
    本发明提出的机制能够让多个虚拟化技术同时运行在单节点物理机上,并能正确的从整体上控制分配给不同虚拟化技术的资源。 
    以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明 的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的?;し段е?。 

    关于本文
    本文标题:一种单节点同时运行不同类型虚拟机的方法及系统.pdf
    链接地址://www.4mum.com.cn/p-6126189.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 北京快乐8任一计划 18选7复式兑奖表 福彩3d跨度走势图300期 卓易彩票游戏 龙江6十1开奖结果查询 四川新11选5开奖结果 半全场大小球 哈哈南京麻将 股票涨跌幅限制 胜负彩17163期预测奖金 内蒙古彩福利彩票中心 天津3d时时彩游戏规则 八方彩票群 青海快3电子走势图 天津11选5任五遗漏 欢乐斗地主h5