分布式文件系统的制作方法

文档序号:17286813发布日期:2019-04-03 03:37阅读:175来源:国知局
分布式文件系统的制作方法

本发明涉及计算机技术领域,尤其涉及一种分布式文件系统。



背景技术:

计算机通过文件系统管理、存储数据,而信息爆炸时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,在容量大小、容量增长速度、数据备份、数据安全等方面的表现都差强人意。分布式文件系统(distributedfilesystem)由于支持分布式部署,且能够提供应用程序编程接口(api)供应用透明访问,可以有效解决数据的存储和管理难题,克服海量文件存取时大规模高并发访问时产生的磁盘i/o性能瓶颈。分布式文件系统将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。

常见的开源的分布式文件系统中,有的分布式文件系统支持可移植操作系统(posix)接口的,但不满足电信计费业务使用场景等以小文件居多且需要支持追加写入的应用场景,例如hdfs,有的分布式文件系统满足以小文件居多且需要支持追加写入的要求,但不支持posix接口,例如fsatdfs,需要提供同时满足以小文件居多且需要支持追加写入的应用场景及支持posix接口的分布式文件系统。

另外,对于分布式文件系统来说,往往涉及到诸多的访问用户,基于数据安全的考量,需要针对访问用户进行用户及权限管理以进行数据隔离,并且其实现方案需要与现行的linux下的用户及权限管理机制尽量一致,以降低用户的学习成本。



技术实现要素:

本发明的目的在于提供一种分布式文件系统,能够在满足以小文件居多且需要支持追加写入的应用场景的基础上,提供高效的posix接口。

为实现上述目的,本发明提供一种分布式文件系统,包括fastdfs模块及redis集群;

所述fastdfs模块包括与redis集群连接的客户端、与客户端连接的第一追踪器以及与客户端及第一追踪器均连接的多个存储器组;每一存储器组均包括多个相连接的存储器;

进行文件写入时,所述客户端接收写入文件并向第一追踪器传输写入请求,所述第一追踪器在接收到写入请求后选定一存储器组中的一个存储器并产生与其选定的存储器对应的选择结果至客户端,客户端依据选择结果将文件存入第一追踪器选定的存储器中,第一追踪器选定的存储器生成与其自身以及写入文件均对应的文件编码,客户端获取该文件编码并在redis集群中存储一文件属性,所述文件属性包括与写入文件对应的文件编码及写入文件的文件名称;

进行文件下载时,所述客户端依据下载文件的文件名称访问redis集群中存储的文件属性,获取与下载文件的文件名称位于同一文件属性内的文件编码,依据获取到的文件编码对与该文件编码对应的存储器中存储的对应文件进行下载。

所述客户端在redis集群中存储文件属性的同时存储与写入文件的文件名称对应的目录列表信息。

进行文件下载时,所述客户端依据待操作文件的目录列表信息访问redis集群中存储的目录列表信息获取与待操作文件的目录列表信息对应的待操作文件的文件名称。

所述第一追踪器在接收到写入请求后选定多个存储器组中剩余容量最多的一个中的一存储器。

所述文件属性还包括可操作用户组id、可操作用户id以及与每一可操作用户id对应的权限操作内容;

所述客户端接收当前用户提供的文件名称、待操作内容、当前用户的用户组id、当前用户的用户id时,访问redis集群中存储的文件属性,判断当前用户的用户组id是否为与当前用户提供的文件名称位于同一文件属性内的可操作用户组id,若否则拒绝用户操作,若是则判断当前用户的用户id是否为与当前用户提供的文件名称位于同一文件属性内的可操作用户id,若否则拒绝用户操作,若是则判断待操作内容是否与当前用提供的文件名称所在的文件属性内当前用户的用户id对应的权限操作内容一致,若否则拒绝用户操作,若是则所述客户端获取与当前用户提供的文件名称位于同一文件属性内的文件编码,依据获取到的文件编码查找与该文件编码对应的存储器中存储的对应文件作为待操作文件,允许当前用户对该待操作文件进行与待操作内容一致的操作。

所述权限操作行为为读操作、写操作及执行操作中的一种,当前用户提供的操作行为为读操作、写操作及执行操作中的一种。

所述fastdfs模块还包括第二追踪器,多个存储器组均与第二追踪器连接。

所述分布式文件系统还包括前台模块;所述前台模块包括可视化前台、与可视化前台连接的数据库管理单元,所述数据管理单元经采集接口与第二追踪器连接,所述数据管理单元与redis集群连接;

