Chinaunix首页 | 论坛 | 博客
  • 博客访问: 541999
  • 博文数量: 64
  • 博客积分: 1591
  • 博客等级: 上尉
  • 技术积分: 736
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-08 14:54
文章分类

全部博文(64)

文章存档

2011年(42)

2010年(22)

分类: 服务器与存储

2011-04-18 15:04:09

存储入门文章(6)--一个分级存储的信息生命周期管理系统设计与实现

名称:一个分级存储的信息生命周期管理系统设计与实现

出处:小型微型计算机系统(2009.6 6)

作者:付先平孙林春熊伟伟刘志宽方 扬汪东升

单位:清华大学,大连海事大学,北京邮电大学

简介

THILM 是清华大学自主研发的一个基于分级存储的信息生命周期管理系统架构. THILM 通过对信息的分类和价值评价合理地将数据信息存储于整个存储系统中的适当位置并在信息从创建到销毁的整个生命周期中提供最优的管理服务.

关键技术

数据分级存储管理系统的核心技术是对归档迁移文件的透明访问为了实现应用和用户对归档迁移文件的透明访问。

采用技术

采用Windows File System Filter Driver 在Windows User Layer以下的文件系统层进行文件操作. Filter DriverWindows 操作系统核心态的模块能够对一个或多个文件系统或文件系统卷上的IO 操作进行监控和修改Windows提供的一个为其他驱动增加额外功能或者修改驱动行为的可选驱动因此Filter Driver 可以记录、监控、修改甚至阻止文件系统的操作。

原理

对于一个文件IO 操作处于用户态的应用程序将文件操作通过IRP ( IO Request Packet) 的形式发到NTFS 文件系统的IO M anager, IO manager 通过IRP IO Stack Location 交互. F ile Redirector 通过在N TFS File System 上层添加一层F ilter Driver, 拦截文件系统的IO 操作.

对于一个文件IO 操作如果该操作是对一个已经迁移的文件进行的则在F ilter D river 中将该操作重定向到归档文件代表的实际的目标文件将实际目标文件的IRP传递到下层的文件系统文件系统通过IRP 访问响应的文件将结果最后返回到IO Manager, 最终返回给应用层程序.


windows下利用filter Driver实现文件的重解析  

文件系统过滤驱动安装后作为整个Windows文件系统的一部分运行在内核态如图4所示当上层应用程序对文件进行操作时,W indows 操作系统会将文件操作的命令发送到文件系统的IO Manager 来进行处理IO Manager则将文件操作按照IRP包的形式发到文件系统一层层的驱动,只需要将开发的filter driver 至于所有驱动的最上层就可以截获所有的文件操作.

文件名及操作类型的获取如图所示,Driver #1 即为THILM 需要的filter driver. 在该层截获文件操作后需要获得文件名获取文件名需要向D river # 1 以下的文件系统层次发送获取文件名的IRP 从下层返回后得到文件名此外还需要获取上层应用程序操作文件的操作类型.

得到文件的操作类型后需要根据操作类型作相应的处理同时还需要根据文件名判断该文件是否处于THILM定制重解析在线存储文件目录如果非THILM 需要重解析的目录则不做处理.

如果该文件处于TH ILM 定制重解析目录中则需要读取文件内容根据THILM File Redirector 定制的在存根文件中保存的tag, 判断读出的内容是否与该tag 匹配如果不匹配说明该文件也非已迁移文件.如果判断文件中的tag File Redirector 定制的tag相同则说明该文件已经被迁移当前操作的文件为存根文件.则将tag 后面保存的已迁移文件真实路径读出得到真正源文件的完整路径.使用源文件的路径, File Redirector文件驱动层返回给IO Manager 重新使用源文件路径进行相同的文件IO 操作,从而实现对应用程序透明的文件重定向功能.

策略缓存技术

首先需要读取管理员配置的不同策略然后根据策略扫描文件系统确定和每一个策略相对应的文件对象而这正是进行数据迁移的性能瓶颈所在不恰当的执行策略进行归档迁移会过度增加整个服务器的负载而扫描完成之后可能发现符合迁移策略需要进行迁移的数据量非常少甚至没有在一个包含200, 000 个文件的文件系统中每天有修改的文件不到1%. 那么之前所付出的扫描整个文件系统的巨大代价是系统无法承受的

IBM STEPS 架构中提出了Policy Cache的概念. Policy Cache 可以看作为一个三元组的表其中包含(1) 策略号(Rule Number) , (2) 策略预期执行时间(Time) , (3) 文件iNode 唯一对应的文件对象号(file object ID). 在该表中的一个三元组(R, T , I) 说明文件对象号对应的文件符合时刻按照策略进行数据迁移的条件,将作为备选进行迁移.

THILM 系统中借鉴Policy Cache 的思想(1) 策略号(Rule Number) , (2) 数据分类(Data Type) , (3) 策略执行时间(T ime) , 做成三元组(R,D, T ). 在信息管理层管理员新建管理策略时信息管理服务就会新建(R, D, T ) 数据表.TH ILM FSM 模块根据TH ILM 所要提供的策略定制功能记录下整个文件系统的文件完整路径名数据类型数据创建时间最后修改时间以及文件访问频率信息记录在Policy Metadata Container (PMC) 如图所示我们根据(R,D,T ) PMC 中查询得到属于该策略的数据分类文件的应用导向和程序导向的元数据作为该策略的元数据库即相应策略的Policy Cache.

每当新建一个数据迁移策略, STEPS 还是需要在初始化Policy Cache 的时候对整个文件系统进行扫描来建立策略相对应的Policy Cache. 当整个文件系统比较大时这个过程需要很长的时间THILM Policy Cache 初始化时无需扫描整个文件系统而只需要从PMC 中检索出适合该Po licy 的文件信息大大缩短了原来初始化每一个Policy Cache 所需要的时间.

经过初始化后, Policy Cache 无需每次都从新建立而是利用THILMFSM 对文件系统进行监控更新PMC 的同时更新策略相应的Policy Cache, 保持二者的一致性.

THILM系统文件访问频率的计算方法

文件访问频率是文件迁移的重要检索条件用户可能根据文件的访问频率设定迁移一年或一个月内访问次数比较少的文件如可能设定如下的策略将一年内访问次数少于10次的文件从一级存储卷迁移到二级存储卷但是因为每一天的文件访问次数都在改变所以每一天都会有一个不同的访问频率如果让系统管理员根据最近任意多天的访问频率定制归档方式那么系统就需要记录每一个文件每一天的访问次数如果系统文件数目比较庞大那么记录每个文件访问次数的开销就会很大且影响系统的整体性能.

定义A-n 为从当前日期数起往前的第天某文件的访问次数,A0为当天的文件访问次数则未加入当天的统计信息时, n 天内该文件访问的总次数

而加入当天的统计信息后, n天内文件访问的总次数’为


按照上述的公式为了统计一年内的文件访问次数原则上需要记录一年内每天的文件访问次数这是一个相当大的空间开销在实际的THILM 系统中采用了一个近似公式来

计算频率值我们假设往前天的访问量等于该文件过去天得均值则有


这样对于每个文件一共只需要记录一个月的访问次数三个月的访问次数和一年的访问次数三个访问总量和一个当天的访问量四个值就能够得到相应的文件访问频率值,减少了计算时间和特别是空间上的开销.

阅读(2257) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~