一种网络文件系统中服务器写数据的方法

文档序号:6385176阅读:490来源:国知局
专利名称:一种网络文件系统中服务器写数据的方法
—种网络文件系统中服务器写数据的方法技术领域
本申请涉及计算机网络技术领域,尤其涉及一种网络文件系统(NFS, Network File System)中服务器写数据的方法。
背景技术
网络文件系统(NFS,Network File System)允许一个计算机系统在网络上与其他 用户共享目录和文件。NFS至少包括两个主要部分一台服务器和一台(或者更多)客户端。 一台服务器共享目录(提供NFS服务),客户端可将服务器上的共享目录挂载到本地,从而 共享信息。客户端通过远程过程调用(RPC)服务获得服务器的提供NFS的端口,并与服务 器建立连接。通过使用NFS,本地用户或程序可以像访问本地文件一样访问位于网络远端其 他计算机系统上的文件。
NFS提供同步写和异步写两种文件写入模式。
如果客户端处于同步写模式,客户端的写数据立即提交到服务器缓存,同时数据 也写入本地缓存。服务器如果是同步写模式,则立即将缓存中的数据写入磁盘,在服务器将 数据写入磁盘后,向客户端返回写入成功的信息,客户端才能进行下一次的写数据。服务器 端如果是异步写模式,则不立即将缓存数据写入磁盘,而是在随后某时间将数据写入磁盘 (写入数据的时机是由服务器系统的Pdflush进程完成的,pdflush进程是为了将脏数据写 回的工作进程),但服务器迅速向客户端返回写入成功的信息,客户端可以继续下一次的写 数据。
如果客户端处于异步写模式,客户端的写数据写入本地缓存,在本地缓存需要强 行输出(flush)的时候由客户端的pdflush系统进程将数据写入到服务器的缓存。服务器 如果是同步写模式,则立即将缓存中的数据写入磁盘,在服务器将数据写入磁盘后,向客户 端返回写入成功的信息,客户端才能进行下一次的写数据。服务器端如果是异步写模式, 则不立即将缓存数据写入磁盘,而是在随后某时间将缓存中的数据写入磁盘(写入数据的 时机是由服务器系统的pdflush进程完成的,pdflush进程是为了将脏数据写回的工作进 程),但服务器迅速向客户端返回写入成功的信息,客户端可以继续下一次的写数据。
现有技术中,NFS需要配置服务器是同步写还是异步写时,只能配置一种模式,配 置完成后NFS服务端对所有的文件写数据都是按照同一种模式写数据,比如配置为同步 写,所有的文件都同步写,配置异步写,所有的文件都采用异步写,不能实现某些文件同步 写,同时对另外一些文件异步写的需求。例如,客户业务中会有多种类型的文件,有些文件 存放关键数据(比如元数据),有的文件只是存放一般数据,这种情况下,希望关键数据可以 同步存放到磁盘,一般数据文件就异步写。发明内容
本申请提供了一种NFS中服务器写数据的方法,可以实现在服务器端实现某些文 件同步写,同时对另外一些文件异步写。
本申请实施例提供的一种NFS中写数据的方法,包括
在服务器创建文件时,如果该文件需要执行同步写,在文件名称加上第一后缀;如 果该文件需要执行异步写,在文件名称加上第二后缀;
若服务器设置为异步写,服务器执行写操作前,判断所要写的文件的文件名是否 含有第一后缀,若是,对该文件执行同步写操作,否则对该文件执行异步写操作;或者,若服 务器设置为同步写,服务器执行写操作前,判断所要写的文件的文件名是否含有第二后缀, 若是,对该文件执行异步写操作,否则对该文件执行同步写操作。
较佳地,所述第一后缀为S”。
较佳地,所述第二后缀为a”。
较佳地,所述同步写操作为服务器立即将缓存中的数据写入磁盘,在服务器将数 据写入磁盘后,向客户端返回写入成功的信息。
较佳地,所述异步写操作为服务器立即向客户端返回写入成功的信息,并在随后 由pdflush进程将缓存中的数据写入磁盘。
从以上技术方案可以看出,通过在文件名加上特殊后缀的方式区别对文件执行同 步写还是异步写,可以根据需要实现某些指定的文件在NFS服务器同步写磁盘,某些文件 异步写磁盘。


