一种基于离线缓存文件操作集中记录预处理并重放的方法

文档序号:8003870阅读:146来源:国知局
一种基于离线缓存文件操作集中记录预处理并重放的方法
【专利摘要】本发明涉及分布式存储系统的元数据与文件操作管理方法【技术领域】,特别涉及一种基于离线缓存文件操作集中记录预处理并重放的方法。本发明采用文件系统操作日志和数据缓存日志的离线缓存机制。可以在多次连续追加写入之后,将数据缓存日志中对应的内容预处理,合并这些缓存,减少数据补齐读取操作,提升性能。本发明(一种基于离线缓存文件操作集中记录预处理并重放的方法)其能够减小与分布式文件系统各个服务器的网络通信,降低网络开销,避免不必要的操作,提升临时文件的操作性能。
【专利说明】一种基于离线缓存文件操作集中记录预处理并重放的方法
【技术领域】
[0001]本发明涉及分布式存储系统的元数据与文件操作管理方法【技术领域】,特别涉及一种基于离线缓存文件操作集中记录预处理并重放的方法。
【背景技术】
[0002]在文件系统中,所有应用程序针对元数据和文件的操作都是按照时间顺序依次在元数据和存储中进行的。这些操作序列可以包括文件的创建、删除、重命名、加锁和解锁、属性和权限修改、文件的写入等。当应用程序需要频繁的创建、写入、读取、删除临时文件时,就需要频繁的进行这些操作。
[0003]在分布式共享文件系统中,为了实现应用服务器对文件系统的上述操作的支持。使用该文件系统的应用服务器可以采用如下步骤完成操作:
[0004]1、连接元数据服务器
[0005]2、发送元数据操作的具体内容到元数据服务器
[0006]3、元数据服务器完成操作后,通知应用服务器
[0007]4、应用服务器收到完成通知后,按照元数据指令,连接存储服务器
[0008]5、应用服务器向存储服务器发送要存储的文件中的内容数据
[0009]6、应用服务器结束文件内容数据传输后,继续接下来的工作。
[0010]对于每一个元数据操作,应用服务器都需要先连接元数据服务器,完成操作,再断开连接。因为网络通信延迟高,因此该操作代价很高。
[0011]对于文件内容数据的写入,也同样需要经过上述的步骤,这会严重影响整个应用程序的性能。
[0012]Lustre文件系统实现了一个类似的元数据操作本地缓存,上传元数据重放机制,减少网络通信的开销。但是该机制只是简单的将这些操作上传到元数据重新播放。对于大量临时文件的创建,写入和删除操作,仍然需要频繁的与存储服务器通信。且在元数据服务器上仍然需要多次操作。

【发明内容】

