一种同步BMC和OS时间的方法、装置、终端及存储介质与流程

文档序号:17077380发布日期:2019-03-08 23:52阅读:1424来源:国知局
一种同步BMC和OS时间的方法、装置、终端及存储介质与流程

本发明属于服务器技术领域,具体涉及一种同步bmc和os时间的方法、装置、终端及存储介质。



背景技术:

随着互联网的发展,客户采购服务器和存储的数量日益增大,面对数以万计甚至几十万台设备的机房,对运维工作提出了巨大的挑战。bmc作为服务器和存储平台管理的“大脑”,在客户运维环境中起着至关重要的作用。“监控告警”是bmc最重要的功能之一,而告警记录中的一个关键信息就是故障的触发时间,也就是当时bmc的时间,其准确性直接影响运维或客服对故障的分析定位。

为了确保bmc的时间准确,bmc本身具备一定的同步机制,包括bmc每次启动时会主动去同步me的时间(即os时间),服务器每次重启时bios会主动把时间同步给bmc,同时,客户也可以在bmc下设置ntp(networktimeprotocol)服务器,bmc每隔一个小时会去同步ntp的时间。然而,这些方法均无法做到bmc时间与os时间实时同步,要么需要重启bmc,要么需要重启服务器,又或者每一个小时去同步一次ntp,操作不便。



技术实现要素:

针对现有技术的不足,本发明提供一种同步bmc和os时间的方法、装置、终端及存储介质。

第一方面,本申请实施例提供一种同步bmc和os时间的方法,所述方法包括:

分别读取bmc时间和os时间;

将bmc时间和os时间作差,计算出时间差;

预设时间差容错范围;

判断时间差是否在时间差容错范围内,若是,则重复执行上述步骤;若否,则将bmc时间设定为os时间并记录一条同步日志,然后重复执行上述步骤。

结合第一方面,在第一方面的第一种实施方式中,所述将bmc时间和os时间作差,计算出时间差包括:

先分别将bmc时间和os时间转换成自utc时间1970-01-0100:00:00以来所经过的秒数后再将bmc时间和os时间作差,计算出时间差。

结合第一方面,在第一方面的第二种实施方式中,所述预设时间差容错范围中,将时间差容错范围预设为(-60,60)秒。

第二方面,本申请实施例提供一种同步bmc和os时间的装置,所述装置包括:

时间读取单元,配置用于分别读取bmc时间和os时间;

时间差计算单元,配置用于将bmc时间和os时间作差,计算出时间差;

预设单元,配置用于预设时间差容错范围;

时间差判断单元,配置用于判断时间差是否在时间差容错范围内,若是,则重复执行上述步骤;若否,则将bmc时间设定为os时间并记录一条同步日志,然后重复执行上述步骤。

结合第二方面,在第二方面的第一种实施方式中,所述时间差计算单元包括:

转换模块,配置用于分别将bmc时间和os时间转换成自utc时间1970-01-0100:00:00以来所经过的秒数;

计算模块,配置用于将转换后的bmc时间和os时间作差,计算出时间差。

结合第二方面,在第二方面的第二种实施方式中,所述预设单元包括:

范围设置模块,配置用于将时间差容错范围预设为(-60,60)秒。

第三方面,提供一种终端,包括:

处理器、存储器,其中,

该存储器用于存储计算机程序,

该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本发明的有益效果在于:

本发明提供的同步bmc和os时间的方法、装置、终端及存储介质,通过分别读取bmc时间和os时间,并将bmc时间和os时间作差,计算出时间差,判断该时间差是否在预设时间差容错范围内,若是,则重复执行上述步骤,若否,则将bmc时间设定为os时间并记录一条同步日志,然后重复执行上述步骤。真正做到了bmc时间与os时间的实时同步,极大地提高了bmc时间的准确度,提高了服务器运维或测试过程中bmc日志的可参考性。

此外,本发明对所有主流带有bmc模块的服务器或存储均适用,程序操作运行简单,具有较强易用性,且不依赖于网络和ntpserver。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个实施例的方法的示意性流程图。

图2是本申请一个实施例的装置的示意性框图。

图3为本发明实施例提供的一种终端的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

下面对本申请中出现的关键术语进行解释。

图1是本申请一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种同步bmc和os时间的装置。

如图1所示,该方法100包括:

步骤110,分别读取bmc时间和os时间;

步骤120,将bmc时间和os时间作差,计算出时间差;

步骤130,预设时间差容错范围;

步骤140,判断时间差是否在时间差容错范围内,若是,则重复执行上述步骤;若否,则将bmc时间设定为os时间并记录一条同步日志,然后重复执行上述步骤。