图1为本申请提出的NFS中服务器写数据的方法流程图。
具体实施方式
根据NFS服务器写文件的特点,本申请提出一种根据文件名称区分文件是异步写 还是同步写方法,本方法可以根据需要实现某些指定的文件在NFS服务器同步写磁盘,某 些文件异步写磁盘。
本申请提出的NFS中服务器写数据的方法流程如图1所示,包括如下步骤
步骤101 :在服务器创建文件时,如果该文件需要执行同步写,在文件名称加上第 一后缀;如果该文件需要执行异步写,在文件名称加上第二后缀;
步骤102 :若服务器设置为异步写,服务器执行写操作前,判断所要写的文件的文 件名是否含有第一后缀,若是,对该文件执行同步写操作,否则对该文件执行异步写操作; 或者,若服务器设置为同步写,服务器执行写操作前,判断所要写的文件的文件名是否含有 第二后缀,若是,对该文件执行异步写操作,否则对该文件执行同步写操作。
为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实 施例对本申请技术方案进行详细阐述。
在创建文件时,根据需求,该文件是需要同步写,还是异步写,如果同步写,在文件 名称加上后缀S”,举例“file, s”,如果需要异步写,文件名称加上后缀a”(不区分大小 写),例如 “file, a,,。
如果NFS服务器设置为异步写,则服务器每次执行写请求的时候,都会根据该文 件名称后缀判断该文件是否需要执行同步写,如果该文件的后缀名称是s” (不区分大小 写),NFS执行写操作的时候,就在调用系统vfs层写函数vfs_writev时,在这个函数中加上同步写标示(0_SYNC),执行同步写操作,否则执行异步写。
如果NFS服务器设置为同步写,服务程序每次执行写请求时候,如果文件后缀 为” .a”,NFS执行写文件数据时候,去除写文件的0_SYNC标识,使该文件执行异步写操作, 否则执行同步写。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,凡在 本申请技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申 请保护的范围之内。
权利要求
1.一种网络文件系统NFS中写数据的方法,其特征在于,包括在服务器创建文件时,如果该文件需要执行同步写,在文件名称加上第一后缀;如果该文件需要执行异步写,在文件名称加上第二后缀;若服务器设置为异步写,服务器执行写操作前,判断所要写的文件的文件名是否含有第一后缀,若是,对该文件执行同步写操作,否则对该文件执行异步写操作;或者,若服务器设置为同步写,服务器执行写操作前,判断所要写的文件的文件名是否含有第二后缀,若是,对该文件执行异步写操作,否则对该文件执行同步写操作。
2.根据权利要求1所述的方法,其特征在于,所述第一后缀为S”。
3.根据权利要求1所述的方法,其特征在于,所述第二后缀为a”。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述同步写操作为服务器立即将缓存中的数据写入磁盘,在服务器将数据写入磁盘后,向客户端返回写入成功的信息。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述异步写操作为服务器立即向客户端返回写入成功的信息,并在随后由Pdflush进程将缓存中的数据写入磁盘。
全文摘要
本申请公开了一种网络文件系统(NFS)中写数据的方法,包括在服务器创建文件时,如果该文件需要执行同步写,在文件名称加上第一后缀;如果该文件需要执行异步写,在文件名称加上第二后缀;若服务器设置为异步写,服务器执行写操作前,判断所要写的文件的文件名是否含有第一后缀,若是,对该文件执行同步写操作,否则对该文件执行异步写操作;或者,若服务器设置为同步写,服务器执行写操作前,判断所要写的文件的文件名是否含有第二后缀,若是,对该文件执行异步写操作,否则对该文件执行同步写操作。通过应用本申请技术方案,可以实现在服务器端实现某些文件同步写,同时对另外一些文件异步写。
文档编号G06F17/30GK103064929SQ20121056438
公开日2013年4月24日 申请日期2012年12月24日 优先权日2012年12月24日
发明者金振成 申请人:创新科存储技术(深圳)有限公司, 创新科软件技术(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1