一种保持文件系统缓存一致性的方法

文档序号:7655033阅读:265来源:国知局
专利名称:一种保持文件系统缓存一致性的方法
技术领域
本发明涉及计算机系统及通信技术领域,具体涉及一种保持文件系统缓存一 致性的方法。2、 技术背景为了提高文件系统的访问效率, 一般文件系统都会使用缓存机制。这种机制采 用软件方法,将最近最新访问的数据存储在内存中。当进程需要再次访问数据时, 不需要访问磁盘,而是直接在内存中读写。对于写操作,当进程向磁盘中写入数据时,操作系统首先确认相关的数据块 是否存在缓存中,如果没有,则从磁盘中读入缓存,然后将新数据写入缓存。磁盘I/O操作会在稍后某个合适的时机执行。这样就给了进程再次修改该数据的机 会,减少了磁盘I/0次数,从而大大提高了系统吞吐量。这种机制造成的问题是,当系统意外宕机时,缓存中的"脏"数据可能因会 没有及时写回磁盘而丢失。在7*24小时运行环境中,这类情况造成的后果是严重 的。-般情况下,服务器不负责数据存储,理所当然不需要考虑此类风险,因此, 目前的大多数HA (高可用)方案并不把此风险考虑在内。但是,如果是存储设备, 或者说服务器直接负责数据的存储,那么,我们就必须有一种方案解决此问题。3、 发明内容为了解决文件系统中缓存在异常宕机丢失问题,本发明提供了一个保持文件 系统缓存一致性的方法。本发明的方法要解决技术方案是按以下方式实现的,在工作服务器文件系统 层写入数据块吋,实时备份到备份服务器(或其它设备),备份完成之后才通知 进程数据写入完毕。当数据磁盘I/O操作完成后,实时解除备份,使用备份不会 无限增加,具体步骤如下-1 )在工作服务器操作系统写数据的处理过程中加入回调函数 block—commit—write (),通过一个应用协议将数据传输到备份机,并保存在内存 中一个io—sync (),获取写入到磁盘的数据块信息,通过应用协议传输到备份机, 并根据此信息删除已经备份的数据块,假若工作服务器出现宕机,备份机首先将 树形链表中的缓存写入磁盘,然后接替服务;2)回调函数获取指定磁盘中的所有写入数据块及相关信息,传输到备份机, 当得到数据备份完成的响应后,通知用户磁盘写操作完成,回调函数在驱动层之 上不依赖于具体的磁盘。本发明的有益效果是不依赖于具体的磁盘类型,有效降低部署和使用成本。 为了提高遍历和修改备份数据块的效率,备份的数据块采用树形结构存储。根结 点可存储一些全局的信息,其子树的根结点表示服务端需要备份的磁盘,并按设 备号有序排列。数据块按起始扇区号大小构成磁盘结点的子树,以二叉树形式排 列,这样所有的数据都可以有序查找到。因此,在系统层操作过程中优化的数据 结构可以明显提高系统性能。么


