CN112650729B - 一种分布式文件***的权限管理方法、***以及存储介质 - Google Patents
一种分布式文件***的权限管理方法、***以及存储介质 Download PDFInfo
- Publication number
- CN112650729B CN112650729B CN202011495822.3A CN202011495822A CN112650729B CN 112650729 B CN112650729 B CN 112650729B CN 202011495822 A CN202011495822 A CN 202011495822A CN 112650729 B CN112650729 B CN 112650729B
- Authority
- CN
- China
- Prior art keywords
- file
- information
- authority
- user
- uploading
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及分布式存储技术领域,提供了一种用于一种分布式文件***的权限管理方法,该方法主要包括将用户上传的上传文件信息存储在用户对应的元数据服务器,该元数据服务器是根据用户ID用一致性哈希算法计算得到的;根据上传文件信息以及创建文件请求生成文件信息,并将文件信息存储在所述元数据服务器中,该文件信息包括所述上传文件的权限信息。根据用户ID通过一致性哈希算法,将各个用户ID对应的权限文件分片通过一致性哈希算法分布在各个元数据服务器中,当用户对存储在存储节点的文件的权限信息进行修改时,可以通过自身的用户ID直接计算得到自身对应的元数据服务器,从而降低了***的复杂性以及出错的概率。
Description
技术领域
本发明涉及分布式文件***技术领域,尤其涉及一种分布式文件***的权限管理方法、***以及存储介质。
背景技术
分布式文件***是指数据可以不在一个服务器上,而是分散到多个服务器。分布式有利于任务在整个计算机***上进行分配与优化,克服了传统的集中式文件***会导致服务器资源紧张与响应速度方面的缺陷。通过将大量的数据存储服务器集群,在内部表现为多个存储服务器/存储节点协同工作,共同承担数据存储的工作,将数据存储任务划分为多个子任务并行存储,从而减小了数据存储的时间,并增加数据安全性。
但是,面对拥有海量文件的分布式文件***,很大一部分的分布式文件***的权限控制只能做到对用户文件进行分区控制。另外很小的一部分虽然可以控制到文件,但是面对海量的文件,为了对各文件执行权限信息操作,不得不引入分布式数据库以存储权限信息。在当前分布式数据库技术不成熟的情况下,无疑会增加***的复杂性以及出错的概率。
发明内容
为了减少分布式文件***的权限管理***出错的概率,本发明的第一方面提供了一种分布式文件***的权限管理方法,包括以下步骤:
在消息队列服务订阅存储节点的地址以及权限信息操作;
接收文件网关发送的上传文件信息以及创建文件请求,并将所述上传文件信息存储在用户对应的元数据服务器,所述上传文件信息包括:文件名、文件大小、用户ID;所述元数据服务器是根据所述用户ID用一致性哈希算法计算得到的;所述创建文件请求为所述文件网关发送的创建所述上传文件的请求;
向所述文件网关发送文件块切割指令,将上传文件根据预设大小,将所述上传文件分割成多个文件块;
根据被分割的所述文件块的数量选择相应数量的所述存储节点,将所述存储节点的地址返回给所述文件网关,所述文件网关将所述文件块上传到所述存储节点;
当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息。
在本发明第一方面的一种可能实现方式中,在所述根据被分割的所述文件块的数量选择相应数量的所述存储节点,将所述存储节点的地址返回给所述文件网关,所述文件网关将所述文件块上传到所述存储节点的步骤中,还包括:
将所述上传文件的所述创建文件请求设置为创建中,若在预设时间内,所述创建文件请求没有被设置为已创建,则删除所述创建文件请求,并控制对应的所述存储节点删除相应的已经上传的所述文件块;
在所述当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息的步骤中,还包括:
当所述上传文件上传完毕时,将所述创建文件请求设置为已创建。
在本发明第一方面的一种可能实现方式中,在所述当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息的步骤之后,还包括:
接收到用户输入的对所述上传文件的所述权限信息操作时,将所述权限信息操作输入到所述消息队列服务,所述权限信息操作包括指定文件写入用户列表信息及文件的操作权限、以及给目标用户写入文件信息及文件的操作权限;
根据所述用户的所述用户ID使用一致性哈希算法定位到对应的所述元数据服务器,并读取所述上传文件的权限信息所在的权限文件分片,所述权限信息包括所述文件的可操作用户以及所述用户的可操作文件;
将所述权限信息操作作为所述权限信息的增量部分写入所述权限文件分片。
在本发明第一方面的一种可能实现方式中,所述将所述权限信息操作作为所述权限信息的增量部分写入所述权限文件分片的步骤,还包括:
将所述权限信息操作以日志的形式追加到第一权限文件分片里;
当第一权限文件分片的大小超过预设值时,根据所述用户ID分割成至少两个第二权限文件分片;
将所述第二权限文件分片映射到一致性哈希环中;
删除所述第一权限文件分片。
在本发明第一方面的一种可能实现方式中,还包括:
获取文件的所述权限信息时,判断所述权限文件分片是否已经写入内存:
若所述权限文件分片已经写入到所述内存,则直接返回所述权限文件分片;
若所述权限文件分片没有写入到所述内存,则将所需的所述权限文件分片写入所述内存内。
在本发明第一方面的一种可能实现方式中,在所述若所述权限文件分片没有写入到所述内存,则将所需的所述权限文件分片写入所述内存内的步骤中,还包括:
将获取到的所述权限信息,缓存到一个基于LRU算法的缓存表里。
在本发明第一方面的一种可能实现方式中,在所述在消息队列服务订阅存储节点的地址以及权限信息操作的步骤中,还包括:
从所述消息队列服务接受所述存储节点状态信息,所述存储节点状态信息包括自身的存储节点地址、当前存储容量、剩余存储容量。
在本发明第一方面的一种可能实现方式中,在所述在消息队列服务订阅存储节点的地址以及权限信息操作的步骤中,还包括:
按照预设时间间隔更新所述存储节点状态信息。
在本发明的第二方面中,还提供了一种分布式文件***的权限管理装置,包括:
消息订阅模块,用于在消息队列服务订阅存储节点的地址以及权限信息操作;
文件信息接收模块,用于接收文件网关发送的上传文件信息以及创建文件请求,并将所述上传文件信息存储在用户对应的元数据服务器,所述上传文件信息包括:文件名、文件大小、用户ID;所述元数据服务器是根据所述用户ID用一致性哈希算法计算得到的;所述创建文件请求为所述文件网关发送的创建所述上传文件的请求;
文件切割模块,用于向所述文件网关发送文件块切割指令,将上传文件根据预设大小,将所述上传文件分割成多个文件块;
存储节点选择模块,用于根据被分割的所述文件块的数量选择相应数量的所述存储节点,将所述存储节点的地址返回给所述文件网关,所述文件网关将所述文件块上传到所述存储节点;
文件请求存储模块,用于当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息。
在本发明的第三方面中,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述分布式文件***的权限管理方法的步骤。
本发明的有益技术效果在于:根据用户ID通过一致性哈希算法,将各个用户ID对应的权限文件分片通过一致性哈希算法分布在各个元数据服务器中,当用户对存储在存储节点的文件的权限信息进行修改时,可以通过自身的用户ID直接计算得到自身对应的元数据服务器,并在对应的元数据服务器修改记录权限信息的权限文件分片,无需使用分布式数据库,从而降低了***的复杂性以及出错的概率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例中分布式文件***的权限管理方法的应用环境示意图;
图2是本发明一个实施例中分布式文件***的权限管理方法的流程图;
图3是本发明另一个实施例中分布式文件***的权限管理方法的流程图;
图4是本发明另一个实施例中分布式文件***的权限管理方法的流程图;
图5是本发明一实施例中分布式文件***的权限管理装置的结构示意图;
图6是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的分布式文件***的权限管理方法,可应用在如图1的应用环境中,其中,计算机设备通过网络与服务器进行通信。其中,计算机设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种分布式文件***的权限管理方法,通过***中的权限管理集群执行上述方法,以该方法应用在图1中的服务器(即权限管理集群)为例进行说明,包括如下步骤:
S1:在消息队列服务订阅存储节点的地址以及权限信息操作。
首先,***中的权限管理集群从消息队列服务订阅存储节点的地址以及权限信息操作,存储节点是用于存储文件的服务器,权限管理集群通过消息队列服务更新存储节点的地址以及在线情况。另一方面,来自用户的权限信息操作也在消息队列服务中更新,权限管理集群同时也通过消息队列服务接收上述权限信息操作。
S2:接收文件网关发送的上传文件信息以及创建文件请求,并将所述上传文件信息存储在用户对应的元数据服务器,所述上传文件信息包括:文件名、文件大小、用户ID;所述元数据服务器是根据所述用户ID用一致性哈希算法计算得到的;所述创建文件请求为所述文件网关发送的创建所述上传文件的请求。
当时用户需要上传文件时,将上传文件信息以及创建文件请求发送给***中的文件网关,然后文件网关将上述上传文件信息以及创建文件请求发送给权限管理集群,上传文件信息包括:文件名、文件大小、用户ID,其中最为重要的是用户ID,***根据用户ID通过一致性哈希算法计算该用户对应的元数据服务器。具体地,一致性哈希算法是通过hash(元数据服务器地址)%2^64-1,将元数据服务器映射到哈希环上,并通过hash(用户ID)%2^64-1,计算出该用户ID对应的元数据服务器,即该用户ID被映射到哈希环上,在哈希环的顺时针方向上第一个遇到的元数据服务器地址,即是该用户ID对应的元数据服务器,从而将该用户所有的文件的权限信息记录在该元数据服务器的权限文件分片中。
S3:向所述文件网关发送文件块切割指令,将上传文件根据预设大小,将所述上传文件分割成多个文件块。
为了更好地发挥分布式文件***的性能,该***将上传文件分割成多个文件块,并存储在多个存储节点中。具体地,根据步骤S2中文件网关发送的上传文件信息中的文件大小,权限管理集群根据***预设的文件块大小,向文件网关发送文件块切割指令,文件网关根据该指令,将上传文件分割成多个文件块,并在后续步骤上传。
S4:根据被分割的所述文件块的数量选择相应数量的所述存储节点,将所述存储节点的地址返回给所述文件网关,所述文件网关将所述文件块上传到所述存储节点。
权限管理集群根据上述步骤S3中分割的文件块的数量,选择相应数量的存储节点,并将选择的存储节点的地址返回给文件网关,文件网关根据所返回的存储节点的地址将多个文件块分别上传到所述存储节点,然后存储节点存储收到的文件块。
S5:当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息。
当文件网关将所有的文件块上传到存储节点时,权限管理集群发送完成的通知,此时,权限管理集群根据上传文件信息以及创建文件请求生成文件信息,并将上述文件信息存储在元数据服务器中。具体地,是存储在元数据服务器的权限文件分片中,每一个上传文件都对应有一个权限文件分片。进一步地,存储在权限文件分片中的文件信息包括生成时间、文件大小、各个文件块所对应的存储节点地址,尤其包括该上传文件的权限信息,权限信息包括文件所有用户、读写权限等。
在一个具体的实施例中,在所述步骤S4中,还包括:
将所述上传文件的所述创建文件请求设置为创建中,若在预设时间内,所述创建文件请求没有被设置为已创建,则删除所述创建文件请求,并控制对应的所述存储节点删除相应的已经上传的所述文件块;
在所述步骤S5,还包括:
当所述上传文件上传完毕时,将所述创建文件请求设置为已创建。
在某种应用场景下,由于用户的不当操作或者网络环境发生变化,可能导致上传文件的过程突然中断。为安全以及效率起见,一般倾向于将上传了一半的上传文件删除,并要求客户重新进行上传。在本实施例中,提供了一种用于判断上传文件是否全部上传的方法,具体地,在收到创建文件请求时先将其设置为“创建中”,然后定时判断,如果在预设时间内,该创建文件请求没有变成“已创建”,那么就删除该文件的请求。并且通知对应的存储节点删除相应的已经上传的文件块。
当上传文件上传完毕时,将创建文件请求设置为“已创建”,在一个可选的实施例中,可以在每上传预设的数据量之后,将判断创建文件请求的预设时间延长,以避免上传文件过早地被删除。
在一个具体的实施例中,如图3所示,在所述步骤S5之后,还包括:
S101:接收到用户输入的对所述上传文件的所述权限信息操作时,将所述权限信息操作输入到所述消息队列服务,所述权限信息操作包括指定文件写入用户列表信息及文件的操作权限、以及给目标用户写入文件信息及文件的操作权限。
***在接收到用户输入的对上传文件的权限信息操作时,即用户需要更改上传文件的权限信息时,将用户发送的权限信息操作输入到消息队列服务,以供权限管理集群接收并处理。具体地,权限信息操作包括指定文件写入用户列表信息及文件的操作权限、以及给目标用户写入文件信息及文件的操作权限。
S102:根据所述用户的所述用户ID使用一致性哈希算法定位到对应的所述元数据服务器,并读取所述上传文件的权限信息所在的权限文件分片,所述权限信息包括所述文件的可操作用户以及所述用户的可操作文件;
根据用户的用户ID通过一致性哈希算法定位到该用户的对应的元数据服务器,并读取所述上传文件的权限信息所在的权限文件分片。具体地,是通过一致性哈希算法快速定位到该用户的对应的元数据服务器,并找到所需要的权限文件分片,通过一致性哈希算法定位的具体方法与S2中的方法类似,在此不再赘述。另一方面,权限信息包括所述文件的可操作用户以及所述用户的可操作文件。
S103:将所述权限信息操作作为所述权限信息的增量部分写入所述权限文件分片。
具体地,将用户输入的对上传文件的权限信息操作,即对权限信息的更改作为既有的权限信息的增量部分写入权限文件分片。在一些可选的实施例中,也可以直接对权限信息中已有的内容进行变更。
在一个具体的实施例中,如图4所示,所述将所述权限信息操作作为所述权限信息的增量部分写入所述权限文件分片的步骤,还包括:
S201:将所述权限信息操作以日志的形式追加到第一权限文件分片里;
S202:当第一权限文件分片的大小超过预设值时,根据所述用户ID分割成至少两个第二权限文件分片;
S203:将所述第二权限文件分片映射到一致性哈希环中;
S204:删除所述第一权限文件分片。
在一些具体的应用场景中,随着新的权限信息操作不断写入,上述权限文件分片的文件大小会不断变大,此时,若一直维持在一个权限文件分片上记录上述权限信息,将使得该权限文件分片变得十分臃肿,在后续的读写中效率会大幅降低。为了解决上述问题,本实施例提供了一种将权限文件分片进行分割的方法,具体地,当第一权限文件分片的大小超过预设值时,例如,超过64M时,则权限管理集群将上述第一权限文件分片分割为两个32M的第二权限文件分片,然后将生成的至少两个第二权限文件分片再映射到一致性哈希环,并删除原有的第一权限文件分片。应当注意,每个用户ID的权限信息,只存在于一个权限文件分片中。通过这种方法,可以将权限文件分片维持在一个相对较小的文件大小,以提高读写的效率。
在一个具体的实施例中,所述分布式文件***的权限管理方法还包括:
获取文件的所述权限信息时,判断所述权限文件分片是否已经写入内存:
若所述权限文件分片已经写入到所述内存,则直接返回所述权限文件分片;
若所述权限文件分片没有写入到所述内存,则将所需的所述权限文件分片写入所述内存内。
为提高对权限文件分片的读写,元数据服务器会将预设数量的权限文件分片缓存到自身的内存中,以提高读写效率。
在一个具体的实施例中,在所述若所述权限文件分片没有写入到所述内存,则将所需的所述权限文件分片写入所述内存内的步骤中,还包括:
将获取到的所述权限信息,缓存到一个基于LRU算法的缓存表里。
进一步的,权限管理集群将接收到的权限信息缓存到一个基于LRU算法的缓存表里。LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。具体地,就是将请求的权限信息放到缓存表队列的头部,当缓存表被写满时,淘汰缓存表队列尾部的数据。
在一个具体的实施例中,在所述在消息队列服务订阅存储节点的地址以及权限信息操作的步骤中,还包括:
从所述消息队列服务接受所述存储节点状态信息,所述存储节点状态信息包括自身的存储节点地址、当前存储容量、剩余存储容量。
具体地,各个存储节点向消息队列服务发送自身的状态信息,包括自身的存储节点地址、当前存储容量、剩余存储容量以及负载情况等。权限管理集群从消息队列服务获取各个存储节点的状态信息,并且将其作为上述步骤S4中选择用于接收上传的文件块的存储节点参考,例如尽可能选择剩余存储容量大、负载较小的存储节点。
在一个具体的实施例中,在所述在消息队列服务订阅存储节点的地址以及权限信息操作的步骤中,还包括:
按照预设时间间隔更新所述存储节点状态信息。
具体地,各个存储节点按照预设的时间向消息队列服务发送自身的状态信息,并保存在消息队列服务中。权限管理集群从消息队列服务获取各个存储节点的状态信息并保持一段时间,将其作为上述步骤S4中选择用于接收上传的文件块的存储节点参考。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种分布式文件***的权限管理装置,该分布式文件***的权限管理装置与上述实施例中分布式文件***的权限管理方法一一对应。如图5所示,该分布式文件***的权限管理装置包括消息订阅模块101、文件信息接收模块102、文件切割模块103、存储节点选择模块104、文件请求存储模块105。各功能模块详细说明如下:
消息订阅模块101,用于在消息队列服务订阅存储节点的地址以及权限信息操作;
文件信息接收模块102,用于接收文件网关发送的上传文件信息以及创建文件请求,并将所述上传文件信息存储在用户对应的元数据服务器,所述上传文件信息包括:文件名、文件大小、用户ID;所述元数据服务器是根据所述用户ID用一致性哈希算法计算得到的;所述创建文件请求为所述文件网关发送的创建所述上传文件的请求;
文件切割模块103,用于向所述文件网关发送文件块切割指令,将上传文件根据预设大小,将所述上传文件分割成多个文件块;
存储节点选择模块104,用于根据被分割的所述文件块的数量选择相应数量的所述存储节点,将所述存储节点的地址返回给所述文件网关,所述文件网关将所述文件块上传到所述存储节点;
文件请求存储模块105,用于当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息。
在一个具体的实施例中,存储节点选择模块104还包括:
第一创建文件请求状态检测单元,用于将所述上传文件的所述创建文件请求设置为创建中,若在预设时间内,所述创建文件请求没有被设置为已创建,则删除所述创建文件请求,并控制对应的所述存储节点删除相应的已经上传的所述文件块;
文件请求存储模块105还包括:
第二创建文件请求状态检测单元,用于当所述上传文件上传完毕时,将所述创建文件请求设置为已创建。
在一个具体的实施例中,分布式文件***的权限管理装置还包括:
权限信息操作接收模块,用于接收到用户输入的对所述上传文件的所述权限信息操作时,将所述权限信息操作输入到所述消息队列服务,所述权限信息操作包括指定文件写入用户列表信息及文件的操作权限、以及给目标用户写入文件信息及文件的操作权限;
权限文件分片定位模块,用于根据所述用户的所述用户ID使用一致性哈希算法定位到对应的所述元数据服务器,并读取所述上传文件的权限信息所在的权限文件分片,所述权限信息包括所述文件的可操作用户以及所述用户的可操作文件;
权限文件分片写入模块,用于将所述权限信息操作作为所述权限信息的增量部分写入所述权限文件分片。
在一个具体的实施例中,权限文件分片写入模块还包括:
权限信息写入单元,用于将所述权限信息操作以日志的形式追加到第一权限文件分片里;
权限文件分片分割单元,用于当第一权限文件分片的大小超过预设值时,根据所述用户ID分割成至少两个第二权限文件分片;
权限文件分片映射单元,用于将所述第二权限文件分片映射到一致性哈希环中;
权限文件分片删除单元,用于删除所述第一权限文件分片。
在一个具体的实施例中,分布式文件***的权限管理装置还包括:
内存判断模块,用于获取文件的所述权限信息时,判断所述权限文件分片是否已经写入内存;内存判断模块还包括
权限文件分片返回单元,用于若所述权限文件分片已经写入到所述内存,则直接返回所述权限文件分片;
权限文件分片写入单元,用于若所述权限文件分片没有写入到所述内存,则将所需的所述权限文件分片写入所述内存内。
在一个具体的实施例中,权限文件分片写入单元还包括:
LRU缓存模块,用于将获取到的所述权限信息,缓存到一个基于LRU算法的缓存表里。
在一个具体的实施例中,消息订阅模块101还包括:
存储节点状态通知单元,从所述消息队列服务接受所述存储节点状态信息,所述存储节点状态信息包括自身的存储节点地址、当前存储容量、剩余存储容量。
在一个具体的实施例中,消息订阅模块101还包括:
定时更新单元,用于按照预设时间间隔更新所述状态信息。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于分布式文件***的权限管理装置的具体限定可以参见上文中对于分布式文件***的权限管理方法的限定,在此不再赘述。上述分布式文件***的权限管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储分布式文件***的权限管理方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分布式文件***的权限管理方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中分布式文件***的权限管理方法的步骤,例如图2所示的步骤S1至步骤S5及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中分布式文件***的权限管理装置的各模块/单元的功能,例如图5所示模块101至模块105的功能。为避免重复,这里不再赘述。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中分布式文件***的权限管理方法的步骤,例如图2所示的步骤101至步骤105及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中分布式文件***的权限管理装置的各模块/单元的功能,例如图5所示模块101至模块105的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (9)
1.一种分布式文件***的权限管理方法,其特征在于,包括以下步骤:
在消息队列服务订阅存储节点的地址以及权限信息操作;
接收文件网关发送的上传文件信息以及创建文件请求,并将所述上传文件信息存储在用户对应的元数据服务器,所述上传文件信息包括:文件名、文件大小、用户ID;所述元数据服务器是根据所述用户ID用一致性哈希算法计算得到的;所述创建文件请求为所述文件网关发送的创建所述上传文件的请求;
向所述文件网关发送文件块切割指令,将上传文件根据预设大小,将所述上传文件分割成多个文件块;
根据被分割的所述文件块的数量选择相应数量的所述存储节点,将所述存储节点的地址返回给所述文件网关,所述文件网关将所述文件块上传到所述存储节点;
当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息;
在所述当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息的步骤之后,还包括:
接收到用户输入的对所述上传文件的所述权限信息操作时,将所述权限信息操作输入到所述消息队列服务,所述权限信息操作包括指定文件写入用户列表信息及文件的操作权限、以及给目标用户写入文件信息及文件的操作权限;
根据所述用户的所述用户ID使用一致性哈希算法定位到对应的所述元数据服务器,并读取所述上传文件的权限信息所在的权限文件分片,所述权限信息包括所述文件的可操作用户以及所述用户的可操作文件;
将所述权限信息操作作为所述权限信息的增量部分写入所述权限文件分片。
2.根据权利要求1所述的分布式文件***的权限管理方法,其特征在于,在所述根据被分割的所述文件块的数量选择相应数量的所述存储节点,将所述存储节点的地址返回给所述文件网关,所述文件网关将所述文件块上传到所述存储节点的步骤中,还包括:
将所述上传文件的所述创建文件请求设置为创建中,若在预设时间内,所述创建文件请求没有被设置为已创建,则删除所述创建文件请求,并控制对应的所述存储节点删除相应的已经上传的所述文件块;
在所述当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息的步骤中,还包括:
当所述上传文件上传完毕时,将所述创建文件请求设置为已创建。
3.根据权利要求1所述的分布式文件***的权限管理方法,其特征在于,所述将所述权限信息操作作为所述权限信息的增量部分写入所述权限文件分片的步骤,还包括:
将所述权限信息操作以日志的形式追加到第一权限文件分片里;
当第一权限文件分片的大小超过预设值时,根据所述用户ID分割成至少两个第二权限文件分片;
将所述第二权限文件分片映射到一致性哈希环中;
删除所述第一权限文件分片。
4.根据权利要求1所述的分布式文件***的权限管理方法,其特征在于,还包括:
获取文件的所述权限信息时,判断所述权限文件分片是否已经写入内存:
若所述权限文件分片已经写入到所述内存,则直接返回所述权限文件分片;
若所述权限文件分片没有写入到所述内存,则将所需的所述权限文件分片写入所述内存内。
5.根据权利要求4所述的分布式文件***的权限管理方法,其特征在于,在所述若所述权限文件分片没有写入到所述内存,则将所需的所述权限文件分片写入所述内存内的步骤中,还包括:
将获取到的所述权限信息,缓存到一个基于LRU算法的缓存表里。
6.根据权利要求1所述的分布式文件***的权限管理方法,其特征在于,在所述在消息队列服务订阅存储节点的地址以及权限信息操作的步骤中,还包括:
从所述消息队列服务接受所述存储节点状态信息,所述存储节点状态信息包括自身的存储节点地址、当前存储容量、剩余存储容量。
7.根据权利要求4所述的分布式文件***的权限管理方法,其特征在于,在所述在消息队列服务订阅存储节点的地址以及权限信息操作的步骤中,还包括:
按照预设时间间隔更新所述存储节点状态信息。
8.一种分布式文件***的权限管理装置,其特征在于,包括:
消息订阅模块,用于在消息队列服务订阅存储节点的地址以及权限信息操作;
文件信息接收模块,用于接收文件网关发送的上传文件信息以及创建文件请求,并将所述上传文件信息存储在用户对应的元数据服务器,所述上传文件信息包括:文件名、文件大小、用户ID;所述元数据服务器是根据所述用户ID用一致性哈希算法计算得到的;所述创建文件请求为所述文件网关发送的创建所述上传文件的请求;
文件切割模块,用于向所述文件网关发送文件块切割指令,将上传文件根据预设大小,将所述上传文件分割成多个文件块;
存储节点选择模块,用于根据被分割的所述文件块的数量选择相应数量的所述存储节点,将所述存储节点的地址返回给所述文件网关,所述文件网关将所述文件块上传到所述存储节点;
文件请求存储模块,用于当所述文件网关将所有的所述文件块上传到所述存储节点时,根据所述上传文件信息以及所述创建文件请求生成文件信息,并将所述文件信息存储在所述元数据服务器中,所述文件信息包括所述上传文件的权限信息;
权限信息操作接收模块,用于接收到用户输入的对所述上传文件的所述权限信息操作时,将所述权限信息操作输入到所述消息队列服务,所述权限信息操作包括指定文件写入用户列表信息及文件的操作权限、以及给目标用户写入文件信息及文件的操作权限;
权限文件分片定位模块,用于根据所述用户的所述用户ID使用一致性哈希算法定位到对应的所述元数据服务器,并读取所述上传文件的权限信息所在的权限文件分片,所述权限信息包括所述文件的可操作用户以及所述用户的可操作文件;
权限文件分片写入模块,用于将所述权限信息操作作为所述权限信息的增量部分写入所述权限文件分片。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述分布式文件***的权限管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495822.3A CN112650729B (zh) | 2020-12-17 | 2020-12-17 | 一种分布式文件***的权限管理方法、***以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495822.3A CN112650729B (zh) | 2020-12-17 | 2020-12-17 | 一种分布式文件***的权限管理方法、***以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112650729A CN112650729A (zh) | 2021-04-13 |
CN112650729B true CN112650729B (zh) | 2023-06-13 |
Family
ID=75355502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011495822.3A Active CN112650729B (zh) | 2020-12-17 | 2020-12-17 | 一种分布式文件***的权限管理方法、***以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112650729B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726838B (zh) * | 2021-06-17 | 2023-09-19 | 武汉理工数字传播工程有限公司 | 文件传输方法、装置、设备及存储介质 |
CN113609228A (zh) * | 2021-08-13 | 2021-11-05 | 东南数字经济发展研究院 | 运动健康跨模态数据分布式存储和检索*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件***元数据管理方法 |
KR101285281B1 (ko) * | 2012-03-29 | 2013-08-23 | 주식회사 씨디에스 | 자가조직 저장매체의 보안 시스템 및 그 방법 |
CN103473337A (zh) * | 2013-09-22 | 2013-12-25 | 北京航空航天大学 | 一种分布式存储***中处理面向海量目录和文件的方法 |
CN110401725A (zh) * | 2019-08-23 | 2019-11-01 | 深圳市鹰硕技术有限公司 | 文件上传方法、装置、终端、服务器、***及存储介质 |
CN110457263A (zh) * | 2019-08-13 | 2019-11-15 | 北京首都在线科技股份有限公司 | 一种数据存储方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10983732B2 (en) * | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
-
2020
- 2020-12-17 CN CN202011495822.3A patent/CN112650729B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101285281B1 (ko) * | 2012-03-29 | 2013-08-23 | 주식회사 씨디에스 | 자가조직 저장매체의 보안 시스템 및 그 방법 |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件***元数据管理方法 |
CN103473337A (zh) * | 2013-09-22 | 2013-12-25 | 北京航空航天大学 | 一种分布式存储***中处理面向海量目录和文件的方法 |
CN110457263A (zh) * | 2019-08-13 | 2019-11-15 | 北京首都在线科技股份有限公司 | 一种数据存储方法和装置 |
CN110401725A (zh) * | 2019-08-23 | 2019-11-01 | 深圳市鹰硕技术有限公司 | 文件上传方法、装置、终端、服务器、***及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112650729A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10956990B2 (en) | Methods and apparatuses for adjusting the distribution of partitioned data | |
US11372568B2 (en) | System and method for storing and accessing blockchain data | |
CN112565325B (zh) | 镜像文件管理方法、装置及***、计算机设备、存储介质 | |
CN111475483B (zh) | 数据库迁移方法、装置及计算设备 | |
CN111209090B (zh) | 一种云平台中虚拟机的创建方法、组件及服务器 | |
CN112650729B (zh) | 一种分布式文件***的权限管理方法、***以及存储介质 | |
CN113672175A (zh) | 分布式对象存储方法、装置和设备及计算机存储介质 | |
CN112000287B (zh) | 一种io请求处理装置、方法、设备及可读存储介质 | |
US20170256023A1 (en) | Solid state storage local image processing system and method | |
CN109918382A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN112269661B (zh) | 基于Kafka集群的分区迁移方法和装置 | |
US11886225B2 (en) | Message processing method and apparatus in distributed system | |
CN112000703B (zh) | 数据入库处理方法、装置、计算机设备和存储介质 | |
CN115982101B (zh) | 基于多机房副本放置策略的机房数据迁移方法与装置 | |
CN113515518A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN114785662B (zh) | 一种存储管理方法、装置、设备及机器可读存储介质 | |
US11556503B2 (en) | Distributed management of file modification-time field | |
CN112860694B (zh) | 业务数据的处理方法、装置及设备 | |
CN116974734A (zh) | 一种对象存储***、对象修改方法及相关设备 | |
TWI756202B (zh) | 調整資料片段分布的方法及資料伺服器 | |
CN117290354A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115328947A (zh) | 一种数据请求方法及相关设备 | |
CN117667865A (zh) | 数据分布式存储方法、装置、设备及介质 | |
CN111399763A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |