CPU资源的隔离方法及其系统与流程

文档序号:17287418发布日期:2019-04-03 03:40阅读:524来源:国知局
CPU资源的隔离方法及其系统与流程

本发明涉及应用虚拟化技术领域,尤其涉及一种cpu资源的隔离方法及其系统。



背景技术:

在虚拟化系统中,一般都是主机上运行多个虚拟机,内核统一调度管理程序和虚机(qemu-kvm,虚机启动时产生的进程)进程的计算资源,包括操作系统、主机代理管理程序、zebs或者ceph进程(超融合场景)、iecs/vmc/数据库等(一体机场景),且主机上的cpu资源会被系统中的所有进程共用。各个进程相互之间没有隔离,容易出现相互干扰,cpu资源抢占的问题。例如管理程序或zebs等存储因业务需要大量消耗cpu资源时,可能干扰虚拟机内部的(qemu-kvm)等进程的资源分配,进而影响主机上的客户虚机内部的应用异常,严重影响客户的使用。



技术实现要素:

有鉴于此,本发明的目的在于提供一种cpu资源的隔离方法及其系统,以防止出现cpu资源抢占的问题。

本发明解决上述技术问题所采用的技术方案如下:

根据本发明的一个方面,提供一种cpu资源的隔离方法,包括:

创建系统隔离域、分布式存储隔离域;

通过预设的优先策略为所述系统隔离域、分布式存储隔离域分别分配至少一个cpu绑定核;

将分布式存储进程添加到所述分布式存储隔离域中;将系统相关进程添加到所述系统隔离域中。

在一个可能的设计中,所述创建系统隔离域、分布式存储隔离域包括:

分别为每个主机创建对应的系统隔离域。

在一个可能的设计中,所述通过预设的优先策略为所述系统隔离域、分布式存储隔离域分别分配至少一个cpu绑定核包括以下至少一项:

采用深度优先策略为所述系统隔离域分配至少一个cpu绑定核;或

采用广度优先策略为所述分布式存储隔离域分配至少一个cpu绑定核。

在一个可能的设计中,所述通过预设的优先策略为所述系统隔离域、分布式存储隔离域分别分配至少一个cpu绑定核包括:

为所述系统隔离域分配n个cpu绑定核;n为主机总cpu核数的5%至15%。

在一个可能的设计中,所述创建系统隔离域、分布式存储隔离域之后,还包括:

创建5个以下自定义隔离域。

为所述自定义隔离域分配至少一个cpu绑定核;

将cpu消耗核数较大的应用进程添加到所述自定义隔离域。

根据本发明的另一个方面,提供一种cpu资源的隔离系统,包括:

隔离域创建单元,用于创建系统隔离域、分布式存储隔离域;

分配单元,用于通过预设的优先策略为所述系统隔离域、分布式存储隔离域分别分配至少一个cpu绑定核;

添加单元,用于将分布式存储进程添加到所述分布式存储隔离域中;将系统相关进程添加到所述系统隔离域中。

在一个可能的设计中,所述隔离域创建单元用于分别为每个主机创建对应的系统隔离域。

在一个可能的设计中,所述分配单元用于:

采用深度优先策略为所述系统隔离域分配至少一个cpu绑定核;或

采用广度优先策略为所述分布式存储隔离域分配至少一个cpu绑定核。

在一个可能的设计中,所述分配单元用于为所述系统隔离域分配n个cpu绑定核;n为主机总cpu核数的5%至15%。

在一个可能的设计中,所述隔离域创建单元还用于创建5个以下自定义隔离域;所述分配单元还用于为所述自定义隔离域分配至少一个cpu绑定核;所述添加单元还用于将cpu消耗核数较大的应用进程添加到所述自定义隔离域。

本发明实施例的cpu资源的隔离方法及其系统,能避免主机上的客户虚拟机因cpu资源被强占造成的内部异常,从而可以给客户带来良好的使用体验。

附图说明

图1为本发明实施例的cpu资源的隔离方法的流程示意图;

图2为本发明另一实施例的cpu资源的隔离方法的流程示意图;

图3为本发明另一实施例的cpu资源的隔离方法的流程示意图;

图4本发明实施例的隔离域的示意图;

图5为本发明实施例的cpu资源的隔离系统的结构示意图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参照图1,本发明实施例提供一种cpu资源的隔离方法,包括步骤:

101、开始。

102、创建系统隔离域stytem.slice、分布式存储隔离域ztestorage.slice。

一般地,每个虚机还有自身对应的虚机隔离域machine.slice,即本实施例中,包括系统隔离域、分布式存储隔离域、虚机隔离域三个隔离域。一个系统有多个主机,每个主机上都创建一个系统隔离域stytem.slice。

