专利名称:数据块副本数量调整方法及分布式文件系统的制作方法
技术领域:
本发明涉及一种数据块副本数量的调整技术,尤其涉及分布式文件系统 中的数据块副本数量的调整方法及应用该方法的分布式文件系统,属于数据 通信领域。
背景技术:
分布式文件系统是一种基于廉价计算机节点进行本地存储构建的分布 式存储系统。它通过将不同服务器上的共享文件夹组织在一起,构建成一 个目录树,使用户只需访问一个共享的根目录即可访问分布在网络上的文 件或文件夹,而不必知道这些文件的实际物理位置。与传统的;兹盘阵列和
存域网(Storage Area Network,简称SAN)存储系统相比,有存储性价 比高、可扩展性强等优点。
现有的分布式文件系统还可以被互联网业务提供商,如Google、 Yahoo 等,作为数据处理平台。如图1所示,现有的分布式文件系统通常由元数据 服务器节点和多个数据块节点组成。其中,元数据服务器节点用于保存各 个文件的数据分块情况、各个数据块所在的数据块节点的名称,以及每个 数据块节点上包含的数据块的信息等;数据块节点用于保存实际的数据块, 通常每个数据块大小为64MB或128MB。当客户端软件需要对上述分布式文件 系统进行数据存取访问时,首先通过元数据服务器节点获取或建立文件的 数据块的位置;然后直接与相应数据块所在的数据块节点进行通信,进行 读写数据块等操作。
现有的分布式文件系统一般采用普通的廉价计算机节点作为硬件平台,由于普通的计算机节点可靠性不高,为了提高系统可靠性和数据可用 性,分布式文件系统通常采用固定数量的多副本方式保存数据块,例如对 于同一个数据块,可以在不同的数据块节点保存3个副本。元数据服务器节 点通过心跳监控各数据块节点的状态,保证系统中各数据块总是具有固定 的副本数,以便在某个计算机节点发生宕机时,仍然能够有可用的数据副 本,以保证系统的可靠性。
现有技术的缺陷在于上述分布式文件系统的多副本方式只考虑了数 据的可用性而没有考虑到电信业务中不同数据访问的性能参数的要求不 同。对于不同的数据,其性能参数是随着时间的迁移而变化的。当某些数 据的访问频率升高或响应时间/传输速率下降时,各个数据块所需的聚合 带宽增加。然而,由于现有分布式文件系统中对各个数据块设定的副本数 都是固定的,因此难以满足高性能需要,增加了相应数据块的响应时间, 影响了系统应用性能的提高。
发明内容
本发明要解决的问题是采用固定副本数量的分布式文件系统,无法根
据数据块的性能参数对副本数量进行调整,从而影响系统性能的提高。
为了解决上述问题,本发明的 一 个实施例是提供了 一种数据块副本数
量调整方法,包括
对数据块节点中保存的数据块副本的性能参数进行统计并得到统计结果; 元数据服务器节点将所述统计结果进行求和汇总,得到针对一个数据块
的数据块副本的实际性能参数;
根据所述实际性能参数与预设的参考性能参数运算得到副本调整数;
根据所述副本调整数对所述数据块副本的副本数量进行调整。
为了解决上述问题,本发明的另 一个实施例是提供了 一种分布式文件系
统,包括元数据服务器节点和数据块节点,其中包括,统计模块,位于所述元数据服务器节点或数据块节点中,用于对存储于
所述数据块节点中的数据块副本的性能参数进行统计; 所述数据块节点包括 存储模块,用于保存数据块副本;
调整模块,用于根据来自于元数据服务器节点的副本调整指令,在存储 模块中添加或删除相应的数据块副本; 所述元数据服务器节点包括
汇总模块,用于将所述统计结果进行求和汇总,得到针对一个数据块的 数据块副本的实际性能参数;
运算模块,用于将汇总模块得到的实际性能参数与预设的参考性能参数
进行运算得到副本调整数;
指令模块,用于根据运算模块得到的副本调整数向所述数据块节点发送
副本调整指令。
通过本发明,根据各个数据块副本的性能参数对副本数量进行了相应地 自适应调整,使得响应时间长或访问频率高或传输速率慢的数据块具有更多 的数据块副本,以提高用户访问这些数据块副本的聚合带宽;并且也使得响 应时间短,或访问频率低或传输速率快的数据块具有较少的数据块副本,以 便将存储空间和输入输出带宽留给其他数据块副本。从而在保证数据块副本 的可用性及可靠性的同时,提高了系统资源利用的合理性和利用效率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为现有的分布式文件系统结构示意图2为本发明方法实施例所述数据块副本数量调整方法的流程图3为本发明系统实施例所述分布式文件系统的结构示意图4为本发明系统实施例所述元数据服务器节点的改进结构示意图。
具体实施例方式
本发明所述方法实施例
本实施例提供了一种分布式文件系统数据块副本数量调整方法,如图2 所示,包括
步骤101,对数据块节点中保存的数据块副本的性能参数进行统计。 具体地,数据块节点可以每隔一段时间就对本数据块节点中的各个数据 块副本的性能参数进行一次统计,并定时将统计结果上报给元数据服务器节 点。其中,统计结果中包含有每个数据块副本的性能参数,该性能参数可以 包括该数据块副本的访问频率、响应时间、或传输速率,或三者的任意参数 组合等。具体地,所述性能参数可以表示为P = f(F, L, T,…)。其中,P 表示性能参数,F表示访问频率,T表示响应时间,L表示传输速率,f表示 参数组合关系式。
此处需要特别指出的是,如果被统计的性能参数仅包括数据块副本的访 问频率等由元数据服务器节点可以直接得到的性能参数,则在这种情况下, 不通过数据块节点而仅由元数据服务器节点直接对这种性能参数进行统计也 是可以的。
步骤102,元数据服务器节点对所述统计结果进行求和汇总,得到针对一 个数据块的数据块副本的实际性能参数。
具体地,每个数据块节点中通常都保存有不同数据块的数据块副本,经 步骤101中的数据块节点进行统计后,得到该数据块节点中保存的所有数据 块副本的性能参数。所有这些数据块副本可能分别属于不同数据块的副本, 因此需要由元数据服务器节点进行求和汇总,即将分别保存于不同数据块节 点中的针对同 一个数据块的不同数据块副本的性能参数进行求和,并汇总为 一个实际性能参数,该实际性能参数是指针对一个数据块的数据块副本的实 际性能参数,如数据块副本的访问频率,响应时间,或传输速率等参数。另外,为了防止由于实际性能参数变化过快而造成的副本数量的调整过 于频繁,因此,可以对得到的实际性能参数进行平滑处理。具体地,可以在 得到实际性能参数之后,根据公式尸_="/> + (1-")/^进行平滑处理。其中,尸, 表示经平滑处理后的实际性能参数,《表示平滑因子,i^表示上一个统计周 期经平滑处理后的实际性能参数,P表示未经处理的统计到的实际性能参数。
除此之外,在进行平滑处理时,还可以先对统计得到的访问频率、响应
时间和传输速率分别进行平滑处理;然后再对统计结果进行求和汇总,得到 实际性能参数。具体地,对访问频率进行平滑处理时,可以根据公式 F^-"F + (l-a)尸。w进行,其中,i^表示经平滑处理后的访问频率,a表示平 滑因子,/^表示上一个统计周期经平滑处理后的访问频率,F表示未经平滑 处理的统计到的访问频率。对响应时间进行平滑处理时,可以根据公式 7^="7>(1-")7^进行,其中,7^表示经平滑处理后的响应时间,《表示平滑
因子,r^表示上一个统计周期经平滑处理后的响应时间,r表示未经平滑处
理的统计到的响应时间。对传输速率进行平滑处理时,可以根据公式
丄_="丄+ (1-")丄。w进行,其中,丄^表示经平滑处理后的传输速率,"表示平
滑因子,4w表示上一个统计周期经平滑处理后的传输速率,丄表示未经平滑
处理的统计到的传输速率。
经平滑处理后,减小了实际性能参数的变化程度,从而避免了当发生大 量的突发访问时,副本数量的调整过于频繁的问题。
步骤103,根据上述实际性能参数与预设的参考性能参数进行运算得到副
本调整数。
具体地,副本调整数可以采用以下策略公式中的任意一个进行运算得到
<formula>formula see original document page 9</formula>i 印=minW吼鹏,「/^/々》,或
其中,Rep表示运算得到的副本调整数;乙表示实际性能参数;P^表示参考 性能参数,可以根据系统能够提供的聚合带宽等因素进行设置;Rep,表示最 大副本调整数,可以根据数据块节点的存储容量等因素进行设置;Rep^表示 最小副本调整数,可以根据系统的可靠性要求进行设置,例如,可以令一个 数据块的副本数量至少为3个,运算符L叫表示向下取整,运算符「"表示向上 取整。
步骤104,根据副本调整数对数据块副本的副本数量进行调整。具体地, 可以先将副本调整数与数据块副本的原副本数进行比较,当副本调整数大于 原副本数时,则执行步骤lll;否则如果小于原副本数,则执行步骤121。此 处需要说明的是,如果副本调整数等于原副本数,则说明不需要对副本数量 进行调整,对此不再赘述。
步骤lll,在数据块节点中添加数据块副本。
具体地,可以先根据副本调整数与原副本数的差值选择相应数量的数据 块节点,然后在每个数据块节点中添加一个数据块副本。其中,对数据块节 点进行选择时,可以选择相应数量的未保存有所述数据块副本的数据块节点, 这是为了保证在每个数据块节点中,针对一个数据块仅保存一个数据块副本。 以避免当该数据块节点发生宕机时,对副本数量造成很大影响。
另外,优选地,由于复制数据块副本的过程也需要占用一定的系统资源, 为了防止统计过程中的突发访问引起的系统抖动,在添加数据块副本时,可 以在每个统计周期内只选择一个未保存有所述数据块副本的数据块节点,并 在该数据块节点中只添加一个数据块副本。
步骤121,当副本调整数小于原副本数时,根据原副本数与副本调整数的 差值,删除数据块副本。具体地,在删除数据块副本时,可以先查找具有最小访问频率或最高空 间使用率或最低处理性能或最高带宽占用率的数据块节点,并删除该数据块 节点中的相应数据块副本。由于删除数据块副本的过程也需要占用 一定的系 统资源,为了防止统计过程中的突发访问引起的系统抖动,在删除数据块副 本时,最好在每个统计周期内只删除一个数据块副本。其中,统计周期是指 每相邻两次对数据块副本的性能参数进行统计的时间间隔。具体地,如果查 找到的所述数据块节点为多个时,只将其中一个数据块节点中的相应一个数 据块副本删除。
如果不考虑突发访问的因素,也可以根据差值删除相应数量的数据块副 本。具体地,可以采用如上所述方法,再次查找另一凄t据块节点,并删除该 数据块节点中的相应数据块副本,依此类推,使得数据块副本的副本数量与 副本调整数相符合。
通过本实施例所述方法,根据各个数据块副本的性能参数对副本数量进 行了相应地自适应调整,使得响应时间长或访问频率高或传输速率慢的数据
块具有更多的数据块副本,以提高用户访问这些数据块副本的聚合带宽;并 且也使得响应时间短,或访问频率低或传输速率快的数据块具有较少的数据 块副本,以便将存储空间和输入输出带宽留给其他数据块副本。从而在保证 数据块副本的可用性及可靠性的同时,提高了系统资源利用的合理性和利用 效率。
本发明所述系统实施例
本实施例提供了一种分布式文件系统,如图3所示包括元数据服务器
节点IO和与其相连的多个数据块节点,由于每个数据块节点的工作原理在本
实施例中相同,因此以下仅以数据块节点20为例进行说明。其中,所述分布
式文件系统中包括有统计模块,用于对数据块节点中的数据块副本的性能参
数进行统计。该统计模块可以位于所述元数据服务器节点10中;或者也可以
位于数据块节点20中。为了便于叙述,以下将位于数据块节点20中的统计模块称为第一统计模块;将位于元数据服务器节点10中的统计模块称为第二 统计模块。
具体地,数据块节点20还包括存储模块21,第一统计模块22和调整 模块23;元数据服务器节点10还包括汇总模块11,运算模块12和指令模 块13。其工作原理如下
数据块节点20的存储模块21中保存有针对不同数据块的数据块副本, 一般地,针对一个数据块保存有一个数据块副本。第一统计模块22定期对存 储模块21中的数据块副本的性能参数进行统计,并将统计结果发送给元数据 服务器节点10;元数据服务器节点10的汇总模块11将来自于数据块节点20 的统计结果进行求和汇总,得到针对一个数据块的数据块副本的实际性能参 数;运算模块12将汇总模块11得到的实际性能参数与预设的参考性能参数 进行运算得到副本调整数,具体用于运算的策略公式可参见本发明方法实施 例所述;指令模块13根据运算模块12得到的副本调整数,向数据块节点20 或其他数据块节点发送副本调整指令。其中,关于对数据块节点的选择等具 体内容,可以参见本发明方法实施例所述,此处不再赘述。
数据块节点20的调整模块23根据来自于元数据服务器节点10的副本调 整指令,在存储模块21中添加或删除相应的数据块副本,使得所有数据块节 点中相应数据块副本的副本数量与副本调整数相符合。
此处需要特别指出的是,如果被统计的性能参数仅包括数据块副本的访 问频率等由元数据服务器节点可以直接得到的性能参数,则在这种情况下, 不通过数据块节点而仅由元数据服务器节点直接对这种性能参数进行统计也 是可以的。例如,由于用户在访问数据块副本时会经由元数据服务器节点, 因此,元数据服务器节点能够不通过数据块节点而直接进行统计,得到统计 结果。在这种情况下,也可以不通过数据块节点的第一统计模块22,而是如 图4所示,在元数据服务器节点10中设置第二统计模块15,用于对所述数据 块节点20中保存的数据块副本的访问频率进行统计,并将统计结果发送给汇总模块ll。
另外,为了防止由于实际性能参数变化过快而造成的副本数量的调整过
于频繁,如图4所示,在元数据服务器节点10中还可以进一步设置一平滑模 块14,用于对汇总模块ll得到的实际性能参数进行平滑处理。具体地,可以 在得到实际性能参数后对其进行平滑处理;或者也可以先对统计结果中的访 问速率、响应时间和传输速率等参数进行平滑处理后再汇总得到实际性能参 数。具体的平滑处理方法可以参见本发明方法实施例所述,此处不再赘述。 经平滑处理后,减小了实际性能参数的变化程度,从而避免了当发生大量的 突发访问时,副本数量的调整过于频繁的问题。
通过本实施例所述系统,根据各个数据块副本的性能参数对副本数量进 行了相应地自适应调整,使得响应时间长或访问频率高或传输速率慢的数据 块具有更多的数据块副本,以提高用户访问这些数据块副本的聚合带宽;并 且也使得响应时间短,或访问频率低或传输速率快的数据块具有较少的数据 块副本,以便将存储空间和输入输出带宽留给其他数据块副本。从而在保证 数据块副本的可用性及可靠性的同时,提高了系统资源利用的合理性和利用 效率。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或 者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技
术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1、一种数据块副本数量调整方法,其特征在于包括对数据块节点中保存的数据块副本的性能参数进行统计并得到统计结果;元数据服务器节点将所述统计结果进行求和汇总,得到针对一个数据块的数据块副本的实际性能参数;根据所述实际性能参数与预设的参考性能参数运算得到副本调整数;根据所述副本调整数对所述数据块副本的副本数量进行调整。
2、 根据权利要求1所述数据块副本数量调整方法,其特征在于对所述性 能参数进行统计包括由所述数据块节点对所述性能参数进行统计,并将所 述统计结果发送给所述元数据服务器节点;或者由所述元数据服务器对所述 性能参数进行统计。
3、 根据权利要求1所述数据块副本数量调整方法,其特征在于根据所述 实际性能参数与所述参考性能参数运算得到副本调整数包括根据策略公式i 印^min(i 印纖,max(i ep柚,L尸匿/《ef」}},i 印=min(i 印腿,i^^ +L(Prar —尸腿)/々」},= min(i e/Vx,「4/々》,或 鄉^uL(dV々」,运算得到所述副本调整数,其中,Rep表示运算得到的副本调整数;p匿表示实际性能参数;P^表示参考性能参数;R印薩表示最大副本调整数;Rep min表示最小副本调整数。
4、 根据权利要求1所述的数据块副本数量调整方法,其特征在于根据所 述副本调整数对所述数据块副本的副本数量进行调整包括将所述副本调整数与所述数据块副本的原副本数进行比较,当所述副本调整数大于所述原副 本数时,在数据块节点中添加数据块副本。
5、 根据权利要求4所述的数据块副本数量调整方法,其特征在于所述在 数据块节点中添加数据块副本包括根据所述副本调整数与所述原副本数的差值,选择相应数量的未保存有所述数据块副本的数据块节点,在每个所述 数据块节点中添加一个数据块副本。
6、 根据权利要求4所述的数据块副本数量调整方法,其特征在于所述在 数据块节点中添加数据块副本包括选择一个未保存有所述数据块副本的数 据块节点,在该数据块节点中添加一个数据块副本。
7、 根据权利要求1所述的数据块副本数量调整方法,其特征在于根据所 述副本调整数对所述数据块副本的副本数量进行调整包括将所述副本调整 数与所述数据块副本的原副本数进行比较,当所述副本调整数小于所述原副 本数时,删除一个数据块副本,或者根据所述原副本数与所述副本调整数的 差值,删除相应数量的数据块副本。
8、 根据权利要求7所述的数据块副本数量调整方法,其特征在于所述删 除一个数据块副本包括查找具有最小访问频率或最高空间使用率或最低处理性能或最高带宽占 用率的数据块节点,并删除查找到的一个数据块节点中的一个数据块副本。
9、 根据权利要求1所述的数据块副本数量调整方法,其特征在于所述数 据块副本的性能参数包括所述数据块副本的访问频率、响应时间、或传输 速率T,或者三者的任意参数组合。
10、 根据权利要求9所述的数据块副本数量调整方法,其特征在于运算 得到所述实际性能参数之后还包括对所述实际性能参数进行平滑处理。
11、 根据权利要求10所述的数据块副本数量调整方法,其特征在于对 所述实际性能参数进行平滑处理包括根据公式4="尸+ (1-")4,对所述实际性能参数进行平滑处理,其中, P,表示经平滑处理后的实际性能参数,"表示平滑因子,/^表示上一个统计 周期经平滑处理后的实际性能参数,P表示未经处理的统计到的实际性能参数。
12、 根据权利要求9所述的数据块副本数量调整方法,其特征在于对所 述数据块副本的性能参数进行统计之后还包括分别对所述访问频率、响应 时间和传输速率进^f亍平滑处理。
13、 根据权利要求12所述的数据块副本数量调整方法,其特征在于对所述访问频率进行平滑处理包括根据公式F^ = F + (1-a)F。w,对所述访问频 率进行平滑处理,其中,i^表示经平滑处理后的访问频率,"表示平滑因子, F。w表示上一个统计周期经平滑处理后的访问频率,F表示未经平滑处理的统计到的访问频率;或根据公式7_="7 + (1-")r。w,对所述响应时间进行平滑处 理,其中,r^表示经平滑处理后的响应时间,"表示平滑因子,r^表示上一 个统计周期经平滑处理后的响应时间,r表示未经平滑处理的统计到的响应时 间;或根据公式i^-"丄+ (i-")i^,对所述传输速率进行平滑处理,其中,丄 , 表示经平滑处理后的传输速率,"表示平滑因子,丄。,,表示上一个统计周期经平滑处理后的传输速率,z表示未经平滑处理的统计到的传输速率。
14、 一种分布式文件系统,包括元数据服务器节点和数据块节点,其特 征在于包括统计模块,位于所述元数据服务器节点或数据块节点中,用于对存储于 所述数据块节点中的数据块副本的性能参数进行统计; 所述数据块节点包括 存储模块,用于保存数据块副本;调整模块,用于根据来自于元数据服务器节点的副本调整指令,在存储 模块中添加或删除相应的数据块副本; 所述元数据服务器节点包括汇总模块,用于将所述统计结果进行求和汇总,得到针对一个数据块的 数据块副本的实际性能参数;运算模块,用于将汇总模块得到的实际性能参数与预设的参考性能参数进行运算得到副本调整数;指令模块,用于根据运算模块得到的副本调整数向所述数据块节点发送副本调整指令。
15、 根据权利要求14所述的分布式文件系统,其特征在于所述元数据 处理器节点还包括平滑模块,用于对汇总模块得到的实际性能参数进行平 滑处理。
全文摘要
本发明涉及一种数据块副本数量调整方法及分布式文件系统,其中方法包括对数据块节点中保存的数据块副本的性能参数进行统计并得到统计结果;元数据服务器节点将所述统计结果进行求和汇总,得到针对一个数据块的数据块副本的实际性能参数;根据所述实际性能参数与预设的参考性能参数运算得到副本调整数;根据所述副本调整数对所述数据块副本的副本数量进行调整。系统包括元数据服务器节点和数据块节点。通过本发明,根据各个数据块副本的性能参数对副本数量进行了相应地自适应调整,在保证数据块副本的可用性及可靠性的同时,提高了系统资源利用的合理性和利用效率。
文档编号G06F17/30GK101470733SQ20071030471
公开日2009年7月1日 申请日期2007年12月27日 优先权日2007年12月27日
发明者彬 周, 周文辉, 萌 徐, 罗治国 申请人:中国移动通信集团公司