高速缓存数据处理方法及设备与流程

文档序号:12596829阅读:336来源:国知局
高速缓存数据处理方法及设备与流程

本公开的实施例总体上涉及数据处理方法,更具体地涉及高速缓存数据处理方法及设备。



背景技术:

存储设备在发生电源故障时,高速缓存中的数据将会丢失,因此,通常采用电池电源(例如,可充电电池)作为应急电源,来保存或者处理高速缓存中的数据(即,脏数据(dirty data))。例如,在发生电源故障时,存储设备将存储器(例如,内存)中的高速缓存数据刷写到专用的非易失性存储区域(例如,磁盘中最前面的四块磁盘的一部分,也被称为“小磁盘”),以保护高速缓存中的数据。该非易失性存储区域用于临时地存储未被写入到磁盘的高速缓存数据,在电源恢复之后,存储设备读取非易失性存储区域中的高速缓存数据,以将高速缓存数据写入到磁盘中。

然而,现有的高速缓存数据处理方法仅被动地保护高速缓存中的数据,而不能主动地监视存储设备的电源状态并且主动地对高速缓存中的数据进行处理。此外,当存储设备的外部电源关断时,专用电池电源只能提供很短时间的电源供应,例如10-300秒,虽然在很多情况下这个时间对磁盘阵列已经足够,但是随着硬件平台的升级、电源损耗和高速缓存存储器大小的越来越大,专用电池电源不能提供足够的电源来处理高速缓存中的数据。

因此,如何在存储设备发生电源故障时,在没有特别的硬件或者软件设计的情况下,完成高速缓存数据的处理并且保证数据的一致性和完整性,成为一个亟待解决的问题。



技术实现要素:

有鉴于此,本公开的各实施例提出了一种高速缓存数据处理方法及设备。

根据本公开的一个方面,提供了一种高速缓存数据处理方法,该方法包括:监视存储设备的电源状态以确定是否发生电源故障;以及响应于确定发生电源故障,向存储设备的处理器发送电源故障事件,以使得处理器停止存储设备的数据读写操作并且将高速缓存数据刷写到磁盘。

根据本公开的一个实施例,其中监视存储设备的电源状态包括:通过智能平台管理接口(IPMI)来监视存储设备的电源状态。

根据本公开的另一个实施例,其中确定是否发生电源故障包括:根据两个或者更多个电源的电源状态的组合,确定是否发生电源故障。

根据本公开的又一个实施例,该方法进一步包括将两个或者更多个电源进行连接,以便通过智能平台管理接口来同时监视两个或者更多个电源的电源状态。

根据本公开的一个实施例,其中根据两个电源的电源状态的组合,确定是否发生电源故障包括:当外部电源接通并且不间断电源接通时,确定没有发生电源故障;和/或当外部电源关断并且不间断电源接通时,确定发生电源故障;和/或当外部电源接通并且不间断电源关断时,确定没有发生电源故障。

根据本公开的另一个实施例,其中当外部电源接通并且不间断电源关断时,通知存储设备的管理员维护不间断电源。

根据本公开的又一个实施例,该方法进一步包括在发生电源故障时,使用不间断电源(UPS)向存储设备提供电源。

根据本公开的一个实施例,该方法进一步包括在所述处理器停止存储设备的数据读写操作时,确定还没有被刷写到磁盘的高速缓存数据。

根据本公开的另一个实施例,该方法进一步包括:在将高速缓存 数据刷写到磁盘之后,将存储设备的状态标记为已刷写状态

根据本公开的又一个实施例,该方法进一步包括:当电源恢复时,根据标记为已刷写状态的存储设备的状态,继续进行新的数据读写操作。

根据本公开的另一个方面,提供了一种高速缓存数据处理设备,该设备包括:监视装置,被配置用于监视存储设备的电源状态以确定是否发生电源故障;以及电源故障响应装置,被配置用于响应于确定发生电源故障,向存储设备的处理器发送电源故障事件,以使得处理器停止存储设备的数据读写操作并且将高速缓存数据刷写到磁盘。

根据本公开的一个实施例,其中监视装置进一步被配置用于:通过智能平台管理接口(IPMI)来监视存储设备的电源状态。

根据本公开的另一个实施例,其中监视装置进一步被配置用于:根据两个或者更多个电源的电源状态的组合,确定是否发生电源故障。

根据本公开的又一个实施例,该设备进一步包括连接装置,被配置用于将两个或者更多个电源进行连接,以便通过智能平台管理接口来同时监视两个或者更多个电源的电源状态。

根据本公开的一个实施例,其中当根据两个电源的电源状态的组合来确定是否发生电源故障时,监视装置进一步被配置用于:当外部电源接通并且不间断电源接通时,确定没有发生电源故障;和/或当外部电源关断并且不间断电源接通时,确定发生电源故障;和/或当外部电源接通并且不间断电源关断时,确定没有发生电源故障。

