选项参数同步方法、装置、计算机设备和存储介质与流程

文档序号:29075023发布日期:2022-03-01 22:30阅读:82来源:国知局
选项参数同步方法、装置、计算机设备和存储介质与流程

1.本技术涉及服务器技术领域,特别是涉及一种选项参数同步方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.基本输入输出系统(bios,basic input output system)作为服务器主板最底层、最直接的硬件设置和控制的管理者,其bios选项参数不同可以实现服务器不同的状态或不同的功能,同时,基板管理控制器(bmc,baseboard management controller)是服务器特有的管理控制器,它的主要功能之一是自动监控服务器运行状态,并根据当前运行状态进行调控。因此,bmc与bios之间需要进行bios选项参数的传输。
3.目前的bios与bmc之间传输选项参数的方法,通过监控进程监控bios的选项参数值或者属性文件中的属性信息,当监控进程监控到bios的选项参数值或者属性信息发生更新,则bios将更新后的包含全部选项参数以配置文件的形式发送给bmc,同时向bmc发送用于验证配置文件的属性文件,进而bmc通过属性文件对配置文件中包含的全部的配置参数选项值进行校验,完成对bios的运行状态监控。
4.然而,由于bios的选项参数较多,包含选项参数的配置文件以及对应的属性文件较大,造成同步传输时间较长,进而bmc对bios开机自检过程会减慢服务器重启时的开机速度。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种选项参数同步方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种选项参数同步方法。所述方法包括:
7.基于数据结构列表,检测bios的属性文件和配置文件是否发生更新;
8.若所述属性文件和所述配置文件发生更新,确定所述属性文件和所述配置文件中发生更新的目标选项参数;
9.获取所述目标选项参数的更新信息,将所述更新信息以预设数据结构的形式进行封装,得到封装数据;
10.生成包含所述封装数据的配置变更消息,并将所述配置变更消息发送至bmc,指示所述bmc对本地存储的所述bios的原始属性文件和原始配置文件进行修改更新。
11.采用本方法,基于预设的数据结构列表识别bios选项参数的更新,并且,仅将更新的目标选项参数以预设数据结构的形式进行封装传输,以指示bmc可以根据包含更新信息的数据结构更新本地选项参数,减少选项参数的传输带宽和传输时间,提高了服务器重启速度。
12.在其中一个实施例中,所述基于数据结构列表,检测bios的属性文件和配置文件中的选项参数是否发生更新之前,所述方法还包括:
13.向bmc发送文件查询请求;所述文件查询请求用于指示查询是否存在所述bios的配置文件和属性文件;
14.接收所述bmc反馈的文件查询结果,若所述文件查询结果表示不存在所述bios的配置文件和属性文件,则将所述bios中的属性文件和配置文件压缩封装,得到全量压缩数据;
15.生成包含所述全量压缩数据的创建指令,并将所述创建指令发送至所述bmc,指示所述bmc对所述全量压缩数据进行存储。
16.本实施例中,bios通过文件查询请求,检查bmc的内存中是否存在属性文件和配置文件,以确定在bios发生更新的情况下是否进行目标选项参数的同步方案,同时,若bmc的内存中并不存在原始配置文件和属性文件,则预先基于post创建请求传输压缩的配置文件和属性文件中包含的全量选项参数,同时,传输过程中传输的压缩数据,减少传输过程中的传输带宽,提高传输效率。
17.在其中一个实施例中,所述基于数据结构列表,检测bios的属性文件和配置文件是否发生更新,包括:
18.获取当前运行状态下bios的当前选项参数;
19.基于数据结构列表中每一数据结构包含的所述选项参数的初始元数据和对应的初始数据值,比对每一当前选项参数与所述数据结构列表中所述选项参数的数据一致性;
20.若存在所述当前选项参数与所述选项参数的数据不一致,确定所述bios的属性文件和配置文件发生更新。
21.本实施例中,通过预先建立的数据结构列表比对当前获取的bios选项参数与上一次获取到的选项参数的一致性,从而得到bios选项参数的更新情况,无需创建单独的监控进程即可实现对bios选项参数的监测,降低了服务器中的流量资源占用。
22.在其中一个实施例中,所述获取所述目标选项参数的更新信息,将所述更新信息以预设数据结构的形式进行封装,得到封装数据,包括:
23.确定所述更新信息对应的目标选项参数的更新类型,基于所述目标选项参数的更新类型,生成所述更新类型对应的更新信息;
24.将所述更新类型对应的更新信息添加至所述目标选项参数对应的预设数据结构中,进行封装,得到所述目标选项参数的封装数据。
25.本实施例中,基于确定出的更新类型,生成目标选项参数对应的更新信息,并将该目标选项参数的更新信息以预设数据结构的形式进行封装,得到针对目标选项参数的封装数据,进而,以使bmc基于该目标选项参数的封装数据在本地属性文件和配置文件中仅针对目标选项参数进行参数更新,实现与bios间的选项参数同步,bios与bmc之间传输仅包含目标选项参数对应的封装数据,提高了选项参数同步效率和服务器重启速度。
26.在其中一个实施例中,所述将所述更新类型对应的更新信息添加至所述目标选项参数对应的预设数据结构中,包括:
27.若所述更新类型为删除类型,则将包含空值数据的更新信息更新至所述目标选项参数对应的数据结构中;
28.若所述更新类型为修改选项值类型,则将包含目标选项值的更新信息更新至所述目标选项参数对应的数据结构中;
29.若所述更新类型为补充类型,则将新增选项参数以及对应的新增选项参数值添加至预设数据结构中。
30.本实施例中,针对不同更新类型的更新信息,构建包含更新信息的数据结构,以使根据该包含更新信息的数据结构完成与bmc之间的选项参数同步,减少传输时间,提高数据同步效率。
31.第二方面,本技术提供了一种选项参数同步方法。所述方法包括:
32.接收bios发送的配置变更消息,所述配置变更消息携带包含更新信息的封装数据,所述封装数据由所述bios中发生更新的目标选项参数的更新信息的以预设数据结构的形式进行封装得到;
33.根据所述封装数据中的更新信息对应的更新策略,对本地存储的所述bios的原始属性文件和原始配置文件中的目标选项参数进行更新,得到更新后的属性文件和配置文件。
34.本实施例中,bmc响应于bios推送的patch配置变更消息,解析其patch body部分的封装数据,得到目标选项参数的更新信息,基于该更新信息执行对应的更新策略,实现对bmc中存储的原始配置文件和原始属性文件中的选项参数的更新,提高数据同步效率,加快服务器开机时间。
35.在其中一个实施例中,所述根据所述封装数据中的更新信息对应的更新策略,对本地存储的所述bios的原始属性文件和原始配置文件中的目标选项参数进行更新,得到更新后的属性文件和配置文件,包括:
36.识别所述封装数据中每一更新信息对应的更新策略;
37.若所述更新信息中包含的目标选项参数对应的数据值为空值,删除所述bios的原始属性文件和原始配置文件中目标字段处的所述目标选项参数;
38.若所述更新信息中包含的目标选项参数对应的数据值为目标选项值,更新所述bios的原始属性文件和原始配置文件中目标字段处的选项值;
39.若所述更新信息中包含的目标选项参数为新增选项参数,在所述bios的原始属性文件和原始配置文件中目标字段处添加所述更新信息中的所述新增选项参数以及对应的新增选项参数值。
40.本实施例中,根据patch配置变更消息中解析出的对应更新类型的更新信息,执行不同的更新策略,相应修改本地配置文件和属性文件中的目标选项参数,不需要对全量的选项参数进行更新替换,实现bios与bmc之间的选项参数同步,提高数据同步效率。
41.第三方面,本技术还提供了一种选项参数同步装置。所述装置包括:
42.检测模块,用于基于数据结构列表,检测bios的属性文件和配置文件是否发生更新;
43.确定模块,用于若所述属性文件和所述配置文件发生更新,确定所述属性文件和所述配置文件中发生更新的目标选项参数;
44.获取模块,用于获取所述目标选项参数的更新信息,将所述更新信息以预设数据结构的形式进行封装,得到封装数据;
45.更新传输模块,用于生成包含所述封装数据的配置变更消息,并将所述配置变更消息发送至bmc,指示所述bmc对本地存储的所述bios的原始属性文件和原始配置文件进行
修改更新。
46.采用本装置,基于预设的数据结构列表识别bios选项参数的更新,并且,将更新的目标选项参数以预设数据结构的形式进行传输,以指示bmc可以根据包含更新信息的数据结构更新本地选项参数,减少选项参数的传输带宽和传输时间,提高了服务器重启速度。
47.第四方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
48.基于数据结构列表,检测bios的属性文件和配置文件是否发生更新;
49.若所述属性文件和所述配置文件发生更新,确定所述属性文件和所述配置文件中发生更新的目标选项参数;
50.获取所述目标选项参数的更新信息,将所述更新信息以预设数据结构的形式进行封装,得到封装数据;
51.生成包含所述封装数据的配置变更消息,并将所述配置变更消息发送至bmc,指示所述bmc对本地存储的所述bios的原始属性文件和原始配置文件进行修改更新。
52.第五方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
53.基于数据结构列表,检测bios的属性文件和配置文件是否发生更新;
54.若所述属性文件和所述配置文件发生更新,确定所述属性文件和所述配置文件中发生更新的目标选项参数;
55.获取所述目标选项参数的更新信息,将所述更新信息以预设数据结构的形式进行封装,得到封装数据;
56.生成包含所述封装数据的配置变更消息,并将所述配置变更消息发送至bmc,指示所述bmc对本地存储的所述bios的原始属性文件和原始配置文件进行修改更新。
57.第六方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
58.基于数据结构列表,检测bios的属性文件和配置文件是否发生更新;
59.若所述属性文件和所述配置文件发生更新,确定所述属性文件和所述配置文件中发生更新的目标选项参数;
60.获取所述目标选项参数的更新信息,将所述更新信息以预设数据结构的形式进行封装,得到封装数据;
61.生成包含所述封装数据的配置变更消息,并将所述配置变更消息发送至bmc,指示所述bmc对本地存储的所述bios的原始属性文件和原始配置文件进行修改更新。
62.上述选项参数同步方法、装置、计算机设备、存储介质和计算机程序产品,基于数据结构列表,检测bios的属性文件和配置文件是否发生更新;若所述属性文件和所述配置文件发生更新,确定所述属性文件和所述配置文件中发生更新的目标选项参数;获取所述目标选项参数的更新信息,将所述更新信息以预设数据结构的形式进行封装,得到封装数据;生成包含所述封装数据的配置变更消息,并将所述配置变更消息发送至bmc,指示所述bmc对本地存储的所述bios的原始属性文件和原始配置文件进行修改更新。采用本方法,基于预设的数据结构列表识别bios选项参数的更新,然后,仅将更新的目标选项参数以预设数据结构的形式进行传输,以指示bmc可以根据包含更新信息的数据结构更新本地选项参
数,减少选项参数的传输带宽和传输时间,提高了服务器重启速度。
附图说明
63.图1为一个实施例中bios与bmc间报文消息传输的流程示意图;
64.图2为一个实施例中选项参数同步方法的流程示意图;
65.图3为一个实施例中bios配置版本信息查询步骤的流程示意图;
66.图4为一个实施例中检测bios选项参数更新步骤的流程示意图;
67.图5为一个实施例中将目标选项参数的更新信息封装步骤的流程图;
68.图6为一个实施例中针对不同更新类型的更新信息封装步骤的流程图;
69.图7为一个实施例中bmc侧选项参数同步方法的流程示意图;
70.图8为一个实施例中基于更新信息执行对应的更新策略步骤的流程图;
71.图9为一个实施例中一种选项参数同步方法的示例流程图;
72.图10为一个实施例中选项参数同步装置的结构框图;
73.图11为一个实施例中计算机设备的内部结构图。
具体实施方式
74.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
75.在一个实施例中,如图1所示,提供了一种选项参数同步方法,该方法应用于服务器,其中bios作为服务器主板最底层、最直接的硬件设置和控制的管理者,其bios选项参数(也可以称为bios setup(配置)选项参数)的不同,可以体现服务器不同的运行状态或不同的功能,bmc是服务器特有的管理控制者,它的主要功能就是自动监控服务器运行状态,因此,在服务器重启过程中需要与bios间实现选项参数的同步,以保证bmc对bios的控制管理,bios向bmc发送配置文件和属性文件的查询请求,bmc响应于该查询请求反馈文件查询结果,bios基于文件查询结果确定是否发送目标选项参数的更新信息,若需要发送目标选项参数的更新信息,bmc将所述更新信息以预设数据结构的形式进行封装,得到封装数据,并生成包含所述封装数据的配置变更消息,并将所述配置变更消息发送至bmc,指示所述bmc对本地存储的所述bios的原始属性文件和原始配置文件进行修改更新。本实施例首先以bios侧发起的选项参数同步过程为例进行具体举例说明,如图2所示,该方法包括以下步骤:
76.步骤202,基于数据结构列表,检测bios的属性文件和配置文件是否发生更新。
77.在实施中,服务器中存储有bios选项参数的属性文件和配置文件,其中,属性文件包含对应bios当前版本下的bios选项参数的配置规则信息。配置文件中则包含有满足属性文件中配置规则的bios选项参数的参数值,例如,在属性文件中第一选项参数的配置规则信息为:第一选项参数赋值范围为[0,100],则对应的配置文件中满足条件的第一选项参数的参数值应在这个区间范围。
[0078]
另外,在bios中预先构建有数据结构列表,在数据结构列表中存储对应的属性文件和配置文件信息(即包含bios选项参数的文件)。可选的,该数据结构列表以bios选项参
数列表的显示模式,显示在bios setup选项显示界面。
[0079]
具体的,该数据结构列表采用key:value的形式记录bios中的每一选项参数,其中,“key”表示选项参数(元数据),“value”为对应该选项参数的选项参数值。当服务器进行重启时,bios获取当前运行状态下的选项参数以及对应的选项参数值,根据获取到的选项参数值与数据结构列表中记录的选项参数值比对,检测bios的属性文件和配置文件中是否发生更新。
[0080]
可选的,bios除了基于数据结构列表(bios选项参数界面)记录的选项参数检测bios的属性信息和配置信息是否发生更新,也可以向bmc发起选项参数的信息查询请求,查询bios的配置文件是否发生更新,具体的,用户通过bmc端实现带内控制管理,并向bmc端上传bios的更新配置文件,当bios通过发送选项参数的信息查询请求向bmc查询选项参数更新状况时,bios基于bmc反馈的当前bmc存储的配置文件中选项参数的更新信息,确定bios自身配置文件中的选项参数已经发生更新,进而,确定发生更新的目标选项参数,并将目标选项参数的更新信息以预设数据结构的形式更新至bmc的目标存储空间,以指示bmc与bios间进行选项参数同步。
[0081]
基于查询到的bmc中记录的上一次同步过后的bios的属性文件和配置文件的信息,检测当前bios的选项参数是否发生更新。
[0082]
步骤204,若属性文件和配置文件发生更新,确定属性文件和配置文件中发生更新的目标选项参数。
[0083]
在实施中,若检测到属性文件和配置文件中至少一个文件中的内容发生更新,则在bios属性文件和配置文件中确定发生更新的目标选项参数。其中,属性文件和配置文件的更新可以是分别进行的,以保证减少传输数据量,同时,属性文件和配置文件的独立传输也保证了数据间的独立性。
[0084]
一般情况下,属性文件中某一选项参数对应的配置规则信息发生更新,其对应的配置文件中的选项参数值也会发生更新,而如果配置文件中的选项参数值发生更新,更新后的选项参数值仍然满足属性文件中对应的该选项参数的配置规则,那么可以确定只有配置文件中的选项参数发生更新,属性文件未发生更新。
[0085]
步骤206,获取目标选项参数的更新信息,将更新信息以预设数据结构的形式进行封装,得到封装数据。
[0086]
在实施中,bios获取更新的目标选项参数的更新信息,其中,该更新信息由目标选项参数的更新类型确定,更新类型包括:删除,添加和更新参数值这三种,针对每一种更新类型有相对应的更新信息,例如,删除类型的更新信息为“目标选项参数:null”,该更新信息表示对应的目标选项参数需要进行删除。然后,bios将该更新信息以预设数据结构(即,json数据结构)的形式进行封装,得到包含删除信息(更新信息)的封装数据。
[0087]
步骤208,生成包含封装数据的配置变更消息,并将配置变更消息发送至bmc,指示bmc对本地存储的bios的原始属性文件和原始配置文件进行修改更新。
[0088]
在实施中,bios生成包含封装数据的配置变更消息(即http patch消息),并将配置变更消息发送至bmc,指示bmc对本地存储的bios的原始属性文件和原始配置文件进行修改更新。
[0089]
上述选项参数同步方法中,bios基于数据结构列表,检测bios的属性文件和配置
文件是否发生更新,若属性文件和配置文件发生更新,确定属性文件和配置文件中发生更新的目标选项参数。然后,bios获取目标选项参数的更新信息,将更新信息以预设数据结构的形式进行封装,得到封装数据。最后,bios生成包含封装数据的配置变更消息,并将配置变更消息发送至bmc,指示bmc对本地存储的bios的原始属性文件和原始配置文件进行修改更新。采用本方法,基于预设的数据结构列表识别bios选项参数的更新,并且,仅将更新的目标选项参数以预设数据结构的形式进行传输,以指示bmc可以根据包含更新信息的数据结构更新本地选项参数,减少选项参数的传输带宽和传输时间,提高了服务器重启速度。
[0090]
在一个实施例中,如图3所示,bios与bmc间进行可以仅传输部分选项参数来实现选项参数的同步是基于bios与bmc之间已经预先同步过原始完整版的选项参数属性文件和配置文件,因此,在步骤202之前,该方法还包括以下步骤:
[0091]
步骤302,向bmc发送文件查询请求。
[0092]
其中,文件查询请求用于指示查询是否存在bios的配置文件和属性文件。
[0093]
在实施中,bios通过http(hypertext transport protocol,超文本传输协议)get请求方法,向bmc发送文件查询请求,基于该文件查询请求,查询bmc中是否存在bios当前版本的配置文件和属性文件。
[0094]
步骤304,接收bmc反馈的文件查询结果,若文件查询结果表示不存在bios的配置文件和属性文件,则将bios中的属性文件和配置文件压缩封装,得到全量压缩数据。
[0095]
在实施中,bmc针对bios发送的文件查询请求,反馈对应的文件查询结果(即应答报文),进而,bios在接收到bmc反馈的文件查询结果后,基于文件查询结果进行后续业务操作,具体的,若文件查询结果表示bmc内存中不存在bios的配置文件和属性文件,则bios将本地存储的属性文件和配置文件进行压缩封装,得到选项参数的全量压缩数据。
[0096]
步骤306,生成包含全量压缩数据的创建指令,并将创建指令发送至bmc,指示bmc对全量压缩数据进行存储。
[0097]
在实施中,基于得到的全量压缩数据,bios生成包含全量压缩数据的创建指令,即http post创建指令,然后,将该创建指令发送至bmc中,以指示bmc对全量压缩数据进行存储。
[0098]
可选的,bios在接收到bmc反馈的文件查询结果后,若bmc本地存储空间中不存在bios的配置文件和属性文件,则bios将本地存储的属性文件和配置文件直接进行封装处理,得到选项参数的全量数据。将全量数据存储至bmc,由bmc对该全量数据进行压缩处理并存储。本技术实施例对于bios与bmc间传输的数据是压缩格式还是非压缩格式不做限定,可以基于实际传输需求进行设置。
[0099]
本实施例中,bios通过文件查询请求,检查bmc的内存中是否存在属性文件和配置文件,以确定在bios发生更新的情况下是否进行目标选项参数的同步方案,同时,若bmc的内存中并不存在原始配置文件和属性文件,则预先基于post创建请求传输压缩的配置文件和属性文件中包含的全量选项参数,同时,传输过程中传输的压缩数据,减少传输过程中的传输带宽,提高传输效率。
[0100]
在一个实施例中,如图4所示,步骤202的具体处理过程包括:
[0101]
步骤402,获取当前运行状态下bios的当前选项参数。
[0102]
在实施中,在服务器重启过程中,bios获取当前运行状态下bios选项参数。具体
的,bios的选项参数包括静态选项参数和动态选项参数,其中,静态选项参数一般不会频繁发生变化,只有当bios更新版本等情况下,静态选项参数才会发生变化,动态选项参数在服务器重启过程中会随着运行状态的不同不断变化,例如,cpu、内存、hdd(hard disk drive,基本的电脑存储器)、pcie(peripheral component interconnect,高速串行计算机扩展总线标准)、网卡、raid(redundant arrays of independent disks,磁盘阵列)、启动项、bmc ip(internet protocol,网际互连协议)、串口等信息等。因此,bios获取当前的选项参数以及对应的参数值,以检测当前的服务器运行状态。
[0103]
步骤404,基于数据结构列表中每一数据结构包含的选项参数的初始元数据和对应的初始数据值,比对每一当前选项参数与数据结构列表中选项参数的数据一致性。
[0104]
在实施中,bios基于数据结构列表中每一json数据结构包含的选项参数的初始元数据(key)和对应的初始数据值(value),比对每一当前选项参数和数据结构列表中选项参数的数据一致性。具体的,例如,在当前服务器运行状态下获取到10项选项参数(选项参数key和对应的选项参数值)。而在数据结构列表中包含有以json数据结构形式记录的多项选项参数,该多项选项参数是上一次重启过程中获取到的选项参数key和选项参数值value。
[0105]
步骤406,若存在当前选项参数与选项参数的数据不一致,确定bios的属性文件和配置文件发生更新。
[0106]
在实施中,若存在当前选项参数与选项参数的数据不一致,例如,数据结构列表中包含11项选项参数,而在当前运行状态下仅获取到10项选项参数,则表示前后(上一次获取与这一次获取)选项参数不一致,bios确定属性文件和配置文件中包含的选项参数发生更新。
[0107]
本实施例中,通过预先建立的数据结构列表比对当前获取的bios选项参数与上一次获取到的选项参数的一致性,从而得到bios选项参数的更新情况,无需创建单独的监控进程即可实现对bios选项参数的监测,降低了服务器中的流量资源占用。
[0108]
在一个实施例中,如图5所示,针对确定出的目标选项参数,bios通过与bmc之间进行目标选项参数的传输,使得bmc可以基于传输的更新信息进行选项参数同步,则步骤506的具体处理过程包括:
[0109]
步骤502,确定更新信息对应的目标选项参数的更新类型,基于目标选项参数的更新类型,生成更新类型对应的更新信息。
[0110]
在实施中,bios中检测到setup(配置)选项参数中存在目标选项参数的更新,进而,基于数据结构列表进行更新检测过程中,bios可以确定目标选项参数的更新类型,例如,当数据结构列表中的选项参数数目少于获取到的选项参数的数目,则表示增加了一项新的选项参数,因此,对应的更新类型为补充类型,又或者,当数据结构列表中包含的目标选项参数1的选项参数值为50,获取到的选项参数中,目标选项参数1的参数值为65,则表示更新类型为选项值更改类型。进而,bios再以确定出的选项参数的更新类型,生成对应的更新信息。
[0111]
步骤504,将更新类型对应的更新信息添加至目标选项参数对应的预设数据结构中,进行封装,得到目标选项参数的封装数据。
[0112]
在实施中,bios将更新类型对应的更新信息添加至目标选项参数对应的预设数据结构中,进行封装,得到目标选项参数的封装数据。例如,基于bios的检测识别,确定为补充
类型的选项参数更新,则区别于数据结构列表中记录的选项参数为目标选项参数x,进而bios将获取到的目标选项参数x的信息作为更新信息,根据补充类型以及预设的json数据结构(key:value),将目标选项参数的信息(更新信息)添加至json数据结构中,并对该条json数据结构类型的数据记录进行封装,得到包含该选项参数对应的包含(key)目标选项参数x:50(value)的封装数据。
[0113]
本实施例中,基于确定出的更新类型,生成目标选项参数对应的更新信息,并将该目标选项参数的更新信息以预设数据结构的形式进行封装,得到针对目标选项参数的封装数据,进而,以使bmc基于该目标选项参数的封装数据在本地属性文件和配置文件中仅针对目标选项参数进行参数更新,实现与bios间的选项参数同步,bios与bmc之间传输仅包含目标选项参数对应的封装数据,提高了选项参数同步效率和服务器重启速度。
[0114]
在一个实施例中,如图6所示,bios选项参数的更新类型可以但包括删除类型、修改选项参数值类型和补充类型,基于这三种不同的更新类型,对应生成的更新信息不同,得到目标选项参数可能对应的三种不同类型的封装数据,步骤504的具体处理过程包括:
[0115]
步骤602,若更新类型为删除类型,则将包含空值数据的更新信息更新至目标选项参数对应的数据结构中。
[0116]
在实施中,若检测到的目标选项参数的更新类型为删除类型,则将包含空值数据的更新信息添加至预设的目标选项参数的数据结构中,以得到目标数据。具体的,若检测选项参数的过程中确定出数据结构列表中记录的目标选项参数a并未存在于当前运行状态下获取到的选项参数中,则确定相对于当前运行状态下的选项参数来说,数据结构列表中的目标选项参数a为被删除状态,因此,将目标选项参数a:空值数据“null”作为更新信息,以预设的json数据结构进行存储,得到包含空值数据(即表征删除信息)的目标数据。
[0117]
步骤604,若更新类型为修改选项值类型,则将包含目标选项值的更新信息更新至目标选项参数对应的数据结构中。
[0118]
在实施中,若检测到的目标选项参数的更新类型为修改选项参数值类型,则将包含修改后目标选项参数值的更新信息添加至预设的数据结构中,以得到目标数据。具体的,若检测选项参数的过程中确定出数据结构列表中记录的目标选项参数b的参数值不同于当前获取到的目标选项参数b的选项参数值,则确定相对于当前运行状态下的选项参数来说,数据结构列表中的目标选项参数b为选项参数值修改状态,因此,将目标选项参数b:“xxx(具体当前运行状态下获取到的数值)”作为更新信息,以预设的json数据结构进行存储,得到包含数据更新值(即表征选项参数值更新信息)的目标数据。
[0119]
步骤606,若更新类型为补充类型,则将新增选项参数以及对应的新增选项参数值添加至预设数据结构中。
[0120]
在实施中,若检测到的目标选项参数的更新类型为补充类型,则将包含新增数据的更新信息添加至目标选项参数对应的数据结构中,以得到目标数据。具体的,若检测选项参数的过程中确定出当前运行状态下获取到的目标选项参数c并未存在于预先记录的数据结构列表中,则确定相对于当前运行状态下的选项参数来说,数据结构列表中需要补充目标选项参数c,因此,对应的bmc存储的属性文件和配置文件中也需要补充目标选项参数c,因此,将目标选项参数c:选项参数值yy作为更新信息,以预设的json数据结构进行存储,得到包含新增数据(即表征补充信息)的目标数据。
[0121]
本实施例中,针对不同更新类型的更新信息,构建包含更新信息的数据结构,以使根据该包含更新信息的数据结构完成与bmc之间的选项参数同步,减少传输时间,提高数据同步效率。
[0122]
在一个实施例中,如图7所示,提供了一种选项参数同步方法,该方法应用于bmc侧,该方法具体包括如下步骤:
[0123]
步骤702,接收bios发送的配置变更消息。
[0124]
其中,配置变更消息携带包含封装数据。该封装数据由bios中发生更新的目标选项参数的更新信息的以预设数据结构的形式进行封装得到
[0125]
在实施中,bmc接收来自bios发送的配置变更消息(patch消息),其中,patch消息是特有的非全量修改的消息指令,响应于该消息指令中携带的封装数据,对bmc本地存储的属性文件和配置文件的选项参数进行更新。
[0126]
步骤704,根据封装数据中的更新信息对应的更新策略,对本地存储的bios的原始属性文件和原始配置文件中的目标选项参数进行更新,得到更新后的属性文件和配置文件。
[0127]
在实施中,bmc中预先存储有针对不同的更新信息对应的更新策略,进而,bmc读取接收到的封装数据,然后,根据该封装数据中的更新信息,确定对应的目标更新方式,并基于该种目标更新方式将本地存储的原始属性文件和原始配置文件中对应的目标选项参数进行更新,得到更新后的属性文件和配置文件。
[0128]
其中,bmc侧存储的原始配置文件和原始属性文件以压缩的形式存储在bmc的本地存储空间,当bmc需要对本地的原始属性文件和原始配置文件进行更新时,需要预先对原始配置文件和原始属性文件进行解压缩处理,得到解压缩后的原始配置文件和原始属性文件。然后,针对解压缩后的原始配置文件和原始属性文件进行更新修改。
[0129]
具体的,bmc本地存储空间中存储有与bios上一次选项参数同步后得到的属性文件和配置文件,若再次接收到bios发送的配置变更消息,则表示bios的属性文件和配置文件中的信息再次发生更新,进而,对原始配置文件和原始属性文件进行解压缩处理,得到解压缩后的原始配置文件和原始属性文件进而,bmc也基于接收到的patch配置变更消息,读取patch body中携带的封装数据,对解压缩后的原始配置文件和原始属性文件中的目标选项参数进行更新,从而得到更新后的属性文件和配置文件,然后,bmc对更新后的属性文件和配置文件再次进行压缩处理,并将压缩处理后的更新的属性文件和配置文件存储至bmc的本地存储空间中。
[0130]
本实施例中,bmc响应于bios推送的patch配置变更消息,读取其patch body部分的封装数据,得到目标选项参数的更新信息,基于该更新信息执行对应的更新策略,实现对bmc中存储的原始配置文件和原始属性文件中的选项参数的更新,提高数据同步效率,加快服务器开机时间。
[0131]
在一个实施例中,如图8所示,步骤704的具体处理过程包括:
[0132]
步骤802,识别封装数据中每一更新信息对应的更新策略。
[0133]
在实施中,封装数据中包含至少一个目标选项参数的更新信息,因此,bmc读取patch配置变更消息的patch body(报文体)部分填充的封装数据,识别封装数据中每一目标选项参数的更新信息,确定不同更新类型下更新信息对应的更新策略。
[0134]
步骤804,若更新信息中包含的目标选项参数对应的数据值为空值,删除bios的原始属性文件和原始配置文件中目标字段处的目标选项参数。
[0135]
在实施中,若更新信息中包含目标选项参数的数据值为空值“null”,则表示当前选项参数为待删除状态,因此,bmc删除bios的原始属性文件和原始配置文件中目标字段处的目标选项参数(更新策略中的删除策略)。
[0136]
例如,以json数据结构的形式传输的更新信息中包含目标选项参数a:null,则bmc删除bios的原始属性文件和原始配置文件中目标字段处的目标选项参数a的记录。
[0137]
步骤806,若更新信息中包含的目标选项参数对应的数据值为目标选项值,更新bios的原始属性文件和原始配置文件中目标字段处的选项值。
[0138]
在实施中,若更新信息中包含的目标选项参数对应的数据值为“目标选项值yy”,则表示当前选项参数为待修改状态,因此,bmc修改bios的原始属性文件和原始配置文件中目标字段处的选项值(更新策略中的修改选项参数值策略)。
[0139]
例如,以json数据结构的形式传输的更新信息中包含目标选项参数b:yy,则bmc将bios的原始属性文件和原始配置文件中目标字段处的目标选项参数b的选项参数值,由xx调整为yy。
[0140]
步骤808,若更新信息中包含的目标选项参数为新增选项参数,在bios的原始属性文件和原始配置文件中目标字段处添加更新信息中的新增选项参数以及对应的新增选项参数值。
[0141]
在实施中,若更新信息中包含的目标选项参数为新增选项参数,即在原始配置文件和属性文件中不存在该目标选项参数的信息,则表示当前选项参数为待补充状态,
[0142]
则bmc在bios的原始属性文件和原始配置文件中目标字段处添加更新信息中的新增选项参数以及对应的新增选项参数值。
[0143]
例如,以json数据结构的形式传输的更新信息中包含目标选项参数c:hh,则bmc将bios的原始属性文件和原始配置文件中目标字段处补充目标选项参数c以及对应的选项参数值。
[0144]
本实施例中,根据patch配置变更消息中解析出的对应更新类型的更新信息,执行不同的更新策略,相应修改本地配置文件和属性文件中的目标选项参数,不需要对全量的选项参数进行更新替换,实现bios与bmc之间的选项参数同步,提高数据同步效率。
[0145]
在一个实施例中,如图9所示,提供了一种选项参数同步方法的示例,具体包括如下步骤:
[0146]
步骤901,bios通过http get(发送获取请求)的方法向bmc查询bios的版本信息,该版本信息包括当前版本配置文件和属性文件。
[0147]
步骤902,bios接收bmc反馈的版本信息查询结果,若版本信息查询结果表示不存在当前版本的配置文件和属性文件,则执行步骤903;若版本信息查询结果表示存在当前版本的配置文件和属性文件,则执行步骤905。
[0148]
步骤903,通过http post(发送创建请求)的方法,将包含全量选项参数的配置文件和属性文件的压缩数据推送至bmc。
[0149]
步骤904,bmc将接收到的bios当前版本的配置文件和属性文件的压缩数据保存在本地文件系统中。
[0150]
步骤905,bios根据预设的数据结构列表检测bios属性文件和配置文件中的setup(配置)选项参数的更新状态,当配置文件中的目标选项参数发生更新时,获取配置文件中目标选项参数的更新信息,当属性文件中的目标选项参数发生更新时,获取属性文件中目标选项参数的更新信息,并以预设json数据结构的形式进行封装,得到包含目标选项参数更新信息的封装数据。
[0151]
步骤906,通过http patch配置变更消息方法,将包含更新信息的封装数据写入配置变更消息的报文体(patch body)部分,并将该配置变更消息推送至bmc。
[0152]
步骤907,bmc基于接收到的http patch配置变更消息,读取其patch body部分的封装数据,得到配置文件和/或属性文件中选项参数的更新信息,对压缩形式原始配置文件和/或原始属性文件进行解压缩,并根据该更新信息以及对应的更新策略对目标选项参数进行更新。
[0153]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0154]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的选项参数同步方法的选项参数同步装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个选项参数同步装置实施例中的具体限定可以参见上文中对于选项参数同步方法的限定,在此不再赘述。
[0155]
在一个实施例中,如图10所示,提供了一种选项参数同步装置1000,包括:检测模块1001、确定模块1002、获取模块1003和更新传输模块1004,其中:
[0156]
检测模块1001,用于基于数据结构列表,检测bios的属性文件和配置文件是否发生更新;
[0157]
确定模块1002,用于若属性文件和配置文件发生更新,确定属性文件和配置文件中发生更新的目标选项参数;
[0158]
获取模块1003,用于获取目标选项参数的更新信息,将更新信息以预设数据结构的形式进行封装,得到封装数据;
[0159]
更新传输模块1004,用于生成包含封装数据的配置变更消息,并将配置变更消息发送至bmc,指示bmc对本地存储的bios的原始属性文件和原始配置文件进行修改更新。
[0160]
采用本装置,基于预设的数据结构列表识别bios选项参数的更新,并且,将更新的目标选项参数以预设数据结构的形式进行传输,以指示bmc可以根据包含更新信息的数据结构更新本地选项参数,减少选项参数的传输带宽和传输时间,提高了服务器重启速度。
[0161]
在一个实施例中,该装置1000还包括:
[0162]
发送模块,用于向bmc发送文件查询请求;文件查询请求用于指示查询是否存在bios的配置文件和属性文件;
[0163]
封装模块,用于接收bmc反馈的文件查询结果,若文件查询结果表示不存在bios的
配置文件和属性文件,则将bios中的属性文件和配置文件压缩封装,得到全量压缩数据;
[0164]
创建传输模块,用于生成包含全量压缩数据的创建指令,并将创建指令发送至bmc,指示bmc对全量压缩数据进行存储。
[0165]
在一个实施例中,检测模块1001具体用于获取当前运行状态下bios的当前选项参数;
[0166]
基于数据结构列表中每一数据结构包含的选项参数的初始元数据和对应的初始数据值,比对每一当前选项参数与数据结构列表中选项参数的数据一致性;
[0167]
若存在当前选项参数与选项参数的数据不一致,确定bios的属性文件和配置文件发生更新。
[0168]
在一个实施例中,获取模块1003具体用于确定更新信息对应的目标选项参数的更新类型,基于目标选项参数的更新类型,生成更新类型对应的更新信息;
[0169]
将更新类型对应的更新信息添加至目标选项参数对应的预设数据结构中,进行封装,得到目标选项参数的封装数据。
[0170]
在一个实施例中,获取模块1003还用于若更新类型为删除类型,则将包含空值数据的更新信息更新至目标选项参数对应的数据结构中;
[0171]
若更新类型为修改选项值类型,则将包含目标选项值的更新信息更新至目标选项参数对应的数据结构中;
[0172]
若更新类型为补充类型,则将新增选项参数以及对应的新增选项参数值添加至预设数据结构中。
[0173]
上述选项参数同步装置1000中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0174]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储bios配置文件和属性文件中包含的选项参数数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种选项参数同步方法。
[0175]
本领域技术人员可以理解,图11中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0176]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0177]
基于数据结构列表,检测bios的属性文件和配置文件是否发生更新;
[0178]
若属性文件和配置文件发生更新,确定属性文件和配置文件中发生更新的目标选项参数;
[0179]
获取目标选项参数的更新信息,将更新信息以预设数据结构的形式进行封装,得到封装数据;
[0180]
生成包含封装数据的配置变更消息,并将配置变更消息发送至bmc,指示bmc对本地存储的bios的原始属性文件和原始配置文件进行修改更新。
[0181]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0182]
向bmc发送文件查询请求;文件查询请求用于指示查询是否存在bios的配置文件和属性文件;
[0183]
接收bmc反馈的文件查询结果,若文件查询结果表示不存在bios的配置文件和属性文件,则将bios中的属性文件和配置文件压缩封装,得到全量压缩数据;
[0184]
生成包含全量压缩数据的创建指令,并将创建指令发送至bmc,指示bmc对全量压缩数据进行存储。
[0185]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0186]
获取当前运行状态下bios的当前选项参数;
[0187]
基于数据结构列表中每一数据结构包含的选项参数的初始元数据和对应的初始数据值,比对每一当前选项参数与数据结构列表中选项参数的数据一致性;
[0188]
若存在当前选项参数与选项参数的数据不一致,确定bios的属性文件和配置文件发生更新。
[0189]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0190]
确定更新信息对应的目标选项参数的更新类型,基于目标选项参数的更新类型,生成更新类型对应的更新信息;
[0191]
将更新类型对应的更新信息添加至目标选项参数对应的预设数据结构中,进行封装,得到目标选项参数的封装数据。
[0192]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0193]
若更新类型为删除类型,则将包含空值数据的更新信息更新至目标选项参数对应的数据结构中;
[0194]
若更新类型为修改选项值类型,则将包含目标选项值的更新信息更新至目标选项参数对应的数据结构中;
[0195]
若更新类型为补充类型,则将新增选项参数以及对应的新增选项参数值添加至预设数据结构中。
[0196]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0197]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0198]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器
(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0199]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0200]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1