基于Internet的文件镜像方法

文档序号:6363348阅读:341来源:国知局
专利名称:基于Internet的文件镜像方法
技术领域
本发明提出了一种基于Internet的文件镜像方法,属于数据备份与灾难恢复领域,在两台通过Internet连接的计算机上实现文件的同步。
背景技术
在容灾系统中,镜像技术是基础,是整个容灾系统成败的关键。目前比较成熟的镜像技术有磁盘阵列技术,存储区域网络,网络直接存储等。这些技术各有其优缺点,但距离都受到严格限制。存储区域网络的镜像距离最大,通常在10千米以内,最大不超过100千米。其他的几种技术仅适合于本地存储,不适于远距离异地镜像系统的建立。这些技术价格昂贵,应用范围较窄,使用不够方便,维护费用高。
中国专利公开号为CN1179219A的申请案可实现文件的异地备份,但时间间隔长,实时性不高。中国专利公开号为CN1371058A的申请案是针对一个特定应用的文件同步方法,当客户端向服务器写数据时,同时向镜像服务器写同样的数据使主服务器与镜像服务器同步,需要在每个客户端上安装底层备份驱动程序,应用的范围、距离都有很大的限制。
本发明是一个通用的文件镜像方法,不需要在客户端作任何配置,应用范围和镜像距离不受限制(只要能够接入Internet就行),支持多种操作系统,对网络的带宽以及网络的稳定性要求低。可支持用户在Internet上以极小的成本构建自己的文件镜像系统,具有广阔的应用前景。

发明内容
定义1文件列表L,用来登记需要镜像的文件,L中的每个元素包含以下两个部分1)文件名字符串,需监视的文件的名称。
2)文件路径字符串,需监视的文件所在的路径。
定义2文件变化队列Q,是一个先进先出队列,用来记录哪些文件产生了写操作。队列Q的每个元素包含以下四个部分1)文件名字符串,指明产生写操作的文件。
2)文件路径字符串,指明产生写操作的文件的路径。
3)偏移量整数,文件写指针的位置。
4)写入数据二进制串,表示写入文件的内容。
为了提高效率,队列Q设计为两级一级队列Q1和二级队列Q2。由于磁盘的读写速度和RAM的读写速度相差几个数量级。因此,Q1放在RAM中,Q2放在磁盘上。Q1的尾端与Q2的首端相连从而在逻辑上形成一个队列Q。取记录时总是在Q的首端进行,插入记录时总是在Q的尾端进行。
在取记录时,如果队列Q的头指针已经指向Q2,则先将Q2中的部分记录移动到Q1,同时修改Q的头指针和尾指针(类似于操作系统的缺页中断处理方法),然后再从Q的首端取出记录。
队列Q的大小可以灵活设定。Q越大,能够记录文件的变化越多,用本发明设计的系统就能够更好地容忍Internet的带宽限制、速度变化、网络中断等不利因素。实际使用中,Q的大小可以根据内存的容量,磁盘的容量,文件的使用情况,网络的连接速度,容许网络中断的最大时间等来确定。一般情况下建议Q1为128M,Q2为1G。
在进行镜像之前,首先保证本地服务器需要镜像的文件和远程镜像服务器相应的文件完全相同。
以下结合附图详细说明本发明的具体方法。


