一种计算资源的分配方法和装置与流程

文档序号:12008995阅读:392来源:国知局
一种计算资源的分配方法和装置与流程
一种计算资源的分配方法和装置【技术领域】本发明涉及计算机集群技术领域,特别涉及一种计算资源的分配方法和装置。

背景技术:
计算机集群,简称集群,是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来作为计算资源,高度紧密地协作完成计算工作。集群系统中的单个计算机通常称为计算节点,一般通过局域网等方式连接。集群的特点是通过多台计算机完成同一个工作,有效利用群组中的计算资源,可以改进单个计算机在计算速度和/或可靠性上的局限,达到更高的效率。集群中每台计算机完成的内容、工作过程等完全一样,如果一台死机,另一台可以起作用,具有较高的稳定性。现有计算资源的分配装置有两种:一是虚拟化技术,二是计算节点多实例化技术。所述虚拟化技术是计算机元件在虚拟的基础上而不是真实的基础上运行的技术。虚拟化技术可以将计算资源和环境进行较为底层的隔离,用户自由度高,但技术复杂,实现代价较高。所述计算节点多实例化技术是通过互联网进行传输使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中。计算节点多实例化技术的隔离层次较高,实现代价较小,用户自由度低,但存在计算节点之间在资源上相互干扰的问题。

