一种基于BMC的数据持久化方法及系统与流程

文档序号:22759879发布日期:2020-10-31 09:58阅读:148来源:国知局
一种基于BMC的数据持久化方法及系统与流程

本发明属于bmc数据缓存技术领域,具体涉及一种基于bmc的数据持久化方法及系统。



背景技术:

bmc,baseboardmanagementcontroller的简称,基板管理控制器。

bmc通过ipmi规范对服务器主板进行管理,具体包括本地和远程诊断、控制台支持、配置管理、硬件管理和故障排除,而在管理服务器的过程中需要对服务器关机信息进行监控,如监视风扇、内存硬盘及其他关键组件的使用情况,通过对服务器关键信息进行监控,对服务器的维护和故障处理能够提供一个较好的分析依据和数据支撑。并且服务器关键信息的监控,对于监控和分析整个服务器的运行状态至关重要,服务器关键信息包括:关键电压信息、关键温度信息、功耗信息。早期服务器关键信息的读取一般是访问实际设备或者读取数据库和配置文件信息,此种方式数据返回时间较长,获取数据的速度较慢。目前采用数据缓存可较快的获取监控数据,从而能够快速且准确的处理问题,

现有bmc的数据缓存方法如下:先将数据存入数据库或者配置文件,再更新缓存,读取数据时直接从缓存获取,实现提高访问速度的提高。但是有时候数据库插入成功或者配置文件更新完成后,若缓存出现问题或者缓存系统挂了,客户端请求会直接访问数据库最新的数据,这样缓存恢复的时候,并发请求会访问到以前旧的缓存数据,这时候就会出现不一致问题;另外,当缓存恢复的时候通常是直接清空缓存,然后重新加载缓存内容,但实际上缓存数据有很大一部分是不经常变化的,比如一些在位信息,用户信息,fru信息等,这种全部清空再重新加载缓存的方式效率非常低。

此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种基于bmc的数据持久化方法及系统,是非常有必要的。



技术实现要素:

针对现有技术的上述bmc将数据存储在缓存供用户读取,缓存故障又恢复时,从缓存读取的并非最新数据,出现数据不一致以及缓存数据恢复时完全重新加载效率低的缺陷,本发明提供一种基于bmc的数据持久化方法及系统,以解决上述技术问题。

第一方面,本发明提供一种基于bmc的数据持久化方法,包括如下步骤:

s1.设置bmc监控服务器关键信息,将接收到服务器关键信息同时写入存储模块和缓存;

s2.存储模块为每条服务器关键信息设置更新状态,记录是否写入缓存成功;

s3.在缓存设置访问开关;当服务器关键信息写入缓存失败时,关闭缓存访问开关;

s4.缓存访问开关关闭后,定时检测缓存是否可用;

当缓存可用时,根据存储模块中服务器关键信息更新状态对缓存进行更新,并打开缓存访问开关。

进一步地,还包括如下步骤:

s5.客户端读取bmc监控的服务器关键信息时,判断缓存访问开关是否打开;

若是,从缓存读取服务器关键信息;

若否,从存储模块读取服务器关键信息。通过设置缓存访问开关,避免缓存故障后恢复之处,从缓存读取到旧的缓存数据,出现数据不一致。

进一步地,服务器关键信息包括电压信息、温度信息以及功耗信息。

进一步地,存储模块采用数据库或配置文件;

步骤s2具体步骤如下:

s21.判断存储模块为数据库还是配置文件;

当存储模块为数据库时,进入步骤s22;

当存储模块为配置文件时,进入步骤s23;

s22.在数据库增加状态表,状态表记录对应服务器关键信息是否更新到缓存,进入步骤s3;

s23.在配置文件增加状态配置,状态配置记录对应服务器关键信息是否更新到缓存,进入步骤s3。存储模块可采用数据库或配置文件两种方式之一,每种方式都可设置记录bmc读取到服务器关键信息更新到缓存的更新状态。

进一步地,步骤s3具体步骤如下:

s31.在缓存设置访问开关,默认缓存访问开关设置为开启状态;

s32.判断bmc向缓存写入服务器关键信息是否成功;

若是,进入步骤s5;

若否,判定缓存不可用,关闭缓存访问开关,进入步骤s4。通过缓存访问开关控制缓存是否可用,当bmc向缓存写入服务器关键信息失败时,可判定缓存不可用,关闭缓存访问开关,避免用户读取到错误数据。

进一步地,步骤s4具体步骤如下:

s41.缓存访问开关关闭后,进入步骤s5的同时,在后台设置定时,每间隔设定时间段进入缓存检测;

s42.检测缓存是否可用;

若是,进入步骤s43;

若否,返回步骤s42;

