CN110908613B - 一种数据写命令处理方法、装置、电子设备及存储介质 - Google Patents

一种数据写命令处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110908613B
CN110908613B CN201911193363.0A CN201911193363A CN110908613B CN 110908613 B CN110908613 B CN 110908613B CN 201911193363 A CN201911193363 A CN 201911193363A CN 110908613 B CN110908613 B CN 110908613B
Authority
CN
China
Prior art keywords
disk
data
preset
copy
abnormal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911193363.0A
Other languages
English (en)
Other versions
CN110908613A (zh
Inventor
王正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201911193363.0A priority Critical patent/CN110908613B/zh
Publication of CN110908613A publication Critical patent/CN110908613A/zh
Application granted granted Critical
Publication of CN110908613B publication Critical patent/CN110908613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

本申请公开了一种数据写命令处理方法,区别于现有存储系统一味追求数据可靠性、忽视可能对分布式存储集群整体运行造成严重影响的方式,本申请预先设置了短于超时时长的第一预设时长,并直接根据在该第一预设时长返回写完成命令的副本磁盘的数量是否过总数的半数,来提前判断得到本次数据写命令是否成功的结果。相比于现有技术,本申请由于该第一预设时长的设置,使得数据可靠性略有降低,但能够更好的保障分布式存储系统整体的持续、稳定运行。本申请还同时公开了一种数据写命令处理装置、电子设备及可读存储介质,具有上述有益效果。

Description

一种数据写命令处理方法、装置、电子设备及存储介质
技术领域
本申请涉及分布式存储技术领域,特别涉及一种数据写命令处理方法、装置、电子设备及可读存储介质。
背景技术
在分布式存储系统中,一份相同数据将通过副本冗余机制将被同时存储在不同的存储节点中,以提升数据的可靠性。以三副本为例,现有存储系统为了充分保障数据的可靠性,在接收到上层业务系统下发的数据写命令时,会将待写数据分别写入第一副本磁盘、第二副本磁盘和第三副本磁盘,并在接收到全部副本磁盘返回的写完成信号后才判定得到本次数据写命令的成功与否,最终将判定结果反馈给业务系统(可参见如图1所示的流程示意图)。
现有方案为了保障数据的可靠性,必须要依据所有副本磁盘返回的信号才能够判定得到本次数据写命令成功的结果,否则将一直等下去。由于系统的复杂性,待写数据写入任意副本磁盘的过程可能会出现各种问题,例如磁盘硬件故障、进程死锁、主机内存不足等原因引起将会导致IO卡慢,并进一步存储系统也需要等待一段时间才能收到反馈信号。而较长的等待时间将可能会对所处的运行环境造成严重影响,例如windows系统可能会在IO超过7秒仍不返回的情况下出现蓝屏、Oracle rac可能会在IO超过10多秒仍不返回的情况下宕机(请参见图2,图2在图1的基础上示出了由于IO卡慢导致副本磁盘2花费10秒才向存储系统返回信号的情况)。
某一个出现卡慢的存储节点,不仅会对存储该节点的所有数据的读写都将造成影响,甚至还会影响到整个存储卷或存储集群。相比于对整个分布式存储系统带来的影响,数据的可靠性无疑显得不是那么重要。
因此,如何克服上述技术缺陷,提供一种以保障分布式存储集群持续、稳定运行为最高目的的数据写命令处理方法,是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据写命令处理方法、装置、电子设备及可读存储介质,旨在尽可能的保障分布式存储集群持续、稳定运行。
为实现上述目的,本申请提供了一种数据写命令处理方法,该方法包括:
根据接收到的数据写命令,将待写数据分别写入对应的每个副本磁盘;
统计在第一预设时长内返回写完成信号的副本磁盘的实际数量;其中,所述第一预设时长短于导致所在存储集群产生异常的超时时长;
判断所述实际数量是否超过所述副本磁盘的总数量的一半;
若所述实际数量超过所述总数量的一半,则上报所述数据写命令完成的反馈信息。
可选的,在上报所述数据写命令完成的反馈信息之后,还包括:
将未在所述第一预设时长内返回所述写完成信号的副本磁盘标记为异常磁盘;
将所述异常磁盘设置为静默状态,得到故障磁盘;
通过预设路径上报针对所述故障磁盘的故障修复通知。
可选的,将所述异常磁盘设置为静默状态之前,还包括:
判断第二预设时长内是否存在返回所述写完成信号的异常磁盘;其中,所述第二预设时长的起始时刻为所述第一预设时长的结束时刻,所述第一预设时长和所述第二预设时长的时长总和短于所述超时时长;
若存在返回所述写完成信号的异常磁盘,则去除所述异常磁盘的标记;
若不存在返回所述写完成信号的异常磁盘,则执行所述将所述异常磁盘设置为静默状态,得到故障磁盘的步骤。
可选的,当所述故障磁盘恢复正常时,还包括:
控制恢复正常的副本磁盘向原副本磁盘组中的其它正常副本磁盘发起数据同步请求。
可选的,统计在第一预设时长内返回写完成信号的副本磁盘的实际数量,包括:
在起始时刻启动预设定时器;其中,所述起始时刻为将所述待写数据分别写入对应的每个副本磁盘的时刻,所述预设定时器将在目标时刻触发,所述目标时刻为在所述起始时刻之后经过所述第一预设时长的时刻;
统计在所述预设定时器触发之前接收到的所述写完成信号的数量;
将所述数量作为返回所述写完成信号的副本磁盘的实际数量。
可选的,在将待写数据分别写入对应的每个副本磁盘之前,还包括:
获取与所述待写数据对应的目标副本磁盘组;
判断所述目标副本磁盘组中的在线副本磁盘是否超过目标副本磁盘总数的一半;
若所述目标副本磁盘组中的在线副本磁盘未超过所述目标副本磁盘总数的一半,则返回数据写命令失败的通知。
为实现上述目的,本申请还提供了一种数据写命令处理装置,该装置包括:
命令接收及数据写入单元,用于根据接收到的数据写命令,将待写数据分别写入对应的每个副本磁盘;
实际数量统计单元,用于统计在第一预设时长内返回写完成信号的副本磁盘的实际数量;其中,所述第一预设时长短于导致所在存储集群产生异常的超时时长;
超半数判断单元,用于判断所述实际数量是否超过所述副本磁盘的总数量的一半;
命令完成反馈单元,用于若所述实际数量超过所述总数量的一半,则上报所述数据写命令完成的反馈信息。
可选的,该数据写命令处理装置还包括:
异常磁盘标记单元,用于在上报所述数据写命令完成的反馈信息之后,将未在所述第一预设时长内返回所述写完成信号的副本磁盘标记为异常磁盘;
静默状态设置单元,用于将所述异常磁盘设置为静默状态,得到故障磁盘;
故障上报单元,用于通过预设路径上报针对所述故障磁盘的故障修复通知。
可选的,该数据写命令处理装置还包括:
短时异常判断单元,用于将所述异常磁盘设置为静默状态之前,判断第二预设时长内是否存在返回所述写完成信号的异常磁盘;其中,所述第二预设时长的起始时刻为所述第一预设时长的结束时刻,所述第一预设时长和所述第二预设时长的时长总和短于所述超时时长;
标价去除单元,用于当存在返回所述写完成信号的异常磁盘时,去除所述异常磁盘的标记;
静默状态设置执行单元,用于当不存在返回所述写完成信号的异常磁盘时,执行所述将所述异常磁盘设置为静默状态,得到故障磁盘的步骤。
可选的,该数据写命令处理装置还包括:
数据同步单元,用于当所述故障磁盘恢复正常时,控制恢复正常的副本磁盘向原副本磁盘组中的其它正常副本磁盘发起数据同步请求。
可选的,所述实际数量统计单元包括:
定时器启动子单元,用于在起始时刻启动预设定时器;其中,所述起始时刻为将所述待写数据分别写入对应的每个副本磁盘的时刻,所述预设定时器将在目标时刻触发,所述目标时刻为在所述起始时刻之后经过所述第一预设时长的时刻;
数量统计子单元,用于统计在所述预设定时器触发之前接收到的所述写完成信号的数量;
实际数量获得子单元,用于将所述数量作为返回所述写完成信号的副本磁盘的实际数量。
可选的,该数据写命令处理装置还包括:
目标副本磁盘组获取单元,用于在将待写数据分别写入对应的每个副本磁盘之前,获取与所述待写数据对应的目标副本磁盘组;
在线副本磁盘超半数判断单元,用于判断所述目标副本磁盘组中的在线副本磁盘是否超过目标副本磁盘总数的一半;
写命令失败通知信息返回单元,用于当所述目标副本磁盘组中的在线副本磁盘未超过所述目标副本磁盘总数的一半时,返回数据写命令失败的通知。
为实现上述目的,本申请还提供了一种电子设备,该电子设备包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时,可实现如上述内容所描述的数据写命令处理方法的各步骤。
为实现上述目的,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时可实现如上述内容所描述的数据写命令处理方法的各步骤。
本申请提供的一种数据写命令处理方法,包括:根据接收到的数据写命令,将待写数据分别写入对应的每个副本磁盘;统计在第一预设时长内返回写完成信号的副本磁盘的实际数量;其中,所述第一预设时长短于导致所在存储集群产生异常的超时时长;判断所述实际数量是否超过所述副本磁盘的总数量的一半;若所述实际数量超过所述总数量的一半,则上报所述数据写命令完成的反馈信息。
根据上述处理方法的内容可以看出,区别于现有存储系统一味追求数据可靠性、忽视可能对分布式存储集群整体运行造成严重影响的方式,本申请预先设置了短于超时时长的第一预设时长,并直接根据在该第一预设时长返回写完成命令的副本磁盘的数量是否过总数的半数,来提前判断得到本次数据写命令是否成功的结果。相比于现有技术,本申请由于该第一预设时长的设置,使得数据可靠性略有降低,但能够更好的保障分布式存储系统整体的持续、稳定运行。本申请同时还提供了一种数据写命令处理装置、电子设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为分布式存储系统中一种三副本的数据写命令处理的流程示意图;
图2为在图1基础上示出的副本磁盘2存在IO卡慢情况的数据写命令处理的流程示意图;
图3为本申请实施例提供的一种数据写命令处理方法的流程图;
图4为本申请实施例提供的一种利用定时器实现统计第一预设时长内的实际数量的方法的流程图
图5为应用本申请方案后的另一种三副本机制下副本磁盘2仍存在IO卡慢请求的数据写命令处理的流程示意图;
图6为本申请实施例提供的一种针对未在第一预设时长内返回写完成信号的副本磁盘的处理方法的流程图;
图7为本申请实施例提供的另一种针对未在第一预设时长内返回写完成信号的副本磁盘的处理方法的流程图;
图8为本申请实施例提供的一种后续数据写命令对故障磁盘的处理方式的流程示意图;
图9为本申请实施例提供的一种数据写命令处理装置的结构框图。
具体实施方式
本申请的目的是提供一种数据写命令处理方法、装置、电子设备及可读存储介质,旨在尽可能的保障分布式存储集群持续、稳定运行。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
请参见图3,图3为本申请实施例提供的一种数据写命令处理方法的流程图,需要说明的是,图3中示出的各步骤的执行主体均为分布式存储系统中的存储系统(区别于业务系统),其包括以下步骤:
S101:根据接收到的数据写命令,将待写数据分别写入对应的每个副本磁盘;
本步骤旨在由存储系统接收业务系统下发的数据写命令,并将该数据写命令中包含的待写数据分别写入对应的副本磁盘。
其中,该数据写命令中除包含有待写数据外,还可能包含有其它多种类型的数据,例如待写数据的类型、业务相关信息、时间戳,以及用于确定应将该待写数据存储至哪些副本磁盘的数据等等。一般的,较大规模的分布式存储集群,通常会设置有不同副本磁盘构成的副本磁盘组,即多个副本磁盘以组为单位存在,例如三副本机制就可以将三个副本磁盘设置为一个副本磁盘组。为了有针对性的存储不同类型的业务数据,还可以预设不同类型的待写数据与不同副本磁盘组之间的对应关系,以便于根据数据写命令确定出相应的副本磁盘组用于存储待写数据。
S102:统计在第一预设时长内返回写完成信号的副本磁盘的实际数量;
在S101的基础上,本步骤旨在统计得到在第一预设时长内向存储系统返回写完成信号的副本磁盘的数量,为方便称呼,此处将其称为实际数量,以区别与存储S101将待写数据写入的所有副本磁盘的总数量(在存在副本磁盘组时,该总数量也为副本磁盘组中包含的所有副本磁盘的数量)。
其中,该第一预设时长短于超时时长,该超时时长为能够导致所在存储集群产生异常的时长,即在本申请背景技术部分提及的Windows中的7秒和Oracle rac中的10多秒。应当理解的是,该第一预设时长的计时起始时刻为存储系统向各副本磁盘下发待写数据的时刻,与该超时时长的计时起始时刻保持一致。
为完成本步骤的目的,可以借助计时器、倒计时器、定时器、触发器等相同或类似工具辅助完成,一种利用定时器的实现方式可参见如图4所示的流程图,包括如下步骤:
S201:在起始时刻启动预设定时器;
其中,该起始时刻为将待写数据分别写入对应的每个副本磁盘的时刻,也即上述的计时起始时刻,该预设定时器将在目标时刻触发,该目标时刻为在该起始时刻之后经过第一预设时长的时刻。假定存储系统将待写数据在T1时刻分别写入各副本磁盘,该第一预设时长为N秒,该预设定时器将在T1+N的时刻触发。
S202:统计在预设定时器触发之前接收到的写完成信号的数量;
在S201的基础上,本步骤旨在将该预设定时器触发时的触发信号当做计数截止信号,从而统计得到在预设定时器触发之前接收到的写完成信号的数量。
S203:将数量作为返回写完成信号的副本磁盘的实际数量。
在S202的基础上,由于每个副本磁盘仅会在写完成后返回一个写完成信号,因此接收到的写完成信号的也就是该实际数量。
上述以定时器为例对如何具体实现S102进行了说明,其它类型的实现机制可基于此进行适应性调整得到,此处不再一一赘述。
S103:判断实际数量是否超过副本磁盘的总数量的一半,若是,执行S104,否则执行S105;
在S102的基础上,本步骤旨在判断该实际数量是否副本磁盘的总数量的一半,即在第一预设时长内返回写完成信号的副本磁盘的是否超过了存储系统下发待写数据的副本磁盘的半数。过半数也就意味着待写数据的可用性得到了保障,因此过半数原则广泛用于确定数据是否具有可用性。
以5副本机制为例,过半数也就意味着至少要有3个副本磁盘在第一预设时长内返回了该写完成信号。
S104:上报数据写命令完成的反馈信息;
本步骤建立在S103的判断结果为该实际数量超过了该总数量的一半的基础上,说明在过半数的判断原则下可认为该待写数据具有了可用性,因此在该待写数据具有可用性的情况下,由存储系统向业务系统上报本次数据写命令完成(成功)的反馈信息,以使业务系统确认本次需要写入的数据确实完成了写入,并能够在后续读取操作中得到可用的数据。
S105:上报数据写命令失败的反馈信息。
本步骤建立在S103的判断结果为该数据数量未超过该总数量的一半的基础上,说明在过半数的判断原则下无法认为该待写数据具有可用性,而不具有可用性的数据将由于读取使用无法确认其是否可用,从而将得到本次数据写命令失败的结论,只能由存储系统向业务系统反馈本次数据写命令失败的反馈信息。
同时,本步骤的结论还可以建立在另一种情况下,是否处于该情况的一种判断方法可以通过下述步骤实现:
在将待写数据分别写入对应的每个副本磁盘之前,获取与待写数据对应的目标副本磁盘组;
判断目标副本磁盘组中的在线副本磁盘是否超过目标副本磁盘总数的一半;
若目标副本磁盘组中的在线副本磁盘未超过目标副本磁盘总数的一半,则返回数据写命令失败的通知。
即副本磁盘组中的在线副本磁盘本身就不符合过半数原则,即不存在足够的副本磁盘可用于实现副本冗余机制,因此此种情况也可由存储系统直接向业务系统反馈本次数据写命令失败的通知信息。
基于本实施例提供的数据写命令处理方法可以看出,区别于现有存储系统一味追求数据可靠性、忽视可能对分布式存储集群整体运行造成严重影响的方式,本实施例预先设置了短于超时时长的第一预设时长,并直接根据在该第一预设时长返回写完成命令的副本磁盘的数量是否过总数的半数,来提前判断得到本次数据写命令是否成功的结果。相比于现有技术,本实施例虽然由于该第一预设时长的设置使得数据可靠性略有降低,但能够更好的保障分布式存储系统整体的持续、稳定运行。
为便于与现有技术进行对比,本申请还提供了图5,图5是对按现有技术处理方式得到的图2应用本申请的方案进行调整后得到的另一种流程示意图,对比图2可以看出,由于第一预设时长(图5具体为3秒)的存在,使得存储系统在3秒后就可以向业务系统反馈本次数据写命令的结果,而非图2要在10秒后。若在Windows系统环境下,该存储集群整体将在现有技术的方案下因10>7出现蓝屏,从而使得整个分布式存储系统受到影响;而在本申请的方案下,3<7使得整个分布式存储系统继续正常运行。
根据上述方案可知,本申请为了尽可能的保障分布式存储系统整体持续、稳定运行,通过第一预设时长的设置,使得存储系统向业务系统反馈本次数据写命令的执行结论的时间提前,导致会损失些许可靠性。因此,为兼顾可靠性,本申请还分别提供如图6和图7两种的可靠性补救方案,其中,图6所示的流程图包括如下步骤:
S301:上报数据写命令完成的反馈信息;
S302:将未在第一预设时长内返回写完成信号的副本磁盘标记为异常磁盘;
S303:将异常磁盘设置为静默状态,得到故障磁盘;
其中,静默状态下的副本磁盘将不会接收到后续任何数据写入或读取指令,若其作为副本磁盘组中的一员,会将处于静默状态的副本磁盘从该副本磁盘组中暂时去除,直至其恢复正常。
S304:通过预设路径上报针对故障磁盘的故障修复通知。
如图6所示,本实施例通过将未在第一预设时长内返回写完成信号的副本磁盘设置为故障状态、上报故障修复通知的方式来及时告知管理人员存在故障磁盘和对其进行修复。
同时,为了让通过修复恢复正常的副本磁盘起到提升数据可靠性的目的,还可以控制恢复正常的副本磁盘向原副本磁盘组中的其它正常副本磁盘发起数据同步请求,以通过数据同步请求将自身在故障阶段未存储的部分数据补足,以补救损失的部分可靠性。
进一步的,由于第一预设时长短于超时时长,未在第一预设时长内返回写完成信号的副本磁盘并不一定不能够在超时时长前的时长内返回写完成信号,即为了尽可能的防止错误的将异常磁盘判定为故障磁盘导致产生无效工作量(即由于临时异常或波动性异常导致),本申请还在图6的基础上提供了一种优化的可靠性补救措施,请参见如图7所示的各步骤:
S401:上报数据写命令完成的反馈信息;
S402:将未在第一预设时长内返回写完成信号的副本磁盘标记为异常磁盘;
S403:判断第二预设时长内是否存在返回写完成信号的异常磁盘,若是,执行S404,否则执行S405;
其中,第二预设时长的起始时刻为第一预设时长的结束时刻,第一预设时长和第二预设时长的时长总和短于超时时长。
S404:去除异常磁盘的标记;
本步骤建立在S403的判断结果为在第一预设时长后的第二预设时长内有异常磁盘返回了写完成信号的基础上,说明该异常磁盘确实出现了卡慢,但该卡慢还没到需要将其判定出故障、需要修复的地步,因此可以去除为其附加的异常磁盘标记。
进一步的,虽然通过本步骤的判断去除了该异常磁盘的标记,若后续其它待写数据在写入该副本磁盘中,仍是其多次第二预设时长内才返回写完成信号,说明相比其它能够在第一预设时长内返回写完成的副本磁盘,其仍存在异常,因此在重复多次后,还是可以对其执行修复操作,以尽可能的通过修复操作消除其可能导致卡慢的隐患。
S405:将异常磁盘设置为静默状态,得到故障磁盘;
S406:通过预设路径上报针对故障磁盘的故障修复通知。
相比于图6所示的方案,图7所示的方案通过引入第二预设时长和二次判定,尽可能的减少直接将异常磁盘判定为故障磁盘所引发的不必要的修复操作工作量。
为便于理解上述操作,本申请还通过图8提供了包括设置静默状态和故障处理步骤在内的流程示意图。
上述内容对存储系统如何对业务系统下发的数据写命令进行处理进行了详细说明,在此基础上,应当理解的是,对应于数据写命令,数据读命令也是相对的。即应用本申请所提供的方案在数据读命令时,也无需像现有技术必须等待设置的目标副本磁盘中读取源副本,而是可以在第一预设时长的帮助下迅速切换至存在的其它也存储有源副本的其它副本磁盘中,从而可极大的避免由于长时间等待对存储系统整体运行造成的影响。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图9,图9为本申请实施例所提供的一种数据写命令处理装置的结构框图,该装置可以包括:
命令接收及数据写入单元100,用于根据接收到的数据写命令,将待写数据分别写入对应的每个副本磁盘;
实际数量统计单元200,用于统计在第一预设时长内返回写完成信号的副本磁盘的实际数量;其中,第一预设时长短于导致所在存储集群产生异常的超时时长;
超半数判断单元300,用于判断实际数量是否超过副本磁盘的总数量的一半;
命令完成反馈单元400,用于若实际数量超过总数量的一半,则上报数据写命令完成的反馈信息。
进一步的,该数据写命令处理装置还可以包括:
异常磁盘标记单元,用于在上报数据写命令完成的反馈信息之后,将未在第一预设时长内返回写完成信号的副本磁盘标记为异常磁盘;
静默状态设置单元,用于将异常磁盘设置为静默状态,得到故障磁盘;
故障上报单元,用于通过预设路径上报针对故障磁盘的故障修复通知。
进一步的,该数据写命令处理装置还可以包括:
短时异常判断单元,用于将异常磁盘设置为静默状态之前,判断第二预设时长内是否存在返回写完成信号的异常磁盘;其中,第二预设时长的起始时刻为第一预设时长的结束时刻,第一预设时长和第二预设时长的时长总和短于超时时长;
标价去除单元,用于当存在返回写完成信号的异常磁盘时,去除异常磁盘的标记;
静默状态设置执行单元,用于当不存在返回写完成信号的异常磁盘时,执行将异常磁盘设置为静默状态,得到故障磁盘的步骤。
更进一步的,该数据写命令处理装置还可以包括:
数据同步单元,用于当故障磁盘恢复正常时,控制恢复正常的副本磁盘向原副本磁盘组中的其它正常副本磁盘发起数据同步请求。
其中,该实际数量统计单元200可以包括:
定时器启动子单元,用于在起始时刻启动预设定时器;其中,起始时刻为将待写数据分别写入对应的每个副本磁盘的时刻,预设定时器将在目标时刻触发,目标时刻为在起始时刻之后经过第一预设时长的时刻;
数量统计子单元,用于统计在预设定时器触发之前接收到的写完成信号的数量;
实际数量获得子单元,用于将数量作为返回写完成信号的副本磁盘的实际数量。
进一步的,该数据写命令处理装置还可以包括:
目标副本磁盘组获取单元,用于在将待写数据分别写入对应的每个副本磁盘之前,获取与待写数据对应的目标副本磁盘组;
在线副本磁盘超半数判断单元,用于判断目标副本磁盘组中的在线副本磁盘是否超过目标副本磁盘总数的一半;
写命令失败通知信息返回单元,用于当目标副本磁盘组中的在线副本磁盘未超过目标副本磁盘总数的一半时,返回数据写命令失败的通知。
本实例数作为对应于上述方法实施例的装置实施例存在,具有方法实施例的全部有益效果,此处不再一一赘述。
基于上述实施例,本申请还提供了一种电子设备,该电子设备可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的数据写命令处理方法的各步骤。当然,该电子设备还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的数据写命令处理方法的各步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (8)

1.一种数据写命令处理方法,其特征在于,包括:
根据接收到的数据写命令,将待写数据分别写入对应的每个副本磁盘;
统计在第一预设时长内返回写完成信号的副本磁盘的实际数量;其中,所述第一预设时长短于导致所在存储集群产生异常的超时时长;
判断所述实际数量是否超过所述副本磁盘的总数量的一半;
若所述实际数量超过所述总数量的一半,则上报所述数据写命令完成的反馈信息;
其中,在上报所述数据写命令完成的反馈信息之后,还包括:
将未在所述第一预设时长内返回所述写完成信号的副本磁盘标记为异常磁盘;
将所述异常磁盘设置为静默状态,得到故障磁盘;
通过预设路径上报针对所述故障磁盘的故障修复通知。
2.根据权利要求1所述的数据写命令处理方法,其特征在于,将所述异常磁盘设置为静默状态之前,还包括:
判断第二预设时长内是否存在返回所述写完成信号的异常磁盘;其中,所述第二预设时长的起始时刻为所述第一预设时长的结束时刻,所述第一预设时长和所述第二预设时长的时长总和短于所述超时时长;
若存在返回所述写完成信号的异常磁盘,则去除所述异常磁盘的标记;
若不存在返回所述写完成信号的异常磁盘,则执行所述将所述异常磁盘设置为静默状态,得到故障磁盘的步骤。
3.根据权利要求1或2所述的数据写命令处理方法,其特征在于,当所述故障磁盘恢复正常时,还包括:
控制恢复正常的副本磁盘向原副本磁盘组中的其它正常副本磁盘发起数据同步请求。
4.根据权利要求1所述的数据写命令处理方法,其特征在于,统计在第一预设时长内返回写完成信号的副本磁盘的实际数量,包括:
在起始时刻启动预设定时器;其中,所述起始时刻为将所述待写数据分别写入对应的每个副本磁盘的时刻,所述预设定时器将在目标时刻触发,所述目标时刻为在所述起始时刻之后经过所述第一预设时长的时刻;
统计在所述预设定时器触发之前接收到的所述写完成信号的数量;
将所述数量作为返回所述写完成信号的副本磁盘的实际数量。
5.根据权利要求1所述的数据写命令处理方法,其特征在于,在将待写数据分别写入对应的每个副本磁盘之前,还包括:
获取与所述待写数据对应的目标副本磁盘组;
判断所述目标副本磁盘组中的在线副本磁盘是否超过目标副本磁盘总数的一半;
若所述目标副本磁盘组中的在线副本磁盘未超过所述目标副本磁盘总数的一半,则返回数据写命令失败的通知。
6.一种数据写命令处理装置,其特征在于,包括:
命令接收及数据写入单元,用于根据接收到的数据写命令,将待写数据分别写入对应的每个副本磁盘;
实际数量统计单元,用于统计在第一预设时长内返回写完成信号的副本磁盘的实际数量;其中,所述第一预设时长短于导致所在存储集群产生异常的超时时长;
超半数判断单元,用于判断所述实际数量是否超过所述副本磁盘的总数量的一半;
命令完成反馈单元,用于若所述实际数量超过所述总数量的一半,则上报所述数据写命令完成的反馈信息;
其中,所述的数据写命令处理装置,还包括:
异常磁盘标记单元,用于在上报所述数据写命令完成的反馈信息之后,将未在所述第一预设时长内返回所述写完成信号的副本磁盘标记为异常磁盘;
静默状态设置单元,用于将所述异常磁盘设置为静默状态,得到故障磁盘;
故障上报单元,用于通过预设路径上报针对所述故障磁盘的故障修复通知。
7.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时,可实现如权利要求1至5任一项所述的数据写命令处理方法的各步骤。
8.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序在被处理器执行时,可实现如权利要求1至5任一项所述的数据写命令处理方法的各步骤。
CN201911193363.0A 2019-11-28 2019-11-28 一种数据写命令处理方法、装置、电子设备及存储介质 Active CN110908613B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911193363.0A CN110908613B (zh) 2019-11-28 2019-11-28 一种数据写命令处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911193363.0A CN110908613B (zh) 2019-11-28 2019-11-28 一种数据写命令处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110908613A CN110908613A (zh) 2020-03-24
CN110908613B true CN110908613B (zh) 2024-02-23

Family

ID=69820239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911193363.0A Active CN110908613B (zh) 2019-11-28 2019-11-28 一种数据写命令处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110908613B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327266B (zh) * 2021-12-24 2024-04-09 深信服科技股份有限公司 一种存储装置的卡慢识别方法、装置、介质
CN114115750B (zh) * 2022-01-24 2022-05-13 苏州浪潮智能科技有限公司 一种应用于全闪存存储的缓存方法和装置
CN114527942B (zh) * 2022-02-21 2023-06-06 苏州浪潮智能科技有限公司 一种基于固态硬盘的写数据方法、系统、存储介质及设备
CN114968129B (zh) * 2022-07-28 2022-12-06 苏州浪潮智能科技有限公司 磁盘阵列冗余方法、系统、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001043030A (ja) * 1999-07-29 2001-02-16 Nec Corp 情報処理システムおよびデータコピー方法
US8935221B1 (en) * 2012-07-25 2015-01-13 Amazon Technologies, Inc. Object loss reporting in a data storage system
CN109976663A (zh) * 2017-12-27 2019-07-05 浙江宇视科技有限公司 分布式存储响应方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4378335B2 (ja) * 2005-09-09 2009-12-02 インターナショナル・ビジネス・マシーンズ・コーポレーション ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001043030A (ja) * 1999-07-29 2001-02-16 Nec Corp 情報処理システムおよびデータコピー方法
US8935221B1 (en) * 2012-07-25 2015-01-13 Amazon Technologies, Inc. Object loss reporting in a data storage system
CN109976663A (zh) * 2017-12-27 2019-07-05 浙江宇视科技有限公司 分布式存储响应方法和系统

Also Published As

Publication number Publication date
CN110908613A (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
CN110908613B (zh) 一种数据写命令处理方法、装置、电子设备及存储介质
US10013325B1 (en) Providing resiliency to a raid group of storage devices
US7596648B2 (en) System and method for information handling system error recovery
JP6291248B2 (ja) ファームウェアアップグレードエラー検出および自動ロールバック
US6728898B2 (en) Producing a mirrored copy using incremental-divergence
US7836268B2 (en) Method, apparatus, and system for controlling data storage
US6480953B1 (en) Method and apparatus for ensuring system configuration data structure coherency across multiple controllers in a data storage system
US20120084610A1 (en) Method and device for reading and writing a memory card
CN107506266A (zh) 一种数据恢复方法及系统
CN106815094B (zh) 一种用于实现主备同步模式下事务提交的方法与设备
CN102542016B (zh) 文件系统弹性管理
US20190332476A1 (en) Method, apparatus and computer program product for failure recovery of storage system
US20080209254A1 (en) Method and system for error recovery of a hardware device
CN112395050B (zh) 一种虚拟机备份方法、装置、电子设备及可读存储介质
US7117397B1 (en) Apparatus and method for preventing an erroneous operation at the time of detection of a system failure
CN106527983B (zh) 一种数据存储方法以及磁盘阵列
CN112711596B (zh) 多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质
CN109032536B (zh) 基于分布式集群系统的数据存储方法、装置、系统及设备
US20090150459A1 (en) Highly available multiple storage system consistency heartbeat function
CN106776142B (zh) 一种数据存储方法以及数据存储装置
US10168935B2 (en) Maintaining access times in storage systems employing power saving techniques
US20100169572A1 (en) Data storage method, apparatus and system for interrupted write recovery
CN115344211A (zh) 数据存储方法、子系统、分布式存储系统及存储介质
JP2006227923A (ja) ディスク管理装置およびディスク管理プログラム
CN111124729A (zh) 一种故障盘判定方法、装置、设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant