一种BMC时间同步方法、系统、装置及可读存储介质与流程

文档序号:31882965发布日期:2022-10-21 23:34阅读:485来源:国知局
一种BMC时间同步方法、系统、装置及可读存储介质与流程
一种bmc时间同步方法、系统、装置及可读存储介质
技术领域
1.本发明涉及计算机技术领域,更具体的说是涉及一种bmc时间同步方法、系统、装置及可读存储介质。


背景技术:

2.bmc(baseboard management controller)是一个独立于服务器系统的小型操作系统,作用是方便服务器远程管理、监控、部署、重启等操作。bmc接通电源即启动运行,不受服务器开关机影响,独立于业务系统之外。bmc时间在服务器监控、日志记录等方面有重要作用,但是bmc没有单独的电池,需要从其它部件同步时间。
3.现有技术中,bmc启动时,需要从me(管理引擎接口,management engine interface)同步一次时间。当ntp服务器开启时,通过ntp服务器获取时间进行同步;如果无法在ntp服务器获取到时间,则通过bios在系统开机时向bmc发送一次自己的时间。可见,采用现有技术进行bmc时间同步时,如果出现无法获取ntp时间的情况,只有系统开机时才能进行时间同步,无法保障bmc的时间准确度。


技术实现要素:

4.针对以上问题,本发明的目的在于提供一种bmc时间同步方法、系统、装置及可读存储介质,能够有效降低bmc时间同步的成本,提高bmc时间的准确度。
5.本发明为实现上述目的,通过以下技术方案实现:一种bmc时间同步方法,包括:
6.在本机bmc内增加时间同步命令,并定义其时间请求和回复的数据格式;
7.当本机bmc无法通过ntp服务器获取ntp时间时,本机bmc周期性向多台bmc发送时间请求;
8.收到时间请求的bmc在通过请求校验后向本机bmc发送回复数据;
9.本机bmc收到回复后,进行时间同步校验,校验通过后将相应的bmc作为时间同步候选bmc;
10.根据每个通信时长,在所有时间同步候选bmc中筛选出最佳bmc;
11.将最佳bmc的时间设定为本机bmc的时间。
12.进一步,所述时间同步命令采用ipmi命令,所述时间请求数据包括请求校验码,请求校验码采用用于时间请求校验的预设加密字符串;
13.所述回复数据包括:
14.本机ntp状态、ntp服务器地址、时间戳和时间同步校验码;其中,当本机ntp状态的取值为1时,代表可以从ntp服务器获取到时间,时间同步校验码采用用于时间同步校验的预设加密字符串。
15.进一步,所述本机bmc周期性向多台bmc发送时间请求,包括:
16.本机bmc周期性向同一网段的m台bmc发送ipmi时间请求time sync request;其中,m》=2。
17.进一步,所述收到时间请求的bmc在通过请求校验后向本机bmc发送回复数据,包括:
18.收到ipmi时间请求的bmc若能识别请求校验码,则发送带有本机ntp状态、ntp服务器地址、时间戳和n位时间同步校验码的ipmi回复。
19.进一步,所述本机bmc收到回复后,进行时间同步校验,校验通过后将相应的bmc作为时间同步候选bmc,包括:
20.本机bmc收到ipmi回复后,检验时间同步校验码,若校验通过,则将此bmc作为时间同步候选bmc。
21.进一步,所述根据每个通信时长,在所有时间同步候选bmc中筛选出最佳bmc,包括:
22.确定每个时间同步候选bmc的通信时长,并从中筛选出通信时长最短且本机ntp状态值为1的时间同步候选bmc,将其作为最佳bmc。
23.进一步,所述将最佳bmc的时间设定为本机bmc的时间,包括:
24.将最佳bmc的时间戳设为本机bmc的时间,并将本机的ntp服务器地址设置为该最佳bmc的ntp服务器地址。
25.相应的,本发明还公开了一种bmc时间同步系统,包括:
26.设置模块,用于在本机bmc内增加时间同步命令,并定义其时间请求和回复的数据格式;
27.请求模块,用于当本机bmc无法通过ntp服务器获取ntp时间时,本机bmc周期性向多台bmc发送时间请求;
28.回复模块,用于收到时间请求的bmc在通过请求校验后向本机bmc发送回复数据;
29.验证模块,用于本机bmc收到回复后,进行时间同步校验,校验通过后将相应的bmc作为时间同步候选bmc;
30.筛选模块,用于根据每个通信时长,在所有时间同步候选bmc中筛选出最佳bmc;
31.同步模块,用于将最佳bmc的时间设定为本机bmc的时间。
32.进一步,所述请求模块具体用于:当本机bmc无法通过ntp服务器获取ntp时间时,本机bmc周期性向同一网段的m台bmc发送ipmi时间请求time sync request;其中,m》=2。
33.进一步,所述回复模块具体用于:收到ipmi时间请求的bmc若能识别请求校验码,则发送带有本机ntp状态、ntp服务器地址、时间戳和n位时间同步校验码的ipmi回复。
34.进一步,所述验证模块具体用于:本机bmc收到ipmi回复后,检验时间同步校验码,若校验通过,则将此bmc作为时间同步候选bmc。
35.进一步,所述筛选模块具体用于:确定每个时间同步候选bmc的通信时长,并从中筛选出通信时长最短且本机ntp状态值为1的时间同步候选bmc,将其作为最佳bmc。
36.进一步,所述同步模块具体用于:将最佳bmc的时间戳设为本机bmc的时间,并将最佳bmc的ntp服务器地址设置为本机的ntp服务器地址。
37.相应的,本发明公开了一种bmc时间同步装置,包括:
38.存储器,用于存储bmc时间同步程序;
39.处理器,用于执行所述bmc时间同步程序时实现如上文任一项所述bmc时间同步方法的步骤。
40.相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有bmc时间同步程序,所述bmc时间同步程序被处理器执行时实现如上文任一项所述bmc时间同步方法的步骤。
41.对比现有技术,本发明有益效果在于:本发明提供了一种bmc时间同步方法、系统、装置及可读存储介质,能够在ntp服务器失效时,通过ipmi命令自动获取其它bmc的时间,并利用本机ntp状态值保证时间准确度、利用校验码保证数据的安全,既有效降低了bmc时间同步的成本,又保证了bmc时间同步的准确度。
42.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
44.附图1是本发明具体实施方式的方法流程图。
45.附图2是本发明具体实施方式的系统结构图。
46.图中,1为设置模块;2为请求模块;3为回复模块;4为验证模块;5为筛选模块;6为同步模块。
具体实施方式
47.本发明的核心是提供一种bmc时间同步方法,现有技术中,bmc启动时,需要从me同步一次时间。当ntp服务器开启时,通过ntp服务器获取时间进行同步;如果无法在ntp服务器获取到时间,则通过bios在系统开机时向bmc发送一次自己的时间。可见,采用现有技术进行bmc时间同步时,如果出现无法获取ntp时间的情况,只有系统开机时才能进行时间同步,无法保障bmc的时间准确度。
48.而本发明提供的bmc时间同步方法,首先,无法在ntp服务器获取到时间时,bmc周期性向同网段的多台bmc发送ipmi时间请求,根据最短回复时长和ntp状态确定最佳bmc,将最佳bmc回复中的时间戳与ntp服务器地址设为原bmc的时间和ntp服务器地址。由此可见,本发明能够有效降低bmc时间同步的成本,提高bmc时间的准确度。
49.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
50.实施例一:
51.如图1所示,本实施例提供了一种bmc时间同步方法,包括如下步骤:
52.s1:在本机bmc内增加时间同步命令,并定义其时间请求和回复的数据格式。
53.具体的,时间同步命令采用ipmi命令。时间请求数据包括请求校验码,请求校验码采用用于时间请求校验的预设加密字符串。回复数据包括:本机ntp状态、ntp服务器地址、
时间戳和时间同步校验码;其中,当本机ntp状态的取值为1时,代表可以从ntp服务器获取到时间,时间同步校验码采用用于时间同步校验的预设加密字符串。
54.作为示例的,bmc时间请求与时间同步数据类型如下:
55.typedef struct time sync request
56.{
57.uint8 requestcode[16];//请求校验码
[0058]
}time_sync_request;
[0059]
typedef struct time sync respond
[0060]
{
[0061]
uint8 ntpstatus;//ntp状态:1:可以从ntp获取到时间
[0062]
uint8 ntpserver;//当ntpstatus=1时,为ntp server地址;否则为空
[0063]
uint8 timesyncstamp[24];//时间戳
[0064]
uint8 timesynccode[16];//时间同步校验码
[0065]
}time_sync_request;
[0066]
s2:当本机bmc无法通过ntp服务器获取ntp时间时,本机bmc周期性向多台bmc发送时间请求。
[0067]
具体来说,当本机bmc无法通过ntp服务器获取ntp时间时,本机bmc周期性向同一网段的m台bmc发送ipmi时间请求time sync request;其中,m》=2。
[0068]
s3:收到时间请求的bmc在通过请求校验后向本机bmc发送回复数据。
[0069]
具体的,收到ipmi时间请求的bmc若能识别请求校验码,则发送带有本机ntp状态、ntp服务器地址、时间戳和n位时间同步校验码的ipmi回复。
[0070]
s4:本机bmc收到回复后,进行时间同步校验,校验通过后将相应的bmc作为时间同步候选bmc。
[0071]
本步骤利用回复数据的时间同步校验码来实现同步校验,即本机bmc收到ipmi回复后,检验时间同步校验码,若校验通过,则将此bmc作为时间同步候选bmc。
[0072]
s5:根据每个通信时长,在所有时间同步候选bmc中筛选出最佳bmc。
[0073]
首先,确定每个时间同步候选bmc的通信时长。然后,从中筛选出通信时长最短且本机ntp状态值为1的时间同步候选bmc,将其作为最佳bmc。
[0074]
s6:将最佳bmc的时间设定为本机bmc的时间。
[0075]
具体的,将最佳bmc的时间戳设为本机bmc的时间,并将本机的ntp服务器地址设置为该最佳bmc的ntp服务器地址。
[0076]
本实施例提供了一种bmc时间同步方法,能够在ntp服务器失效时,通过ipmi命令自动获取其它bmc的时间,并利用本机ntp状态值保证时间准确度、利用校验码保证数据的安全,既有效降低了bmc时间同步的成本,又保证了bmc时间同步的准确度。
[0077]
实施例二:
[0078]
基于实施例一,如图2所示,本发明还公开了一种bmc时间同步系统,包括:设置模块1、请求模块2、回复模块3、验证模块4、筛选模块5和同步模块6。
[0079]
设置模块1,用于在本机bmc内增加时间同步命令,并定义其时间请求和回复的数据格式。
[0080]
请求模块2,用于当本机bmc无法通过ntp服务器获取ntp时间时,本机bmc周期性向多台bmc发送时间请求。请求模块2具体用于:当本机bmc无法通过ntp服务器获取ntp时间时,本机bmc周期性向同一网段的m台bmc发送ipmi时间请求time sync request;其中,m》=2。
[0081]
回复模块3,用于收到时间请求的bmc在通过请求校验后向本机bmc发送回复数据。回复模块3具体用于:收到ipmi时间请求的bmc若能识别请求校验码,则发送带有本机ntp状态、ntp服务器地址、时间戳和n位时间同步校验码的ipmi回复。
[0082]
验证模块4,用于本机bmc收到回复后,进行时间同步校验,校验通过后将相应的bmc作为时间同步候选bmc。验证模块4具体用于:本机bmc收到ipmi回复后,检验时间同步校验码,若校验通过,则将此bmc作为时间同步候选bmc。
[0083]
筛选模块5,用于根据每个通信时长,在所有时间同步候选bmc中筛选出最佳bmc。筛选模块5具体用于:确定每个时间同步候选bmc的通信时长,并从中筛选出通信时长最短且本机ntp状态值为1的时间同步候选bmc,将其作为最佳bmc。
[0084]
同步模块6,用于将最佳bmc的时间设定为本机bmc的时间。同步模块6具体用于:将最佳bmc的时间戳设为本机bmc的时间,并将最佳bmc的ntp服务器地址设置为本机的ntp服务器地址。
[0085]
本实施例提供了一种bmc时间同步系统,能够在ntp服务器失效时,通过ipmi命令自动获取其它bmc的时间,并利用本机ntp状态值保证时间准确度、利用校验码保证数据的安全,既有效降低了bmc时间同步的成本,又保证了bmc时间同步的准确度。
[0086]
实施例三:
[0087]
本实施例公开了一种bmc时间同步装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的bmc时间同步程序时实现以下步骤:
[0088]
1、在本机bmc内增加时间同步命令,并定义其时间请求和回复的数据格式。
[0089]
2、当本机bmc无法通过ntp服务器获取ntp时间时,本机bmc周期性向多台bmc发送时间请求。
[0090]
3、收到时间请求的bmc在通过请求校验后向本机bmc发送回复数据。
[0091]
4、本机bmc收到回复后,进行时间同步校验,校验通过后将相应的bmc作为时间同步候选bmc。
[0092]
5、根据每个通信时长,在所有时间同步候选bmc中筛选出最佳bmc。
[0093]
6、将最佳bmc的时间设定为本机bmc的时间。
[0094]
进一步的,本实施例中的bmc时间同步装置,还可以包括:
[0095]
输入接口,用于获取外界导入的bmc时间同步程序,并将获取到的bmc时间同步程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
[0096]
输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于usb接口、串行接口等。
[0097]
通讯单元,用于在bmc时间同步装置和外部服务器之间建立远程通讯连接,以便于bmc时间同步装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
[0098]
键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
[0099]
显示器,用于运行服务器供电线路短路定位过程的相关信息进行实时显示。
[0100]
鼠标,可以用于协助用户输入数据并简化用户的操作。
[0101]
本实施例提供了一种bmc时间同步装置,实现了在bmc的ntp服务器失效时,自动获取其它bmc的时间,从中筛选出正确的时间及ntp服务器地址,并将其设在为本机的时间和ntp服务器地址,最大限度的保证bmc的时间准确度。。
[0102]
实施例四:
[0103]
本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有bmc时间同步程序,所述bmc时间同步程序被处理器执行时实现以下步骤:
[0104]
1、在本机bmc内增加时间同步命令,并定义其时间请求和回复的数据格式。
[0105]
2、当本机bmc无法通过ntp服务器获取ntp时间时,本机bmc周期性向多台bmc发送时间请求。
[0106]
3、收到时间请求的bmc在通过请求校验后向本机bmc发送回复数据。
[0107]
4、本机bmc收到回复后,进行时间同步校验,校验通过后将相应的bmc作为时间同步候选bmc。
[0108]
5、根据每个通信时长,在所有时间同步候选bmc中筛选出最佳bmc。
[0109]
6、将最佳bmc的时间设定为本机bmc的时间。
[0110]
本实施例提供了一种可读存储介质,实现了在bmc的ntp服务器失效时,自动获取其它bmc的时间,从中筛选出正确的时间及ntp服务器地址,并将其设在为本机的时间和ntp服务器地址,最大限度的保证bmc的时间准确度。
[0111]
综上所述,本发明实现了当ntp服务器失效时,有bmc周期性向同网段的m台bmc发送ipmi时间请求,根据最短回复时长和ntp状态确定最佳bmc,并将其回复中的时间戳与ntp服务器地址设为原bmc的时间和ntp服务器地址,从而完成了bmc的时间同步,并有效的保证了bmc时间同步的准确度。
[0112]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0113]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0114]
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0115]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0116]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
[0117]
同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
[0118]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0119]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0120]
以上对本发明所提供的bmc时间同步方法、系统、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1