[发明专利]一种实现写时复制保护元数据的装置及方法有效
申请号: | 201210008357.5 | 申请日: | 2012-01-12 |
公开(公告)号: | CN102609335A | 公开(公告)日: | 2012-07-25 |
发明(设计)人: | 王旭;刘正伟 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 复制 保护 数据 装置 方法 | ||
技术领域
本发明涉及计算机应用中的数据保护技术,尤其涉及通过写时复制方式对元数据进行保护的装置及方法。
背景技术
计算机系统在结构上大致可分为CPU、存储子系统以及I/O子系统。其中,存储子系统和I/O子系统都可以统归结为数据子系统。从更抽象的层次上看,可以将计算机系统分成计算和数据两大部份。其中,对于数据部分可分为用户数据和元数据;用户数据是用户本身的数据,而元数据则是“数据的数据”,即作为了管理用户数据的那部份数据。元数据用以描述用户数据,如果在一个存储系统中元数据遭损坏,那么其影响要远远大于用户数据的损坏或丢失。可见,在计算机系统中对元数据的灾难恢复和保护具有十分重要的意义。
受限于最初的硬件存储设备其速度与容量的限制,最初的存储系统,如FAT、EXT2(不同的文件系统),对元数据采取的是灾难恢复策略,即如果机器在写入数据的时候发生断电或宕机,则在其下次启动的时候会去通过扫描整个存储设备来恢复,以保证存储设备的一致性。可以说这种方式对存储子系统的保护功能几乎是没有,而且恢复所需的扫描时间往往是令人难以接受的。
为了对元数据进行保护,现有的存储系统一般有两种方法:写日志和写时复制。其中,写日志是使用一个独立的磁盘或是文件作为日志,在元数据发生更改写入时,先写入日志,再去更改元数据。在发生断电或是宕机后,只需扫描这个日志文件就可以达到元数据一致性恢复的目的。这种方式将数据存储和日志分隔开,以日志的方式确保元数据的一致性。Ext3、Ext4就是使用这种方式对元数据进行保护。写时复制是要更改数据结构中元数据的时候,先将要被更改的元数据复制一份,再去更改该元数据,依次类推;然后在该数据结构中规定的若干位置选择一个结点,写入指向最新元数据的块地址即可。在这种方式下,机器若发生断电或是宕机,则其下次启动只需扫描每个规定位置的数据块便可实现恢复。
采用写时复制一般对元数据会采用类似于树形的数据结构去组织,而会有一个类似于超级块的根结点指向树的根。存储系统中存在多个这样的根结点,如图1所示,多个根结点之间以序号的大小来区分所指向的整个元数据树的新与旧。在存储系统有元数据要写入时,如果在树形结构中某个结点发生了写时复制,那么这个结点的父结点也会随之发生改变,即该父结点也会发生写时复制,这是一种连锁反应,直至这个树的根最终也发生写时复制。显然,这种方式,每一次一个结点上元数据的更改,都需要通过大量的I/O读写操作来读写大量的块,费时且费存储资源。因此,亟待加以改进和优化。
目前,针对写时复制的优化大部份采用缓存机制的方式,即对数据写入操作先缓存一段时间后,再将其刷入磁盘。根据数据读写的局部性,如果一个块已被进行写时复制,并且对这个块的二次更改和第一次更改是在同一个事务内,则不需要针对这个块的二次更改再进行写时复制,直接更改即可。这种方式减少了写时复制的I/O读写操作,但其改进和优化的效果非常有限,仍有待于进一步进行优化。
发明内容
本发明所要解决的技术问题是提供一种实现写时复制保护元数据的装置及方法,能够明显地减少写时复制时的I/O读写操作,从而提高写时复制的优化效果。
为了解决上述技术问题,本发明提供了一种实现写时复制保护元数据的装置,除了包括相互连接的数据读写模块和事务刷新模块外,还包括与数据读写模块连接的重映射模块,其中:
数据读写模块,用于在收到数据读写请求时,将针对元数据的请求提交重映射模块处理,将针对用户数据的请求提交事务刷新模块处理;
重映射模块,用于针对该数据读写请求,根据要读写的块在重映射记录中查找相应的块,并记录新块与原始块对应的映射关系,同时将该新块提交给事务刷新模块;
事务刷新模块,用于将需频繁读写的元数据块缓存在内存中,根据数据读写模块或重映射模块各自的提交定时向磁盘刷新事务中的数据。
进一步地,
重映射模块采用一个具有哈希数组结构的映射表作为重映射记录,通过该映射表的结点记录原始块号和映射的新块号;哈希数组的大小采用可配置的方式配置。
进一步地,
重映射模块如果确认是针对元数据的读请求,根据给定块号在映射表中查找相应的块,若找到,则将该给定块号置为相应结点中映射的新块号;若没找到,则将该给定块号提交给事务刷新模块;
事务刷新模块根据重映射模块提交的给定块号在向磁盘刷新事务时从硬盘上读取相应的元数据。
进一步地,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210008357.5/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置