CN107870734A - 一种分布式文件系统的交互方法及装置 - Google Patents
一种分布式文件系统的交互方法及装置 Download PDFInfo
- Publication number
- CN107870734A CN107870734A CN201610855670.0A CN201610855670A CN107870734A CN 107870734 A CN107870734 A CN 107870734A CN 201610855670 A CN201610855670 A CN 201610855670A CN 107870734 A CN107870734 A CN 107870734A
- Authority
- CN
- China
- Prior art keywords
- user
- subdirectory
- client
- root
- operation requests
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本发明实施例公开了一种分布式文件系统的交互方法及装置,涉及计算机信息技术领域,能够提升分布式文件系统在访问过程中的用户数据的安全性。本发明包括:在所述分布式文件系统的后端存储卷的根目录下,创建用户对应的子目录;根据所述操作请求,判断是否访问根目录,所述操作请求由所述用户操作的用户终端上运行的客户端发出;若是,则将所述操作请求转换为所述用户对应子目录的访问请求,接收根据所述访问请求访问所述后端存储卷后得到的访问结果。本发明适用于多用户对于分布式文件系统的交互管理。
Description
技术领域
本发明涉及计算机信息技术领域,尤其涉及一种分布式文件系统的交互方法及装置。
背景技术
目前,分布式文件系统被广泛应用在云存储领域中,用户可以通过访问公共分布式文件存储资源池的方式,来访问分布式文件系统。且由于分布式文件系统在云计算,云存储领域的应用不断扩大,势必也需要进行用户隔离,并在用户隔离的基础上进行容量配额,从而实现对存储容量的合理控制,提高整个存储池空间的利用效率和管理,维护的方便性。
在现有的公共分布式文件存储资源池中,虽然应用了按照目录权限管理的用户隔离方式,可是用户虽然不能访问其他用户的目录,却仍然能够看到整个存储池内的所有用户信息,在私密性上存在缺陷。特别是在应用规模越来越大的公有云方面,目前的用户隔离方式难以保障用户数据的私密性。而现有方案在私密性上存在的缺陷,导致了用户数据在被访问的过程中安全性的降低。
发明内容
本发明的实施例提供一种分布式文件系统的交互方法及装置,能够提升分布式文件系统在访问过程中的用户数据的安全性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供的方法,包括:在所述分布式文件系统的后端存储卷的根目录下,创建用户对应的子目录;根据所述操作请求,判断是否访问根目录,所述操作请求由所述用户操作的用户终端上运行的客户端发出;若是,则将所述操作请求转换为所述用户对应子目录的访问请求,接收根据所述访问请求访问所述后端存储卷后得到的访问结果。
结合第一方面,在第一方面的第一种可能的实现方式中,还包括:在通过挂载命令挂载至所述后端存储卷时,所述分布式文件系统的挂载点接收所述客户端传入的待挂载的用户名,并记录所述用户名。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述操作请求,判断是否访问根目录,包括:所述分布式文件系统运行客户端的守护进程,并接收从内核传递的所述操作请求;检测发出所述操作请求用户的用户名是否被记录,若是则检测所述操作请求是否为挂载节点的根目录的访问请求。
结合第一方面,在第一方面的第三种可能的实现方式中,还包括:在将所述操作请求转换为所述用户对应子目录的访问请求后,将所述访问请求缓存在内存中;当接收到所述客户端再次发出的操作请求,且所述客户端再次发出的操作请求用于访问所述根目录时,调用所述访问请求。
结合第一方面,在第一方面的第四种可能的实现方式中,还包括:根据管理员客户端发出的创建命令,创建所述用户对应的子目录,并设置所述用户的权限和存储配额数值,所述管理员客户端对应于所述根目录,所述根目录下的各个用户的子目录对于所述管理员客户端为可见状态;在创建所述用户对应的子目录之后,根据所述客户端发出的挂载请求,依照所述用户用户名挂载至所述后端存储卷。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:将所记录的用户名,转换为各个用户名相应的随机字符串;通过转换得到的随机字符串,分别替换所述根目录和各个子目录中的相应的用户名。
结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,还包括:接收所述客户端发送的查询请求,并根据所述查询请求确定用户名;根据所确定的用户名获取子目录,并将所获取的子目录发送至所述后端存储卷的存储节点;在所述后端存储卷的存储节点中,查询所获取的子目录的扩展属性,并得到所获取的子目录在所述后端存储卷的存储节点上的空间使用情况;根据在所述后端存储卷的存储节点上的空间使用情况、所述分布式文件系统的部署方式和所获取的子目录的用户的存储配额数值,获取所获取的子目录的空间占用情况,并将所述子目录的空间占用情况向所述客户端发送。
第二方面,本发明的实施例提供的装置,包括:目录管理模块,用于在所述分布式文件系统的后端存储卷的根目录下,创建用户对应的子目录;转换模块,用于根据所述操作请求,判断是否访问根目录;若是,则将所述操作请求转换为所述用户对应子目录的访问请求;数据提取模块,用于接收根据所述访问请求访问所述后端存储卷后得到的访问结果,所述操作请求由所述用户操作的用户终端上运行的客户端发出。
结合第二方面,在第二方面的第一种可能的实现方式中,所述转换模块,还用于在通过挂载命令挂载至所述后端存储卷时,所述分布式文件系统的挂载点接收所述客户端传入的待挂载的用户名,并记录所述用户名;并检测发出所述操作请求用户的用户名是否被记录,若是则检测所述操作请求是否为挂载节点的根目录的访问请求,其中,所述分布式文件系统运行客户端的守护进程,并接收从内核传递的所述操作请求。
结合第二方面,在第二方面的第二种可能的实现方式中,还包括:
缓存管理模块,用于在将所述操作请求转换为所述用户对应子目录的访问请求后,将所述访问请求缓存在内存中;当接收到所述客户端再次发出的操作请求,且所述客户端再次发出的操作请求用于访问所述根目录时,调用所述访问请求;
所述目录管理模块,还用于根据管理员客户端发出的创建命令,创建所述用户对应的子目录,并设置所述用户的权限和存储配额数值;并在创建所述用户对应的子目录之后,根据所述客户端发出的挂载请求,依照所述用户用户名挂载至所述后端存储卷,其中,所述管理员客户端对应于所述根目录,所述根目录下的各个用户的子目录对于所述管理员客户端为可见状态;
所述目录管理模块,还用于将所记录的用户名,转换为各个用户名相应的随机字符串;并通过转换得到的随机字符串,分别替换所述根目录和各个子目录中的相应的用户名;
所述装置还包括:访问管理模块,用于接收所述客户端发送的查询请求,并根据所述查询请求确定用户名;并根据所确定的用户名获取子目录,并将所获取的子目录发送至所述后端存储卷的存储节点;
在所述后端存储卷的存储节点中,查询所获取的子目录的扩展属性,并得到所获取的子目录在所述后端存储卷的存储节点上的空间使用情况;并根据在所述后端存储卷的存储节点上的空间使用情况、所述分布式文件系统的部署方式和所获取的子目录的用户的存储配额数值,获取所获取的子目录的空间占用情况,并将所述子目录的空间占用情况向所述客户端发送。
本发明实施例提供的分布式文件系统的交互方法及装置,通过将用户设备的客户端发出的用于实际访问根目录的操作请求转换为该用户对应的专有的子目录的访问请求,再传递给分布式文件系统后端存储卷,后端存储卷不必再读取完整的根目录的内容,而是读取用户的子目录的内容返回给用户的客户端。从而实现了不同用户之间的存储内容相互隔离,提升分布式文件系统在访问过程中的用户数据的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种分布式系统的系统架构示意图;
图2为本发明实施例提供的一种分布式文件系统的交互方法的流程示意图;
图3为本发明实施例提供的一种具体实例的流程示意图;
图4、5为本发明实施例提供的分布式文件系统的交互装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本实施例中的方法流程,具体可以执行在一种如图1所示的分布式文件系统上(Distributed File Systems),其中,分布式文件系统,具体可以是基于客户机/服务器模式设计的文件系统,分布式文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。本实施例中所述的分布式文件系统的具体类型并不限定,可以是NFS(Network File System,网络文件系统)、Andrew系统或者KASS系统(KASSFile System)等。其中,分布式文件系统中所述的服务器可以是一台服务器设备,也可以是是由多个服务器组成的一种用于数据处理的服务器集群系统。
用户可以通过操作用户终端向分布式文件系统发送访问请求,以便于分布式文件系统的交互后端存储卷中存储的数据。其中,用户终端具体可以实做成单独一台装置,或整合于各种不同的智能终端中,诸如移动工作站、个人电脑、智能手机、平板电脑(TabletPersonal Computer)等。在用户终端上运行客户端,客户端用于用户操作用户终端与分布式文件系统之间的进行数据交互。并由用户终端上所运行的客户端,执行客户端进程。在分布式文件系统上运行客户端的守护进程,守护进程用于监听由客户端进程发出的请求消息,比如访问请求。
本发明实施例提供一种分布式文件系统的交互方法,如图2所示,包括:
S1、在所述分布式文件系统的后端存储卷的根目录下,创建用户对应的子目录。
其中,后端存储卷具体包括分布式文件系统中的多个存储数据的物理设备,例如:实际存储数据的物理设备,可以是磁盘,或多块磁盘组成的集群,比如:位于多个数据服务器或磁盘阵列的磁盘,比如由2台以上的数据服务器组成的数据服务器集群等。具体的,可以将一个或多个相连的存储设备的集群划分为后端存储卷的一个存储节点,也可以将存储设备中指定容量的存储资源划分为后端存储卷的一个存储节点。
在本实施例中,在分布式文件系统的mount点上布置根目录,子目录具体可以是在后端存储卷创建的用户专有目录,一个用户的用户专有目录与另一个用户的用户专有目录相互隔离,一个用户的用户专有目录对于另一个用户不可见,分布式文件系统将后端存储卷中存储了属于一个用户的数据的存储资源关联至同一个子目录下,比如:若通过用户名标识数据,则具有相同的用户名的数据所在的存储地址关联至同一个子目录下。例如:管理员用户具有创建/删除用户专有目录等管理功能,由管理员用户在普通用户使用前创建用户专有的子目录,其中管理员用户可以访问整个后端存储卷中根目录下的存储资源(其中,根目录下的存储资源也可称为存储池),以及访问存储池中的所有目录。或者,可以在共享模式下由具备开启共享模式的功能的用户,比如:用户具有预设令牌,所述预设令牌用于开启共享模式,可以访问整个后端存储卷中根目录下的存储资源,以及访问存储池中的所有目录。
其中,管理员用户信息以及共享/用户模式信息,存储在分布式文件系统的后端存储卷中的各存储节点的根目录的扩展属性中,以便于管理员用户能够直接访问后端存储卷中的各存储节点;对于普通用户的客户端,则无法直接访问后端存储卷中的各存储节点,而是需要通过客户端进程将操作请求转换为对于用户的子目录的访问请求,在访问请求由用户终端发送至分布式文件系统后由后端存储卷从各存储节点提取子目录下的内容再反馈,避免了普通用户的客户端对于后端存储卷中的各存储节点的直接操作,避免了普通用户中的恶意用户的操作行为,提高了操作过程中的安全性。
且由于管理员用户信息以及共享/用户模式信息,存储在后端存储卷中的各存储节点的根目录的扩展属性中,即使整个集群(后端存储卷中的多个存储节点组成的集群)重启后,依然能够保持原有管理员信息和共享模式信息,缓减了管理员用户信息以及共享/用户模式信息容易丢失的问题,从而提高了系统的可靠性。
S2、根据所述操作请求,判断是否访问根目录。
其中,所述操作请求由所述用户操作的用户终端上运行的客户端发出。
在本实施例中,可以通过挂载命令将所创建的子目录挂载至所述后端存储卷。在上述流程的基础上,还包括:在通过挂载命令挂载至所述后端存储卷时,用户终端的客户端中的挂载点接收所述客户端传入的待挂载的用户名,并记录所述用户名。例如:分布式文件系统的客户端的挂载点,在挂载命令挂载后端存储卷时,通过用户名参数传入待挂载的用户名,分布式文件系统从用户名参数中解析出用户名,并记录该用户名。其中,挂载点具体可以是由客户端显示的目录,而本实施例中的子目录指的是后端存储卷的中的目录,由客户端显示的目录和后端存储卷的中的目录的内容是一致。挂载命令也可称为Mount命令,未Linux下的一个命令,用于将分区挂接到Linux的一个文件夹下,从而将分区和文件夹中的目录联系起来,当访问该文件夹时,就相当于访问该分区。挂载点具体可以采用FUSE(Filesystem in Userspace,用户空间文件系统)挂载点,其中,FUSE挂载点在Linux中用于将诸如SSH(Secure Shell,安全外壳协议)等网络空间,挂载到本地文件系统的模块。
进一步的,所述根据所述操作请求,判断是否访问根目录,包括:用户终端运行客户端的守护进程,并接收从内核传递的所述操作请求。并检测发出所述操作请求用户的用户名是否被记录,若是则检测所述操作请求是否为挂载节点(或称为mount节点)的根目录的访问请求。其中,所述从内核传递的所述操作请求,具体可以是接收/dev/fuse传递的操作请求,/dev/fuse为操作系统内核里的fuse文件系统和用户态文件系统的通信媒介。
S3、若是,则将所述操作请求转换为所述用户对应子目录的访问请求,接收根据所述访问请求访问所述后端存储卷后得到的访问结果。
若所述操作请求不访问根目录,比如:非访问mount根目录的请求,则不做转换。
在本实施例中,由分布式文件系统(具体可以是分布式文件系统中用于与用户终端进行直接交互并接收用户终端所发送的访问请求的服务器),将用户终端上运行的客户端实际发出的操作请求,比如:访问目录的请求,转换为该用户对应的子目录,再传递给分布式文件系统后端存储卷,由后端存储卷实际返回至用户终端的为该用户对应子目录下的内容。分布式文件系统的守护进程接收从/dev/fuse传递来的文件操作请求,判断是否为访问mount根目录请求,若是则先将用于访问mount根目录的访问请求,转换为当前用户名对应子目录的访问请求,再使用转换后的访问请求去分布式文件系统的交互后端存储卷。分布式文件系统的后端存储卷根据客户端传过来的访问请求,进行操作,并把结果通过常用的分布式文件系统中的信息传递机制,将结果返回给客户端。
例如:用户使用用户终端上的客户端访问分布式文件系统中的对应后端存储空间,比如:如图3所示的,
用户在FUSE挂载点的所显示的目录下,进行一系列文件操作,如列目录、创建文件、创建目录、查看文件、删除文件等,并由用户终端上运行的客户端发出文件系统访问命令,比如:ls、cat、touch、rm、mkdir…等。
用户的这些操作被客户端传递给当前的操作系统内核的VFS(Virtual FileSystems,虚拟文件系统层),比如:若当前的操作系统为Linux,则在Linux内核运行VFS、FUSE模块和/dev/fuse设备。
挂载节点在经过VFS层的处理后,将用户的操作传递给操作系统内核的FUSE模块,并进而写入/dev/fuse设备,使得客户端进程获取用户本次访问中对文件进行操作时的操作请求。
在本实施例中,还包括:在将所述操作请求转换为所述用户对应子目录的访问请求后,将所述访问请求缓存在内存中。当接收到所述客户端再次发出的操作请求,且所述客户端再次发出的操作请求用于访问所述根目录时,调用所述访问请求。例如:在第一次转换之后,分布式文件系统将用户的客户端对应用户的子目录所发出的操作请求、访问请求等请求信息,和从后端存储卷所提取的向用户所返回的内容,缓存在内存中,当接收到所述客户端再次发出的、与缓存在内存中相同的操作请求时,免去了重新从分布式文系统的后端存储卷获取子目录的内容的过程,减少了分布式系统中跨网访问次数,缩短了访问延迟,从而加速对根目录到用户子目录请求的转换速度。
本发明实施例提供的分布式文件系统的交互方法,通过将用户设备的客户端发出的用于实际访问根目录的操作请求转换为该用户对应的专有的子目录的访问请求,再传递给分布式文件系统后端存储卷,后端存储卷不必再读取完整的根目录的内容,而是读取用户的子目录的内容返回给用户的客户端。从而实现了不同用户之间的存储内容相互隔离,提升分布式文件系统在访问过程中的用户数据的安全性。
在本实施例中,在上述方法流程的基础上,还提供一种创建新用户的具体方式,包括:根据管理员客户端发出的创建命令,创建所述用户对应的子目录,并设置所述用户的权限和存储配额数值。并在创建所述用户对应的子目录之后,根据所述客户端发出的挂载请求,依照所述用户用户名挂载至所述后端存储卷。例如:管理员用户的客户端通过分布式文件系统客户端挂载到后端存储卷,管理员用户挂载后,可见整个存储池的各个用户目录,并具有创建目录权限;管理员用户在根目录下,创建新用户的子目录,并设置新用户的权限和存储配额数值;当新用户的子目录创建成功后,通知管理员用户的客户端和新用户的客户端,新用户即可通过客户端按照用户名挂载至后端存储卷。
其中,所述管理员客户端对应于所述根目录,所述根目录下的各个用户的子目录对于所述管理员客户端为可见状态。用户的权限具体包括:删除、修改、添加、复制等按照可进行的操作功能进行划分的权限;存储配额数值具体为:分配至各个用户的最大可用存储空间。
在本实施例中,还包括:
接收所述客户端发送的查询请求,并根据所述查询请求确定用户名。并根据所确定的用户名获取子目录,并将所获取的子目录发送至所述后端存储卷的存储节点。例如:用户操作用户终端运行的客户端,客户端执行如df等统计存储空间容量的系统命令,并发出用于查询当前挂载的存储卷的空间使用情况的查询请求;分布式文件系统的捕获到传递过来的查询请求;分布式文件系统在内存中查找当前挂载的用户信息,获取用户对应的子目录并发送给后端各存储节点。若当前为管理员用户或出于共享模式,则发送根目录信息给存储节点。
在所述后端存储卷的存储节点中,查询所获取的子目录的扩展属性,并得到所获取的子目录在所述后端存储卷的存储节点上的空间使用情况。并根据在所述后端存储卷的存储节点上的空间使用情况、所述分布式文件系统的部署方式和所获取的子目录的用户的存储配额数值,获取所获取的子目录的空间占用情况,并将所述子目录的空间占用情况向所述客户端发送。例如:后端存储卷的各存储节点在目录的扩展属性中记录了当前该目录的空间使用情况,获取各存储节点返回的空间使用情况后,再结合分布式文件系统部署的方式(如:副本数,条带配置等),以及该用户设置的配额大小,返回当前实际使用的空间大小和可用空间大小,并通过df命令将结果返回给用户终端的客户端。
在本实施例中,还包括:将所记录的用户名,转换为各个用户名相应的随机字符串。通过转换得到的随机字符串,分别替换所述根目录和各个子目录中的相应的用户名。
其中,由于本实施例中在用户的使用模式上可以划分为:用户隔离挂载模式和共享挂载模式两种模式,并通过配置命令实时切换,保证了一套分布式文件系统在不同应用场景中的统一使用。通过管理员用户,可以设置用户的存储空间配额;普通用户也可以通过操作系统命令(如:df等),实时查看当前用户在分布式文件存储池的空间使用量和最大空间(存储配额数值)。本实施例中可以在用户名对应存储后端的存储目录中,不使用实际用户名,而使用一串随机字符串,随机字符串可以随机生成,也可以基于用户名通过随机算法生成。管理员用户的用户名也使用随机字符串。从而使得在用户隔离挂载模式和共享挂载模式间切换时,必须使用分布式文件系统的配置命令,这就保证只有在分布式文件系统内部可以操作,避免了避免恶意用户从外部对分布式文件系统进行操作的可能。
本发明实施例提供的分布式文件系统的交互方法,用户在实际访问根目录时,将用户设备的客户端发出的用于实际访问根目录的操作请求转换为该用户对应的专有的子目录的访问请求,再传递给分布式文件系统后端存储卷,后端存储卷不必再读取完整的根目录的内容,而是读取用户的子目录的内容返回给用户的客户端。使得用户在分布式文件系统的挂载点访问各自独立的后端存储目录,从而实现了不同用户之间的存储内容相互隔离。
且由于在本实施例中,在后端存储卷向一个用户返回相应的内容(这些内容包括但不限于:用户名,存储内容,使用空间等信息)时,避免在读取其他用户的子目录下的内容,实现了各个用户之间存储内容、用户名等信息完全隔离,彼此不可见,每个用户只能看到自身存储的信息,不能看到其余用户的用户名,存储内容,使用空间等信息。做到了各个用户之间的隔离,提升分布式文件系统在访问过程中的用户数据的安全性。
本发明实施例还提供一种分布式文件系统的交互装置,如图4所示,包括:
目录管理模块,用于在所述分布式文件系统的后端存储卷的根目录下,创建用户对应的子目录。
转换模块,用于根据所述操作请求,判断是否访问根目录。若是,则将所述操作请求转换为所述用户对应子目录的访问请求。
数据提取模块,用于接收根据所述访问请求访问所述后端存储卷后得到的访问结果,所述操作请求由所述用户操作的用户终端上运行的客户端发出。
本发明实施例提供的分布式文件系统的交互装置,通过将用户设备的客户端发出的用于实际访问根目录的操作请求转换为该用户对应的专有的子目录的访问请求,再传递给分布式文件系统后端存储卷,后端存储卷不必再读取完整的根目录的内容,而是读取用户的子目录的内容返回给用户的客户端。从而实现了不同用户之间的存储内容相互隔离,提升分布式文件系统在访问过程中的用户数据的安全性。
在本实施例中,所述转换模块,还用于在通过挂载命令挂载至所述后端存储卷时,所述分布式文件系统的FUSE挂载点接收所述客户端传入的待挂载的用户名,并记录所述用户名。并检测发出所述操作请求用户的用户名是否被记录,若是则检测所述操作请求是否为挂载节点的根目录的访问请求,其中,所述分布式文件系统运行客户端的守护进程,并接收从内核传递的所述操作请求。
进一步的,本实施例提供的分布式文件系统的交互装置,如图5所示,还包括:
缓存管理模块,用于在将所述操作请求转换为所述用户对应子目录的访问请求后,将所述访问请求缓存在内存中。当接收到所述客户端再次发出的操作请求,且所述客户端再次发出的操作请求用于访问所述根目录时,调用所述访问请求。
访问管理模块,用于接收所述客户端发送的查询请求,并根据所述查询请求确定用户名。并根据所确定的用户名获取子目录,并将所获取的子目录发送至所述后端存储卷的存储节点。
在所述后端存储卷的存储节点中,查询所获取的子目录的扩展属性,并得到所获取的子目录在所述后端存储卷的存储节点上的空间使用情况。并根据在所述后端存储卷的存储节点上的空间使用情况、所述分布式文件系统的部署方式和所获取的子目录的用户的存储配额数值,获取所获取的子目录的空间占用情况,并将所述子目录的空间占用情况向所述客户端发送。
进一步的,所述目录管理模块,还用于根据管理员客户端发出的创建命令,创建所述用户对应的子目录,并设置所述用户的权限和存储配额数值。并在创建所述用户对应的子目录之后,根据所述客户端发出的挂载请求,依照所述用户用户名挂载至所述后端存储卷,其中,所述管理员客户端对应于所述根目录,所述根目录下的各个用户的子目录对于所述管理员客户端为可见状态。
所述目录管理模块,还用于将所记录的用户名,转换为各个用户名相应的随机字符串。并通过转换得到的随机字符串,分别替换所述根目录和各个子目录中的相应的用户名。
本发明实施例提供的分布式文件系统的交互装置,用户在实际访问根目录时,将用户设备的客户端发出的用于实际访问根目录的操作请求转换为该用户对应的专有的子目录的访问请求,再传递给分布式文件系统后端存储卷,后端存储卷不必再读取完整的根目录的内容,而是读取用户的子目录的内容返回给用户的客户端。使得用户在分布式文件系统的挂载点访问各自独立的后端存储目录,从而实现了不同用户之间的存储内容相互隔离。且由于在本实施例中,在后端存储卷向一个用户返回相应的内容(这些内容包括但不限于:用户名,存储内容,使用空间等信息)时,避免在读取其他用户的子目录下的内容,实现了各个用户之间存储内容、用户名等信息完全隔离,彼此不可见,每个用户只能看到自身存储的信息,不能看到其余用户的用户名,存储内容,使用空间等信息。做到了各个用户之间的隔离,提升分布式文件系统在访问过程中的用户数据的安全性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种分布式文件系统的交互方法,其特征在于,包括:
在所述分布式文件系统的后端存储卷的根目录下,创建用户对应的子目录;
根据所述操作请求,判断是否访问根目录,所述操作请求由所述用户操作的用户终端上运行的客户端发出;
若是,则将所述操作请求转换为所述用户对应子目录的访问请求,接收根据所述访问请求访问所述后端存储卷后得到的访问结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
在通过挂载命令挂载至所述后端存储卷时,所述分布式文件系统的挂载点接收所述客户端传入的待挂载的用户名,并记录所述用户名。
3.根据权利要求2所述的方法,其特征在于,所述根据所述操作请求,判断是否访问根目录,包括:
所述分布式文件系统运行客户端的守护进程,并接收从内核传递的所述操作请求;
检测发出所述操作请求用户的用户名是否被记录,若是则检测所述操作请求是否为挂载节点的根目录的访问请求。
4.根据权利要求1所述的方法,其特征在于,还包括:
在将所述操作请求转换为所述用户对应子目录的访问请求后,将所述访问请求缓存在内存中;
当接收到所述客户端再次发出的操作请求,且所述客户端再次发出的操作请求用于访问所述根目录时,调用所述访问请求。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据管理员客户端发出的创建命令,创建所述用户对应的子目录,并设置所述用户的权限和存储配额数值,所述管理员客户端对应于所述根目录,所述根目录下的各个用户的子目录对于所述管理员客户端为可见状态;
在创建所述用户对应的子目录之后,根据所述客户端发出的挂载请求,依照所述用户用户名挂载至所述后端存储卷。
6.根据权利要求5所述的方法,其特征在于,还包括:
将所记录的用户名,转换为各个用户名相应的随机字符串;
通过转换得到的随机字符串,分别替换所述根目录和各个子目录中的相应的用户名。
7.根据权利要求5所述的方法,其特征在于,还包括:
接收所述客户端发送的查询请求,并根据所述查询请求确定用户名;
根据所确定的用户名获取子目录,并将所获取的子目录发送至所述后端存储卷的存储节点;
在所述后端存储卷的存储节点中,查询所获取的子目录的扩展属性,并得到所获取的子目录在所述后端存储卷的存储节点上的空间使用情况;
根据在所述后端存储卷的存储节点上的空间使用情况、所述分布式文件系统的部署方式和所获取的子目录的用户的存储配额数值,获取所获取的子目录的空间占用情况,并将所述子目录的空间占用情况向所述客户端发送。
8.一种分布式文件系统的交互装置,其特征在于,包括:
目录管理模块,用于在所述分布式文件系统的后端存储卷的根目录下,创建用户对应的子目录;
转换模块,用于根据所述操作请求,判断是否访问根目录;若是,则将所述操作请求转换为所述用户对应子目录的访问请求;
数据提取模块,用于接收根据所述访问请求访问所述后端存储卷后得到的访问结果,所述操作请求由所述用户操作的用户终端上运行的客户端发出。
9.根据权利要求8所述的装置,其特征在于,所述转换模块,还用于在通过挂载命令挂载至所述后端存储卷时,所述分布式文件系统的挂载点接收所述客户端传入的待挂载的用户名,并记录所述用户名;并检测发出所述操作请求用户的用户名是否被记录,若是则检测所述操作请求是否为挂载节点的根目录的访问请求,其中,所述分布式文件系统运行客户端的守护进程,并接收从内核传递的所述操作请求。
10.根据权利要求8所述的装置,其特征在于,还包括:
缓存管理模块,用于在将所述操作请求转换为所述用户对应子目录的访问请求后,将所述访问请求缓存在内存中;当接收到所述客户端再次发出的操作请求,且所述客户端再次发出的操作请求用于访问所述根目录时,调用所述访问请求;
所述目录管理模块,还用于根据管理员客户端发出的创建命令,创建所述用户对应的子目录,并设置所述用户的权限和存储配额数值;并在创建所述用户对应的子目录之后,根据所述客户端发出的挂载请求,依照所述用户用户名挂载至所述后端存储卷,其中,所述管理员客户端对应于所述根目录,所述根目录下的各个用户的子目录对于所述管理员客户端为可见状态;
所述目录管理模块,还用于将所记录的用户名,转换为各个用户名相应的随机字符串;并通过转换得到的随机字符串,分别替换所述根目录和各个子目录中的相应的用户名;
所述装置还包括:访问管理模块,用于接收所述客户端发送的查询请求,并根据所述查询请求确定用户名;并根据所确定的用户名获取子目录,并将所获取的子目录发送至所述后端存储卷的存储节点;
在所述后端存储卷的存储节点中,查询所获取的子目录的扩展属性,并得到所获取的子目录在所述后端存储卷的存储节点上的空间使用情况;并根据在所述后端存储卷的存储节点上的空间使用情况、所述分布式文件系统的部署方式和所获取的子目录的用户的存储配额数值,获取所获取的子目录的空间占用情况,并将所述子目录的空间占用情况向所述客户端发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610855670.0A CN107870734A (zh) | 2016-09-27 | 2016-09-27 | 一种分布式文件系统的交互方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610855670.0A CN107870734A (zh) | 2016-09-27 | 2016-09-27 | 一种分布式文件系统的交互方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107870734A true CN107870734A (zh) | 2018-04-03 |
Family
ID=61751079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610855670.0A Pending CN107870734A (zh) | 2016-09-27 | 2016-09-27 | 一种分布式文件系统的交互方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107870734A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165206A (zh) * | 2018-08-27 | 2019-01-08 | 中科曙光国际信息产业有限公司 | 基于容器的hdfs高可用实现方法 |
CN109831358A (zh) * | 2019-01-31 | 2019-05-31 | 北京达佳互联信息技术有限公司 | 一种客户端流量统计方法、装置、服务器及可读存储介质 |
CN109977083A (zh) * | 2019-03-27 | 2019-07-05 | 深圳市云语科技有限公司 | 一种基于文件系统挂载盘技术的文件传输系统 |
CN111126604A (zh) * | 2019-12-31 | 2020-05-08 | 北京奇艺世纪科技有限公司 | 模型训练方法、装置、服务器及存储介质 |
CN113835625A (zh) * | 2021-08-30 | 2021-12-24 | 广东浪潮智慧计算技术有限公司 | 一种基于子路径的数据存储方法、装置、设备及存储介质 |
CN115150185A (zh) * | 2022-07-25 | 2022-10-04 | 杭州东方通信软件技术有限公司 | 一种基于多密码控制用户目录与权限的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103370706A (zh) * | 2010-12-16 | 2013-10-23 | 迈德安全网络有限公司 | 分布式文件系统 |
CN103535007A (zh) * | 2011-03-29 | 2014-01-22 | 希格默伊德解决方案有限公司 | 分布式网络的管理认证 |
US20140149461A1 (en) * | 2011-11-29 | 2014-05-29 | Ravi Wijayaratne | Flexible permission management framework for cloud attached file systems |
CN105871794A (zh) * | 2015-11-13 | 2016-08-17 | 乐视云计算有限公司 | 分布式文件系统数据存储的方法、客户端、服务器及系统 |
-
2016
- 2016-09-27 CN CN201610855670.0A patent/CN107870734A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103370706A (zh) * | 2010-12-16 | 2013-10-23 | 迈德安全网络有限公司 | 分布式文件系统 |
CN103535007A (zh) * | 2011-03-29 | 2014-01-22 | 希格默伊德解决方案有限公司 | 分布式网络的管理认证 |
US20140149461A1 (en) * | 2011-11-29 | 2014-05-29 | Ravi Wijayaratne | Flexible permission management framework for cloud attached file systems |
CN105871794A (zh) * | 2015-11-13 | 2016-08-17 | 乐视云计算有限公司 | 分布式文件系统数据存储的方法、客户端、服务器及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165206A (zh) * | 2018-08-27 | 2019-01-08 | 中科曙光国际信息产业有限公司 | 基于容器的hdfs高可用实现方法 |
CN109831358A (zh) * | 2019-01-31 | 2019-05-31 | 北京达佳互联信息技术有限公司 | 一种客户端流量统计方法、装置、服务器及可读存储介质 |
CN109831358B (zh) * | 2019-01-31 | 2021-01-01 | 北京达佳互联信息技术有限公司 | 一种客户端流量统计方法、装置、服务器及可读存储介质 |
CN109977083A (zh) * | 2019-03-27 | 2019-07-05 | 深圳市云语科技有限公司 | 一种基于文件系统挂载盘技术的文件传输系统 |
CN111126604A (zh) * | 2019-12-31 | 2020-05-08 | 北京奇艺世纪科技有限公司 | 模型训练方法、装置、服务器及存储介质 |
CN111126604B (zh) * | 2019-12-31 | 2024-02-02 | 北京奇艺世纪科技有限公司 | 模型训练方法、装置、服务器及存储介质 |
CN113835625A (zh) * | 2021-08-30 | 2021-12-24 | 广东浪潮智慧计算技术有限公司 | 一种基于子路径的数据存储方法、装置、设备及存储介质 |
CN113835625B (zh) * | 2021-08-30 | 2024-02-09 | 广东浪潮智慧计算技术有限公司 | 一种基于子路径的数据存储方法、装置、设备及存储介质 |
CN115150185A (zh) * | 2022-07-25 | 2022-10-04 | 杭州东方通信软件技术有限公司 | 一种基于多密码控制用户目录与权限的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870734A (zh) | 一种分布式文件系统的交互方法及装置 | |
CN106156359B (zh) | 一种云计算平台下的数据同步更新方法 | |
CN106294585B (zh) | 一种云计算平台下的存储方法 | |
CN106250270B (zh) | 一种云计算平台下的数据备份方法 | |
CN107566533B (zh) | 一种基于nas实现的内外网文件共享系统 | |
CN103533006B (zh) | 一种联合云盘客户端、服务器、系统和联合云盘服务方法 | |
CN104539659B (zh) | 基于nas存储的多用户文件交换共享方法和装置 | |
CN104008152B (zh) | 支持海量数据访问的分布式文件系统的架构方法 | |
CN110198231A (zh) | 用于多租户的容器网络管理方法和系统以及中间件 | |
CN108052675A (zh) | 日志管理方法、系统及计算机可读存储介质 | |
CN106357432B (zh) | 基于web服务器的混合式虚拟主机管理平台 | |
CN103237046A (zh) | 支持混合云存储应用的分布式文件系统及实现方法 | |
CN106713363A (zh) | 一种构建基于全球传输共享交互网服务的方法 | |
CN105095103B (zh) | 用于云环境下的存储设备管理方法和装置 | |
CN109218100A (zh) | 分布式对象存储集群及其请求响应方法、系统和存储介质 | |
CN109936571A (zh) | 一种海量数据共享方法、开放共享平台及电子设备 | |
CN100536472C (zh) | 一种网络资源访问控制的方法、模块和服务器 | |
CN104104582B (zh) | 一种数据存储路径管理方法、客户端及服务器 | |
CN109062663A (zh) | 镜像分发方法、装置及存储介质 | |
CN107633053A (zh) | 一种文件管理方法、装置及系统 | |
CN104202431B (zh) | 具有个性化的单位通讯录同步方法、装置和智能通信系统 | |
CN107172061A (zh) | 一种实现共享的方法和系统 | |
CN110417741A (zh) | 一种过滤安全组的方法和装置 | |
CN107422980A (zh) | 物联网数据文件存储系统及其数据文件存储方法 | |
CN105991789A (zh) | 一种虚拟机端口映射的实现方法、服务器及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180403 |
|
RJ01 | Rejection of invention patent application after publication |