一种大规模机器集群内大文件分发方法和系统与流程

文档序号:33332350发布日期:2023-03-04 00:40阅读:43来源:国知局
一种大规模机器集群内大文件分发方法和系统与流程

1.本发明属于局域网数据分发技术领域,更具体地,涉及一种大规模机器集群内大文件分发方法和系统。


背景技术:

2.在生产环境的机器集群中分布式系统的部署和升级通常需要将安装包文件、升级包文件分发到所有节点。对于大规模的机器集群,由于机器数量众多,而且在网卡带宽和磁盘i/o速率的双重限制下,如果采用单台的部署服务器将以gb为大小计量单位的大文件串行分发到各个节点,则部署服务器必然会成为性能瓶颈,分布式系统的部署过程会长达数十分钟;而采用多台部署服务器同时分发,则需要人工对机器集群进行划区划片,指定每台部署服务器分发的区域,过程较为繁琐,且容易出现文件分发疏漏或文件分发重复的现象。
3.为了解决海量机器部署时串行拷贝所消耗的时间漫长、效率低的问题,需要采取一种新的文件分发方法,高效、自动地将文件下载压力分担到更多的节点中,缩短分发时间,有效地提升分布式系统的部署效率。


技术实现要素:

4.针对现有技术的缺陷,本发明的目的在于提供一种大规模机器集群内大文件分发方法和系统,旨在解决现有方法基于局域网的生产环境中海量机器部署的拷贝阶段耗时长的问题。
5.为实现上述目的,第一方面,本发明提供了一种大规模机器集群内大文件分发方法,该方法应用于监控节点,该方法包括:
6.接收生产环境的机器数量、ip地址段、网络带宽、种子机器节点数量占比的输入;
7.采用种子机器节点优选算法,按照种子机器节点数量占比,从生产环境机器集群中选取多个种子机器节点,并将原始文件、配置管理软件安装包拷贝到各种子机器节点中的指定路径;
8.创建文件分发任务,发出任务启动指令,监控整个分发过程;
9.文件分发任务结束后汇总并显示分发结果。
10.优选地,所述种子机器节点优选算法,具体如下:
11.基于生产环境机器数量和种子机器节点数量占比,计算种子机器节点具体数量并记作n;
12.将生产环境ip地址段划分为n等份,从每一等份的ip地址段中选取出一个中位数ip地址的节点,构成种子机器节点的集合。
13.为实现上述目的,第二方面,本发明提供了一种大规模机器集群内大文件分发方法,该方法应用于种子机器节点,该方法包括:
14.接收监控节点的控制,安装配置管理软件,设置参数运行后,与其他种子机器节点相互连接,共同组成分布式共享配置中心;
15.为普通机器节点提供初始的文件分发服务。
16.优选地,所述分布式共享配置中心的初始化如下:
17.在分布式共享配置中心中生成一条第一类型的配置项记录,数据形式为key-value键值对,其内容为文件分发任务,包括:任务id字段、文件路径字段、文件大小字段、文件检验码字段、任务状态字段和资源等待时长字段;其中,
18.所述任务id字段,用于区分不同的文件分发任务实例,初始值为1,每创建一个文件分发任务实例时任务id自动加1;
19.所述文件路径字段,用于描述需分发文件存储在节点磁盘中的全路径,从根路径开始并包含文件名称,根据用户设定值进行初始化;
20.所述文件大小字段,用于描述需分发文件的大小,根据分发文件的实际大小进行初始化;
21.所述文件检验码字段,用于描述需分发文件的校验码,对分发文件应用sha256哈希算法计算得到;
22.所述任务状态字段,用于描述文件分发任务实例的运行状态,具有init、start和finish三种取值,分别表示任务已就绪、任务已启动、任务已结束,统一初始化为init;
23.所述资源等待时长字段,用于普通机器节点未请求到可提供文件分发服务的节点时,再次重试之前睡眠等待的时长,基于分发文件的下载时长初始化为文件大小除以网络带宽得到的值;
24.基于种子节点生成多条第二类型的配置项记录,记录条数与种子节点的数量相等,数据形式为key-value键值对,其内容为提供文件分发服务的文件共享节点,包括:节点ip字段、任务id字段、节点工作状态字段、最大连接数量字段、客户端数量字段、客户端列表字段和记录创建时刻字段;其中,
25.所述节点ip字段,用于描述并初始化为该节点在生产环境中的ip地址;
26.所述任务id字段的值与第一类型配置项记录中任务id字段保持一致;
27.所述节点工作状态字段,用于描述节点的运行状态,具有available和busy两种取值,分别表示该节点可接受新的客户端连接、不接受新的客户端连接,统一初始化为available;
28.所述最大连接数量字段,用于描述该节点最多可同时供几个客户端进行连接并下载文件,根据用户设定值进行初始化,默认值为5;
29.所述客户端数量字段,用于描述正在从该节点进行文件下载的客户端的数量,统一初始化为0;
30.所述客户端列表字段,用于描述当前有哪些客户端正在从本节点进行文件下载,统一初始化为空;
31.所述记录创建时刻字段,用于描述当前记录何时开始提供文件共享服务,初始化为记录创建时的系统时间。
32.优选地,在监控节点中启动文件分发任务,将分布式共享配置中心的第一类型配置项记录的状态字段的值由init变为start。
33.优选地,监控节点汇总得到全部节点文件下载成功之后,将分布式共享配置中心第一类型配置项记录的状态字段的值由start变为finish。
34.为实现上述目的,第三方面,本发明提供了一种大规模机器集群内大文件分发方法,该方法应用于普通机器节点,该方法包括:
35.接收监控节点的控制,安装节点代理软件,将节点代理软件设置为实时监控分布式共享配置中心的配置项记录变化情况;
36.监控到分布式共享配置中心的第一类型配置项记录发生了变化时,将第一类型配置项记录同步到本节点,若状态字段的当前值为start,则启动本节点文件请求任务,采用节点优选算法,选取一个最优的节点作为下载源节点,然后从下载源节点下载文件;
37.本节点文件请求任务完成后,从分布式共享配置中心中获取下载源节点对应的第二类型配置项记录,将本节点ip从客户端列表字段中删除,客户端数量字段的数值减1,如果工作状态字段的值为busy则改为available;然后在分布式共享配置中心中生成一条新的第二类型配置项记录,记录的节点ip字段值为本节点ip,节点工作状态字段值为available,客户端数量字段值为0,客户端列表字段值为空数组,本节点的角色切换为文件共享节点,即可为后续的普通机器节点提供文件分发服务。
38.优选地,所述节点优选算法具体如下:
39.1)将文件分发任务中资源等待时长字段的值拷贝为本节点资源等待时长;
40.2)申请分布式锁;
41.3)读取全部第二类型配置项记录,筛选出工作状态字段的值为available的记录,生成可用文件共享节点列表;
42.4)如果可用文件共享节点列表为空,释放分布式锁,睡眠本节点资源等待时长之后,将本节点资源等待时长的值减半,若值为1则保持不变,然后跳转到步骤2);
43.5)如果文件分发可用节点列表不为空,基于客户端数量字段和记录创建时刻字段的数值加权计算得到节点的优先级,按照从大到小的顺序排序;
44.6)选取优先级最大的节点作为下载源节点,修改下载源节点对应的第二配置项记录,客户端数量字段的数值加1,本节点ip添加至客户端列表字段,如果客户端数量字段的数值与最大连接数量字段的值相等,将工作状态字段的值改为busy;
45.7)释放分布式锁,返回下载源节点的ip。
46.需要说明的是,本发明优选上述节点优选算法,根据文件共享节点的创建时间和文件共享节点的工作负载情况,基于新加入的文件共享节点优先级更高和负载低的文件共享节点优先级更高这两条原则综合计算各个文件共享节点的优先级,选取优先级数值最大的节点为下载节点,有效地提升系统的部署效率。
47.为实现上述目的,第四方面,本发明提供了一种大规模机器集群内大文件分发系统,该系统包括:位于同一局域网的监控节点和机器集群;所述机器集群包括:多个种子机器节点和多个普通机器节点;
48.所述监控节点包括处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得第一方面所述的方法被执行;
49.所述种子机器节点,包括处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得第二方面所述的方法被执行;
50.所述普通机器节点,包括处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得第三方面所述的方法被执行。
51.总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
52.本发明提出一种大规模机器集群内大文件分发方法和系统,通过将机器节点从物理层面分为监控节点、种子机器节点和普通机器节点,从逻辑层面分为文件共享节点和文件请求节点,所述监控节点用于启动参数的注入,发出任务启动指令,监控整个部署过程,在任务结束后,汇总部署结果;种子机器节点用于构建分布式共享配置中心,为集群内的普通机器节点提供通知、协调和元数据同步服务,并承担文件共享节点的角色,作为最初的文件共享节点提供文件分发服务;所述普通机器节点在获取分发文件之前承担文件请求节点的角色,从文件共享节点下载文件,获取文件之后转换为文件共享节点的角色,为其它普通机器节点提供文件分发服务,实现了分布式系统安装部署时快捷、高效地将安装包分发到生产环境中机器集群的各个节点,避免了单个下载服务器成为性能瓶颈,有效地提升系统的部署效率。
附图说明
53.图1为本发明提供的一种大规模机器集群内大文件分发系统示意图。
54.图2为本发明实施例提供的节点优选算法流程图。
具体实施方式
55.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
56.本发明提供了一种大规模机器集群内大文件分发方法,该方法应用于监控节点,该方法包括:接收生产环境的机器数量、ip地址段、网络带宽、种子机器节点数量占比的输入;采用种子机器节点优选算法,按照种子机器节点数量占比,从生产环境机器集群中选取多个种子机器节点,并将原始文件、配置管理软件安装包拷贝到各种子机器节点中的指定路径;创建文件分发任务,发出任务启动指令,监控整个分发过程;文件分发任务结束后汇总并显示分发结果。
57.优选地,所述种子机器节点优选算法,具体如下:基于生产环境机器数量和种子机器节点数量占比,计算种子机器节点具体数量并记作n;将生产环境ip地址段划分为n等份,从每一等份的ip地址段中选取出一个中位数ip地址的节点,构成种子机器节点的集合。
58.本发明提供了一种大规模机器集群内大文件分发方法,该方法应用于种子机器节点,该方法包括:接收监控节点的控制,安装配置管理软件,设置参数运行后,与其他种子机器节点相互连接,共同组成分布式共享配置中心;为普通机器节点提供初始的文件分发服务。
59.优选地,所述分布式共享配置中心的初始化如下:
60.在分布式共享配置中心中生成一条第一类型的配置项记录,数据形式为key-value键值对,其内容为文件分发任务,包括:任务id字段、文件路径字段、文件大小字段、文件检验码字段、任务状态字段和资源等待时长字段;其中,
61.所述任务id字段,用于区分不同的文件分发任务实例,初始值为1,每创建一个文
件分发任务实例时任务id自动加1;
62.所述文件路径字段,用于描述需分发文件存储在节点磁盘中的全路径,从根路径开始并包含文件名称,根据用户设定值进行初始化;
63.所述文件大小字段,用于描述需分发文件的大小,根据分发文件的实际大小进行初始化;
64.所述文件检验码字段,用于描述需分发文件的校验码,对分发文件应用sha256哈希算法计算得到;
65.所述任务状态字段,用于描述文件分发任务实例的运行状态,具有init、start和finish三种取值,分别表示任务已就绪、任务已启动、任务已结束,统一初始化为init;
66.所述资源等待时长字段,用于普通机器节点未请求到可提供文件分发服务的节点时,再次重试之前睡眠等待的时长,基于分发文件的下载时长初始化为文件大小除以网络带宽得到的值;
67.基于种子节点生成多条第二类型的配置项记录,记录条数与种子节点的数量相等,数据形式为key-value键值对,其内容为提供文件分发服务的文件共享节点,包括:节点ip字段、任务id字段、节点工作状态字段、最大连接数量字段、客户端数量字段、客户端列表字段和记录创建时刻字段;其中,
68.所述节点ip字段,用于描述并初始化为该节点在生产环境中的ip地址;
69.所述任务id字段的值与第一类型配置项记录中任务id字段保持一致;
70.所述节点工作状态字段,用于描述节点的运行状态,具有available和busy两种取值,分别表示该节点可接受新的客户端连接、不接受新的客户端连接,统一初始化为available;
71.所述最大连接数量字段,用于描述该节点最多可同时供几个客户端进行连接并下载文件,根据用户设定值进行初始化,默认值为5;
72.所述客户端数量字段,用于描述正在从该节点进行文件下载的客户端的数量,统一初始化为0;
73.所述客户端列表字段,用于描述当前有哪些客户端正在从本节点进行文件下载,统一初始化为空;
74.所述记录创建时刻字段,用于描述当前记录何时开始提供文件共享服务,初始化为记录创建时的系统时间。
75.优选地,在监控节点中启动文件分发任务,将分布式共享配置中心的第一类型配置项记录的状态字段的值由init变为start。
76.优选地,监控节点汇总得到全部节点文件下载成功之后,将分布式共享配置中心第一类型配置项记录的状态字段的值由start变为finish。
77.本发明提供了一种大规模机器集群内大文件分发方法,该方法应用于普通机器节点,该方法包括:接收监控节点的控制,安装节点代理软件,将节点代理软件设置为实时监控分布式共享配置中心的配置项记录变化情况;监控到分布式共享配置中心的第一类型配置项记录发生了变化时,将第一类型配置项记录同步到本节点,若状态字段的当前值为start,则启动本节点文件请求任务,采用节点优选算法,选取一个最优的节点作为下载源节点,然后从下载源节点下载文件;本节点文件请求任务完成后,从分布式共享配置中心中
获取下载源节点对应的第二类型配置项记录,将本节点ip从客户端列表字段中删除,客户端数量字段的数值减1,如果工作状态字段的值为busy则改为available;然后在分布式共享配置中心中生成一条新的第二类型配置项记录,记录的节点ip字段值为本节点ip,value中节点工作状态字段值为available,客户端数量字段值为0,客户端列表字段值为空数组,本节点的角色切换为文件共享节点,即可为后续的普通机器节点提供文件分发服务。
78.优选地,所述节点优选算法具体如下:
79.1)将文件分发任务中资源等待时长字段的值拷贝为本节点资源等待时长;
80.2)申请分布式锁;
81.3)读取全部第二类型配置项记录,筛选出工作状态字段的值为available的记录,生成可用文件共享节点列表;
82.4)如果可用文件共享节点列表为空,释放分布式锁,睡眠本节点资源等待时长之后,将本节点资源等待时长的值减半,若值为1则保持不变,然后跳转到步骤2);
83.5)如果文件分发可用节点列表不为空,基于客户端数量字段和记录创建时刻字段的数值加权计算得到节点的优先级,按照从大到小的顺序排序;
84.6)选取优先级最大的节点作为下载源节点,修改下载源节点对应的第二配置项记录,客户端数量字段的数值加1,本节点ip添加至客户端列表字段,如果客户端数量字段的数值与最大连接数量字段的值相等,将工作状态字段的值改为busy;
85.7)释放分布式锁,返回下载源节点的ip。
86.本发明提供了一种大规模机器集群内大文件分发系统,该系统包括:位于同一局域网的监控节点和机器集群;所述机器集群包括:多个种子机器节点和多个普通机器节点;所述监控节点包括处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得上述方法被执行;所述种子机器节点,包括处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得上述方法被执行;所述普通机器节点,包括处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得上述方法被执行。
87.图1为本发明提供的一种大规模机器集群内大文件分发系统示意图。如图1所示,该系统包括:位于同一局域网的监控节点和机器集群;所述机器集群包括:多个种子机器节点和多个普通机器节点。
88.所述监控节点,安装监控中心软件,用于1)启动参数的注入;2)发出任务启动指令;3)监控整个部署过程;4)在任务结束后,汇总部署结果(成功情况和耗时)。
89.所述种子机器节点,存储待分发文件的完整拷贝,安装配置管理软件,用于1)承担文件共享节点的角色,作为最初的文件共享节点提供文件分发服务;2)构建分布式共享配置中心,为集群内的普通机器节点提供通知和协调服务。
90.所述普通机器节点,安装节点代理软件,用于1)获取文件之前承担文件请求节点的角色,从文件共享节点下载文件;2)获取文件之后承担文件共享节点的角色,为其它普通机器节点提供文件分发服务。
91.整个系统初始化过程如下:
92.1)监控节点上安装有监控中心软件,存储有待分发的原始文件、配置管理软件安装包、节点代理软件安装包。
93.2)监控中心软件接收生产环境的机器数量、ip地址段、网络带宽、种子机器节点数量占比的输入。
94.3)监控中心软件内采用种子机器节点优选算法,按照种子机器节点数量占比,从生产环境机器集群中选取多个种子机器节点,并将原始文件、配置管理软件安装包拷贝到各种子机器节点中的指定路径。
95.4)通过监控中心软件的控制下,在种子机器节点中安装配置管理软件,设置参数运行后与其他种子机器节点相互连接,共同组成分布式共享配置中心。
96.5)在分布式共享配置中心生成配置项记录。
97.在分布式共享配置中心中生成一条第一类型的配置项记录,数据形式为key-value键值对,其内容为文件分发任务,包括:任务id字段、文件路径字段、文件大小字段、文件检验码字段、任务状态字段和资源等待时长字段;其中,
98.所述任务id字段,用于区分不同的文件分发任务实例,初始值为1,每创建一个文件分发任务实例时任务id自动加1;
99.所述文件路径字段,用于描述需分发文件存储在节点磁盘中的全路径,从根路径开始并包含文件名称,根据用户设定值进行初始化;
100.所述文件大小字段,用于描述需分发文件的大小,根据分发文件的实际大小进行初始化;
101.所述文件检验码字段,用于描述需分发文件的校验码,对分发文件应用sha256哈希算法计算得到;
102.所述任务状态字段,用于描述文件分发任务实例的运行状态,具有init、start和finish三种取值,分别表示任务已就绪、任务已启动、任务已结束,统一初始化为init;
103.所述资源等待时长字段,用于普通机器节点未请求到可提供文件分发服务的节点时,再次重试之前睡眠等待的时长,基于分发文件的下载时长初始化为文件大小除以网络带宽得到的值;
104.基于种子节点生成多条第二类型的配置项记录,记录条数与种子节点的数量相等,数据形式为key-value键值对,其内容为提供文件分发服务的文件共享节点,包括:节点ip字段、任务id字段、节点工作状态字段、最大连接数量字段、客户端数量字段、客户端列表字段和记录创建时刻字段;其中,
105.所述节点ip字段,用于描述并初始化为该节点在生产环境中的ip地址;
106.所述任务id字段的值与第一类型配置项记录中任务id字段保持一致;
107.所述节点工作状态字段,用于描述节点的运行状态,具有available和busy两种取值,分别表示该节点可接受新的客户端连接、不接受新的客户端连接,统一初始化为available;
108.所述最大连接数量字段,用于描述该节点最多可同时供几个客户端进行连接并下载文件,根据用户设定值进行初始化,默认值为5;
109.所述客户端数量字段,用于描述正在从该节点进行文件下载的客户端的数量,统一初始化为0;
110.所述客户端列表字段,用于描述当前有哪些客户端正在从本节点进行文件下载,统一初始化为空;
111.所述记录创建时刻字段,用于描述当前记录何时开始提供文件共享服务,初始化为记录创建时的系统时间。
112.6)通过监控中心软件在普通机器节点中远程安装节点代理软件,将节点代理软件设置为实时监控分布式共享配置中心的配置项记录变化情况。
113.整个系统数据的交互和更新过程如下:
114.7)在监控中心软件中启动文件分发任务,将分布式共享配置中心的第一类型配置项记录的状态字段的值由init变为start。
115.8)节点代理软件监控到分布式共享配置中心的第一类型配置项记录发生了变化时,将第一类型配置项记录同步到本节点,若状态字段的当前值为start,则启动本节点文件请求任务。
116.9)节点代理软件采用节点优选算法,选取一个最优的节点作为下载源节点,然后从下载源节点下载文件。
117.10)本节点文件请求任务完成后,节点代理软件从分布式共享配置中心中获取下载源节点对应的第二类型配置项记录,将本节点ip从客户端列表字段中删除,客户端数量字段的数值减1,如果工作状态字段的值为busy则改为available;然后在分布式共享配置中心中生成一条新的第二类型配置项记录,记录的节点ip字段值为本节点ip,value中节点工作状态字段值为available,客户端数量字段值为0,客户端列表字段值为空数组,本节点的角色切换为文件共享节点,即可为后续的普通机器节点提供文件分发服务。
118.11)监控中心软件汇总得到全部节点文件下载成功之后,将分布式共享配置中心第一类型配置项记录的状态字段的值由start变为finish,在界面显示文件分发总共的耗时情况。
119.图2为本发明实施例提供的节点优选算法流程图。如图2所示,该优选方法包括以下步骤:
120.1)将第一类型配置项记录即文件分发任务中资源等待时长字段的值拷贝为本节点资源等待时长;
121.2)申请分布式锁;
122.3)读取全部第二类型配置项记录即文件共享节点,筛选出工作状态字段的值为available的记录,生成可用文件共享节点列表;
123.4)如果可用文件共享节点列表为空,释放分布式锁,睡眠本节点资源等待时长;由于机器集群中文件共享节点的资源数量呈指数级增长,因此每一次睡眠均将本节点资源等待时长的值减半,若值为1则保持不变,然后跳转到步骤2);
124.5)如果文件分发可用节点列表不为空,以客户端数量字段的值和记录创建时刻字段的值为参数加权计算得到节点的优先级,按照从大到小的顺序排序,生成文件共享节点优先级列表;其中,参数的选择基于服务时长短的文件共享节点优先选取和负载低的文件共享节点优先选取这两条原则,后一条原则的权重要高于前一条,即负载加权项的分值远高于服务时长加权项的分值,只有在负载相等的情况下才比较服务时长;
125.6)选取优先级最大的节点作为下载源节点,修改下载源节点对应的第二配置项记录,客户端数量字段的数值加1,本节点ip添加至客户端列表字段,如果客户端数量字段的数值与最大连接数量字段的值相等,将工作状态字段的值改为busy,下载源节点不再接受
新的客户端请求;
126.7)释放分布式锁,返回下载源节点的ip。
127.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1