s43.获取存储模块中更新状态为写入缓存失败的服务器关键信息,对缓存进行更新;

s44.打开缓存访问开关。缓存访问开关关闭后需要定时检测缓存是否故障恢复,并在缓存故障恢复后,及时通过更新状态对缓存数据进行更新,再打开缓存访问开关给用户使用,避免用户读取到错误的数据,同时,又无需对所有数据进行更新,只需更新状态为写入缓存失败的服务器关键信息。

第二方面,本发明提供一种基于bmc的数据持久化系统,包括:

服务器关键信息监控模块,用于设置bmc监控服务器关键信息,将接收到服务器关键信息同时写入存储模块和缓存;

更新状态设置模块,用于在存储模块为每条服务器关键信息设置更新状态,记录是否写入缓存成功;

缓存访问开关设置模块,用于在缓存设置访问开关;当服务器关键信息写入缓存失败时,关闭缓存访问开关;

缓存检测模块,用于在缓存访问开关关闭后,定时检测缓存是否可用;并在缓存可用时,根据存储模块中服务器关键信息更新状态对缓存进行更新,并打开缓存访问开关。

进一步地,还包括:

服务器关键信息读取模块,用于在客户端读取bmc监控的服务器关键信息时,判断缓存访问开关是否打开,在缓存访问开关开启时,从缓存读取服务器关键信息,以及在缓存访问开关关闭时,从存储模块读取服务器关键信息。

进一步地,更新状态设置模块包括:

存储模块判断单元,用于判断存储模块为数据库还是配置文件;

状态表增加单元,用于当存储模块为数据库时,在数据库增加状态表,状态表记录对应服务器关键信息是否更新到缓存;

状态配置增加单元,用于当存储模块为配置文件时,在配置文件增加状态配置,状态配置记录对应服务器关键信息是否更新到缓存。

进一步地,缓存访问开关设置模块包括;

访问开关设置单元,用于在缓存设置访问开关,默认缓存访问开关设置为开启状态;

缓存写入判断单元,用于判断bmc向缓存写入服务器关键信息是否成功;

缓存访问开关关闭单元,用于判定缓存不可用,关闭缓存访问开关;

缓存检测模块包括:

定时设定单元,用于在缓存访问开关关闭后,在后台设置定时,每间隔设定时间段进入缓存检测;

缓存检测单元,用于定时检测缓存是否可用;

缓存更新单元,用于获取存储模块中更新状态为写入缓存失败的服务器关键信息,对缓存进行更新;

缓存访问开关开启单元,用于在缓存可用时,更新缓存后,打开缓存访问开关。

本发明的有益效果在于,

本发明提供的基于bmc的数据持久化方法及系统,通过在存储模块增加更新状态记录写入缓存是否成功,在缓存故障恢复时,根据更新状态恢复写入失败的缓存数据,避免缓存数据的整体恢复,以及设置缓存访问开关,避免缓存恢复之初获取到不正确数据,使得服务器的关键信息查看更快速,更可靠。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

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

图1是本发明的方法流程示意图一;

图2是本发明的方法流程示意图二;

图3为本发明的系统示意图;

图中,1-服务器关键信息监控模块;2-更新状态设置模块;2.1-存储模块判断单元;2.2-状态表增加单元;2.3-状态配置增加单元;3-缓存访问开关设置模块;3.1-访问开关设置单元;3.2-缓存写入判断单元;3.3-缓存访问开关关闭单元;4-缓存检测模块;4.1-定时设定单元;4.2-缓存检测单元;4.3-缓存更新单元;4.4-缓存访问开关开启单元;5-服务器关键信息读取模块。

具体实施方式

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

实施例1:

如图1所示,本发明提供一种基于bmc的数据持久化方法,包括如下步骤:

s1.设置bmc监控服务器关键信息,将接收到服务器关键信息同时写入存储模块和缓存;服务器关键信息包括电压信息、温度信息以及功耗信息;

s2.存储模块为每条服务器关键信息设置更新状态,记录是否写入缓存成功;

s3.在缓存设置访问开关;当服务器关键信息写入缓存失败时,关闭缓存访问开关;

s4.缓存访问开关关闭后,定时检测缓存是否可用;

当缓存可用时,根据存储模块中服务器关键信息更新状态对缓存进行更新,并打开缓存访问开关。

实施例2:

如图2所示,本发明提供一种基于bmc的数据持久化方法,包括如下步骤:

s1.设置bmc监控服务器关键信息,将接收到服务器关键信息同时写入存储模块和缓存;服务器关键信息包括电压信息、温度信息以及功耗信息;存储模块采用数据库或配置文件;