[0013]为了解决现有技术的问题,本发明提供了一种基于离线缓存文件操作集中记录预处理并重放的方法,其能够减小与分布式文件系统各个服务器的网络通信,降低网络开销,避免不必要的操作,提升临时文件的操作性能。
[0014]本发明所采用的技术方案如下:
[0015]一种基于离线缓存文件操作集中记录预处理并重放的方法,包括以下步骤:
[0016]A、应用服务器端将文件操作信息,及文件内容数据记录到本地;
[0017]B、应用服务器端对文件操作做预处理,删除并合并文件元数据相关操作和数据;
[0018]C、应用服务器端将预处理后的文件系统操作日志上传至元数据服务器重放,将文件内容数据按照元数据的指令上传到对应的存储服务器上。[0019]步骤A具体包括:
[0020]Al、开辟缓存:在应用服务器端,开辟一个内核态缓存,用于记录所有针对临时文件的操作文件系统操作日志,包括文件的创建、属性修改、文件内容的增删改查操作,同时开辟一块缓存存放数据缓存日志,用于记录被操作的文件内容;
[0021]A2、记录文件操作:所有文件操作相关的系统调用,在操作系统内核态,都先记录在本地缓存中,而非直接与元数据服务器、存储服务器通信,所有针对元数据的操作,记录在文件系统操作日志中;针对文件内容的操作,记录在数据缓存日志中。
[0022]步骤B具体包括:积累到一定记录后,应用服务器首先在内核态中,按照时间顺序预处理文件系统操作日志,找到其中可以抵销的操作,将其删除;找到可以合并的操作,将其合并;
[0023]步骤C具体包括:
[0024]Cl、预处理后的文件系统操作日志在元数据服务器上重放:将预处理后的文件元数据操作文件系统操作日志上传到元数据服务器,元数据服务器收到该日志后,将其在按照时间顺序重放,并完成日志中的操作;
[0025]C2、将预处理后的数据缓存日志上传到对应的存储服务器中:元数据完成文件系统操作日志的处理之后,应用服务器根据元数据服务器的指令,将预处理后的文件数据缓存日志分别上传给对应的存储服务器。
[0026]本发明提供的技术方案带来的有益效果是:
[0027]1、进一步减小应用服务器在操作文件时的性能开销,对于大量临时文件创建和写入操作。除避免和元数据通信外,还可以避免将数据保存到存储服务器、再从存储服务器上将数据删除的操作。降低和存储服务器的通信。
[0028]2、提前在本地缓存中对元数据和文件数据的操作进行预处理。找出可以互相抵消的操作序列。例如,实现创建一个临时文件,写入少量数据,又在不久后删除该文件。这种序列可以直接删除,无需再在元数据服务器和存储服务器上重放。
【专利附图】