所述可视化前台接收到文件属性修改指令后将文件属性修改指令传输至数据管理单元,所述数据管理单元依据文件属性修改指令对redis集群中存储的相应的文件属性进行修改;

所述可视化前台接收到目录列表信息修改指令后将目录列表信息修改指令传输至数据管理单元,所述数据管理单元依据目录列表信息修改指令对redis集群中存储的相应的目录列表信息进行修改;

所述可视化前台接收到监控指令后将监控指令传输至数据管理单元,所述数据管理单元接收到监控指令后通过第二追踪器对多个存储器组进行监控获取监控结果并传输至可视化前台,由可视化前台对监控结果进行可视化显示。

所述redis集群包括多个相连接的redis单元。

所述文件编码为采用base进行编码的数据编码。

本发明的有益效果:本发明的分布式文件系统在fastdfs模块的基础上增加了redis集群,fastdfs模块的客户端获取写入文件对应的文件编码,在redis集群中存储一文件属性,文件属性包括与写入文件对应的文件编码及写入文件的文件名称,从而在进行文件下载时,客户端依据下载文件的文件名称访问redis集群中存储的文件属性,获取与下载文件的文件名称位于同一文件属性内的文件编码,依据获取到的文件编码对与该文件编码对应的存储器中存储的对应文件进行下载,利用fastdfs模块满足以小文件居多且需要支持追加写入的应用场景的同时,利用redis集群实现高效的类posix接口,提升系统的性能。

附图说明

为了能更进一步了解本发明的特征以及技术内容,请参阅以下有关本发明的详细说明与附图,然而附图仅提供参考与说明用,并非用来对本发明加以限制。

附图中,

图1为本发明的分布式文件系统的结构示意图。

具体实施方式

为更进一步阐述本发明所采取的技术手段及其效果,以下结合本发明的优选实施例及其附图进行详细描述。

请参阅图1,本发明提供一种分布式文件系统,包括fastdfs模块10及redis集群20。

所述fastdfs模块10包括与redis集群20连接的客户端11、与客户端11连接的第一追踪器12以及与客户端11及第一追踪器12均连接的多个存储器组13。每一存储器组13均包括多个相连接的存储器131。

进行文件写入时,所述客户端11接收写入文件并向第一追踪器12传输写入请求,所述第一追踪器12在接收到写入请求后选定一存储器组13中的一个存储器131并产生与其选定的存储器131对应的选择结果至客户端11,客户端11依据选择结果将文件存入第一追踪器12选定的存储器131中,第一追踪器12选定的存储器131生成与其自身以及写入文件均对应的文件编码,客户端11获取该文件编码并在redis集群20中存储一文件属性,所述文件属性包括与写入文件对应的文件编码及写入文件的文件名称。进行文件下载时,所述客户端11依据下载文件的文件名称访问redis集群20中存储的文件属性,获取与下载文件的文件名称位于同一文件属性内的文件编码,依据获取到的文件编码对与该文件编码对应的存储器13中存储的对应文件进行下载。从而,实现利用redis集群20对fastdfs模块10的二次封装,使得本发明的分布式文件系统具有类posix接口,同时fastdfs模块10能够满足以小文件居多且需要支持追加写入的应用场景,从而提升本发明的分布式文件系统的性能。

具体地,所述redis集群20包括多个相连接的redis单元21。

具体地,所述文件编码为采用base64进行编码的数据编码。

具体地,所述客户端11在redis集群20中存储文件属性的同时存储与写入文件的文件名称对应的目录列表信息。进行文件下载时,所述客户端11依据待操作文件的目录列表信息访问redis集群20中存储的目录列表信息获取与待操作文件的目录列表信息对应的待操作文件的文件名称。从而本发明的分布式文件系统支持利用目录来下载文件。

具体地,所述第一追踪器12在接收到写入请求后选定多个存储器组13中剩余容量最多的一个中的一存储器131。

具体地,所述文件属性还包括可操作用户组id、可操作用户id以及与每一可操作用户id对应的权限操作内容。所述客户端11接收当前用户提供的文件名称、待操作内容、当前用户的用户组id、当前用户的用户id时,访问redis集群20中存储的文件属性,判断当前用户的用户组id是否为与当前用户提供的文件名称位于同一文件属性内的可操作用户组id,若否则拒绝用户操作,若是则判断当前用户的用户id是否为与当前用户提供的文件名称位于同一文件属性内的可操作用户id,若否则拒绝用户操作,若是则判断待操作内容是否与当前用提供的文件名称所在的文件属性内当前用户的用户id对应的权限操作内容一致,若否则拒绝用户操作,若是则所述客户端11获取与当前用户提供的文件名称位于同一文件属性内的文件编码,依据获取到的文件编码查找与该文件编码对应的存储器13中存储的对应文件作为待操作文件,允许当前用户对该待操作文件进行与待操作内容一致的操作,从而实现用户的权限管理。

