在大规模文件系统中,大多数文件长期不用,少数文件经常使用,就单个文件来说,刚创建之后的一段时间内访问频率最高;随着时间推移,访问频率下降,鉴于不同数据之间存在着显著的访问频率差异,人们提出了分级存储系统,它由具有不同的存储容量、I/O速度、单位价格的多级存储设备构成;按照近期访问情况的不同,将数据存放到合适的存储设备上,目标是在满足存储容量和硬件成本约束的前提下,提供较高的I/O性能。
在分级存储系统中,数据的访问频率和服务质量需求是不断变化的,为了使数据能够与存储设备动态匹配,需要在不同级别的存储设备之间迁移数据,数据迁移的规则通常由数据的访问频率、存储设备的容量和性能等因素确定,这就要求分级存储系统能够检测到数据状态的变化,并进行数据在线迁移,同时,数据位置的移动需要对应用是透明的,数据迁移过程对于应用I/O性能影响不大。
现有的分级存储系统中的数据迁移方法对前台I/O性能影响较大,原因包括数据分级只考虑文件的创建时间、上次访问时间或文件大小等单一因素;数据访问缺失则触发数据升级活动,造成数据迁移量较大;数据降级迁移过程缺乏自动控制。
本文提出了分级存储系统中一种数据自动迁移方法AutoMig,它综合考虑了文件访问历史、文件大小、设备的空间利用情况、文件关联性等因素,对文件进行动态分级,并在数据迁移过程中,根据负载变化自适应地调整迁移速率,在实际系统中的实验表明:与已有方法相比,AutoMig有效缩短了前台I/O响应时间。
1 相关工作
He等人提出了一种基于面向对象文件系统Lustre的分级存储系统,数据从磁带到磁盘的迁移是由访问缺失触发的,缺点是升级的文件过多,SANBoost系统口3使用SSD设备和磁盘构成两级存储系统,它引入一个迁移阈值以减少数据迁移量,只有用户访问达到一定次数后才进行迁移。
有效的数据预取能够降低I/O访问延迟,而错误的预取只会干扰前台I/O负载,已经有一些数据预取算法,如稳固后继预测方法、首次稳固后继、最近最常见预测方法等,它们的缺点是只预测下一个访问,可用于预取的时间间隙很短。
降级迁移算法需要选择迁移哪些文件到慢速设备,现有的降级迁移算法主要包括FIFO,LRU,size—only,space—time和file—aging,space—time算法根据文件大小和文件上次使用间隔的乘积来分级,file-aging算法根据文件上次使用时间、文件大小和以前计算的迁移值来计算当前的迁移值,应用在Web文件缓存中的GreedyDualSize替换算法,根据文件的时效性、大小和预取成本给出文件替换决策。
分级存储系统TH—TS中实现了一种自动的数据迁移方法CuteMig,它的缺点是没有考虑文件访问之间的关联性。
在数据迁移速率控制方面,第1种方式在保证数据迁移期限的前提下,尽量使用磁盘的空闲周期进行数据迁移,第2种方式MS Manners,当检测到非重要进程的前进速度放缓时,进一步降低它的运行速率,第3种方式Aqueduct把存储系统看作一个黑盒子,只测量应用所察觉到的性能,因此无法迅速检测到存储系统上的应用负载的变化,第4种方式是用收益最大化框架来解决数据迁移问题,缺点是需要事先详细掌握系统特性和负载特征,从而使该方法受到一定的实用性限制。
2 数据迁移方法AutoMig
数据自动迁移方法AutoMig由3部分组成:1)数据动态分级策略,数据分级的改变触发数据的迁移;2)关联文件挖掘技术,关联的文件用于自动预取;3)迁移过程中的速率控制,在前台I/O性能影响和数据迁移完成期限之间寻找合理的权衡。
2.1数据动态分级策略
AutoMig中的数据分级评价包括文件升级评价和文件降级评价2部分。
AutoMig根据数据升级的单位成本收益效率来决定是否对文件执行升级操作,文件升级的收益效率用文件升级后单位时间内被访问的数据量来衡量,令AS和AF分别表示文件升级后的文件访问大小和文件访问频率,则文件升级后的性能收益效率为AS×AF,文件升级的成本可以使用文件大小FS来衡量,由此,数据升级的单位成本收益效率(即效用值)计算为util=(AS×AF)/FS,如果一个文件的升级效用值高于升级阈值,则升级该文件。
在给出升级决策时,只有文件大小FS是确定的,AutoMig统计文件历次访问大小的平均值,作为未来访问大小AS的估计值,为了能够在文件访问间隔的预测中体现变化趋势,引入时效性因子(recency factor)概念,预测文件访问间隔的公式为Ik=β×Ik-1+(1-β)×Mk,这里,M为第k次访问间隔的测量值;β为时效性因子,因为0 <β<1,一次测量值对于未来预测值的贡献随着时间而以因子β衰减。
AutoMig降级算法的基本思想是,根据访问情况在LRU队列中维护快速存储设备上的所有文件,一个降级线程每隔一定时间从LRU队列中取出最冷的文件作为降级对象,该降级间隔时间长短与快速存储设备的空间空闲率有关。
AutoMig的数据升级算法兼顾了文件访问历史和文件大小两个指标,既使得文件迁移所需代价相对较小,也保证迁移后得到的文件I/O性能收益较高,降级间隔的确定方式保证了快速存储设备始终有足够的空闲空间,当存储在慢速存储设备上的文件被访问时,计算升级迁移的效用值;当存储在快速设备上的文件被访问时,更新对应LRU队列状态,数据动态分级算法无需定期扫描所有文件以进行文件价值评价,故增加的计算开销不大。
2.2关联文件挖掘技术
为了有效实现文件预取,AutoMig使用数据挖掘技术来有效识别系统中的文件关联性,它把一个文件映射成一个项,把一个访问序列映射成序列数据库中的一个序列,一个频繁子序列表示相关文件经常一起被访问。
一个文件能以各种方式访问,除了打开关闭,还可能以进程形式执行,AutoMig通过记录这些系统调用来构建一个长的访问trace. AutoMig采用简单切割的方法把长trace切成许多短序列,AutoMig把问题转化为挖掘频繁闭合序列问题,采用挖掘算法BIDE,并作了一定程度的改进。
BIDE算法本质是以深度优先的方式,一边构建频繁子树,一边检查闭合性,一边进行剪枝,BIDE算法实现的两个关键任务是:1)闭合性检查;2)搜索空间剪枝,BIDE算法采用了双向扩展模式:向前扩展用于增长前缀模式和前缀模式的闭合性检查;向后扩展用于前缀模式的闭合性检查和搜索空间剪枝,对于当前序列,BIDE向前扫描每个映射序列,找到局部频繁项,对于每个局部频繁项,检查是否可以剪枝,如果不能剪枝则向前扩展当前序列。
在AutoMig实现中,运用逻辑短路原理,对BIDE作了3点优化:
1)闭合性检查时,因为向前扩展检查是容易完成的,故先做向前检查,若“没有向前扩展项”这一命题为假,则无需进行向后检查;
2)在每次进行闭合性检查时,都已经有在半最大段组中搜索不到向后扩展项这一结论,如果该前缀序列的第一实例的最后一项和最后实例的最后一项位置相同,则不必检查最大段就可断定没有向后扩展项;
3)众多最大段组中只要得到一个最大段组中各序列交集非空即可断定向后扩展项存在。
为了把频繁序列转换成关联规则,AutoMig由每个序列生成一些规则,AutoMig规定一个规则右边的项数为1,因为这对于文件预取是足够的,为了限制规则数目,AutoMig约束一个规则左边的项数不超过2。
AutoMig还用可信度参数来衡量规则的可依赖程度,一条规则a一b的可信度可以通过如下公式计算:conf(a-6)=sup(ab)/sup(a),这里,sup(a)和sup(ab)分别表示序列a和序列ab的支持度,当用一条关联规则来预测未来访问时,规则的可信度表示预测的精度,AutoMig使用最小可信度阈值过滤低质量的关联规则,剩下的规则称为强关联规则。
把这些强关联规则直接用于文件预取,存在严重的冗余现象,从而加重了维护和查找的成本,把前件长度为L的规则称为“L_规则”,对于一条2-规则xy-z,AutoMig通过检查是否存在同时满足如下条件的1-规则a-b来判断它是否为冗余规则:1)b=z,即有着相同后件;2)a-x或者a-y,即1-规则的前件与2一规则的前件中某项相同,AutoMig -旦检测到冗余规则,就将其从规则集合中删除,剩下非冗余的强关联规则可以直接用于文件预取。
预取与升级文件相关联的文件可以降低对这些文件的访问延迟,然而,一个普遍担心的是数据预取是否会影响正常数据升级的性能,AutoMig采取两种方法来避免文件预取的性能影响,对于关联的小文件组,在低级设备上集中存放,并采取升级捎带的方式进行预取,对于稍大的关联文件,采取下面介绍的速率控制机制来保证在前台负载较轻时执行数据预取。
2.3 迁移速率控制机制
AutoMig中的迁移速率控制方法,将迁移任务划分成紧急迁移和可控迁移2种,并采用不同的迁移速率控制策略,文件升级等任务比较紧迫,因而采用“尽力而为”的策略;降级任务、数据预取等任务相对不紧迫,可以进行速率控制。
AutoMig的迁移速率控制的核心思想是反馈控制,系统检测当前存储子系统的负载密集程度,相应的调整迁移速率,从而平衡系统性能和迁移效率间的矛盾,图1给出了反馈控制的逻辑示意图,执行器以一定速率执行数据迁移操作,检测器对存储子系统进行采样,并把所得的负载信息W (k)传递给控制器,控制器比对W(k)和性能参照值,并通过控制函数来调整迁移速率,输出新的迁移速率R(k)给执行器,执行器相应地调整数据降级的速率。
图1 反馈控制的逻辑示意图
在分级存储系统中,快速存储设备往往负载较重,而慢速存储设备一般是低负载或者无负载的,所以在速率控制过程中,主要考虑的是快速存储设备所承受的IOPS。
控制器的性能参照值为W,它是快速存储设备所能承受的最大负载,负载总量w由前台I/O请求和迁移I/O请求两部分组成,每个采样周期,控制器得到存储设备的负载参数W(k),首先,控制器计算W(k)与性能参照值之间的差值:E(k)=W-W(k),在得到E(k)之后,通过控制函数计算出新的迁移速率:R(k) =R(k-1)+E(k)。
AutoMig中的迁移速率控制方法将区别迁移需求和反馈控制思想相结合,根据前台I/O负载变化,自适应调整数据迁移速率,使得数据迁移动作本身对于前台I/O性能的影响非常小,同时使得数据迁移任务能够尽快完成。
3 性能测试
本文将数据自动迁移方法AutoMig应用到分级存储系统Tri-Right中,进行了比较全面的性能测试。
3.1分级存储系统原型
如图2所示,Tri-Right采用带外架构,并在文件系统内部实现,它由文件系统客户端、元数据服务器和数据服务器组成,客户端节点向用户提供I/O访问接口,它接收用户的文件访问请求;向元数据服务器读写相关文件的元数据;向数据服务器读写相关文件的内容;并最终把结果返回给用户。
图2 Tri-Right的系统架构
元数据服务器维护所有文件的相关信息,包括文件数据在多个数据服务器上的分布情况等;根据文件访问情况和设备分级信息,给出数据迁移的决策;根据数据服务器的负载情况进行文件迁移的速率控制,数据服务器用来实际存储分片后的文件数据,它处理来自客户端的文件I/0请求;把自身负载情况返回给元数据服务器;并在元数据服务器的指示下执行文件的迁移操作。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:分级存储系统中一种数据自动迁移方法(上)