基于MooseFS分布文件系统的挂载方法、客户端及系统的制作方法
【专利摘要】本发明提供了一种基于MooseFS分布文件系统的挂载方法、客户端及系统。该挂载方法包括:建立可与MooseFS分布文件系统挂载的在Windows界面下Dokan开源项目之上的挂载模块;挂载模块在挂载通道中响应Windows用户程序对挂载点的操作事件;挂载模块实行文件操作;挂载模块将响应结果反馈到所述Windows用户界面和所述MooseFS分布文件系统。应用本发明,可以解决在Windows界面下对MooseFS分布文件系统的不能挂载的问题,从而让Microsoft?Windows的用户便捷地体验到MooseFS所带来的数据存储上的优越性。
【专利说明】基于MooseFS分布文件系统的挂载方法、客户端及系统
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及分布式开源存储系统MooseFS的客户端挂载。【背景技术】
[0002]分布式开源存储系统MooseFS,简称MFS,是一种兼备容灾性、高可靠性、部署维护方便等特性的分布式数据存储。由于其简单易用,在全球范围内拥有大批的使用者。
[0003]但是,当前最新版的MooseFS-1.6.27,官方仅支持Linux的FUSE环境操作系统进行对主控服务器的目录挂载,当下主流的桌面操作系统一Microsoft Windows,则不能挂载MooseFS的服务器目录,Windows用户在直接挂载使用MooseFS的操作体验成为了不可能。例如,当前遥感云服务平台的主要用户群大多数为Windows操作系统用户,如此都不能便捷地体验到MooseFS所带来的数据存储上的优越性,因此,提供基于MooseFS分布文件系统的Windows挂载成为一亟待解决的技术问题。
【发明内容】
[0004]有鉴于此,本发明的目的就是提出一种基于MooseFS分布文件系统的Windows下的挂载方法。
[0005]本发明的另一目的就是提出一种基于MooseFS分布文件系统的Windows挂载客户端,即为 MooseFS Windows Client,简称 MWC。
[0006]本发明的又一目的就是提出一种基于MooseFS分布文件系统的Windows挂载系统。
[0007]为达到本发明的目的,本发明提供一种基于MooseFS分布文件系统的Windows挂载方法,该方法包括:
[0010]建立可与MooseFS分布文件系统挂载的在Windows界面下Dokan开源项目之上的挂载模块;
[0011]所述挂载模块在挂载通道中响应Windows用户程序对挂载点的操作事件;
[0012]所述挂载模块实行文件操作;
[0013]所述挂载模块将响应结果反馈到所述Windows用户界面和所述MooseFS分布文件系统。
[0014]所述的挂载模块为为基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合。
[0015]所述挂载模块在挂载通道中响应Windows用户程序对挂载点的操作事件为来自用户程序的文件操作请求。
[0016]所述来自用户程序的文件操作请求为用户程序请求创建目录、读取文件、写入文件。
[0017]所述挂载模块实行文件操作为创建目录、读取文件、写入文件。
[0018]所述挂载模块通过网络位置挂载的形式对MooseFS服务器集群上的数据进行直接挂载。
[0019]所述挂载模块直接挂载至本地驱动目录。
[0020]所述挂载模块的挂载操作在DOS环境下完成。
[0021]—种基于MooseFS分布文件系统的挂载客户端,其特征在于,所述客户端包括可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块,所述挂载模块为基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合。
[0022]所述基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合的接口逻辑的接口参数按照WinNT内核文件系统的文件系统操作API而定义。
[0023]所述基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合的文件系统函数体定义对MooseFS分布式文件系统的网络TCP/IP下的Socket通信协议链接。
[0024]所述客户端基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合的文件系统函数定义对所述MooseFS的MasterServer、ChunkServer服务器的数据读写指令以及文件数据流的传递功能。
[0025]—种基于MooseFS分布文件系统的挂载系统,其特征在于,所述挂载系统包括: 可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块;
Dokan库模块。
[0026]所述可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块为基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合。
[0027]所述Dokan库模块包括:
Dokan动态链接库模块;
Dokan内核驱动模块。
[0028]所述与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块建立在Dokan动态链接库模块之上。
[0029]所述Dokan库截取Windows用户程序的文件系统指令,并将指令参数传递至所述与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块文件系统。
[0030]所述与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块替代Windows内核完成对所述MooseFS服务器端的数据的文件操作。
[0031 ] 所述挂载模块替代Windows内核完成对所述MooseFS服务器端的数据的文件操作为创建目录、读取文件、写入文件。
[0032]所述可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块完成包括对MooseFS主控节点的Socket通信挂载功能。
[0033]所述可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块完成对MooseFS的文件系统指令操作请求命令发送功能。
【专利附图】
【附图说明】
图1为Linux下MooseFS的运行流程示意图。
[0034]图2为Windows Dokan文件系统响应流程示意图。
[0035]图3为本发明基于MooseFS分布文件系统的Windows系统下挂载方法流程示意图。[0036]图4为本发明MWC挂载模块内部结构图。
[0037]图5为本发明MWC-Dokan与mfsmount-fuse的体系对比图。
[0038]图6为本发明实施时MWC在Windows Donkan环境下运行流程及响应原理及响应
原理图。
[0039]图7为本发明挂载系统的模块结构图。
【具体实施方式】
[0040]为使本方面的目的、技术方案和技术效果更加清楚,下面将结合附图及具体实施例对本方面作进一步地详细描述。
[0041]现有分布式开源存储系统MooseFS,是一种兼备容灾性、高可靠性、部署维护方便等特性的分布式数据存储,当前最新版的MooseFS-1.6.27,官方仅支持Linux下FUSE的操作系统进行对主控服务器的目录挂载,图1为为Linux下MooseFS的运行流程示意图。参见图1,该流程包括:
[0042]步骤101, Linux用户通过Linux用户客户端(LinuxUser App)向运行在LinuxKernel模式下的Linux输入/输出子系统、,发出CreatFile、ReadFile、WriteFile等文件操作请求;步骤102,请求经由Linux Kernel内部通信调用Fuse用户空间函数;步骤103、步骤104,请求以Fuse方式通过mfsmout挂载模块的挂载通道向MooseFS发送文件操作请求;步骤105、106,MooseFS对文件操作请求作出处理后,处理结果作为用户请求的响应经由mfsmout挂载通道传到Fuse ;步骤107、步骤108,处理结果经由LinuxKernel内部通信、Linux输入/输出子系统反馈给Linux用户客户端(Linux User App)。
[0043]在Windows上没有Unix\Linux之类的Fuse,因此,Windows用户则不能直接挂载使用MooseFS,体验其存储上带来的优越性。在Windows系统上开发工作在内核模式的设备驱动程序是一件极为困难的事情。幸运的是,国外在Windows上已经出现了开源用户态文件系统一Dokan,通过Dokan库(Dokan Library),开发者可以非常方便地创建自己的文件系统而不需要编写设备驱动程序。Dokan库类似于Linux下的Fuse用户空间文件系统,但是它工作在Windows下。
[0044]Dokan库包含一个用户模式的动态链接库dokan.dll以及一个内核模式文件系统驱动dokan.sys ;Doakn文件系统驱动一旦安装,开发者就可以在Windows上创建和普通文件系统一样的文件系统;使用Dokan库创建的文件系统的应用程序称为文件系统应用程序。图2为Windows Dokan文件系统响应流程示意图,参见图2,该流程包括:
[0045]步骤201,Windows用户程序通过Windows User App向运行在内核模式的Windows输入/输出子系统,发出CreatFile、ReadFile、WriteFile等文件操作请求;步骤202,请求由内核通信通道被发送到Dokan文件系统驱动程序dokan.sys ;步骤203、步骤204, Dokan.sys调用Dokan用户模式的动态链接库dokan.dll提供的函数,创建文件系统应用程序FileSystem Application ;步骤205,文件系统应用程序File System Application向文件系统驱动程序dokan.dll注册回调函数;步骤206,文件系统驱动程序dokan.sys在收到请求后调用注册的回调函数例程来响应请求;步骤207、步骤208,函数例程的处理结果作为文件操作请求的响应经由Windows输入/输出子系统反馈给Windows User App。
[0046]例如,当Windows资源管理器请求创建一个目录,请求“OpenDirectory”将发送到Dokan文件系统驱动程序,然后驱动程序将调用文件系统应用程序提供的OpenDirectory回调函数例程;函数例程的处理结果作为OpenDirectory请求的响应返回给Windows资源浏览器;如此,Dokan文件系统驱动程序就如同一个位于用户程序和文件系统程序之间的代理程序。
[0047]图3为本发明基于MooseFS分布文件系统的Windows系统下挂载方法流程示意图。参见图3,该方法包括:
[0048]步骤301,建立可与MooseFS分布文件系统挂载的在Windows界面下Dokan开源项目之上的挂载模块,本步骤中的挂载模块,为基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合,关于该基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合,后续再进行详细描述;
[0049]步骤302,挂载模块在挂载通道中响应Windows用户程序对挂载点的操作事件,本步骤中的Windows用户对挂载点的操作事件来自用户程序的文件操作请求,包括用户程序请求创建目录、读取文件、写入文件等;
[0050]步骤303,挂载模块实行文件操作,本步骤中,挂载模块实行的文件操作包括创建目录、读取文件、写入文件等;
[0051]步骤304,载模块将响应结果反馈到所述Windows用户界面和所述MooseFS分布文件系统。
[0052]本发明挂载方法中的挂载模块直接通过网络挂载挂载至本地驱动目录,该挂载操作在DOS环境下完成:用户在dos窗口中进入mwc.exe所在目录,无参数启动程序,即可得到MWC的帮助文档;接着用户在dos窗口中执行挂载命令;然后用户在挂载的目录进行数据操作;完成操作后,用户在dos中以命令停止挂载。
[0053]图4为本发明MWC挂载模块内部结构图,该模块为基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合。参见图4,该模块定义了:
[0054]接口参数,为按照WinNT内核文件系统的文件系统操作API而定义的接口参数,现行为23个API ;
[0055]对MooseFS分布式文件系统的网络TCP/IP下的Socket通信协议链接;
[0056]对所述MooseFS的MasterServer、ChunkServer服务器的数据读写指令以及文件数据流的传递功能。
[0057]图5为为本发明的MWC-Dokan体系与mfsmount-fuse的体系对比图,参见图5,可见本发明的MWC在Dokan环境下所起的作用,类比与mfsmout在FUSE环境下所起的作用。
[0058]图6为本发明实施时MWC在Windows Donkan环境下运行流程及响应原理及响应原理图。参见图6,当用户经由Windows用户程序Windows User APP对挂载盘的虚拟目录文件进行文件读写操作时,具体实施例的步骤如下:
[0059]步骤601,用户经由Windows用户程序Windows UserAPP对挂载盘的虚拟目录文件进行文件读写操作时,操作请求被发送到运行在内核模式的Windows输入/输出子系统;
[0060]步骤602,系统内核将文件操作请求传递至Dokan库运行在内核的部分——Dokan.sys ;
[0061]步骤603、步骤604, Dokan.sys调用已注册在其中的Dokan.dll回调函数(MWCFile System中的操作实现);[0062]步骤605,被调用的MWC函数在用户态空间与MooseFS集群进行直接通信,完成客、服两端的数据读写;
[0063]步骤606、607,MooseFS对文件操作请求作出处理后,处理结果作为用户请求的响应经由MWC挂载通道反馈到Dokan库;
[0064]步骤608、步骤609, Dokan库经由内部通信将处理结果反馈到Widows Kernel ;
[0065]步骤610,处理结果经由Windows输入/输出子系统返回给Windows用户客户端Windows User App0
[0066]图7为本发明挂载系统的模块结构图。参见图7,可见该基于MooseFS分布文件系统的挂载系统包含有:
[0067]可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块MWC ;
[0068]Dokan库模块,Dokan库模块包括:Dokan动态链接库模块,Dokan内核驱动模块。
[0069]与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块MWC建立在Dokan动态链接库模块之上;
[0070]与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块MWC完成包括对MooseFS主控节点的Socket通信挂载功能;
[0071]与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块MWC完成对MooseFS的文件系统指令操作请求命令发送功能。
[0072]例如,当用户对文件系统进行文件操作时,
[0073]Dokan库截取Windows用户程序的文件系统指令(创建目录、读取文件、写入文件等),并将指令参数传递至所述与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块文件系统MWC ;
[0074]与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块MWC替代Windows内核完成对所述MooseFS服务器端的数据的文件操作;
[0075]挂载模块MWC替代Windows内核完成对MooseFS服务器端的数据的文件操作为创建目录、读取文件、写入文件。
[0076]以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于MooseFS分布文件系统的挂载方法,其特征在于,该方法包括: 建立可与MooseFS分布文件系统挂载的在Windows界面下Dokan开源项目之上的挂载模块; 所述挂载模块在挂载通道中响应Windows用户程序对挂载点的操作事件; 所述挂载模块实行文件操作; 所述挂载模块将响应结果反馈到所述Windows用户界面和所述MooseFS分布文件系统。
2.如权利要求1所述的基于MooseFS分布文件系统的挂载方法,其特征在于,所述的挂载模块为为基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合。
3.如权利要求1所述的基于MooseFS分布文件系统的挂载方法,其特征在于,所述来自用户程序的文件操作事件为用户程序请求创建目录、读取文件、写入文件;所述挂载模块实行文件操作为创建目录、读取文件、写入文件。
4.如权利要求1所述的基于MooseFS分布文件系统的挂载方法,其特征在于,所述挂载模块通过网络位置挂载的形式对MooseFS服务器集群上的数据进行直接挂载。
5.一种基于MooseFS分布文件系统的挂载客户端,其特征在于,所述客户端包括可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块,所述挂载模块为基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合;所述基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合的接口逻辑的接口参数按照WinNT内核文件系统的文件系统操作API而定义;所述基于Windows文件系统API接口重写的MooseFS文件操作接 口逻辑集合的文件系统函数体定义对MooseFS分布式文件系统的网络TCP/IP下的Socket通信协议链接;所述客户端基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合的文件系统函数定义对所述MooseFS的MasterServer、ChunkServer服务器的数据读写指令以及文件数据流的传递功能。
6.一种基于MooseFS分布文件系统的挂载系统,其特征在于,所述挂载系统包括: 可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块; Dokan库模块,所述Dokan库模块包括有Dokan动态链接库模块和Dokan内核驱动模块。
7.如权利要求6所述的基于MooseFS分布文件系统的挂载系统,其特征在于,所述可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块为基于Windows文件系统API接口重写的MooseFS文件操作接口逻辑集合。
8.如权利要求6所述的基于MooseFS分布文件系统的挂载系统,其特征在于,所述与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块建立在Dokan动态链接库模块之上。
9.如权利要求6至8任一所述的基于MooseFS分布文件系统的挂载系统,其特征在于,所述Dokan库截取Windows用户程序的文件系统指令,并将指令参数传递至所述与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块文件系统;所述与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块替代Windows内核完成对所述MooseFS服务器端的数据的文件操作;所述可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块完成包括对MooseFS主控节点的Socket通信挂载功能;所述可与MooseFS分布文件系统挂载的基于Windows界面下的挂载模块完成对MooseFS的文件系统指令操作请求命令发送功能。
10.如权利要求9所述的基于MooseFS分布文件系统的挂载系统,其特征在于,所述挂载模块替代Windows内核完成对所述MooseFS服务器端的数据的文件操作为创建目录、读取文件、写入文件。
【文档编号】H04L29/08GK103747064SQ201310737988
【公开日】2014年4月23日 申请日期:2013年12月26日 优先权日:2013年12月26日
【发明者】钟其续, 萧畅成, 范海生, 任伏虎, 王晋年, 黄井优 申请人:广东中科遥感技术有限公司