根据本公开的另一个实施例,其中监视装置进一步被配置用于:当外部电源接通并且不间断电源关断时,通知存储设备的管理员维护不间断电源。

根据本公开的又一个实施例,其中电源故障响应装置进一步被配置用于:在发生电源故障时,使用不间断电源(UPS)向存储设备提供电源。

根据本公开的一个实施例,其中电源故障响应装置进一步被配置 用于:在所述处理器停止存储设备的数据读写操作时,确定还没有被刷写到磁盘的高速缓存数据。

根据本公开的另一个实施例,该设备进一步包括标记装置,被配置用于在将高速缓存数据刷写到磁盘之后,将存储设备的状态标记为已刷写状态。

根据本公开的又一个实施例,该设备进一步包括恢复装置,被配置用于:当电源恢复时,根据标记为已刷写状态的存储设备的状态,继续进行新的数据读写操作。

根据本公开的又一个方面,提供了一种计算机程序产品,该计算机程序产品包括具体化于其中的计算机可读程序指令,计算机可读程序指令在由处理器执行时,引起处理器执行根据本公开的实施例的高速缓存数据处理方法。

本公开的示例性实施例提供的示例性解决方案可以带来以下技术效果中的至少一种:主动地监视存储设备的电源状态,利用电源组合确定是否发生电源故障,并且在发生电源故障时,利用不间断电源供电以刷写高速缓存中的数据,为存储设备提供了额外的数据处理时间,有效地保证了存储设备中的数据一致性和完整性。同时,由于电源恢复之后,不再需要从非易失性存储区域来加载高速缓存数据,因此还可以减少存储设备系统的启动时间。

附图说明

结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例。在附图中:

图1图示了根据本公开的实施例的高速缓存数据处理方法100的流程图;

图2图示了根据本公开的实施例的智能平台管理接口(IPMI)200的框图;

图3图示了根据本公开的实施例的包括两个电源的存储设备的系 统300的框图;

图4图示了根据本公开的实施例的高速缓存数据处理方法400的流程图;

图5图示了根据本公开的实施例的高速缓存数据处理设备500的框图;

图6图示了可以在其中实现根据本公开的实施例的计算机设备的系统600的框图。

具体实施方式

以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令或命令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。

本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。流程图和/或框图中的每个方框中的虚线方框表示可选的流程或者方框,而不是必须的流程或者方框。

应当理解,给出这些示例性实施例仅是为了使本领域技术人员能 够更好地理解进而实现本公开的实施例,而并非以任何方式限制发明的范围。

图1图示了根据本公开的实施例的高速缓存数据处理方法100的流程图。参考图1,在步骤102处,监视存储设备的电源状态以确定是否发生电源故障。例如,通过软件主动地、实时地获得存储设备的电源状态,诸如,通过一个电源状态或者多个电源状态的组合,判断存储设备的一个或者多个电源是否正常工作,从而确定存储设备是否发生电源故障。

根据本公开的实施例,可以通过智能平台管理接口(IPMI)来监视存储设备的电源状态。IPMI是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理各种系统中所使用的外围设备的一种工业标准。IPMI是一种开放标准的硬件管理接口规格,其能够独立地检测与其连接的硬件的状态,例如,可以用来监视存储设备的物理健康特征,诸如温度、电压、电源状态等。此外,IPMI连接硬件而不是软件,因此,它能够独立于操作系统而工作。根据本公开的实施例,可以通过使用现有的IPMI辅助软件(例如IPMITOOL、FreeIPMI以及IPMIUTIL等)来监视存储设备的电源状态信息。

根据本公开的实施例,根据两个或者更多个电源状态的组合状态,确定是否发生电源故障。例如,对于具有磁盘阵列的存储设备,可以插上两个或者两个以上的偶数个电源,通过检测到的多个电源状态的组合结果,来判断存储设备的电源状态,继而确定是否发生电源故障。诸如,当存在N个电源时,存在2^N种电源状态的组合,其中N是两个或者两个以上的偶数,例如,当N是2时,则存在4种电源状态的组合结果。

根据本公开的一个实施例,存储设备可以插上两个电源,这两个电源可以运行为主动-主动模式(即,两个电源同时运行)或者主动-被动模式(即,两个电源交替运行)。根据本公开的另一个实施例,方法100进一步包括将两个或者更多个电源进行连接(例如,电缆连接),以便通过智能平台管理接口来同时监视这两个或者更多个电源 的电源状态。例如,可以利用IPMI同时监视这两个电源,对于存储设备中的每个电子元件,两个电源之间共享电源分布,当一个电源发生故障时,另一个电源继续提供电源。

