本技术涉及服务器,具体而言,涉及一种代码共享方法、装置、交换机、多主机系统、设备和介质。
背景技术:
1、随着服务器技术的发展,多主机系统得到了越来越广泛的应用。在多主机系统中,为了使每个主机都可以实现系统管理模式(system management mode,smm),需要在各个主机的内存中设置专门的系统管理随机存取存储器,用于存储与系统管理模式相关的代码。当多个主机存储的代码相同时,将使得整个系统需要配置较多的内存资源用于存储相同的代码,这造成了系统的内存资源浪费且内存资源的浪费情况随着主机数量的增多而加剧。
2、因此,如何提高多主机系统中内存资源的利用率,降低多主机系统的硬件配置成本成为业界亟待解决的技术问题。
技术实现思路
1、本技术提供一种代码共享方法、装置、交换机、多主机系统、设备和介质,用于解决如何提高多主机系统中内存资源的利用率,降低多主机系统的硬件配置成本的技术问题。
2、本技术提供一种代码共享方法,应用于多主机系统中的主机,所述方法包括:
3、确定对当前主机的系统管理模式进行使能;
4、向所述多主机系统中的交换机发送系统管理模式初始化请求;所述交换机用于基于所述系统管理模式初始化请求,在所述多主机系统中的多个共享内存模块中确定存储系统管理模式代码的目标共享内存模块,以及所述系统管理模式代码在所述目标共享内存模块中对应的系统管理随机存取区域,并建立所述当前主机与所述目标共享内存模块之间的数据连接;
5、基于所述系统管理模式代码实现所述当前主机的系统管理模式初始化。
6、在一些实施例中,所述基于所述系统管理模式代码实现所述当前主机的系统管理模式初始化,包括:
7、获取所述系统管理随机存取区域的初始化检测结果;
8、在所述初始化检测结果为已初始化的情况下,在所述系统管理随机存取区域读取所述系统管理模式代码;
9、对所述系统管理模式代码进行校验;
10、在所述系统管理模式代码的校验结果为通过的情况下,加载所述系统管理模式代码实现所述当前主机的系统管理模式初始化。
11、在一些实施例中,所述获取所述系统管理随机存取区域的初始化检测结果之后,所述方法还包括:
12、在所述初始化检测结果为未初始化的情况下,对所述系统管理随机存取区域进行初始化;
13、向启动顺序在所述当前主机之前的各个主机发送系统管理随机存取区域初始化信息。
14、在一些实施例中,所述方法还包括:
15、向所述交换机发送系统管理模式代码存储请求;所述交换机用于基于所述系统管理模式代码存储请求,建立所述当前主机与所述目标共享内存模块之间的数据连接;
16、对所述目标共享内存模块中的系统管理随机存取区域进行初始化,并将所述系统管理模式代码从所述当前主机的内存模块转存至所述系统管理随机存取区域。
17、在一些实施例中,所述方法还包括:
18、向所述交换机发送系统管理模式代码更新请求;所述交换机用于基于所述系统管理模式代码更新请求,建立所述当前主机与所述目标共享内存模块之间的数据连接;
19、基于所述当前主机的内存模块中的系统管理模式代码对所述系统管理随机存取区域中的系统管理模式代码进行更新。
20、在一些实施例中,所述多主机系统中至少存在两个主机使用相同的系统管理模式代码。
21、本技术提供一种代码共享方法,应用于多主机系统中的交换机,所述方法包括:
22、响应于所述多主机系统中当前主机发送的系统管理模式初始化请求,在多个共享内存模块中确定存储系统管理模式代码的目标共享内存模块,以及所述系统管理模式代码在所述目标共享内存模块中对应的系统管理随机存取区域;
23、建立所述当前主机与所述目标共享内存模块之间的数据连接,以使所述当前主机基于所述系统管理模式代码实现系统管理模式初始化。
24、在一些实施例中,所述方法还包括:
25、响应于所述多主机系统中当前主机发送的系统管理模式代码存储请求,在所述多个共享内存模块中确定所述目标共享内存模块;
26、建立所述当前主机与所述目标共享内存模块之间的数据连接,以使所述当前主机在所述目标共享内存模块中初始化所述系统管理模式代码对应的系统管理随机存取区域,并将所述系统管理模式代码存储至所述系统管理随机存取区域。
27、在一些实施例中,所述建立所述当前主机与所述目标共享内存模块之间的数据连接之后,所述方法还包括:
28、对所述目标共享内存模块在所述多个共享内存模块中的位置信息以及所述系统管理随机存取区域在所述目标共享内存模块中的位置信息进行存储;
29、或者,将所述目标共享内存模块在所述多个共享内存模块中的位置信息以及所述系统管理随机存取区域在所述目标共享内存模块中的位置信息存储至所述多个共享内存模块中的预设位置。
30、在一些实施例中,所述方法还包括:
31、响应于所述多主机系统中当前主机发送的系统管理模式代码更新请求,在所述多个共享内存模块中确定所述目标共享内存模块;
32、建立所述当前主机与所述目标共享内存模块之间的数据连接,以使所述当前主机基于所述当前主机的内存模块中的系统管理模式代码对所述系统管理随机存取区域中的系统管理模式代码进行更新。
33、本技术提供一种代码共享装置,应用于多主机系统中的主机,包括:
34、使能单元,用于确定对当前主机的系统管理模式进行使能;
35、请求单元,用于向所述多主机系统中的交换机发送系统管理模式初始化请求;所述交换机用于基于所述系统管理模式初始化请求,在所述多主机系统中的多个共享内存模块中确定存储系统管理模式代码的目标共享内存模块,以及所述系统管理模式代码在所述目标共享内存模块中对应的系统管理随机存取区域,并建立所述当前主机与所述目标共享内存模块之间的数据连接;
36、初始化单元,用于基于所述系统管理模式代码实现所述当前主机的系统管理模式初始化。
37、本技术提供一种代码共享装置,应用于多主机系统中的交换机,包括:
38、响应单元,用于响应于所述多主机系统中当前主机发送的系统管理模式初始化请求,在多个共享内存模块中确定存储系统管理模式代码的目标共享内存模块,以及所述系统管理模式代码在所述目标共享内存模块中对应的系统管理随机存取区域;
39、连接单元,用于建立所述当前主机与所述目标共享内存模块之间的数据连接,以使所述当前主机基于所述系统管理模式代码实现系统管理模式初始化。
40、本技术提供一种交换机,包括所述的代码共享装置。
41、在一些实施例中,还包括控制单元,多个上行端口和多个下行端口;
42、所述多个上行端口与多个主机一一对应连接;
43、所述多个下行端口与多个共享内存模块一一对应连接;
44、所述控制单元,与所述多个上行端口和所述多个下行端口连接,用于建立各个主机与各个共享内存模块之间的数据连接。
45、在一些实施例中,所述控制单元还用于:
46、确定各个共享内存模块的读写性能评估值;
47、基于各个共享内存模块的读写性能评估值,在所述多个共享内存模块中确定目标共享内存模块。
48、在一些实施例中,所述控制单元支持计算高速互联协议。
49、本技术提供一种多主机系统,包括交换机、多个主机和多个共享内存模块;所述交换机分别与所述多个主机和所述多个共享内存模块连接;
50、所述主机用于执行主机侧所述的代码共享方法;所述交换机用于执行交换机侧所述的代码共享方法。
51、在一些实施例中,所述交换机分别与所述多个主机和所述多个共享内存模块基于计算高速互联协议连接。
52、本技术提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的代码共享方法。
53、本技术提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的代码共享方法。
54、本技术提供的代码共享方法、装置、交换机、多主机系统、设备和介质,确定对当前主机的系统管理模式进行使能;向多主机系统中的交换机发送系统管理模式初始化请求;交换机用于基于系统管理模式初始化请求,在多主机系统中的多个共享内存模块中确定存储系统管理模式代码的目标共享内存模块,以及系统管理模式代码在目标共享内存模块中对应的系统管理随机存取区域,并建立当前主机与目标共享内存模块之间的数据连接;基于系统管理模式代码实现当前主机的系统管理模式初始化;由于在多主机系统中设置了共享内存模块,将系统管理模式代码存储至共享内存模块,使得各个主机均可以访问并实现系统管理模式初始化,无需在各个主机的本地内存中存储相同的代码,节约了多主机系统中的内存资源,避免造成内存资源浪费,提高了多主机系统中内存资源的利用率,同时共享内存模块的数量和容量可以根据多主机系统的需要进行灵活配置,降低了多主机系统的硬件配置成本。