发明内容
本发明所要解决的技术问题是提供一种新的存储系统及其数据一致性校验方法。
本发明的技术方案如下:一种存储系统的数据一致性校验方法,其包括以下步骤:S1,在执行读写操作时,判断系统是否首次执行读写操作,是则记录协议化数据的关键信息;S2,在读写操作通过各个功能模块的数据输入口、数据输出口时,监控所述关键信息;S3,在读写操作发生数据一致性问题时,根据所述关键信息记录对应的功能模块与数据内容。
优选的,所述方法中,步骤S1之前还执行以下步骤S0:预设置所述协议化数据的数据块结构。
优选的,所述方法中,所述数据块结构包括虚拟逻辑地址数据头、数据内容、版本号与校验码的数据块。
优选的,所述方法中,步骤S1具体包括以下步骤:系统在获得读写操作的数据包时,判断其中是否第一次监控到数据块,是则记录所述数据块的版本号,否则执行步骤S2。
优选的,所述方法中,步骤S3包括以下步骤:S31,判断数据是否有效,是则执行步骤S32,否则记录并报错;S32,判断数据块的版本号是否相同,是则执行步骤S33,否则记录并报错;S33,判断是否打开数据内容检测,是则执行步骤S34,否则进入其他正常IO流程;S34,检测数据内容并判断是否有效,是则进入其他正常IO流程,否则记录并报错。
优选的,所述方法中,步骤S31中,所述判断数据是否有效,是校验所述数据块中的数据的有效性,其根据所述数据块中的虚拟逻辑地址数据头、数据内容、版本号与校验码进行校验。
优选的,所述方法中,根据磁盘扇区设置所述数据块的大小。
优选的,所述方法中,步骤S3之后,还执行步骤S4:根据记录的结果快速定位发生异常的所述功能模块。
优选的,所述方法中,步骤S4之后,还执行步骤S5:设置所述功能模块为异常模块并处理。
本发明的又一技术方案如下:一种存储系统,其包括若干功能模块,还包括存储模块、监控模块,以及在每一所述功能模块的数据输入口、数据输出口分别设置一数据一致性检验模块;所述存储模块用于在所述存储在执行读写操作时,判断系统是否首次执行读写操作,是则记录协议化数据的关键信息;所述监控模块用于在读写操作通过各个功能模块的数据输入口、数据输出口时,监控所述关键信息;所述数据一致性检验模块用于检验读写操作的数据一致性,在读写操作发生数据一致性问题时,根据所述关键信息记录对应的功能模块与数据内容到所述存储模块。
采用上述方案,本发明采用协议化数据的关键信息设置,在读写操作发生数据一致性问题时,根据所述关键信息记录对应的模块与数据内容,能够迅速发现具有很高的市场应用价值。
具体实施方式
为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以采用许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本说明书所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
一种存储系统的数据一致性校验方法,其包括以下步骤:S1,在执行读写操作时,判断系统是否首次执行读写操作,是则记录协议化数据的关键信息;S2,在读写操作通过各个功能模块的数据输入口、数据输出口时,监控所述关键信息;S3,在读写操作发生数据一致性问题时,根据所述关键信息记录对应的功能模块与数据内容。例如,系统在执行某一或者若干读写操作时,先判断对应的读写操作是否首次执行,如果是首次执行,则记录协议化数据的关键信息,否则在读写操作通过各个功能模块的数据输入口、数据输出口时,监控所述关键信息。这样,通过将检测数据协议化,分为:虚拟逻辑地址数据头、数据内容、版本号、校验码;并在各个关键数据出入口,即数据输入口、数据输出口,通过监控数据内容和版本号进行数据一致性检测,从而能够在数据错误发生时,快速定位、及时纠错。
优选的,所述方法,即所述数据一致性校验方法,其中,步骤S1之前还执行以下步骤S0:预设置所述协议化数据的数据块结构。例如,所述方法中,所述数据块结构包括虚拟逻辑地址数据头、数据内容、版本号与校验码的数据块。也就是说,数据块设置有一定的结构,即所述数据块结构,其大小根据实际应用确定,优选的,根据磁盘扇区设置所述数据块的大小。
例如,协议化的数据块大小为512字节(bytes),正好符合一个磁盘扇区(sector)的大小。前8字节为存储系统虚拟逻辑地址,中间488字节为可修改的数据内容,紧跟着为8字节的版本号,每一次对存储系统进行检验,其版本号均不同,所述版本号与时间戳相关。最后8字节为整个数据块的CRC校验。又如,磁盘扇区为4096字节,则协议化的数据块大小为4096字节,以此类推,其数据结构亦如上类推。
又如,对于所述数据块,所述关键信息包括虚拟逻辑地址数据头、版本号和/或校验码。又如,所述关键信息包括版本号和/或校验码。又如,所述关键信息仅包括版本号。例如,通过实现模拟协议化IO的应用程序,生成的IO数据块,具有如图1所示数据格式,例如,对于协议化的数据,其数据头包含数据的逻辑地址,即存储系统虚拟逻辑地址,其后数据内容,可以自由设置或者修改,数据内容之后为版本号,最后为整个数据块的CRC校验值。
优选的,所述方法中,步骤S1具体包括以下步骤:系统在获得读写操作的数据包时,判断其中是否第一次监控到数据块,是则记录所述数据块的版本号,否则执行步骤S2。其中,所述系统为存储系统。
优选的,所述方法中,步骤S3包括以下步骤:S31,判断数据是否有效,是则执行步骤S32,否则记录并报错;S32,判断数据块的版本号是否相同,是则执行步骤S33,否则记录并报错;S33,判断是否打开数据内容检测,是则执行步骤S34,否则进入其他正常IO流程;S34,检测数据内容并判断是否有效,是则进入其他正常IO流程,否则记录并报错。优选的,步骤S31中,所述判断数据是否有效,是校验所述数据块中的数据的有效性,其根据所述数据块中的虚拟逻辑地址数据头、数据内容、版本号与校验码进行校验。
例如,系统在首次运行IO时,将记录下协议化数据的关键信息,如数据内容和版本号。当IO通过各个模块的出入口时,都将进行这些关键信息的监控,如果系统IO运行出现数据一致性问题时,数据检测模块会记录下发生异常的环节和内容,从而达到快速定位的目的。例如,如图3所示,一种存储系统的数据一致性校验方法,其包括以下步骤:IO数据包进入Datatest模块,判断是否第一次监控到数据,是则记录数据块的版本号,否则检验数据有效性;其中,一个IO数据包中可能有多个协议化的数据块。检验数据有效性,判断数据是否有效,是则比较数据块的版本号,否则记录并报错;其中,校验数据块中的数据的有效性,是根据虚拟逻辑地址数据头、数据内容、版本号与校验码进行校验。比较数据块的版本号,判断与记录中的信息是否相同,否则记录并报错;是则继续下一步判断。判断是否打开数据内容检测,是则检测数据内容,否则进入其他正常IO流程,即按该IO信息执行。检测数据内容,判断其是否有效,是则进入其他正常IO流程,否则记录并报错;这样,能够迅速发现错误,快速定位,有利于及时纠错,保障系统的正常运行。
优选的,所述方法中,步骤S3之后,还执行步骤S4:根据记录的结果快速定位发生异常的所述功能模块。优选的,步骤S4之后,还执行步骤S5:设置所述功能模块为异常模块并处理。
又如,一种存储系统的数据一致性校验方法,其包括以下步骤:
S0,预设置协议化数据的数据块结构;
S1,在执行读写操作时,判断系统是否首次执行读写操作,是则记录协议化数据的关键信息;
S2,在读写操作通过各个功能模块的数据输入口、数据输出口时,监控所述关键信息;
S3,在读写操作发生数据一致性问题时,根据所述关键信息记录对应的功能模块与数据内容;
S4,根据记录的结果快速定位发生异常的所述功能模块;
S5,设置所述功能模块为异常模块并处理。
又如,一种存储系统的数据一致性校验方法,其包括以下步骤:
S1,系统在获得读写操作的数据包时,判断其中是否第一次监控到数据块,是则记录所述数据块的版本号,否则执行步骤S2;
S2,在读写操作通过各个功能模块的数据输入口、数据输出口时,监控所述关键信息;
S31,判断数据是否有效,是则执行步骤S32,否则记录并报错;
S32,判断数据块的版本号是否相同,是则执行步骤S33,否则记录并报错;
S33,判断是否打开数据内容检测,是则执行步骤S34,否则进入其他正常IO流程;
S34,检测数据内容并判断是否有效,是则进入其他正常IO流程,否则记录并报错;
S4,根据记录的结果快速定位发生异常的所述功能模块;
S5,设置所述功能模块为异常模块并处理。
与上述任一实施例结合应用,本发明的又一实施例如下:一种存储系统,其包括若干功能模块,还包括存储模块、监控模块,以及如图2所示,在每一所述功能模块的数据输入口、数据输出口分别设置一数据一致性检验模块;所述存储模块用于在所述存储在执行读写操作时,判断系统是否首次执行读写操作,是则记录协议化数据的关键信息;所述监控模块用于在读写操作通过各个功能模块的数据输入口、数据输出口时,监控所述关键信息;所述数据一致性检验模块用于检验读写操作的数据一致性,在读写操作发生数据一致性问题时,根据所述关键信息记录对应的功能模块与数据内容到所述存储模块。其中,数据一致性检验模块,即数据检测(Datatest)模块,其运行流程图如图3所示。
优选的,所述存储系统应用了上述任一实施例所述方法。
例如,在现有的存储系统的各个功能模块的出入口增加数据一致性检验模块,如图2所示。例如,存储系统按照IO请求路径的顺序,包括以下功能模块:前端接口模块(FrontEnd,FC/iSCSI/FCoE,FE)、逻辑虚拟卷模块(Logicvolume,LV)、Cache缓存模块(Cache)、Raid模块(RAID)、后端磁盘接口模块(BackEnd,SATA/SAS磁盘接口,BE)等。优选的,所述功能模块还包括执行某些功能的模块,例如,CPU、内存、存储器等。优选的,所述存储系统还设置报警模块,用于在读写操作发生数据一致性问题时,向上级或者管理员进行报警;优选的,所述存储系统还设置校验模块,用于发送读写数据包,进行数据校验;优选的,所述存储系统还设置定位模块,用于在读写操作发生数据一致性问题时,向上级或者管理员显示出现异常的功能模块的信息,优选的,所述信息包括位置信息和时间信息。
进一步地,本发明的实施例还包括,上述各实施例的各技术特征,相互组合形成的存储系统的数据一致性校验方法,以及所述存储系统,该存储系统的数据一致性校验方法以及所述存储系统在存储系统发生数据一致性异常时,对异常的发生和异常数据进行记录,进而根据记录的结果快速定位发生异常的模块,将定位该类问题的时间大大降低,提高整个存储系统的开发效率和稳定性;同时也能用来验证存储系统的数据一致性。
综上所述,该存储系统的数据一致性校验方法是一种在存储系统发生数据一致性异常时,对异常的发生和异常数据进行记录的处理方法,解决的是如何根据记录的结果快速定位发生异常的模块的技术问题,该方法通过执行计算机程序实现对计算机系统内部运行性能的改进,反映的在读写操作发生数据一致性问题时,根据所述关键信息记录对应的功能模块与数据内容,利用的是遵循自然规律的技术手段,获得了定位该类存储异常问题的时间大大降低,提高整个存储系统的开发效率和稳定性的技术效果。因此,本发明专利申请存储系统的数据一致性校验方法是一种通过执行计算机程序实现计算机系统内部性能改进的解决方案,属于专利法第二条第二款规定的技术方案,属于专利保护的客体。
需要说明的是,上述各技术特征继续相互组合,形成未在上面列举的各种实施例,均视为本发明说明书记载的范围;并且,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。