附图1是缓存一致性实现流程图; 附图2是缓存备份存储结构示意图。 具体实施方式
参照附图对本发明的方法作以卜详细的说明。本发明的方法要解决技术方案是按以下方式实现的,在工作服务器文件系统 层写入数据块时,实时备份到备份服务器(或其它设备),备份完成之后才通知 进程数据写入完毕。当数据磁盘I/O操作完成后,实时解除备份,使用备份不会 无限增加。具体步骤如下1) 获取文件系统写操作和磁盘i/o获取系统写操作,磁盘I/0会根据操作系统平台的不同而不同。例如,在Linux系统中,可以在VFS (虚拟文件系统)层加 入回调函数实现。当数据写入时,可以在函数block—commit—write()中加入回调, 同样,当数据提交到磁盘时,可在函数end—bio—io—sync ()中加入回调。2) 工作服务器与备份服务器的通信为了方便服务端和备份端通信,本发明提 供了一整套的能信协议,该通信协议可以运行在多种网络环境中,不限于以太网、 PCI-E等通信方式。该协议有两种数据包,分别是操作包和响应包。操作包用于工 作服务器向备份服务器请求备份或解除备份操作。响应包是备份服务器处理完指 定的操作时,对工作服务器的响应,用于服务器决定下一步工作。如果此协议在非可靠的网络环境中运行,本协议提供了校验和重发机制,以此 保证数据传输的可靠性。*操作包有四个必要字段和三个可选字段构成i. 操作指定备份服务器需要进行的操作 ii. 设备识别号磁盘(分区)唯一标识 iii. 起始扇区数据块所对应的第一个扇区号iv. 大小数据块的长度(字节) 数据项(可选项)数据块中包含的数据,如果操作是备份数据块,此项必填。 V. 校验码(可选项)整个操作包的构码。在计算校验码时此项设为0 Vi. 发送时间戳(可选项)数据包生成的时间 *响应包有一个必要字段和二个可选字段构成i. 状态字备份服务器对操作处理的结果 ii. 发送时间戳(可选项)数据包生成的时间 iii. 校验码(可选项)整个操作包的构码。在计算校验码时此项设为0 *具体传输过程如下i. 当进程写入数据或文件系统向磁盘中提交数据块时,获取备份信息 ii. 将(i)中的信息填入操作包并发送到备份服务器 i i i. 备份服务器根据操作包指定的操作对数据包进行处理 iv. 备份服务器将处理结果填入响应包并发送给工作服务器 v. 工作服务器进行相应的处理
权利要求
1、一种保持文件系统缓存一致性的方法,其特征在于,在工作服务器文件系统层写入数据块时,实时备份到备份服务器,备份完成之后才通知进程数据写入完毕,当数据磁盘I/O操作完成后,实时解除备份,具体步骤如下1)在工作服务器操作系统写数据的处理过程中加入回调函数block_commit_write(),通过一个应用协议将数据传输到备份机,并保存在内存中一个树形结构中;同时,在数据提交到磁盘的处理过程中加入回调函数end_bio_io_sync(),获取写入到磁盘的数据块信息,通过应用协议传输到备份机,并根据此信息删除已经备份的数据块,假若工作服务器出现宕机,备份机首先将树形链表中的缓存写入磁盘,然后接替服务;2)回调函数获取指定磁盘中的所有写入数据块及相关信息,传输到备份机,当得到数据备份完成的响应后,通知用户磁盘写操作完成,回调函数在驱动层之上不依赖于具体的磁盘。
2、根据权利要求1所述的方法,其特征在于,应用层协议与具体的网络环境 无关,并不局限于以太网、PCI-E等通信方式,并根据通信协议的具体要求扩展为 具有校验功能和重发机制的可靠协议,该协议有两种数据包,分别是操作包和响 应包,操作包用于工作服务器向备份服务器请求备份或解除备份操作,响应包是 备份服务器处理完指定的操作时,对工作服务器的响应,用于服务器决定下一歩 工作。
3、根据权利要求2所述的方法,其特征在于应用协议在非可靠的网络环境中 运行,协议提供校验和重发机制以保证数据传输的可靠性,具体步骤如下 * 操作包有四个必要字段和三个可选字段构成 i.操作指定备份服务器需要进行的操作; ii.设备识别号磁盘唯一标识; iii.起始扇区数据块所对应的第一个扇区号; ".大小数据块的长度;V.数据项数据块中包含的数据,如果操作是备份数据块,此项必填; Vi.校验码整个操作包的构码。在计算校验码时此项设为0; Vii.发送时间戳:数据包生成的时间; 响应包有一个必要字段和二个可选字段构成i.状态字备份服务器对操作处理的结果; ii.发送时间戳数据包生成的时间; iii.校验码整个操作包的构码。在计算校验码时此项设为0; *具体传输过程如卜. i.当进程写入数据或文件系统向磁盘中提交数据块时,获取备份信息; ii.将i中的信息填入操作包并发送到备份服务器; iii.备份服务器根据操作包指定的操作对数据包进行处理; iv.备份服务器将处理结果填入响应包并发送给工作服务器; V.工作服务器进行相应的处理。
4、根据权利要求3所述的方法,其特征在于,备份数据块的采用树形结构 存储,根结点存储一些全局的信息,其子树伯根结点表示服务端需要备份的磁盘, 并按设备号有序排列,数据块按起始扇区号大小构成磁盘结点的子树,以二叉树 形式排列以方便数据都的有序查找。
全文摘要
本发明涉及一种计算机应用技术,具体地说是一种保持文件系统缓存一致性的方法,在工作服务器文件系统层写入数据块时,实时备份到备份服务器,备份完成之后才通知进程数据写入完毕,当数据磁盘I/O操作完成后,实时解除备份,使用备份不会无限增加,本发明的有益效果是备份的数据块采用树形结构存储,根结点可存储一些全局的信息,其子树的根结点表示服务端需要备份的磁盘,并按设备号有序排列,数据块按起始扇区号大小构成磁盘结点的子树,以二叉树形式排列,这样所有的数据都可以有序查找到。因此,在系统层操作过程中优化的数据结构可以明显提高系统性能。
文档编号H04L29/06GK101256524SQ20071011561
公开日2008年9月3日 申请日期2007年12月17日 优先权日2007年12月17日
发明者吴庆民, 张会健, 施培任 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1