【附图说明】
[0029]为了更清楚地说明本发明中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1为本发明的一种基于离线缓存文件操作集中记录预处理并重放的方法中,应用服务器将文件操作信息记录到本地的流程图;
[0031]图2为本发明的一种基于离线缓存文件操作集中记录预处理并重放的方法中,应用服务器对文件操作做预处理,删除并合并文件元数据相关操作和数据的流程图;
[0032]图3为本发明的一种基于离线缓存文件操作集中记录预处理并重放的方法中,应用服务器将预处理后的文件系统操作日志上传至元数据服务器重放的流程图。
【具体实施方式】
[0033]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。[0034]如附图1-3所示,一种基于离线缓存文件操作集中记录预处理并重放的方法,包括以下步骤:
[0035]A、应用服务器端将文件操作信息记录到本地;
[0036]B、应用服务器端对文件操作做预处理,删除并合并文件元数据相关操作和数据;
[0037]C、应用服务器端将预处理后的文件系统操作日志上传至元数据服务器重放,将文件内容数据按照元数据的指令上传到对应的存储服务器上。
[0038]步骤A具体包括:
[0039]Al、开辟缓存:在应用服务器端,开辟一个内核态缓存,用于记录所有针对临时文件的操作文件系统操作曰志,包括文件的创建、属性修改、文件内容的增删改查操作,同时开辟一块缓存存放数据缓存日志,用于记录被操作的文件内容;
[0040]A2、记录文件操作:所有文件操作相关的系统调用,在操作系统内核态,都先记录在本地缓存中,而非直接与元数据服务器、存储服务器通信,所有针对元数据的操作,记录在文件系统操作日志中;针对文件内容的操作,记录在数据缓存日志中。
[0041]步骤B具体包括:积累到一定记录后,应用服务器首先在内核态中,按照时间顺序预处理文件系统操作日志,找到其中可以抵销的操作,将其删除;找到可以合并的操作,将其合并;
[0042]步骤C具体包括:
[0043]Cl、预处理后的文件系统操作日志在元数据服务器上重放:将预处理后的文件元数据操作文件系统操作日志上传到元数据服务器,元数据服务器收到该日志后,将其在按照时间顺序重放,并完成日志中的操作;
[0044]C2、将预处理后的数据缓存日志上传到对应的存储服务器中:元数据完成文件系统操作日志的处理之后,应用服务器根据元数据服务器的指令,将预处理后的文件数据缓存日志分别上传给对应的存储服务器。
[0045]实施例1:优化包含大量临时文件操作的应用。
[0046]对于进行大量Word等Office文件编辑的文件系统挂载节点。为了保证互斥访问这些office文档,记录操作相关信息。Word会在要打开的文件所在文件夹中,仓Il建一个临时文件,在编辑文档的过程中,也会修改此临时文件,并在结束编辑后删除该文件。
[0047]使用本发明的一种基于离线缓存文件操作集中记录预处理并重放的方法,在文件系统的挂载节点(即一台文件系统的应用服务器上),使用该技术方案中的机制,能避免频繁与元数据、数据服务器的通信,降低网络开销,提升应用程序的性能。
[0048]实施例2:优化包含反复修改文件的属性或指定位置内容的应用。
[0049]在个人网盘等存储应用中,可能需要频繁的读写文件中的某一个指定部分,或者需要多次修改文件的属性等元数据信息。
[0050]将这些操纵都使用文件系统操作日志和数据缓存日志管理起来,并在上传到元数据做重放操作之前进行预处理,能帮助合并或者删除不必要的文件内容或者元数据操作,进而达到节省网络带宽的作用。
[0051]实施例3:优化小粒度持续追加类文件操作的性能。
[0052]对于一些权限要求单一的系统中,有很多场景需要持续小粒度对文件做打开,追力口,关闭操作,如应用程序的持续写日志操作。[0053]对于操作系统来说,为了更高效的将缓冲区的内容写入硬盘,一般采用页对齐的方式写入。若当前写入位置,不是页对齐的,且写入数据较小。若频繁拿的写入,关闭文件。则操作系统需要频繁的先做数据读取,补齐一个页大小,再增提写入,性能较低。
[0054]采用文件系统操作日志和数据缓存日志的离线缓存机制。可以在多次连续追加写入之后,将数据缓存日志中对应的内容预处理,合并这些缓存,减少数据补齐读取操作,提升性能。
[0055]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于离线缓存文件操作集中记录预处理并重放的方法,包括以下步骤: A、应用服务器端将文件操作信息记录到本地; B、应用服务器端对文件操作做预处理,删除并合并文件元数据相关操作和数据; C、应用服务器端将预处理后的文件系统操作日志上传至元数据服务器重放,将文件内容数据按照元数据的指令上传到对应的存储服务器上。
2.根据权利要求1所述的一种基于离线缓存文件操作集中记录预处理并重放的方法,其特征在于,所述步骤A具体包括: Al、开辟缓存:在应用服务器端,开辟一个内核态缓存,用于记录所有针对临时文件的操作文件系统操作日志,包括文件的创建、属性修改、文件内容的增删改查操作,同时开辟一块缓存存放数据缓存日志,用于记录被操作的文件内容; A2、记录文件操作:所有文件操作相关的系统调用,在操作系统内核态,都先记录在本地缓存中,而非直接与元数据服务器、存储服务器通信,所有针对元数据的操作,记录在文件系统操作日志中;针对文件内容的操作,记录在数据缓存日志中。
3.根据权利要求1所述的一种基于离线缓存文件操作集中记录预处理并重放的方法,其特征在于,所述步骤B具体包括:积累到一定记录后,应用服务器首先在内核态中,按照时间顺序预处理文件系统操作日志,找到其中可以抵销的操作,将其删除;找到可以合并的操作,将其合并;
4.根据权利要求1所述的一种基于离线缓存文件操作集中记录预处理并重放的方法,其特征在于,所述步骤C具体包括: Cl、预处理后的文件系统操作日志在元数据服务器上重放:将预处理后的文件元数据操作文件系统操作日志上传到元数据服务器,元数据服务器收到该日志后,将其在按照时间顺序重放,并完成日志中的操作; C2、将预处理后的数据缓存日志上传到对应的存储服务器中:元数据完成文件系统操作日志的处理之后,应用服务器根据元数据服务器的指令,将预处理后的文件数据缓存日志分别上传给对应的存储服务器。
【文档编号】H04L29/08GK103514258SQ201310344811
【公开日】2014年1月15日 申请日期:2013年8月9日 优先权日:2013年8月9日
【发明者】丁亚军 申请人:北京龙存科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1