为了便于对本发明的理解,下面以本发明同步bmc和os时间的方法的原理,结合实施例中对bmc和os时间同步的过程,对本发明提供的同步bmc和os时间的方法作进一步的描述。

可选地,作为本申请一个实施例,所述将bmc时间和os时间作差,计算出时间差包括:

先分别将bmc时间和os时间转换成自utc时间1970-01-0100:00:00以来所经过的秒数后再将bmc时间和os时间作差,计算出时间差。

可选地,作为本申请一个实施例,所述预设时间差容错范围中,将时间差容错范围预设为(-60,60)秒。

具体的,所述同步bmc和os时间的方法包括:

s1、分别读取bmc时间和os时间。

本实施中,通过脚本自动读取bmc时间和os时间。

s2、将bmc时间和os时间作差,计算出时间差。

通过date命令将bmc时间与os时间都转换成自utc时间1970-01-0100:00:00以来所经过的秒数,这样更便于做差,实现代码如下:

functionchktime()

{

bmc_time=`ipmitoolseltimeget`

echobmc_time:$bmc_time//打印当前bmc时间

bmc_time=`date-d"$bmc_time"+%s`//转换时间格式

os_time=`date`

echoos_time:$os_time//打印当前os时间

os_time=`date+%s`//转换时间格式

gap=`expr$bmc_time-$os_time`//作差

gap=${gap#-}//计算bmc时间和os时间的时间差

}

s3、预设时间差容错范围。

为了实现bmc时间与os时间的实时同步,同时不至于程序过于频繁的给bmc发送命令,预设该同步程序的时间差容错范围为(-60,60)秒。

s4、判断时间差是否在时间差容错范围内,若是,则重复执行上述步骤;若否,则将bmc时间设定为os时间并记录一条同步日志,然后重复执行上述步骤。

当计算的bmc时间和os时间的时间差超出(-60,60)秒的时间差容错范围后才会做同步动作,并记录同步日志,否则继续仅仅循环读取bmc和os时间,不对其做任何操作,实现代码如下:

functionsettime()

{

if[$gap-lt60];then

chktime//若时间差未超出(-60,60)秒,则继续轮询时间差

else

ipmitoolseltimeset"$os_time"//若时间差超出(-60,60)秒,则重设bmc时间

echo-e"bmc_andosisnotthesametime"//生成一条同步日志

fi

}

可选地,在本申请另一种实施方式中,检查时间差和设置时间的函数需要通过另一个函数去调度,一方面确保整个流程执行的顺利,另一方面避免指令执行过于密集而增加cpu的负载,实现代码如下:

main()

{

whiletrue//闭环程序的开始

chetime//计算时间差

settime//同步时间

sleep30//间隔30秒,避免程序占用过多cpu负载

}

如图2所示,该装置200包括:

时间读取单元210,所述时间读取单元210用于分别读取bmc时间和os时间;

时间差计算单元220,所述时间差计算单元220用于将bmc时间和os时间作差,计算出时间差;

预设单元230,所述预设单元230用于预设时间差容错范围;

时间差判断单元240,所述时间差判断单元240用于判断时间差是否在时间差容错范围内,若是,则重复执行上述步骤;若否,则将bmc时间设定为os时间并记录一条同步日志,然后重复执行上述步骤。

可选地,作为本申请一个实施例,所述时间差计算单元包括:

转换模块,配置用于分别将bmc时间和os时间转换成自utc时间1970-01-0100:00:00以来所经过的秒数;

计算模块,配置用于将转换后的bmc时间和os时间作差,计算出时间差。

可选地,作为本申请一个实施例,所述预设单元包括:

范围设置模块,配置用于将时间差容错范围预设为(-60,60)秒。

图3为本发明实施例提供的一种终端装置300的结构示意图,该终端装置300可以用于执行本申请实施例提供的同步bmc和os时间的方法。

其中,该终端装置300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本申请的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。

处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或单元,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本申请实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

因此,本申请通过分别读取bmc时间和os时间,并将bmc时间和os时间作差,计算出时间差,判断该时间差是否在预设时间差容错范围内,若是,则重复执行上述步骤,若否,则将bmc时间设定为os时间并记录一条同步日志,然后重复执行上述步骤,就实现了bmc时间与os时间的实时同步。本发明极大地提高了bmc时间的准确度,提高了服务器运维或测试过程中bmc日志的可参考性,对所有主流带有bmc模块的服务器或存储均适用,程序操作运行简单,具有较强易用性,且不依赖于网络和ntpserver,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1