CN115934001B - 一种纠删池选择方法、装置、电子设备及存储介质 - Google Patents
一种纠删池选择方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115934001B CN115934001B CN202310214137.6A CN202310214137A CN115934001B CN 115934001 B CN115934001 B CN 115934001B CN 202310214137 A CN202310214137 A CN 202310214137A CN 115934001 B CN115934001 B CN 115934001B
- Authority
- CN
- China
- Prior art keywords
- erasure
- pool
- target
- candidate
- directory
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种纠删池选择方法、装置、电子设备及存储介质,涉及存储领域,方法包括:当接收到待存储的文件时,确定文件对应的目标目录,并确定目标目录在存储系统中对应的多个候选纠删池;各候选纠删池对应的纠删等级中存在至少两种不同的纠删等级;确定各候选纠删池对应的故障状态,并根据故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在故障状态为未故障的候选纠删池中选择目标数据池;将文件写入目标数据池;可为文件目录列表中的目录设置多个候选纠删池,进而在进行文件写入时,可在该文件所要写入的目录对应的候选纠删池中优先选择未故障、纠删等级高及剩余容量大的纠删池进行写入,从而可有效保证数据存储的可靠性。
Description
技术领域
本发明涉及存储领域,特别涉及一种纠删池选择方法、装置、电子设备及计算机可读存储介质。
背景技术
分布式存储系统通常可利用多个存储设备形成一个数据池,并利用该数据池对用户数据进行分布式存储。为避免存储设备故障损坏导致用户数据直接损坏,数据池通常可设置纠删机制,即为记录有用户数据的多个原始数据块生成对应的校验块,以在部分原始数据块损坏时,利用这些校验块来恢复损坏的用户数据。然而,当数据池中的部分存储设备故障损坏时,该故障也导致数据池中的校验块数量下降,即已影响了该数据池的可靠性,难以保障后续写入该数据池的数据的存储可靠性。此时,相关技术中可通过调整数据池自身的纠删等级来恢复其可靠性,然而这种调整耗费的时间较长,容易干扰上层业务,且在调整的过程中,后续写入的数据仍旧只能保存在可靠性下降的数据池中,难以保证可靠存储。
发明内容
本发明的目的是提供一种纠删池选择方法、装置、电子设备及计算机可读存储介质,可为文件目录设置多个候选纠删池,进而在对该目录进行文件写入时,可在该目录对应的候选纠删池中优先选择未故障、纠删等级高及剩余容量大的纠删池进行写入,从而可有效保证数据存储的可靠性。
为解决上述技术问题,本发明提供一种纠删池选择方法,包括:
当接收到待存储的文件时,确定所述文件对应的目标目录,并确定所述目标目录在存储系统中对应的多个候选纠删池;各所述候选纠删池对应的纠删等级中存在至少两种不同的纠删等级;
确定各所述候选纠删池对应的故障状态,并根据所述故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在所述故障状态为未故障的候选纠删池中选择目标数据池;
将所述文件写入所述目标数据池。
可选地,所述确定所述目标目录在存储系统中对应的多个候选纠删池,包括:
确定所述目标目录对应的目标文件布局结构信息,并根据所述目标文件布局结构信息确定所述目标目录对应的候选纠删池。
可选地,所述根据所述目标文件布局结构信息确定所述目标目录对应的候选纠删池,包括:
从所述目标文件布局结构信息中获取数据池信息,并根据类型为纠删池类型的数据池信息确定所述目标目录对应的候选纠删池。
可选地,所述确定所述目标目录对应的目标文件布局结构信息,包括:
判断所述目标目录是否配置有对应的文件布局结构信息;
若是,则将所述目标目录对应的文件布局结构信息设置为所述目标文件布局结构信息;
若否,则将所述目标目录的父目录设置为待处理目录,并判断所述待处理目录是否配置有对应的文件布局结构信息;
若所述待处理目录配置有对应的文件布局结构信息,则将所述待处理目录对应的文件布局结构信息设置为所述目标文件布局结构信息;
若所述待处理目录未配置对应的文件布局结构信息,则将所述待处理目录更新为所述待处理目录的父目录,并利用更新后的待处理目录执行所述判断所述待处理目录是否配置有对应的文件布局结构信息的步骤。
可选地,在接收待存储的文件之前,还包括:
获取所述存储系统的多个对象存储设备,并利用所述多个对象存储设备创建多个纠删池;各所述纠删池对应的纠删等级中存在至少两种不同的纠删等级;
为文件目录列表中的目录配置所述纠删池。
可选地,各所述纠删池配置的纠删策略均为k+m纠删策略,所述利用所述多个对象存储设备创建多个纠删池,包括:
基于相同的预设m值和至少两种不同的预设k值,利用所述多个对象存储设备创建所述多个纠删池。
可选地,所述基于相同的预设m值和至少两种不同的预设k值,利用所述多个对象存储设备创建所述多个纠删池,包括:
获取预设最大k值及所述预设m值,并将所述预设最大k值设置为目标k值;
基于所述目标k值及所述m值,利用所述多个对象存储设备创建所述纠删池;
当确定所述目标k值大于预设最小值时,对目标k值减二,并基于更新后的目标k值及所述m值执行所述利用所述多个对象存储设备创建所述纠删池的步骤。
可选地,所述为文件目录列表中的目录配置所述纠删池,包括:
将基于同一批对象存储设备创建的纠删池归类至对应的纠删池组;
为所述目录配置一个或多个所述纠删池组。
可选地,在为文件目录列表中的目录配置所述纠删池之后,还包括:
当确定所述对象存储设备中出现异常的目标对象存储设备时,将所述存储系统中包含所述目标对象存储设备的目标纠删池的故障状态更新为故障。
可选地,在确定所述对象存储设备中出现异常的目标对象存储设备之后,还包括:
当确定所述目标对象存储设备恢复正常时,将所述存储系统中包含所述目标对象存储设备的目标纠删池的故障状态更新为未故障,以在确定将所述目标纠删池作为候选纠删池的目录对应的目标数据池的纠删等级和剩余容量劣于所述目标纠删池时,利用所述目标纠删池进行目标数据池更新。
可选地,所述确定所述对象存储设备中出现异常的目标对象存储设备,包括:
当接收到对象存储管理设备在检测到所述对象存储设备中出现异常的目标对象存储设备时立刻返回的所述目标对象存储设备对应的故障信息时,确定所述对象存储设备中出现异常的目标对象存储设备。
可选地,在将所述文件写入所述目标数据池之后,还包括:
将所述文件与所述目标数据池的对应关系记录至所述文件的元数据中。
可选地,所述根据所述故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在所述故障状态为未故障的候选纠删池中选择目标数据池,包括:
根据预设等级阈值将所述故障状态为未故障的候选纠删池划分至第一类别和第二类别;第一类别的候选纠删池的纠删等级大于或等于所述预设等级阈值,第二类别的候选纠删池的纠删等级小于所述预设等级阈值;
当属于所述第一类别的候选纠删池存在时,选取剩余容量最大的第一类别的候选纠删池作为所述目标数据池;
当属于所述第一类别的候选纠删池不存在时,选取剩余容量最大的第二类别的候选纠删池作为所述目标数据池。
可选地,各所述候选纠删池均配置有k+m纠删策略,且各所述候选纠删池对应的m值均相等,对应的k值中存在至少两种不同的k值,所述根据预设等级阈值将所述故障状态为未故障的候选纠删池划分至第一类别和第二类别,包括:
根据预设k值阈值将所述故障状态为未故障的候选纠删池划分至第一类别和第二类别;所述第一类别的候选纠删池的k值大于或等于所述预设k值阈值,所述第二类别的候选纠删池的k值小于所述预设k值阈值。
可选地,在根据预设k值阈值将所述故障状态为未故障的候选纠删池划分至第一类别和第二类别之前,还包括:
从所述候选纠删池中确定所述剩余容量大于零且所述故障状态为未故障的目标候选纠删池;
从所述目标候选纠删池对应的k值中选取最大值设置为所述预设k值阈值。
可选地,还包括:
当所述故障状态为未故障的候选纠删池不存在时,将纠删等级大于或等于所述预设等级阈值的、故障状态为故障的候选纠删池分类至第三类别;
当属于第三类别的候选纠删池存在时,选取剩余容量最大的第三类别的候选纠删池作为所述目标数据池。
可选地,还包括:
当属于所述第三类别的候选纠删池不存在时,选取所述存储系统的默认数据池作为所述目标数据池。
本发明还提供一种纠删池选择装置,包括:
候选纠删池确定模块,用于当接收到待存储的文件时,确定所述文件对应的目标目录,并确定所述目标目录在存储系统中对应的多个候选纠删池;各所述候选纠删池对应的纠删等级中存在至少两种不同的纠删等级;
目标纠删池确定模块,用于确定各所述候选纠删池对应的故障状态,并根据所述故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在所述故障状态为未故障的候选纠删池中选择目标数据池;
写入模块,用于将所述文件写入所述目标数据池。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的纠删池选择方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的纠删池选择方法。
本发明提供一种纠删池选择方法,包括:当接收到待存储的文件时,确定所述文件对应的目标目录,并确定所述目标目录在存储系统中对应的多个候选纠删池;各所述候选纠删池对应的纠删等级中存在至少两种不同的纠删等级;确定各所述候选纠删池对应的故障状态,并根据所述故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在所述故障状态为未故障的候选纠删池中选择目标数据池;将所述文件写入所述目标数据池。
可见,本发明可在存储系统中配置多个纠删池,并可为文件目录列表中的目录设置多个候选纠删池,其中各候选纠删池对应的纠删等级中存在至少两种不同的纠删等级;随后,在接收到待写入的文件时,本发明可首先确定该文件对应的目标目录,并确定该目标目录所对应的多个候选纠删池;随后,本发明可确定各候选纠删池的工作状态,以根据该工作状态筛选出未故障的候选纠删池;进一步,在完成筛选后,本发明可根据工作状态为未故障的候选纠删池对应的纠删等级及剩余容量,优先在这些候选纠删池中选择目标数据池,即可优先在未故障的候选纠删池中选择纠删等级、剩余容量较高的候选纠删池作为待写入该文件的目标数据池,即可确保每次执行文件存储时,都能够尽可能选择工作正常的、纠删等级及剩余容量均较高的可靠纠删池进行数据存储,从而可避免相关技术中由数据池损坏导致的数据存储可靠性下降问题。本发明还可提供一种纠删池选择装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种纠删池选择方法的流程图;
图2为本发明实施例提供的一种故障状态检测与传递的示意图;
图3为本发明实施例提供的一种目录文件布局冗余设置的示意图;
图4为本发明实施例提供的一种基于EC算法的纠删池动态选择方法的示意图;
图5为本发明实施例所提供的一种纠删池选择装置的结构框图;
图6为本发明实施例所提供的一种电子设备的结构框图;
图7为本发明实施例所提供的一种计算机可读存储介质的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,对于无法提供可靠存储的数据池,可通过调整数据池自身的纠删等级来恢复其可靠性。然而这种调整耗费的时间较长,容易干扰上层业务;同时在调整的过程中,后续写入的数据依旧只能保存在可靠性下降的数据池中,难以保证可靠存储。有鉴于此,本发明可提供一种纠删池选择方法,可为各文件目录设置对应的多个候选纠删池,进而在对某目录进行文件写入时,可在该目录对应的候选纠删池中优先选择未故障、纠删等级较高及剩余容量较大的纠删池进行写入,从而可有效保证数据存储的可靠性。需要说明的是,本发明实施例并不限定存储系统中执行本方法的模块,例如可以是存储系统中的元数据服务模块(MDS,Metadata Server)。本发明实施例也不限定具体的存储系统,例如可以为分布式存储系统。请参考图1,图1为本发明实施例所提供的一种纠删池选择方法的流程图,该方法可以包括:
S100、当接收到待存储的文件时,确定文件对应的目标目录,并确定目标目录在存储系统中对应的多个候选纠删池;各候选纠删池对应的纠删等级中存在至少两种不同的纠删等级。
为方便纠删池切换,本发明实施例首先可在存储系统中设置多个纠删池,其中纠删池为配置有纠删策略、具有纠删功能的数据池。每个纠删池对应一种纠删等级,且存储系统中的所有纠删池对应的纠删等级中至少存在两种不同等级,以便进行等级切换。随后,本发明实施例可将这些纠删池配置给文件目录列表中的每个目录,使得每个目录都可拥有多个候选纠删池来存放该目录下的文件。同样的,每个目录对应的候选纠删池也至少配置有两种不同的纠删等级。这样,每次在向该目录写入文件时,便可依照其对应的各候选纠删池的纠删等级及工作状态,优选可靠性较强的纠删池作为最终存储文件的目标数据池。由于本发明实施例可在上层完成纠删池切换,而不是在底层对纠删池进行纠删策略调整,因此本发明能够动态地调整存储文件的纠删池,从而时刻保证文件的存储可靠性。
应当指出的是,本发明实施例并不限定各纠删池具体配置的纠删策略,可根据实际应用需求进行设定,例如可以为k+m纠删策略。本发明实施例也不限定各纠删池对应的纠删策略是否相同,如可为所有纠删池配置同种纠删策略,也可以为各纠删池配置不同种纠删策略。当然可以理解的是,如为各纠删池配置同种的纠删策略,则为确保纠删等级不同,需为各纠删池配置至少两组不同的纠删参数,例如对于k+m纠删策略,则需要确保各纠删池对应的k值(原始数据块的数量)或m值(校验块的数量)中至少存在两种不同值。进一步,本发明实施例也不限定纠删等级的设置方式,例如可根据各纠删池对应的纠删策略类型来设置对应的纠删等级;若所有纠删池均设置有同种纠删策略,则也可根据各纠删池对应的纠删参数来设置对应的纠删等级,具体设置方式可根据实际应用需求进行设定。此外,关于纠删池的其他配置情况,如存储容量、所对应的磁盘或对象存储设备(OSD,Object StorageDevice)数量等,也可根据实际应用需求进行设定,本发明实施例对此不做限定。
进一步,本发明实施例也不限定文件目录列表中的各目录可对应的候选纠删池数量,该数量至少为二。本发明实施例也不限定为目录配置候选纠删池的具体方式,例如可将候选纠删池的信息记录在该目录对应的元数据中,例如可设置于该目录的文件布局结构中,这样可通过查询其文件布局结构信息来确定其对应的候选纠删池;当然,候选纠删池的信息也可记录于该目录的父目录对应的元数据中(或记录于其父目录的父目录对应的元数据中,以此类推),如记录于其父目录的文件布局结构中,而该目录可继承其父目录的文件布局结构,这样可通过查询其父目录的文件布局结构来确定本目录对应的候选纠删池。
S200、确定各候选纠删池对应的故障状态,并根据故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在故障状态为未故障的候选纠删池中选择目标数据池。
在确定了目标目录对应的候选纠删池之后,本发明实施例需确定各候选纠删池对应的故障情况,并优先在未故障的候选纠删池中选择纠删等级及剩余容量较高的候选纠删池作为存放文件的目标数据池,从而保证文件存储的可靠性。
需要说明的是,本发明实施例并不限定确定各候选纠删池故障状态的具体方式,例如元数据服务模块可确定各候选纠删池所包含的磁盘或对象存储设备是否故障,从而确定该候选纠删池是否故障;当然,“故障状态”可以为各候选纠删池对应的状态信息,具体可对应“故障”和“未故障”两种状态,存储系统中的相关模块可通过定期或实时检测各磁盘或对象存储设备工作状态的方式来维护各候选纠删池的“故障状态”信息,进而元数据服务模块便可通过查询“故障状态”信息的方式来确定各候选纠删池的故障状态。
进一步,需要说明的是,本发明实施例并不限定如何根据“纠删等级”和“剩余容量”这两种指标在未故障的候选纠删池中确定目标数据池,例如可根据等级阈值将各候选纠删池进行分类,并优先在等级较高的一类中选择剩余容量较大的候选纠删池作为目标数据池;又例如可根据容量阈值将各候选纠删池进行分类,并优先在剩余容量较大的一类中选择纠删等级较高的候选纠删池作为目标数据池,可根据实际应用需求进行选择。
当然,应当指出的是,假若目标目录对应的所有候选纠删池均故障,则也可在故障的候选纠删池中选择纠删等级高于应用需求的且剩余容量较大的候选纠删池作为目标数据池,以尽量减小磁盘或对象存储设备损坏对文件存储可靠性的影响程度;当然,假若目标目录对应的所有候选纠删池均故障,则也可使用存储系统的默认数据池进行数据存放。
S300、将文件写入目标数据池。
可以理解的是,由于各目录都对应有多个候选纠删池,因此该目录中的各文件所存放的数据池不固定,进而需要将各文件所存放的数据池的信息写入该文件的元数据中,以根据元数据进行文件获取。
基于此,在将文件写入目标数据池之后,还可以包括:
S400、将文件与目标数据池的对应关系记录至文件的元数据中。
基于上述实施例,本发明可在存储系统中配置多个纠删池,并可为文件目录列表中的目录设置多个候选纠删池,其中各候选纠删池对应的纠删等级中存在至少两种不同的纠删等级;随后,在接收到待写入的文件时,本发明可首先确定该文件对应的目标目录,并确定该目标目录所对应的多个候选纠删池;随后,本发明可确定各候选纠删池的工作状态,以根据该工作状态筛选出未故障的候选纠删池;进一步,在完成筛选后,本发明可根据工作状态为未故障的候选纠删池对应的纠删等级及剩余容量,优先在这些候选纠删池中选择目标数据池,即可优先在未故障的候选纠删池中选择纠删等级、剩余容量较高的候选纠删池作为待写入该文件的目标数据池,即可确保每次执行文件存储时,都能够尽可能选择工作正常的、纠删等级及剩余容量均较高的可靠纠删池进行数据存储,从而可避免相关技术中由数据池损坏导致的数据存储可靠性下降问题。
基于上述实施例,下面对目标数据池的确定方式进行详细介绍。在一种可能的情况中,根据故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在故障状态为未故障的候选纠删池中选择目标数据池,可以包括:
S210、根据预设等级阈值将故障状态为未故障的候选纠删池划分至第一类别和第二类别;第一类别的候选纠删池的纠删等级大于或等于预设等级阈值,第二类别的候选纠删池的纠删等级小于预设等级阈值。
本发明实施例可首先依照预设等级阈值将未故障的候选纠删池划分为两个类别,其中第一类别的候选纠删池的纠删等级大于或等于预设等级阈值,而第二类别的候选纠删池的纠删等级小于预设等级阈值。随后,本发明实施例将优先从第一类别的候选纠删池中选择剩余容量最大的作为目标数据池。当然,假若未故障的所有候选纠删池均不能被分类至第一类别,则本发明实施例还可从第二类别的候选纠删池中选择剩余容量最大的作为目标数据池。这样,在每次向目标目录写入文件时,本发明实施例均可在平衡纠删等级和剩余容量后,优先从未故障的候选纠删池中选择较为可靠的纠删池来存放该目录的文件,即能够动态地进行纠删池选择,从而能够在各种情况下保障文件的可靠存储。
需要说明的是,本发明实施例并不限定预设等级阈值的具体形式,例如其可以是人为设定的多个等级数值中的一个特定值,也可以是纠删参数的多个可能值中的一个特定值,可结合具体的纠删策略、纠删参数设置方式进行设置。下面将基于一种特定情况介绍预设等级阈值的具体形式及利用该阈值对候选纠删池进行分类的具体方式。优选地,存储系统中的各纠删池所配置的纠删策略均可为k+m纠删策略,该策略可简单描述为:对k个同样大小的数据块,额外增加m个校验块,以使得这k+m个数据中任意丢失m个数据块/校验块时都能把丢失的数据找回。k+m的一般组合可以为4+2、6+2、8+2等。进一步,各纠删池所对应的m值均相同,仅在对应的k值上可能存在不同,而预设等级阈值具体便可以是多个不同k值中的一个特定值。换句话说,预设等级阈值实际上为预设k值阈值。应当指出的是,k值影响数据恢复代价,k值越小,则数据分散度越小,故障影响面越大,进而对应的重建代价也就越大。因此纠删池的k值越小,则其对应的纠删能力就越差,从而其对应的纠删等级便越低,因此第一类别的候选纠删池的k值应当大于或等于预设k值阈值,而第二类别的候选纠删池的k值应当小于预设k值阈值。当然,假若各纠删池对应的m值也不同,预设等级阈值也可能包含多个子阈值,以对拥有不同k值和m值的纠删池进行等级区分。
基于此,各候选纠删池均配置有k+m纠删策略,且各候选纠删池对应的m值均相等,对应的k值中存在至少两种不同的k值,根据预设等级阈值将故障状态为未故障的候选纠删池划分至第一类别和第二类别,可以包括:
S2111、根据预设k值阈值将故障状态为未故障的候选纠删池划分至第一类别和第二类别;第一类别的候选纠删池的k值大于或等于预设k值阈值,第二类别的候选纠删池的k值小于预设k值阈值。
进一步,预设k值阈值可以是人为设定的固定值,也可以是基于各候选纠删池的纠删等级、故障状态和剩余容量动态设定的值。考虑到各目录的候选纠删池对应的故障状态及剩余容量变化多端,此外对应的纠删等级组合也种类繁多,因此采用固定预设k值阈值进行纠删池分类难以贴近实际,进而难以取得较好的分类效果。也正因如此,本发明实施例可根据目标目录的候选纠删池对应的纠删等级、实际剩余容量及实际故障状态动态设置上述预设k值阈值。具体的,可从候选纠删池中确定剩余容量大于零且故障状态为未故障的目标候选纠删池,并可从这些目标候选纠删池对应的k值中选取最大值设置为预设k值阈值。
基于此,在根据预设k值阈值将故障状态为未故障的候选纠删池划分至第一类别和第二类别之前,还可以包括:
S2121、从候选纠删池中确定剩余容量大于零且故障状态为未故障的目标候选纠删池;
S2122、从目标候选纠删池对应的k值中选取最大值设置为预设k值阈值。
S220、当属于第一类别的候选纠删池存在时,选取剩余容量最大的第一类别的候选纠删池作为目标数据池;
S230、当属于第一类别的候选纠删池不存在时,选取剩余容量最大的第二类别的候选纠删池作为目标数据池。
进一步,假若不存在未故障的候选纠删池,也可在故障的候选纠删池中选择可靠性较高的作为目标数据池,以尽可能降低故障对文件存储可靠性的影响程度。具体的,可在将纠删等级大于或等于预设等级阈值的、故障状态为故障的候选纠删池中选择剩余容量最大的作为目标数据池。
基于此,本方法还可以包括:
S500、当故障状态为未故障的候选纠删池不存在时,将纠删等级大于或等于预设等级阈值的、故障状态为故障的候选纠删池分类至第三类别;
S600、当属于第三类别的候选纠删池存在时,选取剩余容量最大的第三类别的候选纠删池作为目标数据池。
进一步,应当指出的是,由于纠删等级小于预设等级阈值的故障候选纠删池不可靠,因此本发明实施例将不采用这些候选纠删池进行数据存储。进而,假若上述第三类型的候选数据池仍不存在,则本发明实施例将选取存储系统的默认数据池作为目标数据池。
基于此,本方法还可以包括:
S700、当属于第三类别的候选纠删池不存在时,选取存储系统的默认数据池作为目标数据池。
基于上述实施例,下面对纠删池的创建及故障状态维护方式进行详细介绍。在一种可能的情况中,在接收待存储的文件之前,还可以包括:
S800、获取存储系统的多个对象存储设备,并利用多个对象存储设备创建多个纠删池;各纠删池对应的纠删等级中存在至少两种不同的纠删等级。
对象存储设备是响应客户端请求并返回具体数据的存储进程,其部署于磁盘中。存储系统中通常可设置多个磁盘,且每个磁盘可部署一个或多个对象存储设备,因此存储系统通常部署有多个对象存储设备。本发明实施例将利用这些对象存储设备来构造纠删池。具体的,可将存储系统中的对象存储设备归为多个组,并基于每组对象存储设备创建多个纠删池。应当指出的是,本发明实施例并不限定每组对象存储设备的具体数量,且各组对应的设备数量既可相同也可不同。此外,本发明实施例也不限定每组对象存储设备可创建多少纠删池,同样可根据实际应用需求进行设定。进一步,本发明实施例也不限定各纠删池具体使用的纠删策略和纠删参数,均可根据实际应用需求进行任意调整。
下面基于一种特定的纠删策略来介绍纠删池的创建过程。优选的,各纠删池所配置的纠删策略均可以为k+m纠删策略,同时本发明实施例可基于相同的预设m值和至少两种不同的预设k值来创建纠删池,例如预设m值为2,预设k值至少为8和6,则k+m的组合至少包含8+2和6+2。
基于此,各纠删池配置的纠删策略均为k+m纠删策略,利用多个对象存储设备创建多个纠删池,可以包括:
S810、基于相同的预设m值和至少两种不同的预设k值,利用多个对象存储设备创建多个纠删池。
具体的,为提升创建效率,可预设最大k值,并首先将预设最大k值作为目标k值;随后,可基于预设m值和目标k值创建首个纠删池;随后,可对目标k值减二,并基于更新后的目标k值和预设m值继续创建下一纠删池,直至目标k值不大于预设最小值时,完成此批纠删池的创建。
基于此,基于相同的预设m值和至少两种不同的预设k值,利用多个对象存储设备创建多个纠删池,可以包括:
S811、获取预设最大k值及预设m值,并将预设最大k值设置为目标k值;
S812、基于目标k值及m值,利用多个对象存储设备创建纠删池;
S813、当确定目标k值大于预设最小值时,对目标k值减二,并基于更新后的目标k值及m值执行利用多个对象存储设备创建纠删池的步骤。
需要说明的是,本发明实施例并不限定预设最大k值、预设m值和预设最小值的具体数值,可根据实际应用需求进行设定,例如预设最大k值可以为8,预设m值可以为2,预设最小值可以为4,进而此批纠删池对应的纠删等级可以有8+2、6+2和4+2。
S900、为文件目录列表中的目录配置纠删池。
在完成纠删池的创建之后,便可为文件目录列表中目录配置纠删池。需要说明的是,本发明实施例并不限定文件目录列表中的哪些目录需要配置纠删池,例如所有目录均需要配置纠删池,又例如文件列表目录中至少两个特定目录需要创建纠删池,而这些特定目录的子目录则继承其父目录的纠删池。此外,同一个目录不仅可以设置基于同一批对象存储设备的纠删数据池组,也可以设置来自不同批对象存储设备的多个纠删池组,可根据实际应用需求进行设定。
基于此,为文件目录列表中的目录配置纠删池,可以包括:
S910、将基于同一批对象存储设备创建的纠删池归类至对应的纠删池组;
S920、为目录配置一个或多个纠删池组。
下面对纠删池故障状态的维护方式进行介绍。在本发明实施例中,各对象存储设备的工作状态将被时刻关注。在确定对象存储设备中出现异常的目标对象存储设备时,本发明实施例需将包含该设备的纠删池对应的故障状态更新为故障。
基于此,在为文件目录列表中的目录配置纠删池之后,还包括:
S1000、当确定对象存储设备中出现异常的目标对象存储设备时,将存储系统中包含目标对象存储设备的目标纠删池的故障状态更新为故障。
需要说明的是,本发明实施例并不限定对象存储设备的故障检测主体,例如可以由执行本方法的主体进行检测,也可以由存储设备中的其他模块进行检测。为提升检测可靠性,在本发明实施例中,对各对象存储设备的故障检测可由存储设备的其他模块进行,例如可由对象存储管理设备(MON)进行检测,其中MON是Monitor管理软件,负责分布式系统底层模块MDS/OSD等的切换及状态管理。
基于此,确定对象存储设备中出现异常的目标对象存储设备,可以包括:
S1010、当接收到对象存储管理设备在检测到对象存储设备中出现异常的目标对象存储设备时立刻返回的目标对象存储设备对应的故障信息时,确定对象存储设备中出现异常的目标对象存储设备。
进一步,可以理解的是,假若确定目标对象存储设备恢复正常后,需将包含目标对象存储设备对应的目标纠删池的故障状态更新为未故障。这样,将目标纠删池作为候选纠删池的目录所拥有的未故障候选纠删池数量便可增加。同时,假若目标纠删池的纠删等级和剩余容量均优于该目录的其他候选纠删池,则再次向该目录写入文件时,便可将目标纠删池作为该目录对应的目标数据池,从而可提升文件的存储可靠性。以纠删等级为例,假若某故障的目标纠删池的纠删等级为8+2,在其恢复正常之前,将该目标纠删池作为候选纠删池的目录所拥有的未故障候选纠删池对应的最高纠删等级为6+2,进而在目标纠删池恢复之后,该目录所拥有的未故障候选纠删池对应的最高纠删等级便从6+2变为8+2,进而可将该目录对应的待写入文件的目标数据池切换上述目标纠删池,从而可显著提升了该目录的存储可靠性。当然,可以理解的是,假若上述纠删池中还包含除目标对象存储设备之外的其他故障存储设备时,需等到该纠删池中的所有对象存储设备均恢复正常时,才将其对应的故障状态更新为未故障。
基于此,在确定对象存储设备中出现异常的目标对象存储设备之后,还包括:
S1100、当确定目标对象存储设备恢复正常时,将存储系统中包含目标对象存储设备的目标纠删池的故障状态更新为未故障,以在确定将目标纠删池作为候选纠删池的目录对应的目标数据池的纠删等级和剩余容量劣于目标纠删池时,利用目标纠删池进行目标数据池切换。
基于上述实施例,下面对目标目录的多个候选纠删池的确定方式进行详细介绍。在一种可能的情况中,确定目标目录在存储系统中对应的多个候选纠删池,可以包括:
S110、确定目标目录对应的目标文件布局结构信息,并根据目标文件布局结构信息确定目标目录对应的候选纠删池。
如上所述,目标目录对应的候选纠删池的数据池信息记录于该目录对应的目标文件布局结构信息中。而目标文件布局结构信息具体可以为目标目录自身的文件布局结构信息,也可以为目标目录的父目录的文件布局结构信息,可以为目标目录的父目录的父目录的文件布局结构信息,以此类推。本发明实施例将根据目标目录、目标目录的父目录及其父目录的父目录设置文件布局结构信息的情况来确定目标目录对应的候选纠删池。具体的,首先可判断目标目录是否设置有文件布局结构信息,若设置有则可直接将其设置为目标文件布局结构信息;若未设置,则可将目标目录的父目录设置为待处理目录,并判断待处理目录是否配置有文件布局结构信息,若设置有则可将其设置为目标目录对应的目标文件布局结构信息;若未设置有,则可将待处理目录更行为待处理目录的父目录,并重复上述判断步骤。
基于此,确定目标目录对应的目标文件布局结构信息,可以包括:
S1111、判断目标目录是否配置有对应的文件布局结构信息;若是,则进入步骤S1112;若否,则进入步骤S1113;
S1112、将目标目录对应的文件布局结构信息设置为目标文件布局结构信息;
S1113、将目标目录的父目录设置为待处理目录,并判断待处理目录是否配置有对应的文件布局结构信息;若是,则进入步骤S1114;若否,则进入步骤S1115;
S1114、将待处理目录对应的文件布局结构信息设置为目标文件布局结构信息;
S1115、将待处理目录更新为待处理目录的父目录,并利用更新后的待处理目录执行判断待处理目录是否配置有对应的文件布局结构信息的步骤。
通过上述设置之后,可为多个互相形成父子关系的目录设置一批候选纠删池,以提升文件存储的管理效率。
进一步,应当指出的是,各目录除了可设置纠删池之外,还可设置普通数据池、副本池等,而这些普通数据池、副本池对应的数据池信息也记录在目标目录对应的目标文件布局结构信息中。因此在确定了目标文件布局结构信息之后,需从中选择类型为纠删池类型的数据池信息来确定目标目录对应的候选纠删池。
基于此,根据目标文件布局结构信息确定目标目录对应的候选纠删池,可以包括:
S1121、从目标文件布局结构信息中获取数据池信息,并根据类型为纠删池类型的数据池信息确定目标目录对应的候选纠删池。
下面基于具体示例完整地介绍上述纠删池选择方法。本方法主要可分为三个部分:1、基于故障检测的纠删池状态快速同步方法;2、分布式文件系统目录文件布局冗余设置方法;3、故障状态下基于EC算法的纠删池动态选择方法。下面将分点进行介绍。
1、本发明基于分布式文件存储系统,提出基于故障检测的纠删池状态快速同步方法。
(1)请参考图2,图2为本发明实施例提供的一种故障状态检测与传递的示意图。对象存储管理设备(mon)根据收到的对象存储设备(osd)状态进行判断,如果某节点的对象存储设备状态异常,则认为当前集群中出现了故障,将超出故障域或数据可靠性降低的纠删池状态都标记为FLAG_DOMAIN_UNDERSIZE(自定义纠删池状态,即故障状态);
(2)存储池状态变化完成后,对象存储管理设备立刻将存储池状态下发给元数据服务模块(MDS),而不是等待元数据服务主动更新或者定时下发存储池状态;
(3)如果异常节点恢复正常,对象存储管理设备检测到该节点所有对象存储设备状态恢复后,取消存储池FLAG_DOMAIN_UNDERSIZE标志,并执行步骤(2)将状态下发给元数据服务模块。
(4)如果故障恢复,对象存储设备状态恢复后,对象存储管理设备可将满足条件(完全满足当前纠删策略的最高可靠性)的数据池状态恢复(去除FLAG_DOMAIN_UNDERSIZE标志)并同步到元数据服务模块。
2、本发明提出一种分布式文件系统目录文件布局冗余设置方法,包括如下步骤:
(1)请参考图3,图3为本发明实施例提供的一种目录文件布局冗余设置的示意图。在本发明元数据创建过程中,文件对应的数据池继承自其父目录的文件布局结构(Layout),如果父目录不存在自己的文件布局结构,则继续查找其父目录的父目录,以此类推,继承使用文件某一上级目录文件布局中的数据池;
(2)在本发明中,对于同一批对象存储设备(可以是集群中的不同节点的对象存储设备),在集群部署时,即可设置多个不同纠删策略的纠删数据池A1…An(根据使用对象存储设备节点的分布,纠删数据池最高纠删策略为k+m,则可在这些对象存储设备上继续创建纠删策略分别为(k-2)+m,…,(k-n)+m的多个数据池,其中k-n>4);
(3)在本发明中,目录所属的文件布局中可同时设置多个数据池,将步骤(2)中创建的同一批纠删数据池设置到同一个目录的文件布局中;
(4)同一个目录不仅可以设置基于同一批对象存储设备的纠删数据池组A1…An,还可以设置来自不同批对象存储设备的多个纠删池组(A1…An,B1…Bn,…)。
3、本发明提出了一种故障状态下基于EC算法的纠删池动态选择方法,包括如下步骤:
(1)请参考图4,图4为本发明实施例提供的一种基于EC算法的纠删池动态选择方法的示意图。给定一个目录D,根据步骤2中所述,在其文件布局结构中设置多个纠删数据池(所设置的纠删数据池可以属于不同osd);
(2)当集群中出现故障时,根据步骤1中所述,mon获取到对应的故障信息后,将对应纠删池组(比如A1…An)符合条件的纠删池状态标记为FLAG_DOMAIN_UNDERSIZE,并将对应纠删池状态变化同步到MDS,并更新目录D的文件布局结构纠删数据池状态数据;
(3)在目录D下创建文件元数据时,由下向上遍历目录D及其各级父目录,查找第一个可用的目录文件布局结构集合;
(4)遍历步骤(3)中得到的目录文件布局结构,获取最高可用的纠删池k值es_k,方法如下:
a. es_k 初始化为1,遍历得到的目录文件布局结构中的纠删池数据;
b. 如果数据池为纠删池,且数据池状态不是写满状态,且数据池状态不是FLAG_DOMAIN_UNDERSIZE,且当前数据池k值(pool.k)大于es_k,则将es_k值更新为当前数据池的k值,否则进入步骤c;
c. 继续遍历目录文件布局结构中的纠删池数据,如果遍历完成则退出遍历,否则执行步骤b。
(5)再次遍历(3)中得到的目录文件布局结构,执行如下步骤获取到最终使用的数据池:
a. 初始化三个数据池集合,分别为状态正常的可用数据池集合active_pool及状态非正常但仍可执行文件写入的数据池集合peering_pool ,低k值数据池集合low_k_pool,遍历得到的目录文件布局结构中的纠删池数据,执行如下步骤;
b. 如果当前数据池状态为写满(不可继续写入),继续遍历其他数据池;
c. 如果当前数据池为纠删池,且其k值大于步骤(4)中得到的最大可用k值(es_k),继续遍历其他数据池(此时k值大于 es_k的数据池的数据可靠性不足),否则进入步骤d;
d. 如果当前数据池为纠删池,且其k值小于步骤4)中得到的最大可用k值(es_k),则将其放入集合low_k_pool(备用集合,相同状态下优先使用k值大的纠删数据池);
e. 如果当前数据池为纠删池,且其等于步骤4)中得到的最大可用k值(es_k),且数据池状态无其他异常,则放入active_pool,否则如果当前数据池为纠删池,且其等于步骤(4)中得到的最大可用k值(es_k),但数据池状态有其他异常状态(仍可写入数据),则放入peering_pool;
f. 如果active_pool中存在数据,进入步骤g,否则进入步骤h;
g. 获取集合中剩余容量最大的数据池作为最终选择的数据池,数据池选择完成;
h. 如果low_k_pool中存在数据,进入步骤g,否则进入步骤i;
i. 如果peering_pool中存在数据,进入步骤g,否则,选用集群默认数据池,数据池选择完成。
下面对本发明实施例提供的纠删池选择装置、电子设备及计算机可读存储介质进行介绍,下文描述的纠删池选择装置、电子设备及计算机可读存储介质与上文描述的纠删池选择方法可相互对应参照。
请参考图5,图5为本发明实施例所提供的一种纠删池选择装置的结构框图,该装置可以包括:
候选纠删池确定模块501,用于当接收到待存储的文件时,确定文件对应的目标目录,并确定目标目录在存储系统中对应的多个候选纠删池;各候选纠删池对应的纠删等级中存在至少两种不同的纠删等级;
目标纠删池确定模块502,用于确定各候选纠删池对应的故障状态,并根据故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在故障状态为未故障的候选纠删池中选择目标数据池;
写入模块503,用于将文件写入目标数据池。
可选地,候选纠删池确定模块501,可以包括:
候选纠删池确定子模块,用于确定目标目录对应的目标文件布局结构信息,并根据目标文件布局结构信息确定目标目录对应的候选纠删池。
可选地,候选纠删池确定子模块,可以包括:
数据池信息获取单元,用于从目标文件布局结构信息中获取数据池信息,并根据类型为纠删池类型的数据池信息确定目标目录对应的候选纠删池。
可选地,候选纠删池确定子模块,可以包括:
第一判断单元,用于判断目标目录是否配置有对应的文件布局结构信息;
第一设置单元,用于若是,则将目标目录对应的文件布局结构信息设置为目标文件布局结构信息;
第二判断单元,用于若否,则将目标目录的父目录设置为待处理目录,并判断待处理目录是否配置有对应的文件布局结构信息;
第二设置单元,用于若待处理目录配置有对应的文件布局结构信息,则将待处理目录对应的文件布局结构信息设置为目标文件布局结构信息;
第三设置单元,用于若待处理目录未配置对应的文件布局结构信息,则将待处理目录更新为待处理目录的父目录,并利用更新后的待处理目录执行判断待处理目录是否配置有对应的文件布局结构信息的步骤。
可选地,该装置还可以包括:
纠删池创建模块,用于获取存储系统的多个对象存储设备,并利用多个对象存储设备创建多个纠删池;各纠删池对应的纠删等级中存在至少两种不同的纠删等级;
纠删池配置模块,用于为文件目录列表中的目录配置纠删池。
可选地,各纠删池配置的纠删策略均为k+m纠删策略,纠删池创建模块,可以包括:
纠删池创建子模块,用于基于相同的预设m值和至少两种不同的预设k值,利用多个对象存储设备创建多个纠删池。
可选地,纠删池创建子模块,包括:
设置单元,用于获取预设最大k值及预设m值,并将预设最大k值设置为目标k值;
创建单元,用于基于目标k值及m值,利用多个对象存储设备创建纠删池;
更新单元,用于当确定目标k值大于预设最小值时,对目标k值减二,并基于更新后的目标k值及m值执行利用多个对象存储设备创建纠删池的步骤。
可选地,纠删池配置模块,可以包括:
纠删池组归类子模块,用于将基于同一批对象存储设备创建的纠删池归类至对应的纠删池组;
纠删池配置子模块,用于为目录配置一个或多个纠删池组。
可选地,该装置还可以包括:
第一故障状态更新模块,用于当确定对象存储设备中出现异常的目标对象存储设备时,将存储系统中包含目标对象存储设备的目标纠删池的故障状态更新为故障。
可选地,该装置还可以包括:
第二故障状态更新模块,用于当确定目标对象存储设备恢复正常时,将存储系统中包含目标对象存储设备的目标纠删池的故障状态更新为未故障,以在确定将目标纠删池作为候选纠删池的目录对应的目标数据池的纠删等级和剩余容量劣于目标纠删池时,利用目标纠删池进行目标数据池切换。
可选地,第一故障状态更新模块,可以包括:
故障确定子模块,用于当接收到对象存储管理设备在检测到对象存储设备中出现异常的目标对象存储设备时立刻返回的目标对象存储设备对应的故障信息时,确定对象存储设备中出现异常的目标对象存储设备。
可选地,该装置还可以包括:
元数据记录模块,用于将文件与目标数据池的对应关系记录至文件的元数据中。
可选地,目标纠删池确定模块502,可以包括:
第一分类子模块,用于根据预设等级阈值将故障状态为未故障的候选纠删池划分至第一类别和第二类别;第一类别的候选纠删池的纠删等级大于或等于预设等级阈值,第二类别的候选纠删池的纠删等级小于预设等级阈值;
第一目标数据池设置子模块,用于当属于第一类别的候选纠删池存在时,选取剩余容量最大的第一类别的候选纠删池作为目标数据池;
第二目标数据池设置子模块,用于当属于第一类别的候选纠删池不存在时,选取剩余容量最大的第二类别的候选纠删池作为目标数据池。
可选地,各候选纠删池均配置有k+m纠删策略,且各候选纠删池对应的m值均相等,对应的k值中存在至少两种不同的k值,分类子模块,可以包括:
分类单元,用于根据预设k值阈值将故障状态为未故障的候选纠删池划分至第一类别和第二类别;第一类别的候选纠删池的k值大于或等于预设k值阈值,第二类别的候选纠删池的k值小于预设k值阈值。
可选地,目标纠删池确定模块502,还可以包括:
筛选子模块,用于从候选纠删池中确定剩余容量大于零且故障状态为未故障的目标候选纠删池;
预设阈值确定子模块,用于从目标候选纠删池对应的k值中选取最大值设置为预设k值阈值。
可选地,还可以包括:
第二分类模块,用于当故障状态为未故障的候选纠删池不存在时,将纠删等级大于或等于预设等级阈值的、故障状态为故障的候选纠删池分类至第三类别;
第三目标数据池设置模块,用于当属于第三类别的候选纠删池存在时,选取剩余容量最大的第三类别的候选纠删池作为目标数据池。
可选地,还可以包括:
第四目标数据池设置模块,用于当属于第三类别的候选纠删池不存在时,选取存储系统的默认数据池作为目标数据池。
请参考图6,图6为本发明实施例所提供的一种电子设备的结构框图,本发明实施例还提供一种电子设备,包括:
存储器601,用于存储计算机程序;
处理器602,用于执行计算机程序时实现如上述的纠删池选择方法的步骤。
由于电子设备部分的实施例与纠删池选择方法部分的实施例相互对应,因此电子设备部分的实施例请参见纠删池选择方法部分的实施例的描述,这里不再赘述。
请参考图7,图7为本发明实施例所提供的一种计算机可读存储介质的结构框图,本发明实施例还提供一种计算机可读存储介质710,计算机可读存储介质710上存储有计算机程序711,计算机程序711被处理器执行时实现上述任意实施例的纠删池选择方法的步骤。
由于计算机可读存储介质部分的实施例与纠删池选择方法部分的实施例相互对应,因此存储介质部分的实施例请参见纠删池选择方法部分的实施例的描述,这里不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种纠删池选择方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (20)
1.一种纠删池选择方法,其特征在于,包括:
当接收到待存储的文件时,确定所述文件对应的目标目录,并确定所述目标目录在存储系统中对应的多个候选纠删池;各所述候选纠删池对应的纠删等级中存在至少两种不同的纠删等级;
确定各所述候选纠删池对应的故障状态,并根据所述故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在所述故障状态为未故障的候选纠删池中选择目标数据池;
将所述文件写入所述目标数据池。
2.根据权利要求1所述的纠删池选择方法,其特征在于,所述确定所述目标目录在存储系统中对应的多个候选纠删池,包括:
确定所述目标目录对应的目标文件布局结构信息,并根据所述目标文件布局结构信息确定所述目标目录对应的候选纠删池。
3.根据权利要求2所述的纠删池选择方法,其特征在于,所述根据所述目标文件布局结构信息确定所述目标目录对应的候选纠删池,包括:
从所述目标文件布局结构信息中获取数据池信息,并根据类型为纠删池类型的数据池信息确定所述目标目录对应的候选纠删池。
4.根据权利要求2所述的纠删池选择方法,其特征在于,所述确定所述目标目录对应的目标文件布局结构信息,包括:
判断所述目标目录是否配置有对应的文件布局结构信息;
若是,则将所述目标目录对应的文件布局结构信息设置为所述目标文件布局结构信息;
若否,则将所述目标目录的父目录设置为待处理目录,并判断所述待处理目录是否配置有对应的文件布局结构信息;
若所述待处理目录配置有对应的文件布局结构信息,则将所述待处理目录对应的文件布局结构信息设置为所述目标文件布局结构信息;
若所述待处理目录未配置对应的文件布局结构信息,则将所述待处理目录更新为所述待处理目录的父目录,并利用更新后的待处理目录执行所述判断所述待处理目录是否配置有对应的文件布局结构信息的步骤。
5.根据权利要求1所述的纠删池选择方法,其特征在于,在接收待存储的文件之前,还包括:
获取所述存储系统的多个对象存储设备,并利用所述多个对象存储设备创建多个纠删池;各所述纠删池对应的纠删等级中存在至少两种不同的纠删等级;
为文件目录列表中的目录配置所述纠删池。
6.根据权利要求5所述的纠删池选择方法,其特征在于,各所述纠删池配置的纠删策略均为k+m纠删策略,所述利用所述多个对象存储设备创建多个纠删池,包括:
基于相同的预设m值和至少两种不同的预设k值,利用所述多个对象存储设备创建所述多个纠删池。
7.根据权利要求6所述的纠删池选择方法,其特征在于,所述基于相同的预设m值和至少两种不同的预设k值,所述利用所述多个对象存储设备创建所述多个纠删池,包括:
获取预设最大k值及所述预设m值,并将所述预设最大k值设置为目标k值;
基于所述目标k值及所述m值,利用所述多个对象存储设备创建所述纠删池;
当确定所述目标k值大于预设最小值时,对目标k值减二,并基于更新后的目标k值及所述m值执行所述利用所述多个对象存储设备创建所述纠删池的步骤。
8.根据权利要求5所述的纠删池选择方法,其特征在于,所述为文件目录列表中的目录配置所述纠删池,包括:
将基于同一批对象存储设备创建的纠删池归类至对应的纠删池组;
为所述目录配置一个或多个所述纠删池组。
9.根据权利要求5所述的纠删池选择方法,其特征在于,在为文件目录列表中的目录配置所述纠删池之后,还包括:
当确定所述对象存储设备中出现异常的目标对象存储设备时,将所述存储系统中包含所述目标对象存储设备的目标纠删池的故障状态更新为故障。
10.根据权利要求9所述的纠删池选择方法,其特征在于,在确定所述对象存储设备中出现异常的目标对象存储设备之后,还包括:
当确定所述目标对象存储设备恢复正常时,将所述存储系统中包含所述目标对象存储设备的目标纠删池的故障状态更新为未故障,以在确定将所述目标纠删池作为候选纠删池的目录对应的目标数据池的纠删等级和剩余容量劣于所述目标纠删池时,利用所述目标纠删池进行目标数据池切换。
11.根据权利要求9所述的纠删池选择方法,其特征在于,所述确定所述对象存储设备中出现异常的目标对象存储设备,包括:
当接收到对象存储管理设备在检测到所述对象存储设备中出现异常的目标对象存储设备时立刻返回的所述目标对象存储设备对应的故障信息时,确定所述对象存储设备中出现异常的目标对象存储设备。
12.根据权利要求1所述的纠删池选择方法,其特征在于,在将所述文件写入所述目标数据池之后,还包括:
将所述文件与所述目标数据池的对应关系记录至所述文件的元数据中。
13.根据权利要求1至12任一项所述的纠删池选择方法,其特征在于,所述根据所述故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在所述故障状态为未故障的候选纠删池中选择目标数据池,包括:
根据预设等级阈值将所述故障状态为未故障的候选纠删池划分至第一类别和第二类别;第一类别的候选纠删池的纠删等级大于或等于所述预设等级阈值,第二类别的候选纠删池的纠删等级小于所述预设等级阈值;
当属于所述第一类别的候选纠删池存在时,选取剩余容量最大的第一类别的候选纠删池作为所述目标数据池;
当属于所述第一类别的候选纠删池不存在时,选取剩余容量最大的第二类别的候选纠删池作为所述目标数据池。
14.根据权利要求13所述的纠删池选择方法,其特征在于,各所述候选纠删池均配置有k+m纠删策略,且各所述候选纠删池对应的m值均相等,对应的k值中存在至少两种不同的k值,所述根据预设等级阈值将所述故障状态为未故障的候选纠删池划分至第一类别和第二类别,包括:
根据预设k值阈值将所述故障状态为未故障的候选纠删池划分至第一类别和第二类别;所述第一类别的候选纠删池的k值大于或等于所述预设k值阈值,所述第二类别的候选纠删池的k值小于所述预设k值阈值。
15.根据权利要求14所述的纠删池选择方法,其特征在于,在根据预设k值阈值将所述故障状态为未故障的候选纠删池划分至第一类别和第二类别之前,还包括:
从所述候选纠删池中确定所述剩余容量大于零且所述故障状态为未故障的目标候选纠删池;
从所述目标候选纠删池对应的k值中选取最大值设置为所述预设k值阈值。
16.根据权利要求13所述的纠删池选择方法,其特征在于,还包括:
当所述故障状态为未故障的候选纠删池不存在时,将纠删等级大于或等于所述预设等级阈值的、故障状态为故障的候选纠删池分类至第三类别;
当属于第三类别的候选纠删池存在时,选取剩余容量最大的第三类别的候选纠删池作为所述目标数据池。
17.根据权利要求16所述的纠删池选择方法,其特征在于,还包括:
当属于所述第三类别的候选纠删池不存在时,选取所述存储系统的默认数据池作为所述目标数据池。
18.一种纠删池选择装置,其特征在于,包括:
候选纠删池确定模块,用于当接收到待存储的文件时,确定所述文件对应的目标目录,并确定所述目标目录在存储系统中对应的多个候选纠删池;各所述候选纠删池对应的纠删等级中存在至少两种不同的纠删等级;
目标纠删池确定模块,用于确定各所述候选纠删池对应的故障状态,并根据所述故障状态为未故障的候选纠删池对应的纠删等级及剩余容量,在所述故障状态为未故障的候选纠删池中选择目标数据池;
写入模块,用于将所述文件写入所述目标数据池。
19.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至17任一项所述的纠删池选择方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至17任一项所述的纠删池选择方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310214137.6A CN115934001B (zh) | 2023-03-08 | 2023-03-08 | 一种纠删池选择方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310214137.6A CN115934001B (zh) | 2023-03-08 | 2023-03-08 | 一种纠删池选择方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115934001A CN115934001A (zh) | 2023-04-07 |
CN115934001B true CN115934001B (zh) | 2023-05-12 |
Family
ID=85821995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310214137.6A Active CN115934001B (zh) | 2023-03-08 | 2023-03-08 | 一种纠删池选择方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934001B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404561A (zh) * | 2015-11-19 | 2016-03-16 | 浙江宇视科技有限公司 | 一种分布式存储的纠删码实现方法及装置 |
CN108196978A (zh) * | 2017-12-22 | 2018-06-22 | 新华三技术有限公司 | 数据存储方法、装置、数据存储系统及可读存储介质 |
CN110531934A (zh) * | 2019-08-23 | 2019-12-03 | 北京浪潮数据技术有限公司 | 基于分布式系统的数据存储方法和装置 |
CN111124282A (zh) * | 2019-11-29 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 一种对象存储系统中的存储方法、存储装置及存储设备 |
WO2021109589A1 (zh) * | 2019-12-06 | 2021-06-10 | 浪潮电子信息产业股份有限公司 | 一种分布式存储系统归置组成员的选择方法、装置及介质 |
WO2021120777A1 (zh) * | 2020-08-06 | 2021-06-24 | 平安科技(深圳)有限公司 | 一种基于 Ceph 的 OSD 阻塞检测方法、系统、终端及存储介质 |
CN114328548A (zh) * | 2021-12-10 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 双存储池数据淘汰速度控制方法、系统、终端及存储介质 |
CN114443332A (zh) * | 2021-12-24 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种存储池的检测方法、装置、电子设备及存储介质 |
CN115437581A (zh) * | 2022-11-08 | 2022-12-06 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN115729477A (zh) * | 2023-01-09 | 2023-03-03 | 苏州浪潮智能科技有限公司 | 分布式存储io路径数据写入、读取方法、装置和设备 |
-
2023
- 2023-03-08 CN CN202310214137.6A patent/CN115934001B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404561A (zh) * | 2015-11-19 | 2016-03-16 | 浙江宇视科技有限公司 | 一种分布式存储的纠删码实现方法及装置 |
CN108196978A (zh) * | 2017-12-22 | 2018-06-22 | 新华三技术有限公司 | 数据存储方法、装置、数据存储系统及可读存储介质 |
CN110531934A (zh) * | 2019-08-23 | 2019-12-03 | 北京浪潮数据技术有限公司 | 基于分布式系统的数据存储方法和装置 |
CN111124282A (zh) * | 2019-11-29 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 一种对象存储系统中的存储方法、存储装置及存储设备 |
WO2021109589A1 (zh) * | 2019-12-06 | 2021-06-10 | 浪潮电子信息产业股份有限公司 | 一种分布式存储系统归置组成员的选择方法、装置及介质 |
WO2021120777A1 (zh) * | 2020-08-06 | 2021-06-24 | 平安科技(深圳)有限公司 | 一种基于 Ceph 的 OSD 阻塞检测方法、系统、终端及存储介质 |
CN114328548A (zh) * | 2021-12-10 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 双存储池数据淘汰速度控制方法、系统、终端及存储介质 |
CN114443332A (zh) * | 2021-12-24 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种存储池的检测方法、装置、电子设备及存储介质 |
CN115437581A (zh) * | 2022-11-08 | 2022-12-06 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN115729477A (zh) * | 2023-01-09 | 2023-03-03 | 苏州浪潮智能科技有限公司 | 分布式存储io路径数据写入、读取方法、装置和设备 |
Non-Patent Citations (2)
Title |
---|
"存储系统可靠性预测综述";李静;《计算机科学与探索》;341-354 * |
基于Ceph集群的能耗管理策略研究;彭丽苹;吕晓丹;蒋朝惠;;计算机工程与应用(10);71-77+139 * |
Also Published As
Publication number | Publication date |
---|---|
CN115934001A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108235751B (zh) | 识别对象存储设备亚健康的方法、装置和数据存储系统 | |
US9773015B2 (en) | Dynamically varying the number of database replicas | |
US9009524B2 (en) | Prioritizing recovery in a storage system implementing raid | |
CN110445822B (zh) | 一种对象存储方法及装置 | |
CN101763321B (zh) | 数据容灾的方法、装置及系统 | |
CN111857592A (zh) | 基于对象存储系统的数据存储方法及装置、电子设备 | |
CN111488127B (zh) | 基于磁盘簇的数据并行存储方法、装置以及数据读取方法 | |
CN113625945A (zh) | 分布式存储的慢盘处理方法、系统、终端及存储介质 | |
CN107085546A (zh) | 基于故障域技术的数据管理方法和装置 | |
KR20170045928A (ko) | 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치 | |
CN105354102B (zh) | 一种文件系统维护和修复的方法和装置 | |
US7992072B2 (en) | Management of redundancy in data arrays | |
CN109117292B (zh) | 一种集群存储的方法和装置及集群存储系统 | |
CN115934001B (zh) | 一种纠删池选择方法、装置、电子设备及存储介质 | |
CN108121497B (zh) | 存储方法以及存储系统 | |
CN111045853A (zh) | 一种提高纠删码恢复速度的方法、装置及后台服务器 | |
CN117931512A (zh) | 基于云存储的自适应容错方法、装置、设备以及存储介质 | |
CN117851514A (zh) | 一种跨多个Hive集群实现数据和任务容灾方法及系统 | |
CN115550368B (zh) | 一种元数据上报方法、装置、设备及存储介质 | |
CN116521482A (zh) | 一种固态硬盘寿命到期处理方法、装置、设备及介质 | |
CN115686368A (zh) | 区块链网络的节点的存储扩容的方法、系统、装置和介质 | |
CN107154960B (zh) | 用于确定分布式存储系统的服务可用性信息的方法与设备 | |
CN112231142B (zh) | 系统备份恢复方法、装置、计算机设备和存储介质 | |
WO2014054173A1 (ja) | 分散データ管理システム及びプログラム | |
CN110908606B (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 |