不想错过重要资讯?
马上订阅新闻邮件!
您现在的位置:
中计在线
>>
存储
>>
资讯
>> 文章正文
版本文件系统的虚拟存储策略
作者:中南林大… 文章来源:本站原创 更新时间:2006-5-23 14:21:03
【字体:
小
中
大
】
中计在线信息化频道全心上线!全力推动中国信息化进程!信息决策,易如反掌,尽在CIW信息化!
Vista消费者满意度调查
·
微软并购雅虎暂搁浅 合作仍有可能
·
阿里巴巴B2B拟上市融资78亿
·
苹果承认部分笔记本电池有充电故障
·
东芝拟在越南设研发中心 开发嵌入式软件
·
索尼PS3游戏机制造成本预计将下降100美元
版本文件系统的缺点是需要使用大量的存储空间来存放历史信息,因此存储优化策略的研究对版本文件系统的数据存储非常重要。本文提出了一种虚拟存储策略。
1.传统存储策略
存储策略是版本文件系统中研究的主要内容之一。存储策略的优劣,直接关系到系统存储利用率和系统性能。当今,数据量越来越大,存储空间的有效利用率成了人们对存储系统性能进行评价的一个重要指标。
对版本文件系统来说,存储策略影响了系统空间的利用率和工作效率。因此,人们提出了许多存储策略,以提高系统性能。
1.全Copy策略
全Copy策略是指每次数据产生一个新的版本,都将文件的数据全部复制一次,如图1所示。
图1 全Copy策略
图1中,假定最初版本为0,数据为A0和B0,假定产生一个新的版本,不管数据是否已经更新,都重新复制一份,因此在版本1中,就需要将新的数据重新生成一个空间进行存储;而版本2与版本1的数据完全相同,但是由于版本不同,也需要重新Copy一份数据。
当今的快照技术和Check-point技术可以说是一种全Copy策略。其优点是简单,缺点是由于对每个版本都要存储一个完整的数据,会浪费大量的空间,并且使得版本更新需要耗费大量I/O时间。
2.压缩存储策略
压缩存储是在全Copy策略的基础上,将要存储的数据进行压缩,再存放到磁盘上。该方式能提高空间利用率,减少I/O时间,但是每次读取和存放时都要压缩和解压缩,需要浪费大量的系统时间。
3.Copy-On-Write策略
鉴于全Copy策略的不足,人们提出了Copy-On-Write策略,其方法是在数据进行修改时,才将所有数据重新存储为一份新的数据,如图2所示。
图2 Copy-On-Wrtite策略
图2中,文件版本1与文件版本0有数据的修改,因此重新存储为一份。但是用户希望将版本1的文件另存为版本2,由于版本1与版本2没有数据的修改,因此,Copy-On-Write策略不进行版本的修改,也不进行新的数据存储。
从图2中可见,文件的版本0与版本1之间有的数据是相同的。如果能只对不同的部分分配空间,进行新的存储,势必会进一步提高空间利用率。为此,人们提出了稀疏存储策略。
4.稀疏存储策略
稀疏存储策略是存储版本间不同的数据部分,如图3所示。
图3 稀疏存储策略
在图3中,由于版本0与版本1只有数据块C1有差别,因此版本1只需要存储C1数据块(图中版本1的数据块A1和B1都用灰色,表示不需要进行存储);而版本2与版本1之间只有B1块不同,而版本2的数据块A1和C1在版本1中都有,因此不需要存储新的数据(图中版本2的数据块A1和C1都用灰色,表示不需要进行存储)。
在稀疏存储中,针对每个版本都需要附指针列表结构,描述数据的稀疏部分,用户读取一个版本的数据时,通过该列表信息可以读出相应的数据。
稀疏存储策略的优点是相对于全Copy模式,如果文件的版本间改动小,可以节省大量存储空间。其缺点是,现有的存储管理中,不能对版本数据相同但版本不同情况进行区分,也就是说对相同的数据只能保存一个版本号。 (E5)
2.虚拟存储的新策略
虚拟存储策略是通过一层
软件
管理,对于版本文件系统的数据存储能尽量节省存储空间和存储时间。该策略主要是针对同一数据不同版本的存储提出的。
1.策略描述
虚拟存储策略针对每个版本建立一个头文件,该头文件包含版本以及相应版本数据存储位置的索引。针对每个版本,建立一个头文件。策略结构如图4所示。
图4中,假定文件版本0包含了A1和B1两块数据。虚拟存储策略为文件版本0建立一个头文件head0。该头文件包含了版本号信息和指向数据块A1和B1的指针。新的文件版本1是在版本0的基础上增加了数据块C1,此时虚拟存储策略为文件版本1建立一个头文件head1,该头文件包含了1的版本信息和指向数据块A1、B1和C1的指针。对于新的文件版本2,由于是将版本1另存为版本2,所以其头文件head2的数据存储指针信息与head1相同,只是版本信息不同。
从这种结构可以看出,由于采用了指针的方式,不同版本的相同数据不需要存放多块,而只需要在不同版本的头文件保存数据块存储的指针即可。因此在图4中,由于版本1与版本0有相同的数据块A1和B1,版本1不需要为A1和B1分配存储空间,版本2也无须为A1、B1和C1分配存储空间(图4中用阴影部分表示不占用实际的存储空间)。由于不需分配额外的存储空间,也就不需要进行额外的I/O,因此减轻了相同的I/O负载。
虚拟存储策略有如下优点:在不浪费存储空间的情况下,能为相同的文件产生不同的版本;改动小的文件时,能尽量节省存储空间;由于许多情况都不要进行数据I/O操作,能减少版本操作的I/O时间。
2.实现技术
传统版本文件系统的结构大致分为三层,由低至高分别为存储管理层、存储策略层和版本管理层。版本管理层记录数据版本的变更历史,基本功能包括产生版本号、恢复版本号和维护版本号等。存储策略层是数据的存储方式。存储管理层对磁盘存储设备空间进行组织。磁盘存储空间分成许多块,存储管理层将这些块进行统一编号,便于上层索引。
版本管理层针对每个需要带有版本的文件都建立一个版本链表,其数据结构如下。
Struct Version VersionFile{
FileName;
Struct FileVersionMap VersionMap[];
……
};
其中,其中文件版本映射结构如下:
Struct FileVersionMap
{
FileName;
VersionNo;
VirtureStorageNo;
……
};
FileVersionMap结构表明文件的版本号和相应的数据块虚拟存储号,通过该存储号与存储策略层进行交互。
存储策略是版本文件系统的重要组成部分。当今许多用户面向的应用是一个工程设计。一个工程包含了许多文件。工程进行到一定阶段,不管其中的文件是否进行了修改,用户经常需要将整个工程保存为一个新的版本。针对这种情况,我们提出了虚拟存储策略,同时正在研究一种新的版本文件系统。今后的工作是需要将该策略在版本文件系统中实现。 (E5)
图4 虚拟存储策略
虚拟存储的提出
用户进行了误操作,将不该删除的文件进行了删除,或者将不该修改的内容进行了修改,系统必须根据历史操作情况将数据恢复到原来的状态。此时,包含了历史信息的版本对恢复数据非常重要。为此,人们推出了版本文件系统,对数据的版本进行管理,如CVS、CVFS和AVF等。
版本文件系统面临的重要问题是如何产生和存放数据。因为用户的存储空间是有限的,存放不同版本的数据需要消耗大量存储空间,如果组织不好,磁盘存储空间会很快被消耗。
存储策略定义了文件数据的存放方式。当今对版本文件系统的存储策略已经进行了大量研究,如Copy、Copy-on-Write、压缩等。虽然有的系统数据经常修改,但经研究发现,在很多情况下,用户没有对数据进行修改,也希望将文件产生新的版本。这种情况在工程设计文件中比较常见。现在,许多用户都在一个工程下进行工作。工程包含的文件由许多相关的文件组成,在工程设计的某些过程中,有的文件根本没有进行修改,但是随着工程进行到一定阶段,往往需要将该工程保存为一个最近的版本,以便于从该版本开始进行后续的设计,此时就必须将所有文件(包括没有进行修改的文件)保存为一个新的版本。不仅是大型工程设计文件如此,学生的毕业设计等也存在类似情况。通过ac统计,学生本科毕业论文一旦完成草稿后,修改的部分总和约占5%,本科毕业设计项目一旦完成大部分代码,其改动量约为7%。此时,采用传统的存储策略,不仅会浪费大量的空间,而且会使得文件的存储工作变得非常慢。
编者的话
纵观
服务器
虚拟化技术和应用市场,x86平台的
服务器
虚拟化技术得到了越来越多厂商(包括
软件
、硬件、网络等)的重视。同时,用户正在不断地加深对
服务器
虚拟化技术的理解,并逐步认识到自身的需求。这些都预示着,
服务器
虚拟化技术和产品会有广阔的市场前景。同时我们也必须认识到,单独的虚拟机
软件
并不能直接满足用户的需求,因为简单的使用虚拟机
软件
,会给用户增加许多管理成本。用户需要的是能够统一管理存储资源、计算资源和动态部署
服务器
的计算环境管理系统,以降低用户管理成本,提高资源利用率,从而获得更多的投资回报。随着国内外厂商和研究机构的不断努力,在未来几年内,
服务器
虚拟化的相关技术会不断成熟,其应用前景将十分广阔。
责任编辑:hgzlxy
上一篇文章:
海量存储 一触即发
下一篇文章:
携手创新 存储未来
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
相关文章
没有相关文章
相关评论
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
用户名:
· 您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
· 留言板管理人员有权保留或删除其管辖留言中的任意内容
· 本站提醒:不要进行人身攻击与无聊谩骂。谢谢配合。
热门文章
最新推荐