[发明专利]一种实现写时复制文件系统的方法及装置有效
申请号: | 201510607910.0 | 申请日: | 2015-09-22 |
公开(公告)号: | CN105094711B | 公开(公告)日: | 2018-05-18 |
发明(设计)人: | 苑忠科;张会健;李美欣 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 复制 文件系统 方法 装置 | ||
本发明实施例公开了一种实现写时复制文件系统的方法及装置,包括:在内存中寻找带有脏数据标识的第一元数据;将所述第一元数据的lock标识置位;为所述第一元数据对应的脏数据分配新的磁盘空间,并将所述脏数据下刷至所述新的磁盘空间;将所述第一元数据写到与所述新的磁盘空间位置相邻的元数据文件中;并将block map文件中的与所述脏数据对应的第二元数据写入所述元数据文件中,这种将脏数据下刷到新的磁盘空间,不直接在原磁盘数据上进行修改的方法,保证了文件系统时刻处于一致性状态,并且将元数据写入元数据文件中,减少了不必要的磁盘寻道时间。
技术领域
本发明涉及存储、文件系统领域,更具体地说,涉及一种实现写时复制文件系统的方法及装置。
背景技术
普通的linux文件系统在修改数据时,会对磁盘上原有数据进行修改,如果在修改的过程中系统宕机,例如电源故障时,就会造成数据损坏,从而造成文件系统的不一致。inux文件系统在写入数据时磁头会在存储在磁盘固定区域的inode数据和data数据间往返多次进行操作,增加了这种“read-modify-write”过程所付出的不必要的磁盘寻道时间。
因此,如何保证文件系统时刻处于一致性状态,并减少不必要的磁盘寻道时间是现在需要解决的问题。
发明内容
本发明的目的在于提供一种实现写时复制文件系统的方法及装置,以保证文件系统时刻处于一致性状态,并减少不必要的磁盘寻道时间。
为实现上述目的,本发明实施例提供了如下技术方案:
一种实现写时复制文件系统的方法,包括:
在内存中寻找带有脏数据标识的第一元数据;
将所述第一元数据的lock标识置位;
为所述第一元数据对应的脏数据分配新的磁盘空间,并将所述脏数据下刷至所述新的磁盘空间;
将所述第一元数据写到与所述新的磁盘空间位置相邻的元数据文件中;并将block map文件中的与所述脏数据对应的第二元数据写入所述元数据文件中。
优选的,所述在内存中寻找带有脏数据标识的第一元数据,包括:
在内存中寻找有所述脏数据的元数据链表;和/或,没有所述脏数据但元数据本身修改链表上的元数据。
优选的,为所述第一元数据对应的脏数据分配新的磁盘空间,包括:
预先将block map文件中初始元数据写入所述元数据文件中,并为所述脏数据分配新的磁盘空间。
优选的,所述将block map文件中的与所述脏数据对应的第二元数据写入所述元数据文件中之后,包括:
将所述脏数据对应的数据块的fs位值复制到所述block map文件中的update位。
优选的,若所述第二元数据没有成功写入所述元数据文件中,则将所述第二元数据存放在write wait队列中,并重新执行将所述第二元数据写入所述元数据文件中的步骤。
一种实现写时复制文件系统的装置,包括:
寻找模块,用于在内存中寻找带有脏数据标识的第一元数据;
置位模块,用于将所述第一元数据的lock标识置位;
分配模块,用于为所述第一元数据对应的脏数据分配新的磁盘空间;
下刷模块,用于将所述脏数据下刷至所述新的磁盘空间;
第一元数据写入模块,用于将所述第一元数据写到与所述新的磁盘空间位置相邻的元数据文件中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510607910.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据处理方法及装置
- 下一篇:一种固态盘存储系统的动态数据压缩方法