进一步地,所述权限操作行为为读操作、写操作及执行操作中的一种,当前用户提供的操作行为为读操作、写操作及执行操作中的一种。

具体地,所述文件属性还包括写入文件的文件大小、创建时间、更新时间。

具体地,所述客户端11与分布式文件系统外部的业务系统9连接,由业务系统9向客户端11传输当前用户提供的文件名称、待操作内容、当前用户的用户组id、当前用户的用户id。

具体地,所述fastdfs模块10还包括第二追踪器14,多个存储器组13均与第二追踪器14连接。所述分布式文件系统还包括前台模块30。所述前台模块30包括可视化前台31、与可视化前台31连接的数据库管理单元32,所述数据管理单元32经采集接口33与第二追踪器14连接,所述数据管理单元32与redis集群20连接。所述可视化前台31接收到文件属性修改指令后将文件属性修改指令传输至数据管理单元32,所述数据管理单元32依据文件属性修改指令对redis集群20中存储的相应的文件属性进行修改,从而利用前台模块30实现对redis集群20中的文件属性进行修改。所述可视化前台31接收到目录列表信息修改指令后将目录列表信息修改指令传输至数据管理单元32,所述数据管理单元32依据目录列表信息修改指令对redis集群20中存储的相应的目录列表信息进行修改,从而利用前台模块30实现对redis集群20中存储的目录列表信息进行包括增加、删除在内的修改。所述可视化前台31接收到监控指令后将监控指令传输至数据管理单元32,所述数据管理单元32接收到监控指令后通过第二追踪器14对多个存储器组13进行监控获取监控结果并传输至可视化前台31,由可视化前台31对监控结果进行可视化显示,该监控结果可以为多个存储器组13的性能参数、客户端11向多个存储器组13进行写入及下载时的流量数据、各个存储器组13的容量数据以及多个存储器组13中存储内容的部署拓扑图。

进一步地,所述数据管理单元32通过一监控接口34与分布式文件系统外部的监控系统8进行连接,该监控系统8还连接可视化前台31,用于对分布式文件系统的工作状态进行监控。

需要说明的是,本发明的分布式文件系统在fastdfs模块的基础上增加了redis集群,fastdfs模块的客户端获取写入文件存入的存储器生成的与写入文件及该存储器均对应的文件编码,在redis集群中存储一文件属性,文件属性包括与写入文件对应的文件编码及写入文件的文件名称,从而在进行文件下载时,客户端依据下载文件的文件名称访问redis集群中存储的文件属性,获取与下载文件的文件名称位于同一文件属性内的文件编码,依据获取到的文件编码对与该文件编码对应的存储器中存储的对应文件进行下载,利用redis集群对fastdfs模块进行二次封装,使得本发明的分布式文件系统实现类posix接口,同时fastdfs模块也能够满足包括电信业务场景在内的以小文件居多且需要支持追加写入的应用场景,提升系统的性能。同时,还利用redis集群存储进行权限验证的相关信息,当用户通过客户端访问本发明的分布式文件系统中,对用户的权限进行验证,在用户具有与其操作动作相应的权限时才允许用户进行操作,能够实现用户的权限管理以达到数据隔离的目的。

综上所述,本发明的分布式文件系统在fastdfs模块的基础上增加了redis集群,fastdfs模块的客户端获取写入文件对应的文件编码,在redis集群中存储一文件属性,文件属性包括与写入文件对应的文件编码及写入文件的文件名称,从而在进行文件下载时,客户端依据下载文件的文件名称访问redis集群中存储的文件属性,获取与下载文件的文件名称位于同一文件属性内的文件编码,依据获取到的文件编码对与该文件编码对应的存储器中存储的对应文件进行下载,利用fastdfs模块满足以小文件居多且需要支持追加写入的应用场景的同时,利用redis集群实现高效的类posix接口,提升系统的性能。

以上所述,对于本领域的普通技术人员来说,可以根据本发明的技术方案和技术构思作出其他各种相应的改变和变形,而所有这些改变和变形都应属于本发明权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1