图1是本发明工作原理图。
本发明在实现上分为本地和远程两个部分,本地部分包括文件监视模块FMON、本地镜像模块LMM以及两个数据结构,列表L和队列Q;远程部分只包括远程镜像模块RMM。
文件监视模块FMON监听操作系统的写操作,如果被操作的文件F在列表L中,则把F的文件名、文件路径、偏移量、写入数据等封装成一个记录R插入到队列Q中。本地镜像模块LMM不断地从Q中取出记录R,发送到远程镜像服务器,远程镜像模块RMM根据收到的记录R对相应的文件进行写操作完成文件的镜像工作。
在程序运行前,首先要清空队列Q,并把需要镜像的文件登记到列表L中。
图2是文件监视模块FMON的流程图文件监视模块FMON在本地服务器上监听操作系统对某个文件F进行的操作W,如果W是一个写操作并且F在列表L中,则将W记录到队列Q中。具体步骤如下①监听到操作系统对某个文件F进行了W操作②判断操作W是否是写操作,如果不是转到①。
③判断文件F是否在列表L中,如果不在转到①。
④判断队列Q是否已满,如果已满转到⑩。
⑤把操作W封装成记录R。
⑥获得队列Q的读写权。
⑦把记录R插入到队列Q的尾端。
⑧释放队列Q的读写权。
⑨结束。
⑩报错。
图3是本地镜像模块LMM的流程图本地镜像模块LMM从队列Q的首端取出记录R,然后发送到远程镜像服务器完成同步。
具体步骤如下①判断队列Q是否为空,如果为空转到①。
②获得队列Q的读写权。
③从队列Q的首端取出一条记录R。
④释放队列Q的读写权。
⑤把记录R封装成镜像请求T。
⑥把请求T发送到远程镜像服务器进行镜像。
⑦等待远程镜像服务器的完成标志。
⑧判断是否超时,如果超时转到⑥。
⑨获得队列Q的读写权。
⑩从队列Q中删除记录R。
释放队列Q的读写权。
转到①。
图4远程镜像模块RMM的流程图远程文件同步模块监听文件同步请求,当一个同步请求到来时,在镜像服务器上对相应的文件进行同样的操作,具体步骤如下①监听到文件镜像请求T。
②从T中解析出记录R。
③根据记录R的内容对相应的文件进行写操作。
④向本地镜像模块发送完成标志。
⑤转到①。
权利要求
1.一种基于Internet的文件镜像方法,其特征包括以下步骤记录文件变化的队列的结构;文件监视模块的运行步骤;本地镜像模块的运行步骤;远程镜像模块的运行步骤。
2.权利要求1所述的基于Internet的文件镜像方法,其特征在于记录文件变化的队列Q的结构包括以下内容队列Q设计为两级一级队列Q1和二级队列Q2;Q1的尾端与Q2的首端相连从而在逻辑上形成一个队列Q;Q的每个元素包括文件名、文件路径、偏移量、写入数据四个部分。
3.权利要求1所述的基于Internet的文件镜像方法,其特征在于文件监视模块的运行步骤包括以下步骤①监听操作系统对某个文件F进行写操作的步骤;②判断F在列表L(由需要镜像的文件组成)中的步骤;③把F的文件名、文件路径、偏移量、写入数据组成一个记录R,插入到一个队列Q的步骤;④返回①,继续监听操作系统的下一个写操作的步骤。
4.权利要求1所述的基于Internet的文件镜像方法,其特征在于本地镜像模块的运行步骤包括以下步骤只要队列Q中有记录,就一直进行以下步骤①从队列Q中取出一条记录R的步骤;②把记录R封装成镜像请求T的步骤;③把请求T发送到远程备份服务器的步骤;④从队列Q中删除记录R的步骤;
5.权利要求1所述的基于Internet的文件镜像方法,其特征在于远程镜像模块的运行步骤包括以下步骤①监听文件镜像请求的步骤;②当一个镜像请求到来时,解析出记录R的步骤;③根据记录R的内容对相应的文件进行写操作的步骤;④向本地镜像模块发送完成标志的步骤;⑤返回①,继续监听下一个文件镜像请求的步骤。
全文摘要
本发明提出一种基于Internet的文件镜像方法,属于数据备份与灾难恢复领域。其特征在于在对本地服务器的文件进行写操作时,记录下文件名、文件路径、文件偏移以及写入数据,然后通过Internet发送到远程镜像服务器,在远程镜像服务器上对相应的文件进行同样的写操作,达到镜像的目的。由于在本地服务器上设置了记录文件变化的队列,本方法能够在一定程度上容忍Internet网络的带宽限制、速度变化、网络中断等不利因素,在网络状况良好的情况下还能获得良好的实时性。本发明可广泛应用于基于Internet的远距离异地数据备份与灾难恢复,建设成本极低,具有广阔的应用前景。
文档编号G06F13/42GK1567238SQ03135150
公开日2005年1月19日 申请日期2003年6月9日 优先权日2003年6月9日
发明者李涛 申请人:四川大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1