s2.存储模块为每条服务器关键信息设置更新状态,记录是否写入缓存成功;具体步骤如下:

s21.判断存储模块为数据库还是配置文件;

当存储模块为数据库时,进入步骤s22;

当存储模块为配置文件时,进入步骤s23;

s22.在数据库增加状态表,状态表记录对应服务器关键信息是否更新到缓存,进入步骤s3;

s23.在配置文件增加状态配置,状态配置记录对应服务器关键信息是否更新到缓存,进入步骤s3;

s3.在缓存设置访问开关;当服务器关键信息写入缓存失败时,关闭缓存访问开关;具体步骤如下:

s31.在缓存设置访问开关,默认缓存访问开关设置为开启状态;

s32.判断bmc向缓存写入服务器关键信息是否成功;

若是,进入步骤s5;

若否,判定缓存不可用,关闭缓存访问开关,进入步骤s4;

s4.缓存访问开关关闭后,定时检测缓存是否可用;

当缓存可用时,根据存储模块中服务器关键信息更新状态对缓存进行更新,并打开缓存访问开关;具体步骤如下:

s41.缓存访问开关关闭后,进入步骤s5的同时,在后台设置定时,每间隔设定时间段进入缓存检测;

s42.检测缓存是否可用;

若是,进入步骤s43;

若否,返回步骤s42;

s43.获取存储模块中更新状态为写入缓存失败的服务器关键信息,对缓存进行更新;

s44.打开缓存访问开关;

s5.客户端读取bmc监控的服务器关键信息时,判断缓存访问开关是否打开;

若是,从缓存读取服务器关键信息;

若否,从存储模块读取服务器关键信息。

bmc监控接收到服务器关键信息,如关键部件的电压、温度和功耗信息,对这些服务器关键信息按照key,value的形式进行缓存,对外提供访问接口。

写如数据时,同时写数据库或者配置文件和缓存,另外在数据库增加一个状态表,如果是配置文件则增加一个状态配置,在写缓存的时候会判断写入是否成功,如果写入出错,我们将key和更新状态值(value)插入到数据库状态表中,同时关闭前端访问缓存的开关。

客户端在读数据的时候,要先判断一下缓存访问开关是否打开,如果打开则读取缓存,如果关闭则直接访问数据库或者配置文件。

后台维护一个定时任务,每隔一定时间来检测缓存系统是否可用,如果可用则从状态表中读取key值和更新状态位,根据key值更新缓存,而不用清空整个缓存,然后打开缓存访问开关,这样前端则能够从缓存读取最新数据。

实施例3:

如图3所示,本发明提供一种基于bmc的数据持久化系统,包括

服务器关键信息监控模块1,用于设置bmc监控服务器关键信息,将接收到服务器关键信息同时写入存储模块和缓存;

更新状态设置模块2,用于在存储模块为每条服务器关键信息设置更新状态,记录是否写入缓存成功;更新状态设置模块2包括:

存储模块判断单元2.1,用于判断存储模块为数据库还是配置文件;

状态表增加单元2.2,用于当存储模块为数据库时,在数据库增加状态表,状态表记录对应服务器关键信息是否更新到缓存;

状态配置增加单元2.3,用于当存储模块为配置文件时,在配置文件增加状态配置,状态配置记录对应服务器关键信息是否更新到缓存;

缓存访问开关设置模块3,用于在缓存设置访问开关;当服务器关键信息写入缓存失败时,关闭缓存访问开关;缓存访问开关设置模块3包括;

访问开关设置单元3.1,用于在缓存设置访问开关,默认缓存访问开关设置为开启状态;

缓存写入判断单元3.2,用于判断bmc向缓存写入服务器关键信息是否成功;

缓存访问开关关闭单元3.3,用于判定缓存不可用,关闭缓存访问开关;

缓存检测模块4,用于在缓存访问开关关闭后,定时检测缓存是否可用;并在缓存可用时,根据存储模块中服务器关键信息更新状态对缓存进行更新,并打开缓存访问开关;缓存检测模块4包括:

定时设定单元4.1,用于在缓存访问开关关闭后,在后台设置定时,每间隔设定时间段进入缓存检测;

缓存检测单元4.2,用于定时检测缓存是否可用;

缓存更新单元4.3,用于获取存储模块中更新状态为写入缓存失败的服务器关键信息,对缓存进行更新;

缓存访问开关开启单元4.4,用于在缓存可用时,更新缓存后,打开缓存访问开关;

服务器关键信息读取模块5,用于在客户端读取bmc监控的服务器关键信息时,判断缓存访问开关是否打开,在缓存访问开关开启时,从缓存读取服务器关键信息,以及在缓存访问开关关闭时,从存储模块读取服务器关键信息。

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

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