103、通过预设的优先策略为所述系统隔离域、分布式存储隔离域分别分配至少一个cpu绑定核。

cpu绑定核是指主机上的总的cpu核绑定到隔离域上,供隔离域的各个进程使用。在分配时可以采用深度优先策略或广度优先策略,其中,深度优先策略是指从第0号cpu逻辑核开始绑定,使其成为某一隔离域的绑定核,用完一个物理cpu再用下一个;广度优先策略是指每个物理cpu均分需要绑定的逻辑核:例如32核,其对应的编号为0~31,此时,把32个核先进行平分,分为0~5,16~31两段,如果要分配4个cpu逻辑核给某一隔离域,使其成为绑定核时,其对应的绑定核的编号是0,1,16,17;该种分配策略大大提高了性能,可以保证cpu资源得到合理利用,减少了cpu资源抢占,避免资源浪费。一般地,上述虚机自身对应的虚机隔离域可以采用深度优先策略。

104、将分布式存储进程添加到所述分布式存储隔离域中;将系统相关进程添加到所述系统隔离域中。

一般地,主机上的虚机的相关进程都添加在虚机自己的虚机隔离域machine.slice中,只能使用该隔离域中的cpu绑定核。此外,分布式存储进程zebs和ceph可以添加到一个隔离域中,如此,在后续进行zebs和ceph存储进程时,只能选择使用包含在该隔离域的cpu绑定核。

进程添加到隔离域的方式就是把进程号配置到各个隔离域的task文件中。在具体实施时,隔离域的名称,cpu绑定核的分配方式都可以在web页面上进行配置。

105、结束。

如图2所示,本发明另一实施例提供一种cpu资源的隔离方法中在所述获取待执行进程所属的隔离域,包括:

201、开始。

202、创建系统隔离域stytem.slice、分布式存储隔离域ztestorage.slice。

一般地,每个虚机还有自身对应的虚机隔离域machine.slice,即本实施例中,包括系统隔离域、分布式存储隔离域、虚机隔离域三个隔离域。一个系统有多个主机,每个主机上都创建一个系统隔离域stytem.slice。

203、采用深度优先策略为所述系统隔离域分配至少一个cpu绑定核;或采用广度优先策略为所述分布式存储隔离域分配至少一个cpu绑定核。

cpu绑定核是指主机上的总的cpu核绑定到隔离域上,供隔离域的各个进程使用。本实施例中,在分配时可以采用深度优先策略为所述系统隔离域分配至少一个cpu绑定核;采用广度优先策略为所述分布式存储隔离域分配至少一个cpu绑定核,其中,深度优先策略是指从第0号cpu逻辑核开始绑定,使其成为某一隔离域的绑定核,用完一个物理cpu再用下一个;广度优先策略是指每个物理cpu均分需要绑定的逻辑核:例如32核,其对应的编号为0~31,此时,把32个核先进行平分,分为0~5,16~31两段,如果要分配4个cpu逻辑核给某一隔离域,使其成为绑定核时,其对应的绑定核的编号是0,1,16,17;该种分配策略大大提高了性能,可以保证cpu资源得到合理利用,减少了cpu资源抢占,避免资源浪费。一般地,上述虚机自身对应的虚机隔离域可以采用深度优先策略。

204、将分布式存储进程添加到所述分布式存储隔离域中;将系统相关进程添加到所述系统隔离域中。

一般地,主机上的虚机的相关进程都添加在虚机自己的虚机隔离域machine.slice中,只能使用该隔离域中的cpu绑定核。此外,分布式存储进程zebs和ceph可以添加到一个隔离域中,如此,在后续进行zebs和ceph存储进程时,只能选择使用包含在该隔离域的cpu绑定核。

进程添加到隔离域的方式就是把进程号配置到各个隔离域的task文件中。在具体实施时,隔离域的名称,cpu绑定核的分配方式都可以在web页面上进行配置。

205、结束。

如图3所示,本发明另一实施例提供的cpu资源的隔离方法,包括:

301、开始。

302、创建系统隔离域stytem.slice、分布式存储隔离域ztestorage.slice、5个以下自定义隔离域。

一般地,每个虚机还有自身对应的虚机隔离域machine.slice,即本实施例中,包括系统隔离域、分布式存储隔离域、虚机隔离域三个隔离域。一个系统有多个主机,每个主机上都创建一个系统隔离域stytem.slice。

303、通过预设的优先策略为所述系统隔离域、分布式存储隔离域、自定义隔离域分别分配至少一个cpu绑定核。