技术实现要素:
有鉴于此,本发明提供了一种计算资源的分配方法和装置,有效实现计算资源的隔离及调度,同时保留计算机用户较高的自由度,且其实现代价低,可提高计算资源利用率和系统的灵活程度,可以允许用户自主选择多种语言实现了语言无关性。具体技术方案如下:一种计算资源的分配方法,该方法包括以下步骤:预先构建计算资源环境,确定所用的计算组以及各计算组中的计算节点;接收用户发送的请求,解析得到该用户的业务信息以及请求执行的用户代码,所述业务信息包括用户有权使用的计算组组别和用户有权使用的各计算组的配额属性;为不同的域名或网址设定流量转发的目标计算组,形成流量转发规则;根据子用户发送的请求,确定流量中的域名或网址,结合所述用户的业务信息,利用确定的域名或网址在所述流量转发规则中查询得到该域名或网址对应的目标计算组;查询目标计算组内的动态负载信息,根据查询到的动态负载信息,调整转发的目标计算组中的目标计算节点;将所述请求执行的用户代码发送到确定的目标计算节点执行。根据本发明一优选实施例,所述计算节点包括:普通计算节点、虚拟机计算节点或物理机计算节点。根据本发明一优选实施例,当所述计算节点为普通计算节点时,所述预先构建计算资源环境包括:查询各计算节点占用的资源分片信息,利用查找到的资源分片信息初始化计算节点,从而对计算节点进行资源限制,所述资源分片信息包括CPU、内存、上下行带宽值的使用量。根据本发明一优选实施例,所述查询各计算节点占用的资源分片信息,包括:利用CGROUPS脚本查询计算节点占用的资源分片信息。根据本发明一优选实施例,当所述计算节点为普通计算节点时,所述预先构建计算资源环境包括:为各计算节点指定不同的在运行时参考的根目录位置,在初始化计算节点时,将各计算节点在运行时参考的根目录位置更改为指定的根目录位置,从而对计算节点进行路径隔离。根据本发明一优选实施例,所述更改为指定的根目录位置,包括:利用CHROOT命令将各计算节点在运行时参考的根目录位置更改为指定的根目录位置。根据本发明一优选实施例,所述调整转发的目标计算组中的目标计算节点,还包括:根据各计算组的动态负载信息和配额属性进行调节所述目标计算节点的数量。根据本发明一优选实施例,所述动态负载信息包括各计算节点及各计算节点的权值,所述权值的大小与各计算节点的负载成反比关系;所述调整转发的目标计算组中的目标计算节点,包括:根据各计算节点的权值的大小确定转发的目标计算节点。一种计算资源的分配装置,该装置包括:计算环境构建模块,用于预先构建计算资源环境,确定所用的计算组以及各计算组中的计算节点;管理平台模块,用于接收用户发送的请求,解析得到该用户的业务信息以及请求执行的用户代码,传输至调度模块,所述业务信息包括用户有权使用的计算组组别和用户有权使用的各计算组的配额属性;流量路由模块,用于根据子用户发送的请求,确定流量中的域名或网址;调度模块,用于为不同的域名或网址设定流量转发的目标计算组,形成流量转发规则;以及,用于结合所述管理平台模块得到用户的业务信息,根据所述流量路由模块确定的域名或网址在所述流量转发规则中查询得到该域名或网址对应的目标计算组;查询目标计算组内的动态负载信息,并根据查询到的动态负载信息,调整转发的目标计算组中的目标计算节点,触发代码分发模块的代码发送至目标计算节点;代码分发模块,用于在受到所述调度模块的触发后,将所述用户代码发送到所述流量路由模块确定的目标计算节点执行。根据本发明一优选实施例,所述计算节点包括:普通计算节点、虚拟机计算节点或物理机计算节点。根据本发明一优选实施例,当所述计算节点为普通计算节点时,所述计算环境构建模块包括:资源限制设定单元,用于查询各计算节点占用的资源分片信息,利用查找到的资源分片信息初始化计算节点,从而对计算节点进行资源限制,所述资源分片信息包括CPU、内存、上下行带宽值的使用量。根据本发明一优选实施例,所述资源限制设定单元中利用CGROUPS脚本查询计算节点占用的资源分片信息。根据本发明一优选实施例,当所述计算节点为普通计算节点时,所述计算环境构建模块包括:路径隔离单元,用于为各计算节点指定不同的在运行时参考的根目录位置,在初始化计算节点时,将各计算节点在运行时参考的根目录位置更改为指定的根目录位置,从而对计算节点进行路径隔离。根据本发明一优选实施例,所述路径隔离单元利用CHROOT命令,将各计算节点在运行时参考的根目录位置更改为指定的根目录位置。根据本发明一优选实施例,所述调度模块调整转发的目标计算组中的目标计算节点,还包括:根据各计算组的动态负载信息和配额属性进行调节所述目标计算节点的数量。根据本发明一优选实施例,所述动态负载信息包括各计算节点及各计算节点的权值,所述权值的大小与各计算节点的负载成反比关系;所述调度模块调整转发的目标计算组中的目标计算节点,包括:根据各计算节点的权值的大小确定转发的目标计算节点。由以上技术方案可以看出,本发明提供计算资源的分配方法和装置,采用动态负载分配方式,将流量与计算节点进行有效匹配,实现计算资源的隔离及调度,同时保留计算机用户较高的自由度,且其实现代价低,提高了计算资源利用率和系统的灵活程度,可以允许用户自主选择多种语言实现了语言无关性。【附图说明】图1为本发明实施例一提供的计算资源的分配方法流程图;图2为本发明实施例一提供的计算环境示意图;图3为本发明实施例二提供的计算资源的分配装置示意图。【具体实施方式】为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。实施例一、图1是本实施例提供的一种计算资源的分配方法流程图,如图1所示,该方法包括:步骤S101、预先构建计算资源环境,确定所用的计算组以及各计算组中的计算节点。所述计算节点是一组计算服务的集合,可以抽象为IP地址:端口(IP:Port)的二元组。如图2所示,一个计算资源环境可以包括多个计算组,一个计算组是若干计算节点的逻辑组合。一般而言,同一个计算组内的计算节点是同构的。利用构建好的计算资源环境可以用于各种云计算服务。步骤S102、接收用户发送的请求,解析得到该用户的业务信息以及请求执行的用户代码。所述用户是指计算机集群的用户,一般为集群平台上的开发商。所述业务信息包括用户有权使用的计算组组别和用户有权使用的各计算组的配额属性。也就是说,用户购买了哪些计算组,以及购买的这些计算组的计算节点的数量。步骤S103、为不同的域名或网址设定流量转发的目标计算组,形成流量转发规则。在流量转发规则中建立域名或网址与计算组的对应关系,设定哪个域名的哪些网址(url)转发到哪个计算组。步骤S104、根据子用户发送的请求,确定流量中的域名或网址,结合所述用户的业务信息,利用确定的域名或网址在所述流量转发规则中查询得到该域名或网址对应的目标计算组。所述子用户为计算机集群用户(开发商)的用户(用户的受众),例如普通网民、消费者。通过子用户发送的流量中的url到所述流量转发规则中进行匹配,查询流量中的该url应该转发到哪个组,确定对应的计算组。结合该用户的有权使用的计算组组别和用户有权使用的各计算组的配额属性,确定该用户可用的目标计算组,作为流量承载的计算组。步骤S105、查询目标计算组内的动态负载信息,根据查询到的动态负载信息,调整转发的目标计算组中的目标计算节点。动态负载信息包括各计算节点及各计算节点的权值,所述权值的大小与各计算节点的负载成反向关系。根据计算节点的流量来确定计算节点的负载,负载高的权重低,负载低的权重高,以此平衡节点间的相对负载。所述计算节点的流量可以但不限于通过应用层的流控模块来获取。在调整转发的目标计算组中的目标计算节点时,则根据各计算节点的权值的大小确定转发的目标计算节点,选择权值较高的计算节点作为流量承载的目标计算节点。根据动态负载信息,从用户可用的目标计算组中匹配到负载较低的计算节点,能够根据实际情况进行灵活选择,提高了效率和资源利用率。另外,根据各计算组的动态负载信息和配额属性进行调节各计算组中的计算节点的数量。根据一个计算组有最大计算单元个数的配额属性,所述配额属性可以是用户购买数量或特别指定的数量,在计算组整体负载低的时候,可以从该计算组中摘除若干计算节点,减少计算节点的数量,以提升该计算组的负载水平。反之亦然,以此实现对计算资源利用率的提高。通过调节目标计算节点的数量,提高计算资源的利用率。步骤S106、将所述请求执行的用户代码发送到确定的目标计算节点执行。将用户代码发送到步骤S105中确定的所有目标计算节点执行。值得一提的是,本发明中所述计算节点可以是:普通计算节点、虚拟机计算节点或者物理机计算节点。普通节点是有一定自由度的多语言环境,实现时为每个计算节点部署了运行时环境(一系列支撑组件例如lighttpd、php-cgi、java、python、其他服务等),虚拟机节点就是初始化出虚拟机实例,物理机节点就是初始化好的物理服务器。在利用普通计算节点构建计算资源环境,为了保证集群的安全以及避免用户信息泄露给第三方,需要对集群中计算节点的内存在用户代码间进行隔离,实现计算节点的资源限制和路径隔离。具体包括以下方式:S101_1、查询各计算节点占用的资源分片信息,利用查找到的资源分片信息初始化计算节点,从而对计算节点进行资源限制。计算节点内的计算服务的具体形式为进程,这些进程通过配置CGROUPS的脚本进行启动。在CGROUPS配置脚本中,可以查询到需要初始化的计算单元占用的资源分片信息,包括CPU、内存、上下行带宽值(I/O)的使用量。这些资源分片信息可以是绝对值形式的,例如,CPU节点编号、内存占用值和上下行带宽值。或者,也可以是比例形式的,例如,CPU计算能力50%,内存总量35%,上下行带宽总量40%。一般情况下,CPU、内存、上下行带宽值的使用量的总和为总的资源量,但有时为了预留一部分计算能力给系统,也可以为小于总的资源量100%;有时为了计算节点之间资源使用的互补,也可以为大于总的资源量100%。根据得到的资源分片信息初始化计算节点。具体的,如果查询到计算节点占用的CPU计算能力为50%,则将该计算节点的CPU使用量限制为50%。依次类推,完成计算节点的初始化。将该脚本pid(进程标识符)加入到创建的CGROUNP中,后续使用该脚本启动的所有进程都将自动继承该CGROUNP的资源限制,从而实现对计算节点进行资源限制。S101_2、为各计算节点指定不同的在运行时参考的根目录位置,在初始化计算节点时,将各计算节点在运行时参考的根目录位置更改为指定的根目录位置,从而对计算节点进行路径隔离。使用CHROOT命令在可以更改所参考的根目录位置。具体的过程是:对每个计算节点单独使用一个用户名,在初始化计算节点时,即通过CHROOT指定该计算节点对应用户名的根目录位置,从而实现对计算节点进行路径隔离。根据实际应用环境的不同,上述S101_1和S101_2两种方式也可以仅采用其中一种方式进行。步骤S101中也可以采用现有的虚拟机技术和物理机技术构建计算资源环境,由于虚拟机本身就具有较为彻底的隔离效果,物理机是独立进行分配使用的,也具有较好的隔离效果,因而,对于虚拟机计算节点和物理机计算节点不需要进行资源隔离和路径隔离的处理。相比较而言,普通计算节点提供低成本的、有功能限制、多语言的应用执行环境,应用场景为Web应用开发。虚拟机计算节点是用软件虚拟具有硬件系统功能的执行环境。物理机计算节点是指该节点直接是一台物理机,环境宽松,功能完全不受限,应用场景为较大规模的或较高订制程度的web应用开发。本发明可以根据实际应用场景的不同,选择以不同的方式(对应不同的成本代价)来实现计算资源和环境的隔离。一般来说,最低成本的是普通节点,虚拟机其次,物理机节点成本最高。对于这3种不同的计算节点,本发明除了步骤S101中构建计算资源环境的方式不同之外,其他步骤均以相同的方式进行处理,故不再一一赘述。以上是对本发明所提供的方法进行的详细描述,下面对本发明提供的计算资源的分配装置进行详细描述。实施例二图3是本实施例提供的一种计算资源的分配装置示意图。如图3所示,该装置包括:计算环境构建模块10,用于预先构建计算资源环境,确定所用的计算组以及各计算组中的计算节点。所述计算节点是一组计算服务的集合,可以抽象为IP地址:端口(IP:Port)的二元组。一个计算资源环境可以包括多个计算组,一个计算组时若干计算节点的逻辑组合。一般而言,同一个计算组内的计算节点是同构的。利用构建好的计算资源环境可以用于各种云计算服务。普通节点是有一定自由度的多语言环境,实现时为每个计算节点部署了运行时环境(一系列支撑组件例如lighttpd、php-cgi、java、python、其他服务等),虚拟机节点就是初始化出虚拟机实例,物理机节点就是初始化好的物理服务器。为了保证集群的安全以及避免用户信息泄露给第三方,需要对集群中计算节点的内存在用户代码间进行隔离,实现计算节点的资源限制和路径隔离。因而,计算环境构建模块10,包括:资源限制设定单元和路径隔离单元。资源限制设定单元,用于查询各计算节点占用的资源分片信息,利用查找到的资源分片信息初始化计算节点,从而对计算节点进行资源限制,所述资源分片信息包括CPU、内存、上下行带宽值的使用量。所述资源限制设定单元中可以利用CGROUPS脚本查询计算节点占用的资源分片信息。计算节点内的计算服务的具体形式为进程,这些进程通过配置CGROUPS脚本进行启动。在CGROUPS配置脚本中,可以查询到需要初始化的计算单元占用的资源分片信息,包括CPU、内存、上下行带宽值(I/O)的使用量。这些资源分片信息可以是绝对值形式的,例如,CPU节点编号、内存占用值和上下行带宽值。或者,也可以是比例形式的,例如,CPU计算能力50%,内存总量35%,上下行带宽总量40%。一般情况下,CPU、内存、上下行带宽值的使用量的总和为总的资源量,但有时为了预留一部分计算能力给系统,也可以为小于总的资源量100%;有时为了计算节点之间资源使用的互补,也可以为大于总的资源量100%。根据得到的资源分片信息初始化计算节点。具体的,如果查询到计算节点占用的CPU计算能力为50%,则将该计算节点的CPU计算能力限制为50%。依次类推,完成计算节点的初始化。将该脚本pid加入到创建的CGROUNP中,后续使用该脚本启动的所有进程都将自动继承该CGROUNP的资源限制,从而实现对计算节点进行资源限制。路径隔离单元,用于为各计算节点指定不同的在运行时参考的根目录位置,从而对计算节点进行路径隔离。路径隔离单元可以利用CHROOT命令在初始化计算节点时,将各计算节点在运行时参考的根目录位置更改为指定的根目录位置。具体的过程是:对每个计算节点单独使用一个用户名,在初始化计算节点时,即通过CHROOT指定该计算节点对应用户名的根目录位置,从而实现对计算节点进行路径隔离。计算环境构建模块10也可以采用现有的虚拟机技术和物理机技术构建计算资源环境,由于虚拟机本身就具有较为彻底的隔离效果,物理机是独立进行分配使用的,也具有较好的隔离效果,因而,对于虚拟机计算节点和物理机计算节点不需要进行资源隔离和路径隔离的处理。根据实际应用场景的不同,选择以不同的方式,对应不同的成本代价,来实现计算资源和环境的隔离。管理平台模块20,用于接收用户发送的请求,解析得到该用户的业务信息以及请求执行的用户代码,传输至调度模块。所述用户是指计算机集群的用户,一般为集群平台上的开发商。所述业务信息包括用户有权使用的计算组组别和用户有权使用的各计算组的配额属性。也就是说,用户购买了哪些计算组,以及购买的这些计算组的计算节点的数量。流量路由模块30,用于根据子用户发送的请求,确定流量中的域名或网址。所述子用户为计算机集群用户(开发商)的受众,例如普通网民、消费者。子用户发送的请求可以但不限于HTTP协议、fastcgi等协议的请求。本发明以HTTP协议为例,确定流量中的url。调度模块40,用于为不同的域名或网址设定流量转发的目标计算组,形成流量转发规则。预先为不同的域名或网址设定流量转发的目标计算组,形成流量转发规则。在流量转发规则中建立域名或网址与计算组的对应关系,设定哪个域名的哪些网址(url)转发到哪个计算组。调度模块40还用于结合所述管理平台模块得到用户的业务信息,根据所述流量路由模块确定的域名或网址在所述流量转发规则中查询得到该域名或网址对应的目标计算组;查询目标计算组内的动态负载信息,并根据查询到的动态负载信息,调整转发的目标计算组中的目标计算节点,触发代码分发模块的代码发送至目标计算节点。调度模块40通过流量路由模块30确定的url到所述流量转发规则中进行匹配,查询流量中的该url应该转发到哪个组,确定对应的计算组。进一步结合该用户的有权使用的计算组组别和用户有权使用的各计算组的配额属性,确定该用户可用的目标计算组,作为流量承载的计算组。在确定了可用的目标计算组之后,调度模块40查询目标计算组内的动态负载信息。动态负载信息包括各计算节点及各计算节点的权值,所述权值的大小与各计算节点的负载成反比关系。根据计算节点的流量来确定计算节点的负载,负载高的权重低,负载低的权重高,以此平衡节点间的相对负载。所述计算节点的流量可以但不限于通过应用层的流控模块来获取。在调整转发的目标计算组中的目标计算节点时,则根据各计算节点的权值的大小确定转发的目标计算节点。根据动态负载信息,从用户可用的目标计算组中匹配到负载较低的计算节点,能够根据实际情况进行灵活选择,提高了效率和资源利用率。另外,调度模块40还可根据各计算组的动态负载信息和配额属性进行调节各计算组中的计算节点的数量。根据一个计算组有最大计算单元个数的配额属性,所述配额属性可以是用户购买数量或特别指定的数量,在计算组整体负载低的时候,可以从该计算组中摘除若干计算节点,减少计算节点的数量,以提升该计算组的负载水平。反之亦然,以此实现对计算资源利用率的提高。通过调节目标计算节点的数量,提高计算资源的利用率。代码分发模块50,用于在受到所述调度模块的触发后,将所述用户代码发送到所述流量路由模块确定的目标计算节点执行。本发明提供的方法和装置可以根据实际的配置,选择以不同的计算节点方式来实现实现资源的隔离和分配,能够灵活应用于各种云环境需求中。同时,采用动态负载分配的方式将流量与计算节点进行有效匹配,提高了计算资源的利用率。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1