一种节点镜像优化方法、装置、电子设备及存储介质与流程

文档序号:32253789发布日期:2022-11-19 03:12阅读:45来源:国知局
一种节点镜像优化方法、装置、电子设备及存储介质与流程

1.本发明涉及镜像处理技术领域,尤其涉及一种节点镜像优化方法、装置、电子设备及存储介质。


背景技术:

2.在现如今的大规模集群训练中,各个节点在接受容器创建请求时都会拉取不同镜像来创建容器。
3.大型训练镜像往往空间占用会超过20g,拉取和解压时间很长,过长的等待时间会耽误工程师效率。
4.此外,由于大型训练镜像往往是来自工程师自己创建,无法复用,镜像的总占用空间会很大。大型的训练镜像往往很快就会使得节点空间到达警戒值,从而不得不进行节点镜像清理。而原本缓存的镜像被清理掉,导致下次需要进行容器创建时,又需要重复从镜像层第一层开始拉取整个大型训练镜像,导致时间占用率过高。


技术实现要素:

5.本发明提供了一种节点镜像优化方法、装置、电子设备及存储介质,用于解决现有的节点镜像搭建方法无法复用,导致总占用空间过大;且拉取大型训练镜像时时间占用率过高的技术问题。
6.本发明提供了一种节点镜像优化方法,包括:
7.获取各节点的节点镜像,并提取所述节点镜像对应的镜像搭建脚本;
8.获取所有节点的镜像搭建脚本中的重复镜像搭建语句;
9.采用所述重复镜像搭建语句搭建统一基础镜像;
10.采用所述统一基础镜像优化所述节点镜像。
11.可选地,所述获取所有节点的镜像搭建脚本中的重复镜像搭建语句的步骤,包括:
12.创建字典映射;
13.在所述镜像搭建脚本中获取未更新镜像搭建脚本;
14.在所述未更新镜像搭建脚本中确定当前镜像搭建脚本;
15.获取所述当前镜像搭建脚本的第一镜像搭建语句;
16.采用所述第一镜像搭建语句更新所述字典映射,得到更新字典映射;
17.判断是否存在未更新镜像搭建脚本;
18.若是,返回在所述未更新镜像搭建脚本中确定当前镜像搭建脚本的步骤;
19.若否,根据所述更新字典映射获取所有所述节点的镜像搭建脚本中的重复镜像搭建语句。
20.可选地,所述采用所述第一镜像搭建语句更新所述字典映射,得到更新字典映射的步骤,包括:
21.在所有所述第一镜像搭建语句中确定未匹配镜像搭建语句;
22.在所述未匹配镜像搭建语句中确定当前镜像搭建语句;
23.在所述字典映射中匹配所述当前镜像搭建语句的映射关系;
24.若匹配失败,则以所述当前镜像搭建语句为键,以1为值构建映射关系,并将所述映射关系添加进所述字典映射中,得到更新字典映射;
25.若匹配成功,则将所述字典映射中所述映射关系的值加1,得到更新字典映射;
26.判断是否存在未匹配镜像搭建语句;
27.若是,返回在所述未匹配镜像搭建语句中确定当前镜像搭建语句的步骤;
28.若否,输出所述更新字典映射。
29.可选地,所述根据所述更新字典映射获取所有所述节点的镜像搭建脚本中的重复镜像搭建语句的步骤,包括:
30.从所述更新字典映射中提取映射关系的值大于1的第一镜像搭建语句,作为重复镜像搭建语句。
31.可选地,所述采用所述统一基础镜像优化所述节点镜像的步骤,包括:
32.从所有所述镜像搭建脚本中获取待优化镜像搭建脚本;
33.在所述待优化镜像搭建脚本中确定当前待优化镜像搭建脚本;
34.获取所述当前待优化镜像搭建脚本的第二镜像搭建语句;
35.采用所述第二镜像搭建语句和所述统一基础镜像生成不可复用镜像语句列表;
36.采用所述不可复用镜像语句列表和所述统一基础镜像生成所述当前待优化镜像搭建脚本的优化镜像搭建脚本,并采用所述优化镜像搭建脚本生成优化节点镜像;
37.判断是否存在待优化镜像搭建脚本;
38.若是,返回在所述待优化镜像搭建脚本中确定当前待优化镜像搭建脚本的步骤;
39.若否,输出所有节点的优化节点镜像。
40.可选地,所述采用所述第二镜像搭建语句和所述统一基础镜像生成不可复用镜像语句列表的步骤,包括:
41.遍历所述第二镜像搭建语句,依次判断每个所述第二镜像搭建语句是否处于所述统一基础镜像中;
42.若是,获取所述第二镜像搭建语句在所述当前待优化镜像搭建脚本中的的第一镜像层号,并将所述第二镜像搭建语句及对应的所述第一镜像层号添加进预设集合中;
43.获取每个所述第二镜像搭建语句在所述统一基础镜像中的第二镜像层号;
44.从所述第二镜像搭建语句中获取第一镜像层号与第二镜像层号相同的目标镜像搭建语句;
45.判断所述目标镜像搭建语句中是否存在第一镜像层号为1的初始镜像搭建语句;
46.若是,以所述第一镜像层号为基础,在所述目标镜像搭建语句中获取包含所述初始镜像搭建语句的连续镜像搭建语句,并统计所述连续镜像语句的条数t;
47.将不在所述连续镜像搭建语句中的所述第二镜像搭建语句保存在不可复用镜像语句列表中。
48.可选地,所述采用所述不可复用镜像语句列表和所述统一基础镜像生成所述当前待优化镜像搭建脚本的优化镜像搭建脚本的步骤,包括:
49.从所述统一基础镜像中获取前t条重复镜像搭建语句;
50.采用所述前t条重复镜像搭建语句和所述不可复用镜像语句列表对应的第二镜像搭建语句,生成所述待优化镜像搭建脚本的优化镜像搭建脚本。
51.本发明还提供了一种节点镜像优化装置,包括:
52.镜像搭建脚本提取模块,用于获取各节点的节点镜像,并提取所述节点镜像对应的镜像搭建脚本;
53.重复镜像搭建语句获取模块,用于获取所有节点的镜像搭建脚本中的重复镜像搭建语句;
54.统一基础镜像搭建模块,用于采用所述重复镜像搭建语句搭建统一基础镜像;
55.优化模块,用于采用所述统一基础镜像优化所述节点镜像。
56.本发明还提供了一种电子设备,所述设备包括处理器以及存储器:
57.所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
58.所述处理器用于根据所述程序代码中的指令执行如上任一项所述的节点镜像优化方法。
59.本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如上任一项所述的节点镜像优化方法。
60.从以上技术方案可以看出,本发明具有以下优点:本发明公开了一种节点镜像优化方法,包括:获取各节点的节点镜像,并提取节点镜像对应的镜像搭建脚本;获取所有节点的镜像搭建脚本中的重复镜像搭建语句;采用重复镜像搭建语句搭建统一基础镜像;采用统一基础镜像优化所述节点镜像。
61.由上述步骤可知,本发明通过提取各节点的节点镜像的重复镜像搭建语句来搭建统一基础镜像,并基于统一基础镜像来优化各节点的节点镜像,通过对重复镜像搭建语句的复用,使得优化后的所有节点的优化节点镜像的总占用空间得到缩减。此外,由于存在统一基础镜像,各节点在拉取镜像时,可以无需拉取该镜像与统一基础镜像可复用的部分镜像搭建语句,从而降低了拉取镜像时的时间占用率。
附图说明
62.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
63.图1为本发明实施例提供的一种节点镜像优化方法的步骤流程图;
64.图2为本发明另一实施例提供的一种节点镜像优化方法的步骤流程图;
65.图3为本发明实施例提供的一种节点镜像优化装置的结构框图。
具体实施方式
66.本发明实施例提供了一种节点镜像优化方法、装置、电子设备及存储介质,用于解决现有的节点镜像搭建方法无法复用,导致总占用空间过大;且拉取大型训练镜像时时间占用率过高的技术问题。
67.为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明
实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
68.请参阅图1,图1为本发明实施例提供的一种节点镜像优化方法的步骤流程图。
69.本发明提供的一种节点镜像搭建方法,具体可以包括以下步骤:
70.步骤101,获取各节点的节点镜像,并提取节点镜像对应的镜像搭建脚本;
71.镜像,是一个特殊的文件系统。除了提供容器运行时所需的程序、库、资源配置外,还包含了一些为运行时准备的配置参数(如环境变量)。镜像不包含动态数据,其本身内容在被用以创建后也不会改变。本质是多个基于镜像层依次挂载的结果,而容器的文件系统则是在以只读方式挂载镜像后增加的一个可读可写的环境。
72.镜像搭建脚本,一个镜像一般是由一个镜像搭建脚本创建而成。镜像搭建脚本,即dockerfile中的每条语句都对应着创建镜像的一层镜像层。
73.在本发明实施例中,可以通过官方镜像指令得到各节点的节点镜像的镜像搭建脚本。
74.步骤102,获取所有节点的镜像搭建脚本中的重复镜像搭建语句;
75.在本发明实施例中,每个镜像搭建脚本均分别由多个镜像搭建语句构成。重复镜像搭建语句,是指在所有节点的镜像搭建脚本中重复出现的镜像搭建语句。
76.在本发明实施例中,虽然各个镜像搭建脚本往往由各个工程师各自搭建而成,没法直接进行复用,但各个镜像搭建脚本中却可能存在结构相同的镜像搭建语句,而结构相同的镜像搭建语句往往可以在不同的镜像搭建脚本中复用。因此,在本发明实施例中,可以从所有节点的镜像搭建脚本中筛选出存在重复的镜像搭建语句作为重复镜像搭建语句,以作为后续进行镜像搭建时语句复用的基础。
77.步骤103,采用重复镜像搭建语句搭建统一基础镜像;
78.统一基础镜像,是指由所有节点的节点镜像中的重复镜像搭建语句所生成的镜像。由于统一基础镜像中保存了重复镜像搭建语句,因此可以作为多个镜像的搭建基础。将统一基础镜像进行缓存后,多个镜像在以统一基础镜像为基础进行搭建时,无需重复拉取统一基础镜像,从而减少了镜像拉取的时间占用率。
79.步骤104,采用统一基础镜像优化节点镜像。
80.在本发明实施例中,各个节点的节点镜像可以以统一基础镜像为基础进行重新生成,各节点镜像由于存在统一基础镜像的存在,对于存在于统一基础镜像中的脚本搭建语句可以进行复用,从而减少了节点中所有镜像搭建语句的总量,从而减少了节点镜像的总占用空间。
81.由上述步骤可知,本发明通过提取各节点的节点镜像的重复镜像搭建语句来搭建统一基础镜像,并基于统一基础镜像来优化各节点的节点镜像,通过对重复镜像搭建语句的复用,使得优化后的所有节点的优化节点镜像的总占用空间得到缩减。此外,由于存在统一基础镜像,各节点在拉取镜像时,可以无需拉取该镜像与统一基础镜像可复用的部分镜像搭建语句,从而降低了拉取镜像时的时间占用率。
82.请参阅图2,图2为本发明另一实施例提供的一种节点镜像优化方法的步骤流程
图。本实施例在上述任一实施例的基础上做了进一步地细化与补充。具体可以包括以下步骤:
83.步骤201,获取各节点的节点镜像,并提取节点镜像对应的镜像搭建脚本;
84.步骤201与步骤101相同,具体可参考步骤101的描述,此处不再赘述。
85.步骤202,创建字典映射;
86.在本发明实施例中,可以创建一个字典映射d,来统计所有镜像搭建脚本中各镜像搭建语句出现的频次,d初始值为空。
87.具体地,可以以各个镜像搭建语句作为键,将镜像搭建语句出现的次数作为值,生成键值对保存在字典映射d中,以生成与所有镜像搭建语句关联的字典映射。
88.步骤203,在镜像搭建脚本中获取未更新镜像搭建脚本;
89.步骤204,在未更新镜像搭建脚本中确定当前镜像搭建脚本;
90.步骤205,获取当前镜像搭建脚本的第一镜像搭建语句;
91.步骤206,采用第一镜像搭建语句更新字典映射,得到更新字典映射;
92.在具体实现中,可以依次将每个未更新镜像搭建脚本作为当前镜像搭建脚本,采用当前镜像搭建脚本的第一镜像搭建语句去更新字典映射,已得到更新了重复的镜像搭建语句的值的更新字典映射。
93.在一个示例中,步骤206可以包括以下子步骤:
94.s11,在所有第一镜像搭建语句中确定未匹配镜像搭建语句;
95.s12,在未匹配镜像搭建语句中确定当前镜像搭建语句;
96.s13,在字典映射中匹配当前镜像搭建语句的映射关系;
97.s14,若匹配失败,则以当前镜像搭建语句为键,以1为值构建映射关系,并将映射关系添加进字典映射中,得到更新字典映射;
98.s15,若匹配成功,则将字典映射中映射关系的值加1,得到更新字典映射;
99.s16,判断是否存在未匹配镜像搭建语句;
100.s17,若是,返回在未匹配镜像搭建语句中确定当前镜像搭建语句的步骤;
101.s18,若否,输出更新字典映射。
102.在具体实现中,可以依次将当前镜像搭建脚本中未与字典映射匹配的第一镜像搭建语句作为当前镜像搭建语句,并在字典映射中匹配是否存在键为当前镜像搭建语句的映射关系。若匹配成功,表征当前镜像搭建语句已不是第一次出现,此时将字典映射中,当前镜像搭建语句对应的映射关系的值加1,表征当前镜像搭建语句又出现了一次。若匹配失败,表征当前镜像搭建语句为首次出现,此时可以在字典映射中新增一条映射关系,该映射关系以当前镜像搭建语句为键,以1为值,用以表征当前镜像搭建语句第一次出现。
103.接着将下一条未与字典映射完成匹配的第一镜像搭建语句作为当前镜像搭建语句,重复进行匹配操作,直至当前镜像搭建脚本的所有第一镜像搭建语句均完成与字典映射的匹配时,输出更新字典映射。
104.步骤207,判断是否存在未更新镜像搭建脚本;
105.步骤208,若是,返回在未更新镜像搭建脚本中确定当前镜像搭建脚本的步骤;
106.步骤209,若否,根据更新字典映射获取所有节点的镜像搭建脚本中的重复镜像搭建语句;
107.在完成当前镜像搭建脚本的遍历后,将下一个未进行匹配的镜像搭建脚本作为当前镜像搭建脚本,并重复上述步骤以对字典映射进行更新。直至所有镜像搭建脚本均完成匹配时,停止匹配操作,并根据最终的更新字典映射从所有节点的镜像搭建脚本中获取重复镜像搭建语句。
108.在一个示例中,步骤209可以包括:从更新字典映射中提取映射关系的值大于1的第一镜像搭建语句,作为重复镜像搭建语句。
109.在完成整个更新字典映射的构建后,可以从更新字典映射中提取映射关系的值大于1的第一镜像搭建语句作为重复镜像搭建语句。
110.步骤210,采用重复镜像搭建语句搭建统一基础镜像;
111.统一基础镜像,是指由所有节点的节点镜像中的重复镜像搭建语句所生成的镜像。由于统一基础镜像中保存了重复镜像搭建语句,因此可以作为多个镜像的搭建基础。将统一基础镜像进行缓存后,多个镜像在以统一基础镜像为基础进行搭建时,无需重复拉取统一基础镜像,从而减少了镜像拉取的时间占用率。
112.步骤211,采用统一基础镜像优化节点镜像。
113.在本发明实施例中,各个节点的节点镜像可以以统一基础镜像为基础进行重新生成,各节点镜像由于存在统一基础镜像的存在,对于存在于统一基础镜像中的脚本搭建语句可以进行复用,从而减少了节点中所有镜像搭建语句的总量,从而减少了节点镜像的总占用空间。
114.在一个示例中,采用统一基础镜像优化节点镜像的步骤,可以包括以下子步骤:
115.s21,从所有镜像搭建脚本中获取待优化镜像搭建脚本;
116.s22,在待优化镜像搭建脚本中确定当前待优化镜像搭建脚本;
117.s23,获取当前待优化镜像搭建脚本的第二镜像搭建语句;
118.s24,采用第二镜像搭建语句和统一基础镜像生成不可复用镜像语句列表;
119.在本发明实施例中,不可复用镜像语句列表用于存储不在复数个镜像搭建脚本中出现的镜像脚本语句。
120.在生成统一基础镜像后,可以分别以镜像搭建脚本中的每一个待优化镜像搭建脚本作为当前待优化镜像搭建脚本,并对当前待优化镜像搭建脚本进行脚本优化。
121.在具体实现中,在对当前待优化镜像搭建脚本进行优化时,首先可以通过统一基础镜像筛选出当前待优化镜像搭建脚本中不可复用的第二镜像搭建语句,并采用不可复用的第二镜像搭建语句生成不可复用镜像语句列表。
122.在一个示例中,采用第二镜像搭建语句和统一基础镜像生成不可复用镜像语句列表的步骤,可以包括:
123.s241,遍历第二镜像搭建语句,依次判断每个第二镜像搭建语句是否处于统一基础镜像中;
124.s242,若是,获取第二镜像搭建语句在当前待优化镜像搭建脚本中的的第一镜像层号,并将第二镜像搭建语句及对应的第一镜像层号添加进预设集合中;
125.s243,获取每个第二镜像搭建语句在统一基础镜像中的第二镜像层号;
126.s244,从第二镜像搭建语句中获取第一镜像层号与第二镜像层号相同的目标镜像搭建语句;
127.s245,判断目标镜像搭建语句中是否存在第一镜像层号为1的初始镜像搭建语句;
128.s246,若是,以第一镜像层号为基础,在目标镜像搭建语句中获取包含初始镜像搭建语句的连续镜像搭建语句,并统计连续镜像语句的条数t;
129.s247,将不在连续镜像搭建语句中的第二镜像搭建语句保存在不可复用镜像语句列表中。
130.在具体实现中,可以遍历第二镜像搭建语句,依次判断统一基础镜像中是否有与第二镜像搭建语句相同的语句,若是,获取与统一基础镜像存在相同语句的第二镜像搭建语句在当前待优化镜像搭建脚本中的第一镜像层号,并将第二镜像搭建语句及对应的第一镜像层号添加进预设集合中,该集合中记录了当前待优化镜像搭建脚本中所有存在于统一基础镜像中的第二镜像搭建语句。
131.接着获取存在于统一基础镜像中的第二镜像搭建语句在统一基础镜像中的第二镜像层号,并将第一镜像层号和第二镜像层号相同的第二镜像搭建语句提取出来作为目标镜像搭建语句。
132.需要说明的是,提取目标镜像搭建语句的目的在于,当采用统一基础镜像中的与目标镜像语句相对应的语句替换目标镜像搭建语句进行镜像构建时,从统一基础镜像中获取的语句由于是与目标镜像搭建语句从层次、内容完全对应的镜像搭建语句,应该其不会影响原镜像脚本结构的完整性,新生成的镜像搭建脚本内的镜像搭建语句的前后顺序、语句内容也与原镜像脚本保持一致。
133.在获取到目标镜像搭建语句后,可以判断目标镜像搭建语句中是否存在第一镜像称号为1的初始镜像搭建语句;若是,表征当前待优化镜像搭建脚本的第一层与统一基础镜像的第一层相同。此时,可以以第一镜像层号为基础,获取第一镜像层号连续的t条连续镜像语句。这t条连续镜像语句,即为统一基础镜像中可被当前待优化镜像搭建语句复用的部分。当前待优化镜像搭建语句中除这t条连续镜像语句以外的部分即为不可复用部分,将这部分不可复用的第二镜像搭建语句保存在不可复用镜像语句列表中,用于在后续进行节点镜像优化时使用。
134.需要说明的是,由于目标镜像搭建语句的第一镜像层号与第二镜像层号相同,第一镜像层号连续的t条连续镜像语句的第二镜像层号也相同,因此,t条连续镜像语句也为统一基础镜像中从第一层开始的t条连续的镜像语句。因此在采用这t条连续镜像语句进行复用时,不会额外引入当前待优化镜像搭建语句中所没有的镜像层。
135.s25,采用不可复用镜像语句列表和统一基础镜像生成当前待优化镜像搭建脚本的优化镜像搭建脚本,并采用优化镜像搭建脚本生成优化节点镜像;
136.在获取到当前待优化镜像搭建脚本的不可复用镜像语句列表后,可以采用不可复用镜像语句列表和统一基础镜像生成当前待优化镜像搭建脚本的优化镜像搭建脚本,并采用优化镜像搭建脚本生成优化节点镜像。
137.在一个示例中,采用不可复用镜像语句列表和统一基础镜像生成当前待优化镜像搭建脚本的优化镜像搭建脚本的步骤,可以包括:
138.s251,从统一基础镜像中获取前t条重复镜像搭建语句;
139.s252,采用前t条重复镜像搭建语句和不可复用镜像语句列表对应的第二镜像搭建语句,生成待优化镜像搭建脚本的优化镜像搭建脚本。
140.在本发明实施例中,可以从节点中缓存的统一基础镜像中获取前t条重复镜像搭建语句,再拉取不可复用镜像语句列表中的第二镜像搭建语句来生成待优化镜像搭建脚本的优化镜像搭建脚本。
141.由于生成优化镜像搭建脚本的过程中只需要拉取不可复用镜像语句列表中的第二镜像搭建语句,因此相对于传统的镜像搭建方法,时间占用率较低。同时,由于在生成镜像的过程中,复用了缓存中的统一基础镜像,使得所有待优化镜像搭建脚本采用镜像搭建过程的镜像搭建语句的数量得到缩减,从而减少了总空间占用。
142.s26,判断是否存在待优化镜像搭建脚本;
143.s27,若是,返回在待优化镜像搭建脚本中确定当前待优化镜像搭建脚本的步骤;
144.s28,若否,输出所有节点的优化节点镜像。
145.在完成当前待优化镜像搭建脚本的优化后,可以按照继续对还未优化的其他待优化镜像搭建脚本进行优化,直至完成所有待优化镜像搭建脚本的优化,输出所有节点的优化节点镜像。
146.由上述步骤可知,本发明通过提取各节点的节点镜像的重复镜像搭建语句来搭建统一基础镜像,并基于统一基础镜像来优化各节点的节点镜像,通过对重复镜像搭建语句的复用,使得优化后的所有节点的优化节点镜像的总占用空间得到缩减。此外,由于存在统一基础镜像,各节点在拉取镜像时,可以无需拉取该镜像与统一基础镜像可复用的部分镜像搭建语句,从而降低了拉取镜像时的时间占用率。
147.请参阅图3,图3为本发明实施例提供的一种节点镜像优化装置的结构框图。
148.本发明实施例提供了一种节点镜像优化装置,包括:
149.镜像搭建脚本提取模块301,用于获取各节点的节点镜像,并提取节点镜像对应的镜像搭建脚本;
150.重复镜像搭建语句获取模块302,用于获取所有节点的镜像搭建脚本中的重复镜像搭建语句;
151.统一基础镜像搭建模块303,用于采用重复镜像搭建语句搭建统一基础镜像;
152.优化模块304,用于采用统一基础镜像优化节点镜像。
153.在本发明实施例中,重复镜像搭建语句获取模块302,包括:
154.字典映射创建子模块,用于创建字典映射;
155.未更新镜像搭建脚本获取子模块,用于在镜像搭建脚本中获取未更新镜像搭建脚本;
156.当前镜像搭建脚本确定子模块,用于在未更新镜像搭建脚本中确定当前镜像搭建脚本;
157.第一镜像搭建语句获取子模块,用于获取当前镜像搭建脚本的第一镜像搭建语句;
158.更新字典映射生成子模块,用于采用第一镜像搭建语句更新字典映射,得到更新字典映射;
159.未更新镜像搭建脚本判断子模块,用于判断是否存在未更新镜像搭建脚本;
160.第一返回子模块,用于若是,返回在未更新镜像搭建脚本中确定当前镜像搭建脚本的步骤;
161.重复镜像搭建语句获取子模块,用于若否,根据更新字典映射获取所有节点的镜像搭建脚本中的重复镜像搭建语句。
162.在本发明实施例中,更新字典映射生成子模块,包括:
163.未匹配镜像搭建语句确定单元,用于在所有第一镜像搭建语句中确定未匹配镜像搭建语句;
164.当前镜像搭建语句确定单元,用于在未匹配镜像搭建语句中确定当前镜像搭建语句;
165.映射关系匹配单元,用于在字典映射中匹配当前镜像搭建语句的映射关系;
166.映射关系构建单元,用于若匹配失败,则以当前镜像搭建语句为键,以1为值构建映射关系,并将映射关系添加进字典映射中,得到更新字典映射;
167.更新字典映射生成单元,用于若匹配成功,则将字典映射中映射关系的值加1,得到更新字典映射;
168.未匹配镜像搭建语句判断单元,用于判断是否存在未匹配镜像搭建语句;
169.返回单元,用于若是,返回在未匹配镜像搭建语句中确定当前镜像搭建语句的步骤;
170.更新字典映射输出单元,用于若否,输出更新字典映射。
171.在本发明实施例中,重复镜像搭建语句获取子模块,包括:
172.重复镜像搭建语句获取单元,用于从更新字典映射中提取映射关系的值大于1的第一镜像搭建语句,作为重复镜像搭建语句。
173.在本发明实施例中,优化模块304,包括:
174.待优化镜像搭建脚本获取子模块,用于从所有镜像搭建脚本中获取待优化镜像搭建脚本;
175.当前待优化镜像搭建脚本确定子模块,用于在待优化镜像搭建脚本中确定当前待优化镜像搭建脚本;
176.第二镜像搭建语句获取子模块,用于获取当前待优化镜像搭建脚本的第二镜像搭建语句;
177.不可复用镜像语句列表生成子模块,用于采用第二镜像搭建语句和统一基础镜像生成不可复用镜像语句列表;
178.优化节点镜像生成子模块,用于采用不可复用镜像语句列表和统一基础镜像生成当前待优化镜像搭建脚本的优化镜像搭建脚本,并采用优化镜像搭建脚本生成优化节点镜像;
179.待优化镜像搭建脚本判断子模块,用于判断是否存在待优化镜像搭建脚本;
180.第二返回子模块,用于若是,返回在待优化镜像搭建脚本中确定当前待优化镜像搭建脚本的步骤;
181.优化节点镜像输出子模块,用于若否,输出所有节点的优化节点镜像。
182.在本发明实施例中,不可复用镜像语句列表生成子模块,包括:
183.遍历判断单元,用于遍历第二镜像搭建语句,依次判断每个第二镜像搭建语句是否处于统一基础镜像中;
184.第一镜像层号获取单元,用于若是,获取第二镜像搭建语句在当前待优化镜像搭
建脚本中的的第一镜像层号,并将第二镜像搭建语句及对应的第一镜像层号添加进预设集合中;
185.第二镜像层号获取单元,用于获取每个第二镜像搭建语句在统一基础镜像中的第二镜像层号;
186.目标镜像搭建语句获取单元,用于从第二镜像搭建语句中获取第一镜像层号与第二镜像层号相同的目标镜像搭建语句;
187.初始镜像搭建语句判断单元,用于判断目标镜像搭建语句中是否存在第一镜像层号为1的初始镜像搭建语句;
188.连续镜像搭建语句获取单元,用于若是,以第一镜像层号为基础,在目标镜像搭建语句中获取包含初始镜像搭建语句的连续镜像搭建语句,并统计连续镜像语句的条数t;
189.保存单元,用于将不在连续镜像搭建语句中的第二镜像搭建语句保存在不可复用镜像语句列表中。
190.在本发明实施例中,优化节点镜像生成子模块,包括:
191.重复镜像搭建语句获取单元,用于从统一基础镜像中获取前t条重复镜像搭建语句;
192.优化镜像搭建脚本搭建单元,用于采用前t条重复镜像搭建语句和不可复用镜像语句列表对应的第二镜像搭建语句,生成待优化镜像搭建脚本的优化镜像搭建脚本。
193.本发明实施例还提供了一种电子设备,设备包括处理器以及存储器:
194.存储器用于存储程序代码,并将程序代码传输给处理器;
195.处理器用于根据程序代码中的指令执行本发明实施例的节点镜像优化方法。
196.本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行本发明实施例的节点镜像优化方法。
197.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
198.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
199.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
200.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
201.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备
以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
202.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
203.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
204.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
205.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1