存储管理中梯度策略的研究与设计

时间:2022-07-10 06:12:18

存储管理中梯度策略的研究与设计

摘 要 数据量的增加,虚拟机的增多都对存储空间提出了严峻的考验。文章结合实际工作中遇到的存储空间紧张的问题,探讨了一种梯度存储管理策略,该策略以数据价值为依据,结合同步触发式监听程序,实现数据信息的自动化转存,并通过带有权重值的价值评估函数确定需要进行转存的数据。最后,设计实验对该策略的可行性进行了验证,结果表明,梯度存储策略能够有效地对数据存储进行管理,并使得紧缺的存储资源配置得以优化。

关键词 存储管理;梯度策略;价值评估

中图分类号:TN919 文献标识码:A 文章编号:1671-7597(2014)09-0166-02

服务器虚拟化使得物理机的使用效率得以大幅度提升,但也给存储带来了新的问题,虚拟服务器要比物理服务器多消耗约30%的磁盘空间,同时,迅速增多的虚拟机产生的数据将对存储空间造成极大的压力,而现有的存储架构无法有效地解决虚拟机产生的随机I/O的问题。在不减少虚拟机数量的前提下,只有改进现有的存储管理策略,对重复数据进行删除,对备份和镜像进行精简,才能实现对存储进行更为有效地利用和管理。

1 数据转存策略分析

目前对于数据的分级存储普遍沿用空间高低水位算法和Cache替换算法。高低水位算法根据磁盘空间的剩余情况来决定数据的存储位置,该方法充分考虑了磁盘的利用率,却忽略了数据自身的特性。替换算法则参照计算机系统中内存的管理策略,衍生出相应的LRU、LFU等策略。LRU算法以最近最少使用为原则,将数据移出磁盘,该算法实现简单却没有考虑数据的大小对系统性能造成的影响。LFU算法关注数据被访问的次数,从总体上考虑了数据的使用频度,但需要具备相应的失效机制,否则会导致历史数据长期占用存储空间,造成资源浪费[2]。综合上述分析,本文讨论了一种带有权重值的数据存储模型,该模型可以根据用户关注的重点设置权重,以适应不同的数据存储环境。

2 梯度存储策略

在存储级别划分方法上,根据存储介质所处的状态,将其划分为Online,Oncall和Offline三种。Online状态的存储介质,实时响应系统请求,及时存储和提供需要快速访问的数据,特点是速度快,价格高,存储空间有限,此类存储包括FC磁盘,SCSI磁盘阵列和闪存等。Oncall状态的存储介质在存取速度上不及高速存储介质,而在价格上比高速磁盘有优势,此类存储介质用于存放访问频率不高的数据,SATA磁盘阵列和光盘等可作为此类存储介质。Offline状态的存储介质主要用于存档和灾备,此类介质价格低,容量大,如磁带等。

整个存储系统被划分为三个梯度,一级存储实现数据的高速访问,二级存储作为一级和三级存储的缓冲区,三级存储用于数据归档。数据的转存操作须满足一定的触发条件才可以执行。由此,引入数据的价值评估函数。

3 价值评估函数

数据转存策略的制定,既要考虑数据的生命周期,还要参考访问数据时对存储的性能需求以及容量要求[3]。根据数据的生命周期管理理论,新产生的数据将被频繁访问,具有较高的价值。长期不用的数据则向下转存,直至归档或销毁。研究生命周期的方法模型包括波浪形,环形,链型,螺旋形等[4],就数据价值的生命周期而言,其生命特征符合波浪形趋势。

图1 数据价值随时间变化示意图

由图1可以看出,数据从产生到使用,再到归档,其价值时刻变化。数据的价值会因长时间没有使用而出现折损,也会因为被再次使用而出现回升。因此,将数据的价值作为转存的重要依据。

由此,给出数据的定义[5]:D{A1,A2……An},其中Ai是数据D的属性。数据的固有属性包括数据的大小(S),数据的被访问时间(T),数据读写的频率(F),数据涉及的用户数(Q),数据间的关联程度(C)等。在这些属性中,关注对数据的价值影响大的因素,因此,保留以上属性的S、T、F、Q作为影响因子。

数据的访问时间决定了该数据的“热度”,越是频繁被访问的数据其价值越高。将数据被访问的时间与当前时间的差值记为T1、T2……Tk,定义T的计算公式为T=∑1k,定义数据的

读写频率F=∑(Ri+kWi),其中,k作为读、写操作的代价修正系数,Ri和Wi表示读、写次数。Q表征了有多少用户使用该数据。较大的数据在转存时对系统造成的影响较大,对存储的容量也会有明显的影响,因此,在数据的价值评估函数中要体现S对其价值的影响。

综上所述,得出数据的价值评估函数(V表示数据的价值):

V=+T+F+Q (1)

根据对各因素关注程度的不同附加权重,可以更好地体现该因子对数据价值的影响程度,同时也可以提高函数的适应度。经过权重修正后,公式(1)变形为如下形式:

V=+wtT+wfT+wqQ (2)

4 实现方法

实际工作中的梯度存储涉及到两个方向的数据转存,即“热度”较低的数据向低级存储转存,“热度”较高的数据转存至高级存储,前者对时间的要求较低,可以选择在系统负载较低的时候进行,后者对时间的要求较高,需要尽快完成。

以降级转存为例,系统先对数据库表中的记录进行遍历,再根据价值评估函数进行估值,通过比较,将V值最低的数据加入转存队列。在对数据库表进行访问时,遵循选择先行,建立索引等准则,优化查询和遍历的速度[6]。

在触发事件上,使用FileSystemWatcher类捕获系统中发生的新建、更名、更改等操作,进而更新数据在库表中的记录。对于数据访问操作,调用系统API截获系统消息,通过不间断地扫描系统获取打开的文件名称和路径,更新数据在库表中的访问时间。主要用到的系统API函数有:

GetForegroundWindow()

intGetWindowText(inthwnd, StringBuilder lptrString, int nMaxCount)

上一篇:塔线体系覆冰脱落对输电塔的动力响应研究 下一篇:企业信息化ERP应用的现状与对策