当存储设备可以插上两个电源时,一个电源连接到外部电源(例如,市电),另一个电源连接到不间断电源(UPS),UPS再连接到外部电源。在该实施例中,电源是被设计为冗余的,而存储设备可以在单个电源上工作,因此,即使外部电源发生故障而被关断,UPS仍可以为存储设备提供一段时间的电源供应。

根据本公开的实施例,根据两个或者更多个电源状态的组合,确定是否发生电源故障包括:当外部电源接通并且不间断电源接通时,确定没有发生电源故障;和/或当外部电源关断并且不间断电源接通时,确定发生电源故障;和/或当外部电源接通并且不间断电源关断时,确定没有发生电源故障。例如,当外部电源和UPS均正常工作时,说明电源正常运转,此时不采取任何动作;当外部电源接通而UPS关断时,说明外部电源正常而UPS发生故障,这时可以例如通知存储设备的管理员维护不间断电源(UPS);当外部电源关断而UPS接通时,说明外部电源发生故障,存储设备进入电源故障模式,此时,UPS接管存储设备的电源供应,并且向存储设备提供一段时间的额外电源供应,同时系统生成电源故障事件,存储设备的处理器根据相应的电源故障事件来采取相应处理;此外,当外部电源和UPS均关断时,说明两个电源都发生故障,在这种情况下,例如可以参考现有技术中的处理方式,由电池电源提供短暂时间的电源供应,将高速缓存数据刷写到非易失性存储区域中。当外部电源恢复时,存储设备的系统再从非易失性存储区域读取高速缓存数据并进行相应的处理。

继续参考图1,在步骤104处,响应于确定发生电源故障,向存储设备的处理器发送电源故障事件,以使得处理器停止存储设备的数据读写操作并且将高速缓存数据刷写到磁盘。在确定发生电源故障之后,基板控制器BMC经由IPMI接口直接向存储设备的处理器或者经由另外的电源状态监视模块向处理器发送电源故障事件。处理器在 接收到电源故障事件之后,立即停止存储装置的所有数据读写操作或I/O操作,并且在确定所有数据读写操作或I/O操作已经停止之后,处理器将高速缓存数据刷写到磁盘中,其中高速缓存数据是指已经处于高速缓存中的、但还没有被写入到磁盘中的脏数据(dirty data),这种脏数据的存在容易导致存储设备的数据存储的不一致或不完整。

根据本公开的实施例,进一步包括在发生电源故障时,使用不间断电源(UPS)向存储设备提供电源。不间断电源(UPS)是一种当外部电源(例如,市电)断电时,能够提供应急电源的装置。UPS设备在市电发生故障时,其内部的蓄电池迅速的取代外部电源通过逆变器持续向存储装置供电。UPS的供电时间根据需要可以设置在几分钟到几十个小时之间,其电源供应能力远大于传统的存储设备中的电池电源,在发生电源故障时,UPS提供了额外的操作时间来处理高速缓存中的数据。

根据本公开的实施例,方法100进一步包括在所述处理器停止存储设备的数据读写操作时,确定还没有被刷写到磁盘的高速缓存数据。在确定电源故障之后,在停止数据读写的同时,确定还没有被刷写到磁盘的高速缓存数据(即,高速缓存中的脏数据),以便将这些高速缓存数据刷写到磁盘。

根据本公开的实施例,方法100可选择地但不必须地包括步骤106,在步骤106处,在将高速缓存数据刷写到磁盘之后,将存储设备的状态标记为已刷写状态。例如,将高速缓存标记为“已刷写”、“已清洗”或者“已处理”等状态,这意味着不再需要将故障发生时的高速缓存数据刷写到非易失性存储区域中,即在UPS电源消失之后,不需要对高速缓存数据进行进一步处理。

根据本公开的实施例,当电源恢复时,根据标记为已刷写状态的存储设备的状态,继续进行新的数据读写操作。在电源恢复之后,根据标记为已刷写状态的存储设备的状态,由于已经将高速缓存数据刷写到磁盘中,所以不再需要从非易失性存储区域来加载高速缓存数据,因此,本公开的实施例的方案可以减少存储设备系统的启动时间。

参考图2,图示了根据本公开的实施例的智能平台管理接口(IPMI)200的框图,如图所示,IPMI主要通过基板管理控制器(BMC)来实现,由BMC获得与其连接的组件(例如,电源、网络适配器、南桥I/O芯片)的硬件信息,一般来说,BMC具有以下功能:通过系统的串行端口进行访问、故障日志记录和SNMP警报发送、访问系统事件日志(System Event Log,SEL)和传感器状况、控制包括开机和关机、独立于系统电源或工作状态。通过BMC监视电源状态,可以实时地获得存储设备的电源状态。BMC可以通过总线(例如,LPC总线、I2C总线等)获得与其连接的硬件设备的硬件信息,如温度、电压、电源状态等。

