一种分布式文件系统纠删码缓存装置及其缓存方法

文档序号:10724936阅读:330来源:国知局
一种分布式文件系统纠删码缓存装置及其缓存方法
【专利摘要】本发明涉及一种分布式文件系统的纠删码缓存装置,其特征在于:包括配置模块、创建模块、记录模块、层级关联模块、阀值设置模块、对比模块、切片模块和迁移模块。本发明还涉及前述装置的数据处理方法。本发明提供的分布式文件纠删码缓存装置和方法,其第一层级采用副本存储技术,并以较大切片大小存放现有数据,第二层级采用纠删码存储技术,并以较小切片大小存放现有数据中访问较少的数据,充分兼顾了副本存储和纠删码存储的处理较大数据块的效率差别,在节省存储开销的同时,提高数据存储效率。
【专利说明】
一种分布式文件系统纠删码缓存装置及其缓存方法
技术领域
[0001] 本发明涉及一种分布式文件系统的纠删码缓存装置,具体是一种合理处理热、冷 数据,节省存储开销且提高存储层效率的分布式文件系统的纠删码缓存装置,本发明还涉 及上述装置的文件处理方法。
【背景技术】
[0002] 随着计算机技术和网络技术的发展,数据正以爆炸式的速度增长,海量数据对存 储系统的处理能力提出了巨大的挑战。为了提高数据处理效率,通常采用的策略是对数据 进行分层处理。
[0003] 现有技术通过在集群文件系统中同时采用副本存储技术和纠删码存储技术进行 存储分层,利用副本技术存放热点数据(访问较多),利用纠删码技术存放冷数据(访问较 少)。但是,在现有技术中,往往采取统一较大数据切块大小来处理副本存储层和纠删码存 储层的数据。其弊端在于纠删码存储层处理较大数据块的能力远远不及副本存储层,当访 问较少的数据块从副本存储层转移到纠删码存储层时,造成纠删码存储层的处理效率低。

【发明内容】

