来源:数字技术与应用杂志 更新时间:2013-08-19
分析了数据迁移时间设计中存在的问题。引入了数学公式来判断存储使用量的变化趋势,由变化趋势、存储系统的传输速率和存储容量来判断迁移时闻,这为迁移时间的设计提供了理论方式。同时开发了数据迁移监控器,结合迁移时间制定了相应的迁移策略。在高性能计算的环境下,搭建了两层存储的测试系统,部署了该迁移策略。实验结果表明,迁移时间的设计能实现分层存储中数据及时迁移,并可有效缓解迁移堵塞、提高存储层的使用率。
0 引言
由于信息数据进入高速增长的时代,在满足存储容量需求的同时,用户需要根据数据的特性选择相应的存储介质进行存储以提高存储系统的性价比。分层存储系统就是将数据存储在不同层次的介质中,并在它们之间进行自动或者手动的数据移动和读写等操作。因此设计一个数据迁移策略来实现数据在各个存储层及时有效的迁移是个关键的问题。
在数据迁移中,迁移时间的确定尤为重要,它必须考虑到使用存储的应用需求以及存储系统本身的特性。例如在数据的容灾备份中,迁移时间可根据数据的安全需求来设计;对一些商业存储系统,迁移时间可根据业务程来设计;而在高性能计算中,由于各个计算任务的规模和复杂度等各不相同,计算和存储过程不明确,迁移时间设计就比较复杂。同时,高性能计算追求较快的存储速度,因此提高高速存储层的利用率也非常重要。
目前国内外对分层存储中数据迁移技术进行了大量的研究,但对迁移时间研究相对较少。文献[13]根据存储容量来设置数据迁移的时问。若将容量设置过高,可能会因为存储层内数据增至过快而导致迁移失败,设置偏低会降低存储的使用率,因此迁移时间的设计需要分析数据的增长趋势和存储系统传输速率对迁移的影响。
1 分层存储和数据迁移
分层存储系统一般包括三部分。第一部分是磁盘池,它包括了多种存储介质的物理磁盘,并可通过这些介质的物理特性进行分层管理。例如由SSD硬盘、SATA硬盘构建的存储系统中,可分为SSD层和SATA层。第二部分是位于中间的存储控制部分,它具有管理数据分布和迁移、实现存储虚拟化等功能。最后部分是提供给不同应用使用的逻辑存储系统,它一般由Volume组成。整个分层存储基本架构如图1所示。
图1 分层存储系统的基本架构
分层存储控制层中的数据迁移实际上是在多层存储内基于策略的自动放置文件的过程。迁移一般过程是:根据策略规则,系统在指定的存储层创建和扩展一些文件;当迁移被触发且执行时,将文件价值满足迁移条件的文件重定位到相应的存储层,实现迁移。其中文件开始迁移的时间称为迁移时间。文件价值指的是文件在整个文件系统中的重要性和活跃度,它决定了数据迁移策略能否有效执行。迁移条件根据实际需求来设定,由迁移条件决定参与辽移的文件。
2 迁移时间的分析与设计
某一层存储的数据迁移时间与存储容量相关,但简单或凭经验去设置一个容量值来确定迁移时间是不合理的,它没有反映存储容量的变化趋势,也没有结合存储设备的特性和应用需求来使用存储,同时可能造成因容量增长过快而无法及时地迁出数据的情况,即迁移堵塞。本文从存储系统的传输速率、存储层使用量和使用量的变化趋势三方面来考虑迁移时间,下面给出它们的描述。存储系统的传输速率。存储系统的传输速率包括读出/写入存储系统的速率和系统内部数据在各存储层迁移的速率。它们受限于文件系统、网络、raid设置、存储系统和存储介质等因素。实际的速率值取各相关因素对应速率中的最小值。
存储使用量。记录存储介质内存放数据的容量大小。它包括存储层的使用量和存储系统的使用量。
存储层使用量增长率。反映存储层的使用量在某个时间段的增长趋势。
如果存储层的使用量在某个时间段按固定的速率增长,称之为线性增长(1inear increase,LI),反之是非线性增长(nonlinear increase,NI)。在非线性增长盼隋况下,如果增长率高于固定的增长率,表明存储层使用量高速增长(SU—per linear increase,SLI),反之表明存储层使用量低速增长(10w linear increase,LLI)。图2显示了LI、SLI和LLI在一段时间内存储层容量的变换。
图2 LI、SLI和LLI下存储层使用量的变化
在数据存储过程中,如果存储层使用量增长过快,并且存储系统本身传输速率比较低,就需要对它进行数据迁移,以免迁移堵塞导致迁移失败。
迁移上限和迁移下限。它们是一个使用量的阀值,迁移上限大于或等于迁移下限。
由上述迁移条件,本文设计了迁移时间的判定过程,如下:
(1)定时监控某存储层使用量,当其超过迁移下限a时,进入(2)。
(2)若使用量继续增加超过迁移上限b时(b>a),执行(4)。反之进入第(3)步。
(3)若写入存储系统的速率超过存储系统内部数据迁出最大速率时,或在单位时间t内满足表达式(2),则执行第(4)步。反之转到第(2)步。
(4)执行数据迁移。
(5)数据迁移完毕。
本文结合使用量变化趋势、传输速率和迁移上下限来设定迁移时间,能有效的缓解迁移堵塞。主要方法包括:
降低式(2)中固定速率,将符合迁移条件的文件数据提前迁移;降低迁移下限,扩大可执行迁移的时间范围。迁移上限和下限的设置可改变存储层的利用率,将迁移上限和下限适当提高,就可提高相应存储层的利用率。整个判定过程考虑了系统的硬件特性和应用的需求,并采用了数学公式进行定量分析,这为数据迁移的实现提供了很好的基础。
3 迁移时间在数据迁移中的实现
根据前文的描述,一个完整的数据迁移策略必须考虑分层存储设备的特性、应用的要求和数据的特征等方面,从迁移时间、文件的价值和迁移策略等来制定。
3.1文件的价值
不同的应用决定文件价值的因素各不相同。这些因素有文件的访问时限、I/O热度,文件大小和文件安全性等等。本文主要分析迁移时间的作用,为避免其它因素对实验结果造成影响,仅考虑文件的访问时限,下面给出它的定义。
文件访问时限(ACCAGE)。该参数记录了数据迁移的时间与应用程序上次访问该文件的时间之间的间隔。假设执行迁移的时间为T,文件a最近被访问的时间为ta,则ACCAGE=T—t。若ACCAGE越大,表明在本次迁移之前,文件a越久没有被应用程序访问,因此文件a的价值就越低。
3.2文件信息记录
迁移过程中的迁移时间、文件价值和迁移条件等都需要准确的参数值。Symantec提供的FCL(file change log)工具可以记录文件系统中文件和目录的变化。尽管它不能记录实际数据的变化,但可通过文件的变化来记录数据大小、I/O读写、访问时间等信息。同时,我们可以通过加载FCI。的头文件fcI.h和vxfsutil.h来使用FCL。提供的API,编写相应的程序。本文采用FCL工具来获取文件的信息并计算相关参数作为数据迁移的文件价值。
3.3结合迁移时问的迁移策略
数据迁移解决的是数值放置的问题。数据放置包括初始数据的放置和迁移后数据的放置。一般情况,初始数据是即将要使用的数据,可放在高速存储层上。如果高速存储层被完全使用,可自动将初始数据保存到下一层存储上以实现初始数据在整个分层存储的安全放置。
数据迁移需要根据实际需求确定迁移时间和迁移条件。当数据开始迁移时,系统将满足迁移条件的文件放置到指定存储层。迁移条件可根据应用需求来设定。例如可设置为一小时能未放访问的数据被迁移等。存储层的数据迁移过程如下:
(1)启动迁移监控器。
(2)记录文件信息,并按照文件价值大小排序。
(3)到达迁移时间,开始迁移满足迁移条件的数据。
(4)迁移完成后,重新记录文件信息。
(5)返回迁移监控器,等待下一次迁移启动。
图3是结合迁移时间的数据迁移流程。
图3 加入迁移时间的数据迁移流程
4 验证
为测试迁移时间在迁移策略中所起的作用,本文将DX80和MSAl000存储整列提供的Volume整合为分层存储系统。
该存储系统通过4GB的光纤与上海大学自强3000高性能集群机相连。自强3000集群机主要运行与高性能计算相关的科学计算,计算任务涉及材料、力学、能源、生物、化学和汁算机体系结构等领域,并运行了多种商业并行软件和自编并行程序。该集群机在2004年全球超级计算机TOP500排名列126位,计算速度领先于剑桥等英国大学所拥有计算机,超过日本多数大学,超过俄罗斯各大学计算机。2004年中国TOP 100名列第6位,国内高校名列第2位:1 4。
DX80和MSAl000两台存储整列通过千兆以太网相连,为高性能计算提供存储服务。其中DX80内部采用了8GB的交换总线,磁盘的持续读写速率为3020MB/S传输速率,MSAl000的平均传输速率也达到了320MWS。由于传输大小文件的速率各不相同,千兆以太网的实测最高传输速率在40—80MWS之间,而光纤的实测传输速率是千兆加入迁移时间的数据迁移流程以太网的3—4倍左右。因此,本文构建的两层存储测试环境中传输速率主要受限于千兆以太网的传输速率。本文称DX80提供的存储为DX层,MSAl000提供的存储层为MSA层,容量分别为99GB和160GB。各个存储层的相关信息见表1。
表1 DX和MSA存储层的相关信息
我们将以存储层容量作为判定迁移时间的数据迁移策略和结合了本文迁移时间的数据迁移策略依次部署到该分层存储系统上,并将存储容量的80%作为容量阀值,该值决定前者的迁移时问。在本文的迁移时间设计中,迁移上下限分别设置为存储层容量的90%和80%。
由于DX80存储整列的传输速率相对较快,所以我们希望在高性能计算下提高DX80存储层的使用率。因此迁移策略设置如下:新数据被认为是即将要使用的数据,其文件价值最高,被首先被存放在高速的DX80存储层;其它文件价值按先后创建的顺序自小到大排列;若DX80到达迁移时间,文件价值小的数据将被迁移到MSA层。
图4显示了在两种迁移策略作用下,DX存储层使用量和存储系统存储使用量的变化.其中DX层一1是仅考虑存储容量的迁移策略,DX层一2是本文设计的迁移策略,上面的虚线表示迁移上限,下面的虚线表示迁移下限和容量阀值。由图可知,DX层一1的使用率整体低于DX层一2,并且随着系统存储量的加速增长,出现了迁移堵塞。
图4 两种迁移策略下的DX层和系统使用量变化
本文设计的迁移策略在数据长时问快速增长的极端情况下,也会出现迁移堵塞,但可以通过降低使用量变化公式中的固定速率来延迟迁移堵塞。图5的DX层-3和DX层-4中,固定速率分别为60MB/S和50MB/S,在相同的数据高速增长情况下,DX层-4能够将迁移堵塞延迟到DX层3的4.9倍的时间发生。在实际应用中,存储层的存储空间远远大于本文的实验环境,因此该方法具有可行性。
图5 两种固定速率下DX层的使用量变化
5 结束语
在迁移时间的设计过程中,通过数学公式能容易判断存储层使用量的变化趋势。将变化趋势与系统的传输速率相结合,这能保证存储层使用量在可控的范围内波动,并在数据高速增长的情况下延缓了迁移堵塞,也就可以使用迁移上下限来提高存储层的使用率。本文为迁移时间的设定提供了理论方法,但在具体应用中仍然需要考虑文件价值、迁移策略等其它因素才能实现数据的合理迁移。