参考图3,图3图示了根据本公开的实施例的包括两个电源的存储设备的系统300的框图。系统300包括磁盘、驱动器、处理器、BMC、电源A以及电源B,电源A直接连接到外部电源(例如市电),电源B连接到不间断电源(UPS),UPS再连接到外部电源,通过对电源A和电源B的状态检测,能够确定存储设备的当前电源状态。电源A和电源B共有4种组合状态。例如,电源A和电源B都接通时,确定没有发生电源故障;电源A接通而电源B关断时,确定没有发生电源故障;电源A关断而电源B接通时,确定系统300发生电源故障,在BMC通过IPMI确定电源故障之后,系统生成电源故障事件。当电源A和电源B都关断时,确定存储设备没有电源供应。

图4图示了根据本公开的另一个实施例的高速缓存数据处理方法400的流程图。图4包括基板管理控制器(BMC)、电源状态监视模块、处理器、处理器高速缓存驱动。根据本公开的实施例,电源状态监视模块可以单独设置,也可以被设置在其他组件(例如,处理器)的内部,BMC直接向处理器发送电源故障事件。在步骤401,BMC向电源状态监视模块发送电源状态信息。在步骤402,当确定发生电源故障时,电源状态监视模块向处理器发送电源故障事件。在步骤403,响应于电源故障事件,处理器向处理器高速缓存驱动发送停止存储设备的数据读写操作或者I/O操作的命令,在步骤404,处理器 高速缓存驱动完成数据读写操作或者I/O操作的停止步骤。在步骤405,处理器将高速缓存中的数据(即,脏数据)刷写到磁盘,在步骤406,完成高速缓存数据的刷写操作。在步骤407,处理器向电源状态监视模块发送电源故障事件已成功被处理的消息。然而,图4的处理方法只是一种示例性的实施方法,其中的电源状态监视模块、处理器高速缓存驱动可以被省略,或者被整合在其他组件中完成相应功能,其中的某些步骤可以被省略、被改变。

图5图示了根据本公开的实施例的高速缓存数据处理设备500的框图,该设备500包括:监视装置502,被配置用于监视存储设备的电源状态以确定是否发生电源故障;电源故障响应装置504,被配置用于响应于确定发生电源故障,向所述存储设备的处理器发送电源故障事件,以使得所述处理器停止存储设备的数据读写操作并且将高速缓存数据刷写到磁盘。根据本公开的另一个实施例,可选地,该设备500进一步包括标记装置506,被配置用于在将高速缓存数据刷写到磁盘之后,将所述存储设备的状态标记为已刷写状态。

应当理解,设备500可以利用各种方式来实现。例如,在某些实施例中,设备500可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本公开的实施例的设备和装置不仅可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合来实现。

在下文中,将参考图6来描述可以在其中实现本公开的实施例的 计算机设备。图6图示了可以在其中实现根据本公开的实施例的计算机设备的系统600的框图。

图6中所示的计算机系统包括CPU(中央处理单元)601、RAM(随机访问存储器)602、ROM(只读存储器)603、系统总线604、硬盘控制器605、键盘控制器606、串行接口控制器607、并行接口控制器608、显示器控制器609、硬盘610、键盘611、串行外部设备612、并行外部设备613和显示器614。在这些部件中,与系统总线604相连的有CPU 601、RAM 602、ROM 603、硬盘控制器605、键盘控制器606、串行接口控制器607、并行接口控制器608和显示器控制器609。硬盘610与硬盘控制器605相连,键盘611与键盘控制器606相连,串行外部设备612与串行接口控制器607相连,并行外部设备613与并行接口控制器608相连,以及显示器614与显示器控制器609相连。需要说明的是,图6所述的结构框图仅仅为了示例的目的而示出的,并非是对本公开的限制。在一些情况下,可以根据需要添加或者减少其中的一些设备。

本公开的实施方式可以作为计算机程序代码存储在上计算机的例如硬盘610的存储设备中,在被载入诸如内存中运行时,将使得CPU 601执行根据本公开的高速缓存数据处理方法。

本公开的实施例通过实时地获得存储设备的电源状态,并且在发生电源故障时,利用不间断电源供电以刷写高速缓存中的数据,为存储设备提供了额外的数据处理时间,有效地保证了存储设备中的数据一致性和完整性。在电源恢复之后,不需要再从非易失性存储区域中加载高速缓存数据,因此节省了启动时间。

应当注意,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。

以上所述仅为本公开的实施例可选实施例,并不用于限制本公开 的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。

虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

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