cpu绑定核是指主机上的总的cpu核绑定到隔离域上,供隔离域的各个进程使用。在分配时可以采用深度优先策略或广度优先策略,其中,深度优先策略是指从第0号cpu逻辑核开始绑定,使其成为某一隔离域的绑定核,用完一个物理cpu再用下一个;广度优先策略是指每个物理cpu均分需要绑定的逻辑核:例如32核,其对应的编号为0~31,此时,把32个核先进行平分,分为0~5,16~31两段,如果要分配4个cpu逻辑核给某一隔离域,使其成为绑定核时,其对应的绑定核的编号是0,1,16,17;该种分配策略大大提高了性能,可以保证cpu资源得到合理利用,减少了cpu资源抢占,避免资源浪费。上述虚机自身对应的虚机隔离域可以采用深度优先策略。一般地,上述主机隔离域、虚机自身对应的虚机隔离域可以采用深度优先策略。分布式存储隔离域可以采用广度优先策略。自定义隔离域可以根据进程的自身特点,设置深度优先或广度优先策略;当包括两个或两个以上自定义隔离域时,可以不同的优先策略。

304、将分布式存储进程添加到所述分布式存储隔离域中;将系统相关进程添加到所述系统隔离域中;将cpu消耗核数较大的应用进程添加到所述自定义隔离域。

一般地,主机上的虚机的相关进程都添加在虚机自己的虚机隔离域machine.slice中,只能使用该隔离域中的cpu绑定核。分布式存储进程zebs和ceph可以添加到分布式存储隔离域中,如此,在后续进行zebs和ceph存储进程时,只能选择使用包含在该分布式存储隔离域的cpu绑定核。除了将cpu消耗核数较大的应用进程添加到自定义隔离域外,还可以根据用户需求,将相关的应用进程添加到自定义隔离域。

未添加到除系统隔离域以外的其他隔离域的应用进程都可以添加到系统隔离域中。

进程添加到隔离域的方式就是把进程号配置到各个隔离域的task文件中。在具体实施时,隔离域的名称,cpu绑定核的分配方式都可以在web页面上进行配置。

305、结束。

在上述任一实施例的基础上,本发明另一实施例提供的cpu资源的隔离方法,在分配cpu绑定核时,可以为所述系统隔离域分配n个cpu绑定核;n为主机总cpu核数的5%至15%,例如是5%或10%。

下面辅以具体的实施方式进一步说明上述实施例;如图4所示:

在有分布式存储的系统中选取一个主机,该主机cpu为32核。主机代理启动的时候会创建一个系统隔离域(system.slice5)01;虚机自己的虚机隔离域(machine.slice)402;针对分布式存储进程创建的分布式存储隔离域(ztestorage.slice)403;预留一个自定义隔离域(*.slice)404。

假设系统隔离域401分配的cpu绑定核为4个,由于采用深度优先策略,因此分配到的cpu绑定核对应的编号为0、1、2、3。假设虚机隔离域402分配的cpu核数为3个,由于采用深度优先策略,因此分配到的cpu绑定核对应的编号为4、5、6。假设分布式存储隔离域403需要分配4个核,由于采用广度优先策略,先将把32个核进行平分,分为0~15,16~31两段;此时,分布式存储隔离域403分配到的cpu绑定核对应的编号为7、8、16、17。自定义隔离域404需要分配的核数及其采用的优先策略可以由用户自行定义。

虚机应用进程都属于虚机隔离域402;分布式存储进程例如zebs或ceph存储的进程是属于分布式存储隔离域403的。自定义隔离域404中的应用进程可以由用户自行定义的用户自定义进程。除了其他隔离域的应用进程,都需要把它加入到系统隔离域401中。

如果是系统进程查看系统日志属于系统隔离域,且其需要2个核的cpu资源时,被分配的cpu绑定核的编号为0,1。虚机中的某个应用如果需要一个核,分配的cpu绑定核的编号为4。zebs进程如果需要两个核的cpu资源,分配的cpu绑定核的编号为7,16,后面各个隔离域的进程如果需要cpu资源,被分配的cpu绑定核对应的编号就是按照上述方式依次类推。

需要说明的是,cpu绑定核的编号无需真实存在,本发明中对cpu绑定核的编号仅为了使不同的cpu绑定核能有不同的表达方式。

可见,本实施例中,在主机代理管理进程启时会自动创建一个系统默认的隔离域system.slice,system.slice是做为主机的属性,即每个主机都会有一个system.slice;system.slice是按固定比例预留一部分cpu资源即cpu绑定核,除了虚机的qemu-kvm进程之外,所有的不属于其他隔离域的用户态进程,都会加入该隔离域,需要cpu资源时,有操作系统调用该隔离域的cpu绑定核;主机上的虚机的进程都是在虚机自己的虚机隔离域中,只能使用该隔离域的的cpu核数;用户根据需要可以在管理门户上自行创建应自定义隔离域,分布式存储隔离域是针对zebs和ceph存储用的隔离域,zebs和ceph存储只能选择使用包含在该隔离域cpu核,并且根据zebs和ceph存储的特殊情况,在该隔离域上设置绑定核的时候,采用cpu核平分的广度优先策略,其他隔离域一般都采用深度优先策略,从而大大提高了性能,可以保证cpu资源得到合理利用,减少了cpu资源抢占,避免资源浪费。自定义隔离域可以用于设置其他cpu消耗大的应用进程,并且可以根据进程的自身特点,设置深度优先或广度优先策略。