[0004] 本发明要解决的第一个技术问题,是提供一种合理处理热、冷数据,节省存储开销 且提高存储层效率的分布式文件系统的纠删码缓存装置。
[0005] 本发明要解决的第一个技术问题,可以通过以下的技术方案来实现:一种分布式 文件系统的纠删码缓存装置,其特征在于:包括配置模块、创建模块、记录模块、层级关联模 块、阀值设置模块、对比模块、切片模块和迀移模块;其中,
[0006] 1)所述配置模块位于管理节点上,其包括第一配置模块和第二配置模块,其中,
[0007] -第一配置模块,用于设置第一存储池的名称、副本个数和分组规则,并生成第一 存储池配置文件,
[0008] -第二配置模块,用于设置第二存储池的名称、原始数据块个数、校验数据块个数 和分组规则,并生成第二存储池配置文件;
[0009] 2)所述创建模块位于管理节点上,其包括第一创建模块和第二创建模块,其中,
[0010] -第一创建模块,用于读取所述第一存储池配置文件,并根据对应的参数创建第 一存储池,
[0011] 一第二创建模块,用于读取所述第二存储池配置文件,并根据对应的参数创建第 二存储池;
[0012] 3)所述记录模块位于元数据服务节点上,其用于根据第一存储池配置文件和第二 存储池配置文件,将所述第一存储池和第二存储池的参数(或称属性)记录到元数据节点 中,并分配唯一的第一存储池标识和第二存储池标识,所述记录模块还用于记录第一、第二 存储池的层级关联到存储池元数据;
[0013] 4)所述层级关联模块位于管理节点上,其用于从元数据服务节点获取原数据中存 储池类型,并根据所述存储池的类型做关联:定义第一类型的副本存储池为第一层级,定义 第二类型的纠删码存储池为第二层级;
[0014] 5)所述阀值设置模块位于管理节点上,其用于预设第一层级的第一存储池的数据 向第二层级的第二存储池迀移的迀移阀值;
[0015] 6)所述对比模块位于元数据服务节点上,其用于实时获取第一存储池的空间使用 量,并与所述阀值设置模块预设的数据迀移的阀值对比,当第一存储池的空间使用量达到 所述阀值,则满足数据迀移条件;
[0016] 7)所述切片模块位于数据服务节点上,其用于读取元数据,并在文件进入第一层 级的存储池之前,将文件的数据部分分割成若干较大数据切片,对于满足迀移条件的文件, 在迀移到第二层级的存储池之前,将文件的数据部分分割成若干较小数据切片;
[0017] 8)所述迀移模块位于元数据服务节点上,其用于读取元数据,获得满足数据迀移 条件文件所含数据块的分布,再把所述数据块从当前所在的存储单元中迀移到第二层级存 储池所含的存储单元中。
[0018] 本发明还涉及上述装置的缓存方法,其特征在于:包括以下顺序的步骤:
[0019] S1、第一、第二配置模块分别设置第一、第二存储池的参数,并生成第一、第二存储 池配置文件,其中第一存储池的参数为第一存储池的名称、副本个数和分组规则,第二存储 池的参数为第二存储池的名称、原始数据块个数、校验数据块个数和分组规则;
[0020] S2、第一、第二创建模块依据S1配置的参数在集群中分别创建第一、第二存储池;
[0021] S3、记录模块根据第一、第二存储池的配置文件,将记录第一、第二存储池的参数 (或称属性)记录到元数据节点中,并分配唯一的第一、第二存储池标识;
[0022] S4、层级关联模块从元数据服务节点获取元数据中存储池类型,并对第一、第二存 储池进行关联:定义第一类型的副本存储池为第一层级,定义第二类型的纠删码存储池为 第二层级,记录模块将第一、第二存储池的层级关联记录到存储池元数据中;
[0023] S5、阀值设置模块预设第一层级存储池中的数据向第二层级存储池迀移的迀移阀 值;
[0024] S6、切片模块读取元数据并将写入的文件的数据部分切割成若干较大数据切片, 后存放至第一层级存储池;
[0025] S7、对比模块实时获取第一层级存储池的空间使用量,并与S5中阀值设置模块预 设的迀移阀值进行对比,如达到迀移阀值,切片模块将存放至第一层级存储池的较大数据 切片进一步分割成若干较小数据切片;如未达到迀移阀值,返回至S6;
[0026] S8、迀移模块将S7中切割的较小数据切片迀移至第二层级存储池。
[0027] 本发明提供的分布式文件纠删码缓存装置和方法,其第一层级采用副本存储技 术,并以较大切片大小存放现有数据,第二层级采用纠删码存储技术,并以较小切片大小存 放现有数据中访问较少的数据,充分兼顾了副本存储和纠删码存储的处理较大数据块的效 率差别,在节省存储开销的同时,提高数据存储效率。
[0028] 在上述基础上,本发明所述第一创建模块,用于根据配置文件中包含有副本个数 生成第一存储池的类型为第一类型的副本存储池;所述第二创建模块,用于根据配置文件 中包含有原始数据切块个数和校验数据块个数生成第二存储池的类型为第二类型的纠删 码存储池。
[0029] 本发明所述第一存储池名称用于定义第一存储池的名称,所述第二存储池名称用 于定义第二存储池的名称;本实施例直接在存储池命名上体现出层次,一目了然。
[0030] 本发明所述第一存储池的副本个数用于定义向第一存储池写入文件时、所述第一 存储池对其中的原始数据生成冗余数据的份数;本实施例利用副本容错技术原理,例如预 设副本个数为2,即对于一个原始数据块a,生成一个冗余数据块a',以防止较大的数据切片 在写入第一存储池时丢失。
[0031] 本发明所述第二存储池的原始数据切块个数用于定义第二存储池对其中文件的 数据部分的切块个数以及生成校验数据块的个数;本实施例利用纠删码容错技术原理,例 如数据部分切块个数为3,生成校验数据块个数为1,那么对于文件(块)F,将分割成3个原始 数据块Π ,f2,f3和一个校验数据块cl,以防止较小数据切片数据在写入第二存储池时丢 失。
[0032] 作为本发明的一个实施例,所述第一存储池和第二存储池的分组规则均为按存储 单元分组;其中,所述第一存储池设置的存储单元个数不小于该第一存储池配置的副本个 数;所述第二存储池设置的存储单元个数不小于该第二存储池配置的原始数据块切片个数 和校验数据块个数之和。本实施例的第一存储池的存储单元个数和副本个数的设置确保第 一存储池具有足够的节点存储原始文件(块)和生成的冗余文件均,第二存储池的存储单元 个数、原数据切片个数和校验数据块个数的设置确保第二存储池具有足够的节点存储原始 数据块和校验数据块,实现分布式存储。
[0033] 上述实施例将原始文件A的文件块将存储在不同存储单元(可能是同一节点的), 如果某个节点宕机,而该节点存储了原始文件A的所有数据块,则原始文件A将不能访问,给 实际应用带来不便,因此,本发明提供一个更优选的实施例,所述第一存储池和第二存储池 的分组规则均为按存储节点分组;其中,所述第一存储池设置的存储节点个数不小于该第 一存储池配置的副本个数;所述第二存储池设置的存储节点个数不小于该第二存储池配置 的原始数据块切片个数和校验数据块个数之和。本实施例将文件A的文件块将存储在不同 存储节点,如果某个节点宕机,则文件A仍然可以访问。而且第一存储池的存储节点个数和 副本个数的设置确保第一存储池具有足够的节点存储原始文件(块)和生成的冗余文件均, 第二存储池的存储节点个数、原数据切片个数和校验数据块个数的设置确保第二存储池具 有足够的节点存储原始数据块和校验数据块,实现分布式存储。
[0034] 本发明所述第一创建模块读取所述第一存储池配置文件后,根据对应的参数在集 群中创建第一存储池;所述第二创建模块读取所述第二存储池配置文件后,根据对应的参 数在集群中创建第二存储池。
[0035] 在上述基础上,本发明一个优选实施方式:所述阀值设置模块设置的数据迀移的 阀值包括第一层级存储池最大字节阀值、最近访问时间阀值和最近修改时间阀值;所述第 一层级存储池最大字节阀值用于定义第一层级存储池的数据量达到该阀值时启动数据迀 移;所述最近访问时间阀值用于定义第一层级存储池中的只读文件的最后访问时间早于该 阀值时启动数据迀移;所述最近修改时间阀值用于定义第一层级存储池中的可写文件的最 近修改时间阀值早于该阀值时启动数据迀移。本实施例存放于第一存储池的较大数据切片 首先与第一存储池最大字节阀值比较,以确保集群在没有存储空间之前即能开始迀移,然 后通过可写文件最后访问的时间与最近修改时间阀值或者只读文件最近访问时间与最近 访问时间阀值进行对比以确定将进行迀移的可写文件可只读文件都是较少访问的数据。
[0036] 本发明所述切片模块分割的较大数据切片缺省大小为4MB和/或所述切片模块分 割的较小数据切片缺省大小为4KB;以易于实现内存中的数据对齐,提高访问效率。
【附图说明】
[0037] 图1是本发明的分布式文件系统删码缓存装置的文件处理方法的流程图;
[0038] 图2是本发明的分布式文件系统删码缓存装置按存储节点分组层级示意图;
[0039] 图3为文件A在图1所述层级中迀移前的数据块分布示意图;
[0040] 图4为文件A在图1所述层级中迀移后的数据块分布示意图。
【具体实施方式】 [0041 ] 实施例一
[0042] 本发明的实施例一提供一种分布式文件系统纠删码缓存装置,其包括配置模块、 创建模块、记录模块、层级关联模块、阀值设置模块、对比模块、切片模块和迀移模块;其中,
[0043] 1)配置模块位于管理节点上,其包括第一配置模块和第二配置模块,其中,
[0044] -第一配置模块,用于设置第一存储池的名称、副本个数和分组规则,并生成第一 存储池配置文件,
[0045] -第二配置模块,用于设置第二存储池的名称、原始数据块个数、校验数据块个数 和分组规则,并生成第二存储池配置文件;
[0046] 2)创建模块位于管理节点上,其包括第一创建模块和第二创建模块,其中,
[0047] -第一创建模块,用于读取第一存储池配置文件,并根据对应的参数创建第一存 储池,
[0048] -第二创建模块,用于读取第二存储池配置文件,并根据对应的参数创建第二存 储池;
[0049] 3)记录模块位于元数据服务节点上,其用于根据第一存储池配置文件和第二存储 池配置文件,将第一存储池和第二存储池的参数(或称属性)记录到元数据节点中,并分配 唯一的第一存储池标识和第二存储池标识,记录模块还用于记录第一、第二存储池的层级 关联到存储池元数据;
[0050] 4)层级关联模块位于管理节点上,其用于从元数据服务节点获取原数据中存储池 类型,并根据存储池的类型做关联:定义第一类型的副本存储池为第一层级,定义第二类型 的纠删码存储池为第二层级;
[0051] 5)阀值设置模块位于管理节点上,其用于预设第一层级的第一存储池的数据向第 二层级的第二存储池迀移的迀移阀值;
[0052] 6)对比模块位于元数据服务节点上,其用于实时获取第一存储池的空间使用量, 并与阀值设置模块预设的数据迀移的阀值对比,当第一存储池的空间使用量达到阀值,则 满足数据迀移条件;
[0053] 7)切片模块位于数据服务节点上,其用于读取元数据,并在文件进入第一层级的 存储池之前,将文件的数据部分分割成若干较大数据切片,对于满足迀移条件的文件,在迀 移到第二层级的存储池之前,将文件的数据部分分割成若干较小数据切片;
[0054] 8)迀移模块位于元数据服务节点上,其用于读取元数据,获得满足数据迀移条件 文件所含数据块的分布,再把数据块从当前所在的存储单元中迀移到第二层级存储池所含 的存储单元中。
[0055] 第一创建模块,用于根据配置文件中包含有副本个数生成第一存储池的类型为第 一类型的副本存储池;第二创建模块,用于根据配置文件中包含有原始数据切块个数和校 验数据块个数生成第二存储池的类型为第二类型的纠删码存储池。
[0056] 本发明第一存储池名称用于定义第一存储池的名称,第二存储池名称用于定义第 二存储池的名称。
[0057]本发明第一存储池的副本个数用于定义向第一存储池写入文件时、第一存储池对 其中的原始数据生成冗余数据的份数。
[0058] 本发明第二存储池的原始数据切块个数用于定义第二存储池对其中文件的数据 部分的切块个数以及生成校验数据块的个数。
[0059] 第一存储池和第二存储池的分组规则均为按存储节点分组;其中,第一存储池设 置的存储节点个数不小于该第一存储池配置的副本个数;第二存储池设置的存储节点个数 不小于该第二存储池配置的原始数据块切片个数和校验数据块个数之和。
[0060] 本发明第一创建模块读取第一存储池配置文件后,根据对应的参数在集群中创建 第一存储池;第二创建模块读取第二存储池配置文件后,根据对应的参数在集群中创建第 二存储池。
[0061] 阀值设置模块设置的数据迀移的阀值包括第一层级存储池最大字节阀值、最近访 问时间阀值和最近修改时间阀值;第一层级存储池最大字节阀值用于定义第一层级存储池 的数据量达到该阀值时启动数据迀移;最近访问时间阀值用于定义第一层级存储池中的只 读文件的最后访问时间早于该阀值时启动数据迀移;最近修改时间阀值用于定义第一层级 存储池中的可写文件的最近修改时间阀值早于该阀值时启动数据迀移。
[0062] 本发明切片模块分割的较大数据切片缺省大小为4MB;切片模块分割的较小数据 切片缺省大小为4KB。
[0063] 实施例二
[0064]本发明的实施例二是一种分布式文件系统纠删码文件处理方法,其包括以下顺序 的步骤(如图1所示):
[0065] S1、第一、第二配置模块分别设置第一、第二存储池的参数,并生成第一、第二存储 池配置文件,其中第一存储池的参数为第一存储池的名称、副本个数和分组规则,第二存储 池的参数为第二存储池的名称、原始数据块个数、校验数据块个数和分组规则;
[0066] S2、第一、第二创建模块依据S1配置的参数在集群中分别创建第一、第二存储池;
[0067] S3、记录模块根据第一、第二存储池的配置文件,将记录第一、第二存储池的参数 (或称属性)记录到元数据节点中,并分配唯一的第一、第二存储池标识;
[0068] S4、层级关联模块从元数据服务节点获取元数据中存储池类型,并对第一、第二存 储池进行关联:定义第一类型的副本存储池为第一层级,定义第二类型的纠删码存储池为 第二层级,记录模块将第一、第二存储池的层级关联记录到存储池元数据中;
[0069] S5、阀值设置模块预设第一层级存储池中的数据向第二层级存储池迀移的迀移阀 值;
[0070] S6、切片模块读取元数据并将写入的文件的数据部分切割成若干较大数据切片, 后存放至第一层级存储池;
[0071] S7、对比模块实时获取第一层级存储池的空间使用量,并与S5中阀值设置模块预 设的迀移阀值进行对比,如达到迀移阀值,切片模块将存放至第一层级存储池的较大数据 切片进一步分割成若干较小数据切片;如未达到迀移阀值,返回至S6;
[0072] S8、迀移模块将S7中切割的较小数据切片迀移至第二层级存储池。
[0073] 其中S5的阀值设置模块设置的数据迀移的阀值包括第一层级存储池最大字节阀 值、最近访问时间阀值和最近修改时间阀值;第一层级存储池的数据量达到第一层级存储 池最大字节阀值时启动数据迀移;第一层级存储池中的只读文件的最后访问时间早于最近 访问时间阀值时启动数据迀移;第一层级存储池中的可写文件的最近修改时间阀值早于最 近修改时间阀值时启动数据迀移。
[0074] 本发明的实施例一提供的装置和实施例二提供的处理方法,针对现有技术非热点 数据占用过多存储空间的弊端,本发明在集群文件系统中同时采用副本存储技术和纠删码 存储技术,实现用纠删码存储技术存放现有数据中访问较少的数据,以节省存储开销。
[0075] 本发明实施例1的分布式文件纠删码缓存装置运行实例2的缓存方法的一个具体 处理流程如图2~4所示:
[0076] 通过第一配置模块设置第一存储池名称:P1,
[0077] 通过第一配置模块设置第一存储池的副本个数:2,
[0078]通过第一配置模块设置第一存储池的分组规则:按存储节点分组,
[0079] 通过第一配置模块设置第一存储池的存储节点:Y1,Y2,
[0080] 第一配置模块根据第一存储池名称、副本个数、按存储节点的分组规则和第一存 储池的两个存储节点生成第一存储池配置文件:C1。
[0081] 第一创建模块读取C1,划分Ρ1:Υ1,Υ2上所有的存储单元,记录模块记录存储单元 标识到元数据,
[0082] 第一创建模块读取C1,生成第一类型,记录单元记录第一类型到元数据,
[0083] 第一创建模块生成Ρ1的标识:1,记录单元记录标识到元数据。
[0084] 通过第二配置模块设置第二存储池的名称:Ρ2,
[0085]通过第二配置模块设置第二存储池的原始数据块切片个数:2,
[0086]通过第二配置模块设置第二存储池的校验数据块个数:1,
[0087]通过第二配置模块设置第二存储池的分组规则:按存储节点分组,
[0088] 通过第二配置模块设置第二存储池的存储节点:Υ3,Υ4,Υ5,
[0089] 第二配置模块根据第二存储池的名称、原始数据块切片个数、第二存储池的校验 数据块个数、按存储节点的分组规则和第二存迟迟的三个存储节点生成第二存储池配置文 件:C2。
[0090] 第二创建模块读取C2,划分Ρ2: Υ3,Υ4,Υ5上所有的存储单元,记录模块记录存储单 元标识到元数据,
[0091 ]第二创建模块读取C2,生成第二类型,记录单元记录第二类型到元数据,
[0092] 第二创建模块生成Ρ2的标识:2,记录单元记录标识到元数据。
[0093] 层级关联模块访问元数据,匹配第一存储池标识:1,获取第一存储池类型,
[0094] 层级关联模块访问元数据,匹配第二存储池标识:2,获取第二存储池类型,
[0095] 层级关联模块设置第一存储池 P1为第一层级存储池,
[0096] 层级关联模块设置第二存储池 P2为第二层级存储池,
[0097]关联后,集群文件系统所有数据交换,将先通过第一层级,当条件满足时,再转移 到第二层级,记录模块将层级关联也记录到存储池元数据中。
[0098]通过阀值设置模块设置第一层级存储池最大字节阀值:1,000,OOOBytes,
[0099]通过阀值设置模块设置最近访问时间阀值(只读文件):20150601,
[0100] 通过阀值设置模块设置最近修改时间阀值(可写文件):20150701,
[0101] 装置运行,对比模块获取P1的数据量并与[0026]最大字节阀值对比。
[0102] 客户机写入只读文件A,A= {al,a2,a3,a4},副本A' = {al',a2',a3',a4'},且原始 数据块和副本数据块大小都等于4MB分布如下:
[0103] 对比模块发现P1的数据量超过1,000, OOOBytes,
[0104] 对比模块读取元数据,获取文件A类型为只读,
[0105] 获取文件最后访问时间,假设为20150301,并与[0027]20150601对比,
[0106] 20150301早于20150601,将文件A从P1迀移到P2,步骤如下:
[0107] 迀移模块读取元数据,并通过文件A的标识获取文件A所含所有数据块的分布信 息,此时,数据块存储在P1所含若干存储单元中,
[0108] 迀移模块根据[0036]文件A的数据块的分布信息,通过元数据中的数据块标识删 除文件A的副本数据块:A' = {al',a2',a3',a4'},
[0109] 迀移模块读取元数据,并通过P2的标识2获取P2中所包含的数据单元标识。
[0110] 切片模块将文件A的原始数据块{&1,32,33,34}分割成41^的数据块,如,31 = {all,al2,al3,---,aln},
[0111 ]以al为例,迀移模块将文件A的原始数据块{all ,al2 ,al3,…,aln}迀移到任一不 同的[0038]中P2所包含的数据单元中,
[0112] 对于{&11,&12,&13,'", &111}中的每个数据块,以&11为例,将&11切割成2个2仙的 数据块aall和aall',
[0113] 根据aall和aall '计算出一个2MB的校验数据块ccl。
[0114]以下是文件A迀移前和迀移后存储开销对比:
【主权项】
1. 一种分布式文件系统纠删码缓存装置,其包括配置模块、创建模块、记录模块、层级 关联模块、阀值设置模块、对比模块、切片模块和迀移模块;其中, 1) 配置模块位于管理节点上,其包括第一配置模块和第二配置模块,其中, 一第一配置模块,用于设置第一存储池的名称、副本个数和分组规则,并生成第一存储 池配置文件, 一第二配置模块,用于设置第二存储池的名称、原始数据块个数、校验数据块个数和分 组规则,并生成第二存储池配置文件; 2) 创建模块位于管理节点上,其包括第一创建模块和第二创建模块,其中, 一第一创建模块,用于读取第一存储池配置文件,并根据对应的参数创建第一存储池, 一第二创建模块,用于读取第二存储池配置文件,并根据对应的参数创建第二存储池; 3) 记录模块位于元数据服务节点上,其用于根据第一存储池配置文件和第二存储池配 置文件,将第一存储池和第二存储池的参数记录到元数据节点中,并分配唯一的第一存储 池标识和第二存储池标识,记录模块还用于记录第一、第二存储池的层级关联到存储池元 数据; 4) 层级关联模块位于管理节点上,其用于从元数据服务节点获取原数据中存储池类 型,并根据存储池的类型做关联:定义第一类型的副本存储池为第一层级,定义第二类型的 纠删码存储池为第二层级; 5) 阀值设置模块位于管理节点上,其用于预设第一层级的第一存储池的数据向第二层 级的第二存储池迀移的迀移阀值; 6) 对比模块位于元数据服务节点上,其用于实时获取第一存储池的空间使用量,并与 阀值设置模块预设的数据迀移的阀值对比,当第一存储池的空间使用量达到阀值,则满足 数据迀移条件; 7) 切片模块位于数据服务节点上,其用于读取元数据,并在文件进入第一层级的存储 池之前,将文件的数据部分分割成若干较大数据切片,对于满足迀移条件的文件,在迀移到 第二层级的存储池之前,将文件的数据部分分割成若干较小数据切片; 8) 迀移模块位于元数据服务节点上,其用于读取元数据,获得满足数据迀移条件文件 所含数据块的分布,再把数据块从当前所在的存储单元中迀移到第二层级存储池所含的存 储单元中。2. 根据权利要求1所述的装置,其特征在于:所述第一创建模块,用于根据配置文件中 包含有副本个数生成第一存储池的类型为第一类型的副本存储池;所述第二创建模块,用 于根据配置文件中包含有原始数据切块个数和校验数据块个数生成第二存储池的类型为 第二类型的纠删码存储池。3. 根据权利要求1所述的装置,其特征在于:所述第一存储池的副本个数用于定义向第 一存储池写入文件时、所述第一存储池对其中的原始数据生成冗余数据的份数;所述第二 存储池的原始数据切块个数用于定义第二存储池对其中文件的数据部分的切块个数以及 生成校验数据块的个数。4. 根据权利要求1所述的装置,其特征在于:所述第一存储池和第二存储池的分组规则 均为按存储单元分组;其中,所述第一存储池设置的存储单元个数不小于该第一存储池配 置的副本个数;所述第二存储池设置的存储单元个数不小于该第二存储池配置的原始数据 块切片个数和校验数据块个数之和。5. 根据权利要求1所述的装置,其特征在于:所述第一存储池和第二存储池的分组规则 均为按存储节点分组;其中,所述第一存储池设置的存储节点个数不小于该第一存储池配 置的副本个数;所述第二存储池设置的存储节点个数不小于该第二存储池配置的原始数据 块切片个数和校验数据块个数之和。6. 根据权利要求1所述的装置,其特征在于:所述第一创建模块读取所述第一存储池配 置文件后,根据对应的参数在集群中创建第一存储池;所述第二创建模块读取所述第二存 储池配置文件后,根据对应的参数在集群中创建第二存储池。7. 根据权利要求1所述的装置,其特征在于:所述阀值设置模块设置的数据迀移的阀值 包括第一层级存储池最大字节阀值、最近访问时间阀值和最近修改时间阀值;所述第一层 级存储池最大字节阀值用于定义第一层级存储池的数据量达到该阀值时启动数据迀移;所 述最近访问时间阀值用于定义第一层级存储池中的只读文件的最后访问时间早于该阀值 时启动数据迀移;所述最近修改时间阀值用于定义第一层级存储池中的可写文件的最近修 改时间阀值早于该阀值时启动数据迀移。8. 根据权利要求1所述的装置,其特征在于:所述切片模块分割的较大数据切片缺省大 小为4MB和/或所述切片模块分割的较小数据切片缺省大小为4KB。9. 一种分布式文件系统的纠删码缓存装置的缓存方法,其特征在于:包括以下顺序的 步骤: 51、 第一、第二配置模块分别设置第一、第二存储池的参数,并生成第一、第二存储池配 置文件,其中第一存储池的参数为第一存储池的名称、副本个数和分组规则,第二存储池的 参数为第二存储池的名称、原始数据块个数、校验数据块个数和分组规则; 52、 第一、第二创建模块依据S1配置的参数在集群中分别创建第一、第二存储池; 53、 记录模块根据第一、第二存储池的配置文件,将记录第一、第二存储池的参数(或称 属性)记录到元数据节点中,并分配唯一的第一、第二存储池标识; 54、 层级关联模块从元数据服务节点获取元数据中存储池类型,并对第一、第二存储池 进行关联:定义第一类型的副本存储池为第一层级,定义第二类型的纠删码存储池为第二 层级,记录模块将第一、第二存储池的层级关联记录到存储池元数据中; 55、 阀值设置模块预设第一层级存储池中的数据向第二层级存储池迀移的迀移阀值; 56、 切片模块读取元数据并将写入的文件的数据部分切割成若干较大数据切片,后存 放至第一层级存储池; 57、 对比模块实时获取第一层级存储池的空间使用量,并与S5中阀值设置模块预设的 迀移阀值进行对比,如达到迀移阀值,切片模块将存放至第一层级存储池的较大数据切片 进一步分割成若干较小数据切片;如未达到迀移阀值,返回至S6; 58、 迀移模块将S7中切割的较小数据切片迀移至第二层级存储池。10. 根据权利要求9所述的缓存方法,其特征在于:所述S5阀值设置模块设置的数据迀 移的阀值包括第一层级存储池最大字节阀值、最近访问时间阀值和最近修改时间阀值;所 述第一层级存储池的数据量达到第一层级存储池最大字节阀值时启动数据迀移;所述第一 层级存储池中的只读文件的最后访问时间早于最近访问时间阀值时启动数据迀移;所述第 一层级存储池中的可写文件的最近修改时间阀值早于最近修改时间阀值时启动数据迀移。
【文档编号】G06F17/30GK106095807SQ201610375233
【公开日】2016年11月9日
【申请日】2016年5月31日
【发明人】曹碧舟, 张勤, 李进
【申请人】中广天择传媒股份有限公司, 深圳市中博科创信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1