CN113485872A - 故障处理方法、装置及分布式存储系统 - Google Patents
故障处理方法、装置及分布式存储系统 Download PDFInfo
- Publication number
- CN113485872A CN113485872A CN202110796910.5A CN202110796910A CN113485872A CN 113485872 A CN113485872 A CN 113485872A CN 202110796910 A CN202110796910 A CN 202110796910A CN 113485872 A CN113485872 A CN 113485872A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- storage disk
- failure
- management server
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种故障处理方法、装置及分布式存储系统,应用于数据存储技术领域。该方法应用于分布式存储系统中的存储节点,存储节点中部署有存储盘,分布式存储系统还包括管理服务器,该方法包括:接收针对存储盘中存储数据的操作请求;当响应操作请求失败时,确定操作请求的操作类型;若操作类型为读写文件数据的类型,则确定操作请求所针对的文件数据,作为失效数据,并利用管理服务器,针对失效数据进行恢复;若操作类型为读写文件系统元数据的类型,则利用管理服务器,针对存储盘所存储文件数据进行恢复。通过本方案,可以提高数据恢复的效率。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及故障处理方法、装置及分布式存储系统。
背景技术
通常的分布式存储系统在遇到诸如读写失败的存储盘故障时,大多选择直接拆除故障存储盘,然后基于预先备份的文件数据,在分布式存储系统中的其他存储盘中恢复故障存储盘中的文件数据。
随着现在存储盘存储容量的提升,在遇到存储盘故障时直接选择接拆除故障存储盘,将导致每次需要进行恢复的文件数据的数据量较大,使得每次恢复的效率较低。
发明内容
本发明实施例的目的在于提供一种故障处理方法、装置及分布式存储系统,以提高数据恢复的效率。具体技术方案如下:
第一方面,本发明实施例提供一种故障处理方法,应用于分布式存储系统中存储节点,所述存储节点中部署有存储盘,所述分布式存储系统还包括管理服务器,所述方法包括:
接收针对所述存储盘中存储数据的操作请求;
当响应所述操作请求失败时,确定所述操作请求的操作类型;
若所述操作类型为读写文件数据的类型,则确定所述操作请求所针对的文件数据,作为失效数据,并利用所述管理服务器,针对所述失效数据进行恢复;
若所述操作类型为读写文件系统元数据的类型,则利用所述管理服务器,针对所述存储盘所存储文件数据进行恢复。
可选的,在所述确定所述操作请求所针对的文件数据,作为失效数据之后,所述方法还包括:
将所述失效数据移动至所述存储盘中预设存储位置;
基于所述预设存储位置内的失效数据,判断所述存储盘是否满足预设的存储盘故障条件;
若满足,则利用所述管理服务器,针对所述存储盘所存储文件数据进行恢复。
可选的,所述利用所述管理服务器,针对所述存储盘所存储文件数据进行恢复,包括:
为所述存储盘设置故障标识;其中,所述故障标识用于被所述管理服务器检测到之后对所述存储盘所存储文件数据进行恢复。
可选的,所述基于所述预设存储位置内的失效数据,判断所述存储盘是否满足预设的存储盘故障条件,包括:
若所述预设存储位置内的失效数据满足以下任一条件,则判定所述存储盘满足预设的存储盘故障条件:
所述预设存储位置内的失效数据所占据的存储容量大于预设容量阈值;
所述预设存储位置内的失效数据的数量大于预设数量阈值。
可选的,所述预设存储位置为:所述存储盘中文件系统下的预设存储目录。
可选的,所述确定所述操作请求所针对的文件数据,作为失效数据,包括:
确定所述操作请求所要操作的文件数据,作为预选数据;
确定所述存储盘内与所述预选数据属于同一逻辑单元的文件数据,并将所述预选数据以及所确定的文件数据,作为失效数据。
可选的,所述利用所述管理服务器,针对所述失效数据进行恢复,包括:
向所述管理服务器发送针对所述失效数据的恢复通知,以使所述管理服务器删除所述失效数据的元数据,并针对所述失效数据进行恢复。
第二方面,本发明实施例提供一种分布式存储系统,所述分布式存储系统包括:存储节点和管理服务器,所述存储节点中部署有存储盘;
所述存储节点,用于接收针对所述存储盘中存储数据的操作请求;当响应所述操作请求失败时,确定所述操作请求的操作类型;若所述操作类型为读写文件数据的类型,则确定所述操作请求所针对的文件数据,作为失效数据;
所述管理服务器,用于在所述存储节点确定所述失效数据之后,针对所述失效数据进行恢复;或者,当所述操作类型为读写文件系统元数据的类型时,针对所述存储盘所存储文件数据进行恢复。
可选的,所述存储节点,还用于在所述确定所述操作请求所针对的文件数据,作为失效数据之后,将所述失效数据移动至所述存储盘中预设存储位置;基于所述预设存储位置内的失效数据,判断所述存储盘是否满足预设的存储盘故障条件;
所述管理服务器,用于当所述存储盘满足所述存储盘故障条件时,针对所述存储盘所存储文件数据进行恢复。
可选的,所述存储节点,具体用于当所述操作类型为读写文件系统元数据的类型,或所述存储盘满足所述存储盘故障条件时,为所述存储盘设置故障标识;
所述管理服务器,具体用于当测到所述存储盘设置有所述故障标识时,针对所述存储盘所存储文件数据进行恢复。
第三方面,本发明实施例提供一种故障处理装置,应用于分布式存储系统中存储节点,所述存储节点中部署有存储盘,所述分布式存储系统还包括管理服务器,所述装置包括:
请求接收模块,用于接收针对所述存储盘中存储数据的操作请求;
类型确定模块,用于当响应所述操作请求失败时,确定所述操作请求的操作类型;
第一数据恢复模块,用于若所述操作类型为读写文件数据的类型,则确定所述操作请求所针对的文件数据,作为失效数据,并利用所述管理服务器,针对所述失效数据进行恢复;
第二数据恢复模块,用于若所述操作类型为读写文件系统元数据的类型,则利用所述管理服务器,针对所述存储盘所存储文件数据进行恢复。
第四方面,本发明实施例提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
本发明实施例有益效果:
本发明实施例提供的故障处理方法、装置及分布式存储系统中,分布式存储系统中的存储节点当响应所接收的操作请求失败之后,若操作请求的操作类型为读写文件数据的类型,则确定操作请求所针对的文件数据,作为失效数据,并利用管理服务器,针对失效数据进行恢复,而若操作类型为读写文件系统元数据的类型,则利用管理服务器,针对存储盘所存储文件数据进行恢复。由于当操作请求的操作类型为读写文件数据的类型时,存储节点仅利用管理服务器针对操作请求所针对的失效数据进行恢复,不需要对存储盘中除失效数据之外的数据进行恢复,从而减少了需要恢复数据的数据量。可见,通过本发明所提供的方案可以提高数据恢复的效率。
另一方面,由于存储节点在响应操作请求失败,且当操作类型为读写文件数据的类型时,仅利用管理服务器针对失效数据进行恢复,无需借助外部工具即可实现小粒度的数据恢复。同时,采用本发明的方案,在利用管理服务器针对存储盘所存储文件数据进行恢复之前,不需要停止存储盘的运行,与现有直接选择接拆除故障存储盘相比,延长了存储盘的运行时长,节约了成本。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本发明实施例从分布式存储系统中存储节点的角度所提供的故障处理方法的流程图;
图2为本发明实施例从分布式存储系统中存储节点的角度提供的故障处理方法的另一流程图;
图3为本发明实施例提供的分布式存储系统的结构示意图;
图4为本发明实施例从分布式存储系统中存储节点的角度所提供的故障处理装置的结构示意图;
图5为本发明实施例所提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。
为了更清楚的阐述本发明实施例的技术方案,首先对本发明实施例所提供的分布式存储系统进行简单介绍。
分布式存储系统包括管理服务器和多个存储节点,每个存储节点中部署至少一个存储盘。其中,上述管理服务器中包含各存储节点内所部署存储盘中文件数据的元数据,该元数据包括用于指示文件数据所在存储盘的位置信息等信息。上述存储节点用于对所部署的存储盘进行读写数据的管理。当分布式存储系统接收到针对文件数据的操作请求时,首先由管理服务器确定操作请求所要操作的文件数据所在存储节点的存储盘,再将该操作请求转发至该存储节点,进而由该存储节点执行操作请求,如从存储盘中读取所要操作的文件数据。
需要说明的,上述操作请求按照类型可以分为两大类,包括读写文件数据的类型和读写文件系统元数据的类型。其中,上述读写文件数据的类型的操作请求可以包括read(读)、write(写)、fsync(同步)等请求,其中,文件数据可以为以文件、对象或者数据块等存储形式所存储的数据。而上述读写文件系统元数据的类型的操作请求可以包括statfs(取文件系统信息)、stat(统计)、create(创建)等请求。上述文件系统元数据是由文件系统基于存储盘内所存储的文件数据所生成的元数据,例如:文件数据的存储位置、访问权限等等。需要说明的,文件系统元数据可以为在存储盘中以超级块、inode(索引节点)等形式存储的数据。当存储盘中文件数据变更后,该文件系统可适应性的变更对应的文件系统元数据。
在分布式存储系统中,为了确保文件数据的安全性,每份文件数据均会存在对应的备份文件数据。举例而言,当分布式存储系统存储文件数据1时,其可以在存储盘1中存储文件数据11,在存储盘2中存储文件数据12,在存储盘3中存储文件数据13。其中,文件数据11,文件数据12和文件数据13的数据内容与文件数据1完全相同。文件数据11,文件数据12和文件数据13互为备份数据。需要说明的,分布式存储系统内文件数据的数据内容也可以与该文件数据的每一备份文件数据的数据内容不同,只需要确保可以从该文件数据的所有备份文件数据内获取到该文件数据的数据内容即可。
在分布式存储系统处理操作请求的过程中,由于各类原因,如文件数据损坏等,往往导致存储节点在响应处理请求时出现错误。相关技术中,在遇到诸如读写失败的存储盘故障时,大多选择直接拆除故障存储盘,然后基于预先备份的文件数据,在分布式存储系统中的其他存储盘中恢复故障存储盘中的文件数据。具体而言,当存储盘出现故障时,管理服务器需要删除该故障存储盘中所存储文件数据的元数据,并在另一新的存储盘中,根据该故障存储盘中所存储文件数据的备份文件数据,重新在新的存储盘中生成数据内容与需要拆除存储盘中所存储文件数据相同的文件数据,例如,文件数据11所在的存储盘为故障存储盘,那么,管理服务器会通知某个存储节点,基于文件数据12或13,生成新的备份文件数据,即恢复文件数据11。
然而,随着现在存储盘存储容量的提升,在遇到存储盘故障时直接选择接拆除故障存储盘,将导致每次需要进行恢复的文件数据的数据量较大,使得每次恢复的效率较低。
为了解决相关技术所存在的技术问题,本发明实施例提供一种故障处理方法,应用于分布式存储系统中存储节点,存储节点中部署有存储盘,分布式存储系统还包括管理服务器,上述方法可以包括:
接收针对存储盘中存储数据的操作请求;
当响应操作请求失败时,确定操作请求的操作类型;
若操作类型为读写文件数据的类型,则确定操作请求所针对的文件数据,作为失效数据,并利用管理服务器,针对失效数据进行恢复;
若操作类型为读写文件系统元数据的类型,则利用管理服务器,针对存储盘所存储文件数据进行恢复。
本发明实施例提供的故障处理方法中,由于当操作请求的操作类型为读写文件数据的类型时,存储节点仅利用管理服务器针对操作请求所针对的失效数据进行恢复,不需要对存储盘中除失效数据之外的数据进行恢复,从而减少了需要恢复数据的数据量。可见,通过本发明实施例可以提高数据恢复的效率。
另一方面,由于存储节点在响应操作请求失败,且当操作类型为读写文件数据的类型时,仅利用管理服务器针对失效数据进行恢复,无需借助外部工具即可实现小粒度的数据恢复。同时,采用本发明的方案,在利用管理服务器针对存储盘所存储文件数据进行恢复之前,不需要停止存储盘的运行,与现有直接选择接拆除故障存储盘相比,延长了存储盘的运行时长,节约了成本。
需要说明的是,本发明实施例所提供的故障处理方法,应用于分布式存储系统中存储节点。该存储节点可以为任意具有数据处理能力的计算设备。并且,本发明实施例提供的故障处理方法可以通过软件、硬件或软硬件结合的方式实现。例如,通过存储节点中的存储服务程序实现。
下面结合附图,对本发明实施例提供的故障处理方法、装置及分布式存储系统进行介绍。
如图1所示,本发明实施例提供的一种故障处理方法,应用于分布式存储系统中存储节点,存储节点中部署有存储盘,分布式存储系统还包括管理服务器,包括步骤S101-S104:
S101:接收针对存储盘中存储数据的操作请求。
其中,由前述内容可知,针对存储盘中存储数据的操作请求可以为read、write、fsync等读写文件数据的类型的操作请求,也可以为statfs、stat、create等读写文件系统元数据的类型的操作请求。
在分布式存储系统中,存储节点所接收到的操作请求,可以是由管理服务器转发的。当业务方需要获取分布式存储系统内的数据时,可以向分布式存储系统内的管理服务器发送针对存储数据的操作请求。管理服务器接收到操作请求后,确定存储有操作请求所要操作的文件数据的存储节点,进而向所确定的存储节点转发操作请求。
S102:当响应操作请求失败时,确定操作请求的操作类型。
其中,当存储节点接收到操作请求后,在存储盘正常时,存储节点可以基于操作请求从存储盘中获取所要操作的数据,从而可以响应操作请求。而当存储盘故障时,存储节点从存储盘读取所要操作的数据时,当接收到存储盘的返回值为IO Error(输入输出错误)时,则表明存储节点无法获取到所要操作的数据时,此时将无法完成对操作请求的响应,即响应操作请求失败。
由上述过程可知,当响应操作请求失败,即表明存储盘出现了故障。在本发明实施例中,当存储盘出现故障时,需要确定存储盘所出现的故障影响的大小。若存储盘出现的错误是存储盘内文件系统元数据的错误,由于文件系统元数据出错容易导致存储盘存储混乱,造成大片数据的访问异常,因此该类故障的影响较大。若存储盘出现的错误是存储盘内文件数据的错误,由于文件数据出错只对其自身有影响,因此该类故障的影响较小。
对于本发明实施例而言,对于出现影响较大故障的存储盘,为了确保分布式存储系统稳定性,需要对该存储盘进行拆除。而对于出现影响较小故障的存储盘,为了避免对存储盘内所有的文件数据进行恢复,因此只需要针对该出现故障的文件数据进行处理即可。
当响应操作请求失败时,为了判断存储盘所出现的故障的影响力大小,可以确定操作请求的操作类型。可选的,由于不同操作类型的操作请求所调用的函数是不同的,因此,可以通过操作请求所调用的函数确定操作请求的操作类型。由前述内容可知,操作请求的操作类型包括读写文件数据的类型和读写文件系统元数据的类型。
可选的,当确定操作请求的操作类型为读写文件数据的类型时,则执行步骤S103。而当确定操作请求的操作类型为读写文件系统元数据的类型时,则执行步骤S104。
S103:确定操作请求所针对的文件数据,作为失效数据,并利用管理服务器,针对失效数据进行恢复。
由于操作请求的操作类型为读写文件数据的类型,其意味着当存储节点响应失败时,造成存储盘故障的是存储盘中影响较小的文件数据。此时,为了避免对存储盘内所有文件数据进行恢复,可以确定操作请求所针对的文件数据,作为失效数据。
根据不同的场景以及需求,确定操作请求所针对的文件数据可以有多种方式。例如,可以将操作请求所要操作的文件数据直接作为操作请求所针对的文件数据。当然,还可以通过其他方式确定操作请求所针对的文件数据,本发明实施例将在后续进行描述,在此不再赘述。
在确定出失效数据后,失效数据将不会再被访问,虽然失效数据仍存储在存储盘中,但管理服务器中将不会再记录失效数据的元数据,其也就意味着,当分布式存储系统后续再接收到相同的操作请求后,不会再访问存储该失效数据的存储盘。
在一种实现方式中,在确定出失效数据之后,上述利用管理服务器,针对失效数据进行恢复,可以包括:
向管理服务器发送针对失效数据的恢复通知,以使管理服务器删除失效数据的元数据,并针对失效数据进行恢复。
由前述内容可知,管理服务器中存储有各文件数据的元数据,该元数据可以指示文件数据的存储位置。因此,当确定出失效数据之后,需要将管理服务器中失效数据的元数据删除。故而,当存储节点确定出失效数据后,可以先向管理服务器发送针对失效数据的恢复通知,管理服务器在接收到该恢复通知后,将从各文件数据的元数据中删除失效数据的元数据,进而针对失效数据进行恢复,即先确定失效数据的备份文件数据,再在另一存储盘内基于该备份文件数据,生成数据内容与该失效数据相同的文件数据,从而完成针对失效数据的恢复。
S104:利用管理服务器,针对存储盘所存储文件数据进行恢复。
由于操作请求的操作类型为读写文件系统元数据的类型,其意味着当存储节点响应失败时,造成存储盘故障的是存储盘中影响较大的文件数据,此时,为了确保分布式存储系统的稳定性,需要对出现故障的存储盘进行拆除。因此,需要利用管理服务器,针对存储盘所存储文件数据进行恢复。该步骤与相关技术中拆除存储盘并进行数据恢复的过程相同,在此不再赘述。
本发明实施例提供的故障处理方法中,由于当操作请求的操作类型为读写文件数据的类型时,存储节点仅利用管理服务器针对操作请求所针对的失效数据进行恢复,不需要对存储盘中除失效数据之外的数据进行恢复,从而减少了需要恢复数据的数据量。可见,通过本发明实施例可以提高数据恢复的效率。
另一方面,由于存储节点在响应操作请求失败,且当操作类型为读写文件数据的类型时,仅利用管理服务器针对失效数据进行恢复,无需借助外部工具即可实现小粒度的数据恢复。同时,采用本发明的方案,在利用管理服务器针对存储盘所存储文件数据进行恢复之前,不需要停止存储盘的运行,与现有直接选择接拆除故障存储盘相比,延长了存储盘的运行时长,节约了成本。
基于图1所示实施例,如图2所示,本发明另一实施例还提供一种故障处理方法,在步骤S103之后,还包括步骤S105-S107:
S105:将失效数据移动至存储盘中预设存储位置。
在确定失效数据之后,还可以将失效数据移动至存储盘中预设存储位置。其中,预设存储位置可以根据需求和经验进行设置,例如,预设存储位置可以为指定扇区。在一种实现方式中,由于存储盘具有文件系统,上述预设存储位置可以为存储盘中文件系统下的预设存储目录,例如,X:\badblocks(坏块)。此时,在确定失效数据之后,可以将失效数据移动至该预设存储目录下。
S106:基于预设存储位置内的失效数据,判断存储盘是否满足预设的存储盘故障条件。
当存储盘内所存储的失效数据较多时,其意味着存储盘将不再适合继续使用,需要更换新的存储盘,因此,可以预设一与预设存储位置内的失效数据相关的存储盘故障条件,以判断存储盘是否故障。
可选地,在一种实现方式中,若预设存储位置内的失效数据满足以下任一条件,则判定存储盘满足预设的存储盘故障条件:
条件1:预设存储位置内的失效数据所占据的存储容量大于预设容量阈值。
其中,预设容量阈值可以为根据实际场景以及经验进行确定。存储盘的存储容量越大,预设容量阈值也越大,反之,存储盘的存储容量越小,预设容量阈值也越小。
存储节点可以实时监控预设存储位置内的失效数据所占据的存储容量,也可以在每次向预设存储位置移动失效数据之后,获取预设存储位置内的失效数据所占据的存储容量,这都是可以的。
在确定预设存储位置内的失效数据所占据的存储容量之后,即可基于所确定的存储容量与预设容量阈值进行对比,进而判断所确定的存储容量是否大于预设容量阈值。当所确定的存储容量大于预设容量阈值时,则条件1满足。
条件2:预设存储位置内的失效数据的数量大于预设数量阈值。
与预设存储容量相同,预设数量阈值也可以根据实际场景以及经验进行确定。存储盘的存储容量越大,预设数量阈值也越大,反之,存储盘的存储容量越小,预设数量阈值也越小。
存储节点可以实时监控预设存储位置内的失效数据的数量,也可以在每次向预设存储位置移动失效数据之后,根据所移动文件数据的数量,更新预设存储位置内的失效数据的数量,这都是可以的。
在确定预设存储位置内的失效数据的数量之后,即可基于所确定的数量与预设数量阈值进行对比,进而判断所确定的数量是否大于预设数量阈值。当所确定的数量大于预设数量阈值时,则条件2满足。
若存储盘满足预设的存储盘故障条件,则执行步骤S107,若存储盘满足不预设的存储盘故障条件,则结束。
S107:利用管理服务器,针对存储盘所存储文件数据进行恢复。
当存储盘满足存储盘故障条件时,说明存储盘需要被拆除,从而需要利用管理服务器,针对存储盘所存储文件数据进行恢复。具体实现方式与步骤S104相同或相似,在此不再赘述。
本发明实施例提供的故障处理方法中,可以提高数据恢复的效率,且无需借助外部工具即可实现小粒度的数据恢复,同时,延长了存储盘的运行时长,节约了成本确保分布式存储系统的正常运行。
进一步的,可以将失效数据移动至预设存储位置,进而可以在基于预设存储位置内的失效数据,判断存储盘满足存储盘故障条件时,利用管理服务器,针对存储盘所存储文件数据进行恢复,可以避免存储盘内失效数据过多,从而提高了存储节点的运行效率。
可选的,在本发明另一实施例中所提供的故障处理方法中,上述利用管理服务器,针对存储盘所存储文件数据进行恢复,可以包括:
为存储盘设置故障标识。
其中,故障标识可以为预先约定的标识,本发明实施例对此不作具体限定。
在一种实现方式中,上述故障标识用于被管理服务器检测到之后对存储盘所存储文件数据进行恢复。也就是说,管理服务器可以按照预设的检测方式对各存储节点内的存储盘进行检测,当管理服务器检测到具有故障标识的存储盘时,管理服务器可以针对存储盘所存储文件数据进行恢复。
在一种实现方式中,上述故障标识仅用于表征存储盘存在读写故障。而为了减小每一存储节点更换存储盘的次数,可以由存储节点进行检测。此时,管理节点可以执行如下步骤:
在满足标识检测条件时,检测存储盘是否设置有故障标识;若检测到存储盘设置有故障标识,利用管理服务器,针对存储盘所存储文件数据进行恢复。
其中,可以是标识检测条件可以是接收到约定的检测指令,或者进入每个检测周期时(即周期性检测)。可选的,在检测到存在设置有指定标记的存储盘后,也可以通知管理人员拆除该存储盘。
需要说明的,在故障标识仅用于表征存储盘存在读写故障的情况下,也可以由管理服务器执行检测过程,此时,管理服务器与前述故障标识用于被管理服务器检测到之后对存储盘所存储文件数据进行恢复的方式执行过程相同,在此不再赘述。
本发明实施例提供的故障处理方法中,可以提高数据恢复的效率,且无需借助外部工具即可实现小粒度的数据恢复,同时,延长了存储盘的运行时长,节约了成本确保分布式存储系统的正常运行。
进一步的,通过为存储盘设置故障标识,可以清楚的识别哪些存储盘为可以运行的存储盘,哪些存储盘是需要被拆除的存储盘,从而可以确保存储节点的正常运行。
可选的,在本发明另一实施例中所提供的故障处理方法中,上述确定操作请求所针对的文件数据,作为失效数据,可以包括步骤1-步骤2:
步骤1:确定操作请求所要操作的文件数据,作为预选数据。
本步骤中,可以基于操作请求中所携带的相关信息,确定相关信息所指示的文件数据,即为操作请求所要操作的文件数据。其中,上述相关信息可以为数据标识信息等。
步骤2:确定存储盘内与预选数据属于同一逻辑单元的文件数据,并将预选数据以及所确定的文件数据,作为失效数据。
需要说明的是,在本分布式存储系统中,同一逻辑单元的文件数据往往被存储在同一存储盘内。其中,逻辑单元为面向业务方的单个文件。举例而言,当业务方在分布式存储系统内存储一部电影时,该一部电影即为一个逻辑单元,但在分布式存储系统内该部电影将被划分为4份文件数据,则该4分文件数据即为属于同一逻辑单元的文件数据。
由于同一逻辑单元的文件数据往往被存储在同一存储盘内,因此,当同一逻辑单元的多份文件数据中出现一份错误的文件数据时,按照前述方案,需要在其他存储盘针对该错误的文件数据进行恢复。若此时对逻辑单元的其他文件数据不做处理,将使得同一份逻辑单元的文件数据被分散在不同的存储盘,从而不利于文件数据的读取。因此,为了避免出现上述问题,在确定出预选数据之后,可以将与预选数据属于同一逻辑单元的文件数据与预想数据一起作为失效数据。从而,可以在其他存储盘中针对该同一逻辑单元的多份文件数据进行恢复,避免同一份逻辑单元的文件数据被分散在不同的存储盘。
本发明实施例提供的故障处理方法中,可以提高数据恢复的效率,且无需借助外部工具即可实现小粒度的数据恢复,同时,延长了存储盘的运行时长,节约了成本确保分布式存储系统的正常运行。
进一步的,可以避免同一份逻辑单元的文件数据被分散在不同的存储盘,从而提高了文件数据的读取效率。
相应于本发明实施例提供的故障处理方法,如图3所示,本发明实施例还提供一种分布式存储系统,分布式存储系统包括:存储节点301和管理服务器302,存储节点301中部署有存储盘;
存储节点301,用于接收针对存储盘中存储数据的操作请求;当响应操作请求失败时,确定操作请求的操作类型;若操作类型为读写文件数据的类型,则确定操作请求所针对的文件数据,作为失效数据;
管理服务器302,用于在存储节点确定失效数据之后,针对失效数据进行恢复;或者,当操作类型为读写文件系统元数据的类型时,针对存储盘所存储文件数据进行恢复。
可选的,存储节点,还用于在确定操作请求所针对的文件数据,作为失效数据之后,将失效数据移动至存储盘中预设存储位置;基于预设存储位置内的失效数据,判断存储盘是否满足预设的存储盘故障条件;
管理服务器,用于当存储盘满足存储盘故障条件时,针对存储盘所存储文件数据进行恢复。
可选的,存储节点,具体用于当操作类型为读写文件系统元数据的类型,或存储盘满足存储盘故障条件时,为存储盘设置故障标识;
管理服务器,具体用于当测到存储盘设置有故障标识时,针对存储盘所存储文件数据进行恢复。
可选的,基于预设存储位置内的失效数据,判断存储盘是否满足预设的存储盘故障条件,包括:
若预设存储位置内的失效数据满足以下任一条件,则判定存储盘满足预设的存储盘故障条件:
预设存储位置内的失效数据所占据的存储容量大于预设容量阈值;
预设存储位置内的失效数据的数量大于预设数量阈值。
可选的,预设存储位置为:存储盘中文件系统下的预设存储目录。
可选的,存储节点,具体用于确定操作请求所要操作的文件数据,作为预选数据;确定存储盘内与预选数据属于同一逻辑单元的文件数据,并将预选数据以及所确定的文件数据,作为失效数据。
可选的,存储节点,具体用于向管理服务器发送针对失效数据的恢复通知;
管理服务器,具体用于在接收到恢复通知之后,删除失效数据的元数据,并针对失效数据进行恢复。
本发明实施例提供的上述方案,由于当操作请求的操作类型为读写文件数据的类型时,存储节点仅利用管理服务器针对操作请求所针对的失效数据进行恢复,不需要对存储盘中除失效数据之外的数据进行恢复,从而减少了需要恢复数据的数据量。可见,通过本发明实施例可以提高数据恢复的效率。
另一方面,由于存储节点在响应操作请求失败,且当操作类型为读写文件数据的类型时,仅利用管理服务器针对失效数据进行恢复,无需借助外部工具即可实现小粒度的数据恢复。同时,采用本发明的方案,在利用管理服务器针对存储盘所存储文件数据进行恢复之前,不需要停止存储盘的运行,与现有直接选择接拆除故障存储盘相比,延长了存储盘的运行时长,节约了成本。
关于本发明实施例的分布式存储系统,由于与上述的故障处理方法相对应的,所以描述的比较简单,相关之处参见故障处理方法的说明即可。
相应于本发明实施例提供的故障处理方法,如图4所示,本发明实施例还提供一种故障处理装置,应用于分布式存储系统中存储节点,存储节点中部署有存储盘,分布式存储系统还包括管理服务器,装置包括:
请求接收模块401,用于接收针对存储盘中存储数据的操作请求;
类型确定模块402,用于当响应操作请求失败时,确定操作请求的操作类型;
第一数据恢复模块403,用于若操作类型为读写文件数据的类型,则确定操作请求所针对的文件数据,作为失效数据,并利用管理服务器,针对失效数据进行恢复;
第二数据恢复模块404,用于若操作类型为读写文件系统元数据的类型,则利用管理服务器,针对存储盘所存储文件数据进行恢复。
可选的,第一数据恢复模块,还用于在确定操作请求所针对的文件数据,作为失效数据之后,将失效数据移动至存储盘中预设存储位置;基于预设存储位置内的失效数据,判断存储盘是否满足预设的存储盘故障条件;若满足,则利用管理服务器,针对存储盘所存储文件数据进行恢复。
可选的,第一数据恢复模块,具体用于为存储盘设置故障标识;其中,故障标识用于被管理服务器检测到之后对存储盘所存储文件数据进行恢复。
可选的,第一数据恢复模块,具体用于若预设存储位置内的失效数据满足以下任一条件,则判定存储盘满足预设的存储盘故障条件:预设存储位置内的失效数据所占据的存储容量大于预设容量阈值;预设存储位置内的失效数据的数量大于预设数量阈值。
可选的,预设存储位置为:存储盘中文件系统下的预设存储目录。
可选的,第一数据恢复模块,具体用于确定操作请求所要操作的文件数据,作为预选数据;确定存储盘内与预选数据属于同一逻辑单元的文件数据,并将预选数据以及所确定的文件数据,作为失效数据。
可选的,第一数据恢复模块,具体用于向管理服务器发送针对失效数据的恢复通知,以使管理服务器删除失效数据的元数据,并针对失效数据进行恢复。
本发明实施例提供的上述方案,由于当操作请求的操作类型为读写文件数据的类型时,存储节点仅利用管理服务器针对操作请求所针对的失效数据进行恢复,不需要对存储盘中除失效数据之外的数据进行恢复,从而减少了需要恢复数据的数据量。可见,通过本发明实施例可以提高数据恢复的效率。
另一方面,由于存储节点在响应操作请求失败,且当操作类型为读写文件数据的类型时,仅利用管理服务器针对失效数据进行恢复,无需借助外部工具即可实现小粒度的数据恢复。同时,采用本发明的方案,在利用管理服务器针对存储盘所存储文件数据进行恢复之前,不需要停止存储盘的运行,与现有直接选择接拆除故障存储盘相比,延长了存储盘的运行时长,节约了成本。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现本发明实施例上述故障处理方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一故障处理方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一故障处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、分布式存储系统、电子设备、计算机可读存储介质、计算机程序、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (13)
1.一种故障处理方法,其特征在于,应用于分布式存储系统中存储节点,所述存储节点中部署有存储盘,所述分布式存储系统还包括管理服务器,所述方法包括:
接收针对所述存储盘中存储数据的操作请求;
当响应所述操作请求失败时,确定所述操作请求的操作类型;
若所述操作类型为读写文件数据的类型,则确定所述操作请求所针对的文件数据,作为失效数据,并利用所述管理服务器,针对所述失效数据进行恢复;
若所述操作类型为读写文件系统元数据的类型,则利用所述管理服务器,针对所述存储盘所存储文件数据进行恢复。
2.根据权利要求1所述的方法,其特征在于,在所述确定所述操作请求所针对的文件数据,作为失效数据之后,所述方法还包括:
将所述失效数据移动至所述存储盘中预设存储位置;
基于所述预设存储位置内的失效数据,判断所述存储盘是否满足预设的存储盘故障条件;
若满足,则利用所述管理服务器,针对所述存储盘所存储文件数据进行恢复。
3.根据权利要求1或2所述的方法,其特征在于,所述利用所述管理服务器,针对所述存储盘所存储文件数据进行恢复,包括:
为所述存储盘设置故障标识;其中,所述故障标识用于被所述管理服务器检测到之后对所述存储盘所存储文件数据进行恢复。
4.根据权利要求2所述的方法,其特征在于,所述基于所述预设存储位置内的失效数据,判断所述存储盘是否满足预设的存储盘故障条件,包括:
若所述预设存储位置内的失效数据满足以下任一条件,则判定所述存储盘满足预设的存储盘故障条件:
所述预设存储位置内的失效数据所占据的存储容量大于预设容量阈值;
所述预设存储位置内的失效数据的数量大于预设数量阈值。
5.根据权利要求2所述的方法,其特征在于,所述预设存储位置为:所述存储盘中文件系统下的预设存储目录。
6.根据权利要求1或2所述的方法,其特征在于,所述确定所述操作请求所针对的文件数据,作为失效数据,包括:
确定所述操作请求所要操作的文件数据,作为预选数据;
确定所述存储盘内与所述预选数据属于同一逻辑单元的文件数据,并将所述预选数据以及所确定的文件数据,作为失效数据。
7.根据权利要求1或2所述的方法,其特征在于,所述利用所述管理服务器,针对所述失效数据进行恢复,包括:
向所述管理服务器发送针对所述失效数据的恢复通知,以使所述管理服务器删除所述失效数据的元数据,并针对所述失效数据进行恢复。
8.一种分布式存储系统,其特征在于,所述分布式存储系统包括:存储节点和管理服务器,所述存储节点中部署有存储盘;
所述存储节点,用于接收针对所述存储盘中存储数据的操作请求;当响应所述操作请求失败时,确定所述操作请求的操作类型;若所述操作类型为读写文件数据的类型,则确定所述操作请求所针对的文件数据,作为失效数据;
所述管理服务器,用于在所述存储节点确定所述失效数据之后,针对所述失效数据进行恢复;或者,当所述操作类型为读写文件系统元数据的类型时,针对所述存储盘所存储文件数据进行恢复。
9.根据权利要求8所述的系统,其特征在于,所述存储节点,还用于在所述确定所述操作请求所针对的文件数据,作为失效数据之后,将所述失效数据移动至所述存储盘中预设存储位置;基于所述预设存储位置内的失效数据,判断所述存储盘是否满足预设的存储盘故障条件;
所述管理服务器,用于当所述存储盘满足所述存储盘故障条件时,针对所述存储盘所存储文件数据进行恢复。
10.根据权利要求8或9的系统,其特征在于,所述存储节点,具体用于当所述操作类型为读写文件系统元数据的类型,或所述存储盘满足所述存储盘故障条件时,为所述存储盘设置故障标识;
所述管理服务器,具体用于当测到所述存储盘设置有所述故障标识时,针对所述存储盘所存储文件数据进行恢复。
11.一种故障处理装置,其特征在于,应用于分布式存储系统中存储节点,所述存储节点中部署有存储盘,所述分布式存储系统还包括管理服务器,所述装置包括:
请求接收模块,用于接收针对所述存储盘中存储数据的操作请求;
类型确定模块,用于当响应所述操作请求失败时,确定所述操作请求的操作类型;
第一数据恢复模块,用于若所述操作类型为读写文件数据的类型,则确定所述操作请求所针对的文件数据,作为失效数据,并利用所述管理服务器,针对所述失效数据进行恢复;
第二数据恢复模块,用于若所述操作类型为读写文件系统元数据的类型,则利用所述管理服务器,针对所述存储盘所存储文件数据进行恢复。
12.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110796910.5A CN113485872A (zh) | 2021-07-14 | 2021-07-14 | 故障处理方法、装置及分布式存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110796910.5A CN113485872A (zh) | 2021-07-14 | 2021-07-14 | 故障处理方法、装置及分布式存储系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113485872A true CN113485872A (zh) | 2021-10-08 |
Family
ID=77938761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110796910.5A Pending CN113485872A (zh) | 2021-07-14 | 2021-07-14 | 故障处理方法、装置及分布式存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113485872A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023109357A1 (zh) * | 2021-12-16 | 2023-06-22 | 华为技术有限公司 | 一种数据恢复方法及装置 |
-
2021
- 2021-07-14 CN CN202110796910.5A patent/CN113485872A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023109357A1 (zh) * | 2021-12-16 | 2023-06-22 | 华为技术有限公司 | 一种数据恢复方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725822B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US9645892B1 (en) | Recording file events in change logs while incrementally backing up file systems | |
US8627025B2 (en) | Protecting data during different connectivity states | |
US9317374B2 (en) | Performing a background copy process during a backup operation | |
US7681001B2 (en) | Storage system | |
JP4722944B2 (ja) | データベースの分散ロードのためのシステム、方法およびソフトウェア | |
JP2011123752A (ja) | ログ収集装置、ログ収集プログラム、ログ収集方法及びログ収集システム | |
CN107506266B (zh) | 一种数据恢复方法及系统 | |
CN109656895B (zh) | 分布式存储系统、数据写入方法、装置和存储介质 | |
CN110597779A (zh) | 一种分布式文件系统中的数据读写方法及相关装置 | |
US7363445B2 (en) | Backup method | |
CN110825559A (zh) | 一种数据处理方法及设备 | |
RU2665272C1 (ru) | Способ и устройство для восстановления дедуплицированных данных | |
CN113485872A (zh) | 故障处理方法、装置及分布式存储系统 | |
CN110737716A (zh) | 一种数据写入的方法和装置 | |
WO2021027271A1 (zh) | 坏块信息保护方法、装置、计算机设备及存储介质 | |
US10545825B2 (en) | Fault-tolerant enterprise object storage system for small objects | |
US20190065065A1 (en) | Data protection method and storage server | |
CN110968456A (zh) | 分布式存储系统中故障磁盘的处理方法及装置 | |
WO2018076954A1 (zh) | 一种数据存储方法、装置及系统 | |
US11645333B1 (en) | Garbage collection integrated with physical file verification | |
CN111090491B (zh) | 虚拟机任务状态的恢复方法、装置及电子设备 | |
CN114461452A (zh) | 硬盘保护方法、电子设备及计算机可读存储介质 | |
CN114415970A (zh) | 分布式存储系统的磁盘故障处理方法、装置及服务器 | |
CN107346273B (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 |