此外,如图5所示,本发明实施例还提供一种cpu资源的隔离系统,包括:隔离域创建单元501、分配单元502及添加单元503。其中:

隔离域创建单元501用于创建系统隔离域、分布式存储隔离域;一般地,每个虚机还有自身对应的虚机隔离域machine.slice,即本实施例中,包括系统隔离域、分布式存储隔离域、虚机隔离域三个隔离域。一个系统有多个主机,每个主机上都创建一个系统隔离域stytem.slice。因此,在本发明的一个实施例中,隔离域创建单元501用于分别为每个主机创建对应的系统隔离域。

分配单元502用于通过预设的优先策略为所述系统隔离域、分布式存储隔离域分别分配至少一个cpu绑定核;cpu绑定核是指主机上的总的cpu核绑定到隔离域上,供隔离域的各个进程使用。在分配时可以采用深度优先策略或广度优先策略,其中,深度优先策略是指从第0号cpu逻辑核开始绑定,使其成为某一隔离域的绑定核,用完一个物理cpu再用下一个;广度优先策略是指每个物理cpu均分需要绑定的逻辑核:例如32核,其对应的编号为0~31,此时,把32个核先进行平分,分为0~5,16~31两段,如果要分配4个cpu逻辑核给某一隔离域,使其成为绑定核时,其对应的绑定核的编号是0,1,16,17;该种分配策略大大提高了性能,可以保证cpu资源得到合理利用,减少了cpu资源抢占,避免资源浪费。一般地,上述虚机自身对应的虚机隔离域可以采用深度优先策略。

添加单元503用于将分布式存储进程添加到所述分布式存储隔离域中;将系统相关进程添加到所述系统隔离域中。一般地,主机上的虚机的相关进程都添加在虚机自己的虚机隔离域machine.slice中,只能使用该隔离域中的cpu绑定核。此外,分布式存储进程zebs和ceph可以添加到一个隔离域中,如此,在后续进行zebs和ceph存储进程时,只能选择使用包含在该隔离域的cpu绑定核。

进程添加到隔离域的方式就是把进程号配置到各个隔离域的task文件中。在具体实施时,隔离域的名称,cpu绑定核的分配方式都可以在web页面上进行配置。

在图5对应的实施例的基础上,本发明另一实施例提供的cpu资源的隔离系统中,所述隔离域创建单元还用于创5个以下的自定义隔离域;

所述分配单元还用于为所述自定义隔离域分配至少一个cpu绑定核;自定义隔离域可以根据进程的自身特点,设置深度优先或广度优先策略;当包括两个或两个以上自定义隔离域时,可以不同的优先策略。

所述添加单元还用于将cpu消耗核数较大的应用进程添加到所述自定义隔离域。此外,还可以根据用户需求,将相关的应用进程添加到自定义隔离域。未添加到除系统隔离域以外的其他隔离域即虚机隔离域、分布式存储隔离域以及自定义隔离域的应用进程都可以添加到系统隔离域中。

在上述任一实施例的基础上,本发明另一实施例提供的cpu资源的隔离系统中,所述分配单元用于:采用深度优先策略为所述系统隔离域分配至少一个cpu绑定核;或采用广度优先策略为所述分布式存储隔离域分配至少一个cpu绑定核。在分配时,主机上设置的其他隔离域的绑定核数是不能大于主机上剩余的cpu核数的。

所述分配单元还可以用于为所述系统隔离域分配n个cpu绑定核;n为主机总cpu核数的5%至15%,例如是5%、10%。

本发明提供一种cpu资源的隔离方法及其系统,可以基于linux的cgroup(linux内核提供的一种可以限制、记录、隔离进程组(processgroups)所使用的物力资源)实现。各个进程均有自己所属的隔离域,各隔离域的进程需要使用cpu资源时,只能使用自己隔离域内的cpu绑定核。本发明解决了在执行例如zebs或ceph等太耗cpu资源的进程时,出现cpu资源抢占的异常,避免了主机上的客户虚拟机因为cpu资源被强占造成的内部异常,从而可以给客户带来良好的使用体验。本发明在很大程度上减轻了这些耗费cpu资源较大的进程会抢占客户虚拟机cpu资源,导致虚机应用不了的问题。

以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

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