CN109302448B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN109302448B CN109302448B CN201810983686.9A CN201810983686A CN109302448B CN 109302448 B CN109302448 B CN 109302448B CN 201810983686 A CN201810983686 A CN 201810983686A CN 109302448 B CN109302448 B CN 109302448B
- Authority
- CN
- China
- Prior art keywords
- data
- target data
- service node
- directory
- metadata
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据处理方法及装置,涉及存储技术领域,能够解决时延较大的问题。该方法包括:服务节点接收数据处理请求,数据处理请求用于请求在第一目录中创建目标数据或者用于请求修改第一目录中的目标数据,服务节点用于管理对第一目录中所有数据以及元数据的操作;响应于数据处理请求,服务节点处理目标数据,并将处理后的目标数据的元数据存储于第一存储设备中,第一存储设备属于至少三个存储设备,服务节点与至少三个存储设备中的每个存储设备均连接;服务节点发送数据处理响应,数据处理响应用于指示服务节点已处理目标数据。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种数据处理方法及装置。
背景技术
分布式文件系统中,客户端代理(Client Agent,CA)管理对数据的操作,元数据服务器(Metadata Server,MDS)管理对元数据的操作。
现有技术中,CA与MDS属于不同的物理节点。对于单个小文件的处理,如创建、删除、写数据、改数据或删除数据,均需要CA与MDS之间传输远程过程调用协议(RemoteProcedure Call Protocol,RPC)消息,以实现对文件以及该文件的元数据的管理。但是,RPC消息的交互会导致处理文件的时延较大。
发明内容
本申请提供一种数据处理方法及装置,能够解决时延较大的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据处理方法,在接收到数据处理请求后,服务节点响应该数据处理请求,处理目标数据,并将处理后的目标数据的元数据存储于第一存储设备中,然后,该服务节点发送用于指示该服务节点已处理目标数据的数据处理响应。这里的服务节点用于管理对第一目录中所有数据以及每一数据的元数据的操作,服务节点与至少三个存储设备中的每个存储设备均连接,第一存储设备属于至少三个存储设备,上述数据处理请求用于请求在第一目录中创建目标数据或者用于请求更新第一目录中的目标数据。
本申请中的服务节点管理对第一目录中所有数据以及每一数据的元数据的操作,这样,在接收到用于请求在第一目录中创建目标数据或者用于请求更新第一目录中的目标数据的数据处理请求后,第一服务节点无需再与其他设备交互,即可实现对目标数据以及目标数据的元数据的操作。与现有技术中CA与MDS之间需要传输RPC消息才能实现对某一数据和元数据的管理相比,本申请提供的数据处理方法有效的降低了时延。
容易看出的是,本申请中的服务节点相当于现有技术中CA与MDS的集成设备,该服务节点具备CA的功能,也具备MDS的功能。
本申请中的目标数据可以为文件或者目录,本申请对此不作具体限定。
可选的,在本申请的一种可能的实现方式中,若上述数据处理请求用于请求在第一目录中创建目标数据,该数据处理请求包括第一目录的标识和目标数据的名称。相应的,上述服务节点发送的数据处理响应包括目标数据的句柄。目标数据的句柄用于唯一表征目标数据。在上述数据处理请求用于请求在第一目录中创建目标数据的情况下,上述“响应于数据处理请求,服务节点处理目标数据,并将处理后的目标数据的元数据存储于第一存储设备中”的方法为:服务节点查询目标数据的名称在第一目录中是否已经存在;在第一目录不存在目标数据的名称的情况下,服务节点创建目标数据,并获取创建目标数据的时间;进一步地,服务节点将目标数据的元数据存储于第一存储设备中,该目标数据的元数据包括目标数据的名称和创建目标数据的时间。
在数据处理请求用于请求在第一目录中创建目标数据的情况下,服务节点在第一目录中创建目标数据,并将该目标数据的元数据存储于第一存储设备中。在完成创建后,服务节点向第一协议节点发送包括目标数据的句柄的数据处理响应,以便于第一协议节点向客户端发送该目标数据的句柄,从而使得客户端根据目标数据的句柄请求写数据。
可选的,在本申请的另一种可能的实现方式中,上述“数据处理请求用于请求更新第一目录中的目标数据”具体为:用于请求删除目标数据、用于请求修改目标数据的第一元数据、用于请求在目标数据中添加第一待处理数据、用于请求删除目标数据中的第二待处理数据中的任意一种。
本申请中的修改目标数据可以为对目标数据这一整体的修改,也可以为对目标数据的数据进行修改。对目标数据这一整体的修改可以为删除目标数据,也可以为修改目标数据的第一元数据(如访问权限)。对目标数据的数据进行修改可以为在目标数据中添加待处理数据,也可以为将目标数据中的待处理数据删除,还可以为将目标数据的某一部分数据修改为待处理数据。
可选的,在本申请的另一种可能的实现方式中,若上述数据处理请求用于请求在目标数据中添加第一待处理数据,该数据处理请求包括目标数据的句柄和第一待处理数据。上述“响应于数据处理请求,服务节点处理目标数据,并将处理后的目标数据的元数据存储于第一存储设备中”的方法为:服务节点将第一待处理数据添加到目标数据中,并获取添加第一待处理数据后的目标数据的元数据;在获取到添加第一待处理数据后的目标数据的元数据后,服务节点将添加第一待处理数据后的目标数据的元数据存储于第一存储设备中。
服务节点可将待处理数据直接写入第二存储设备中,该第二存储设备为存储有目标数据的设备。本申请中的第一存储设备和第二存储设备可以相同,也可以不同,本申请对此不作具体限定。第一存储设备可以为至少三个存储设备中的至少一个设备,第二存储设备也可以为至少三个存储设备中的至少一个设备。
可选的,在本申请的另一种可能的实现方式中,在服务节点处理目标数据,并将处理后的目标数据的元数据存储于第一存储设备中之前,服务节点还获取第一目录归属锁,该第一目录归属锁用于保护第一目录中的所有数据不被除服务节点之外的其他服务节点处理。
服务节点在获取到第一目录归属锁后,其他服务节点无法对第一目录中的任意一个数据进行操作,有效的保护了服务节点对目标数据的处理,也能够有效的保证了与第一目录对应的元数据的准确性。服务节点在对目标数据的处理过程中,只需要获取第一目录归属锁,而无需与分布式锁服务器进行多次交互,有效的提高了分布式锁资源的利用率,且进一步地降低了对目标数据的处理时延。
第二方面,提供一种服务节点,该服务节点包括接收单元、处理单元和发送单元。
具体的,上述接收单元,用于接收数据处理请求,该数据处理请求用于请求在第一目录中创建目标数据或者用于请求更新第一目录中的目标数据,服务节点用于管理对第一目录中所有数据以及每一数据的元数据的操作。上述处理单元,用于响应于上述接收单元接收到的数据处理请求,处理目标数据,并将处理后的目标数据的元数据存储于第一存储设备中,第一存储设备属于至少三个存储设备,服务节点与至少三个存储设备中的每个存储设备均连接。上述发送单元,用于发送数据处理响应,数据处理响应用于指示服务节点已处理目标数据。
可选的,在本申请的一种可能的实现方式中,若上述数据处理请求用于请求在第一目录中创建目标数据,该数据处理请求包括第一目录的标识和目标数据的名称;数据处理响应包括目标数据的句柄。相应的,上述处理单元具体用于:查询目标数据的名称在第一目录中是否已经存在;在第一目录不存在目标数据的名称的情况下,创建目标数据,并获取创建目标数据的时间;将目标数据的元数据存储于第一存储设备中,目标数据的元数据包括目标数据的名称和创建目标数据的时间。
可选的,在本申请的另一种可能的实现方式中,上述数据处理请求用于请求更新第一目录中的目标数据具体为:用于请求删除目标数据、用于请求修改目标数据的第一元数据、用于请求在目标数据中添加第一待处理数据、用于请求删除目标数据中的第二待处理数据中的任意一种。
可选的,在本申请的另一种可能的实现方式中,若上述数据处理请求用于请求在目标数据中添加第一待处理数据,该数据处理请求包括目标数据的句柄和第一待处理数据。上述处理单元具体用于:将第一待处理数据添加到目标数据中;获取添加第一待处理数据后的目标数据的元数据,并将添加第一待处理数据后的目标数据的元数据存储于第一存储设备中。
可选的,在本申请的另一种可能的实现方式中,上述处理单元,还用于在处理目标数据,并将处理后的目标数据的元数据存储于第一存储设备中之前,获取第一目录归属锁,第一目录归属锁用于保护第一目录中的所有数据不被除服务节点之外的其他服务节点处理。
第三方面,提供一种服务节点,该服务节点包括:一个或多个处理器、存储器、通信接口。该存储器、通信接口与一个或多个处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括指令,当一个或多个处理器执行指令时,服务节点执行如上述第一方面及其任意一种可能的实现方式中任意之一所述的数据处理方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在上述第三方面所述的服务节点上运行时,使得所述服务节点执行如上述第一方面及其任意一种可能的实现方式中任意之一所述的数据处理方法。
第五方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在上述第三方面所述的服务节点上运行时,使得所述服务节点执行如上述第一方面及其任意一种可能的实现方式中任意之一所述的数据处理方法。
在本申请中,上述服务节点的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请中第二方面到第五方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第五方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为现有技术中包括分布式文件系统的存储系统的结构示意图;
图2为现有的创建小文件的流程示意图;
图3为本发明实施例中包括分布式文件系统的存储系统的结构示意图;
图4为本发明实施例中服务节点的硬件结构示意图;
图5为本发明实施例提供的数据处理方法的流程示意图一;
图6为本发明实施例提供的数据处理方法的流程示意图二;
图7为本发明实施例提供的数据处理方法的流程示意图三;
图8为本发明实施例提供的数据处理方法的流程示意图四;
图9为本发明实施例提供的服务节点的结构示意图。
具体实施方式
本发明实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同目标,而不是用于限定特定顺序。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
分布式文件系统由多个节点组成,作为一个整体通过前端网络(Front-endNetwork,FN)对外提供服务。系统内部各个节点通过后端网络(Back-end Network,BN)连接。
一般的,分布式文件系统包括NAS集群、多个CA、MDS集群、多个存储设备以及分布式锁管理(Distributed Lock Management,DLM)服务器。其中,NAS集群包括多个网络文件系统(Network File System,NFS)/通用网络文件系统(Common Internet File System,CIFS)节点,多个NFS/CIFS节点与多个CA一一对应连接,每个CA与MDS集群中的多个MDS连接。存储设备可以为对象存储设备(Object Storage Devices,OSD),也可以为提供分布式块存储的存储设备,还可以为其他类型的存储设备。
以存储设备为OSD为例,图1示出了现有技术中包括分布式文件系统的存储系统的结构示意图。如图1所示,该存储系统包括NAS客户端和分布式文件系统,该分布式文件系统包括NAS集群10、多个CA 11、MDS集群12、多个OSD 13以及DLM节点14。NAS集群10包括多个NFS/CIFS节点101。CA 11与NFS/CIFS节点101一一对应连接,MDS集群12包括多个MDS 120,一个CA 11与多个MDS 120连接,DLM节点14与每个CA 11均连接。
NAS集群10可以为NAS客户端提供NFS/CIFS服务。当多个NAS客户端同时访问该分布式文件系统时,NAS集群10可以自动实现多个NAS客户端在不同服务之间的负载均衡。
所有CA 11组成的子系统提供可移植操作系统接口(Portable Operating SystemInterface,POSIX)。NAS集群10可以通过CA 11组成的子系统访问全部存储服务,并提供标准的文件系统读写访问等接口。
具体的,CA 11负责文件系统语义的处理、数据的读写、管理数据的缓存,通过预设方式将数据存储于OSD 13中。CA 11的数据缓存管理采用共享所有(share-anything)的方式,不同的CA 11可以缓存同一文件的部分或全部数据。在对某一文件进行处理的过程中,每一CA 11均采用DLM分布式锁进行加锁操作,以获得文件访问权限,防止其他CA对该文件的处理。CA 11负责处理与其对应的NAS/CIFS模块101接收到的所有业务请求。
MDS 120管理元数据的缓存,将元数据按照多副本的方式存储于OSD 13中。MDS120的元数据缓存管理采用不共享(share-nothing)的方式,一个文件或目录的元数据在同一时刻只能在一个MDS 120上缓存,并且只能由这个MDS 120来访问。元数据的分布是通过类似分布式文件系统Ceph的动态子树的方式划分归属。CA 11通过至少一个MDS 120获取文件/目录的元数据。
图1中的所有OSD 13构成多个数据子域,用于对外提供对象存储服务。OSD 13用于存储文件和/或文件的元数据。文件和该文件的元数据可以存储于不同的OSD 13,也可以存储于同一OSD 13中。
DLM节点14用于管理分布式锁资源,如条带Strip锁、Ibit锁、Size锁,负责分布式锁的申请、释放以及可靠性处理。DLM节点14根据CA 11的需求,为该CA 11分配相应的锁资源。
可选的,上述NFS/CIFS节点101和CA 11可以位于同一物理机(例如个人电脑、服务器等)上,也可以独立部署,具体实际的部署方式不受本发明实施例的限制。
现有的分布式文件系统中,元数据与数据是独立管理的。元数据与数据的独立管理实现了分布式文件系统的容量动态增减、性能现行扩展。
对于小文件(通常将大小在1MB以内的文件称为小文件)而言,管理过于繁琐。下面以文件1为例进行说明,结合上述图1,如图2所示,该文件A的创建流程为:
1、NAS客户端向NAS集群10发送文件创建请求,用于请求在目录A下创建文件1。
2、NAS集群10根据预设算法和每一NFS/CIFS节点的负载,选择某一NFS/CIFS节点响应该文件创建请求。
本实施例中,以NSA集群10选择NFS/CIFS节点A响应文件创建请求为例进行说明。
3、NFS/CIFS节点A调用与其对应的CA~1处理上述文件创建请求。
4、若MDS~1管理目录A的元数据,则CA~1向MDS~1发送RPC查询消息,以便于MDS~1查询文件1是否存在。
5、若MDS~1确定文件1不存在,MDS~1向CA~1发送用于表示文件1不存在的PRC响应消息。
6、CA~1向MDS~1发送元数据创建请求,请求创建文件1的元数据。
7、MDS~1将文件1的元数据存储于OSD中,并向CA~1发送元数据创建响应。
8、CA~1向NFS/CIFS节点A发送文件创建响应,NFS/CIFS节点A向NAS客户端转发该文件创建响应。
进一步地,在文件1创建成功后,NAS客户端可以在文件1中写入数据。具体的,在文件1中写数据的流程为:
I、NAS客户端向NAS集群发送包括文件句柄的写数据请求;NAS集群向文件句柄所归属的NFS/CIFS节点A转发该写数据请求;该NFS/CIFS节点A调用与其唯一对应的CA~1处理写数据请求。
II、CA~1加条带Stripe锁,防止其他CA在文件1中写入数据。CA~1按照预设方式选择OSD,并将待写入数据写入到选择出的OSD中。
III、CA~1加Size锁,防止其他CA对文件1的大小(Size)进行修改,并向MDS~1发送RPC修改消息,以便于MDS~1修改文件1的Size及修改时间(Changetime/Modifytime,Ctime/Mtime)等元数据;MDS~1存储修改后的元数据后,向CA~1发送用于表示文件1的元数据已适应修改的RPC响应消息。
IIII、CA~1加Ibit锁,防止在CA~1处理文件1的同时,其他CA处理文件1,保证其他CA能及时从MDS~1获取到文件1的最新元数据。
V、CA~1依次释放Stripe锁、Size锁及Ibit锁,并通知NFS/CIFS节点A向NAS客户端发送用于表示数据写入成功的响应消息。
上述Strip锁、Size锁以及Ibit锁均属于分布式锁。分布式锁为控制分布式中不同节点同步访问共享资源的一种方式,可以通过锁互斥来防止彼此干扰,从而保持数据保证一致性。
此外,删除文件A、修改文件A的部分元数据的流程与创建文件A的流程类似,这里不再进行详细赘述。删除文件A中的数据的流程与在文件A中写数据的流程类似,这里不再进行详细赘述。
可以看出,对于单个小文件的处理,如创建、添加数据、改数据或删除数据,均需要CA与MDS之间传输RPC消息,以实现对数据与元数据的管理。但是,RPC消息的交互会导致处理文件的时延较大。
此外,在单个小文件的写数据过程中,CA需要加多次分布式锁,加大了锁资源的开销,降低了锁资源的有效利用率。
对于上述问题,本发明实施例提供一种数据处理方法,将上述图1中的MDS服务去集群化,MDS作为CA的子模块提供元数据操作服务。也就是说,本发明实施例中的一个MDS只为一个CA提供服务。本发明实施例中的CA与MDS集成于同一设备,以服务节点为例,服务节点管理数据和元数据的存储,这样,服务节点在处理数据和元数据的过程中,无需再与其他设备交互,从而有效的减少了RPC消息的传输,降低了时延。
此外,本发明实施例中的元数据存储采用以目录为单位的单层子树,单层子树的归属和数据由目录归属锁确定。服务节点通过获取与某一目录对应的目录归属锁,防止其他服务节点对该目录中的数据进行处理。本发明实施例中的服务节点只需获取一次目录归属锁即可,无需获取多次分布式锁,降低了锁资源的开销,提高了锁资源的有效利用率。
本发明实施例提供的数据处理方法应用于包括分布式文件系统的存储系统。如图3所示,该存储系统包括NAS客户端和分布式文件系统,该分布式文件系统包括NAS集群30、多个服务节点31、多个存储设备32以及与每个服务节点31均连接的DLM节点33。NAS集群30包括多个协议节点301。服务节点31与协议节点301一一对应连接。
其中,服务节点31与协议节点301可以位于同一物理机(例如个人电脑、服务器等)上,也可以独立部署,本发明实施例对此不作具体限制。
结合图1可以看出,图3中的服务节点31相当于图1中的CA 11与MDS 120的集成,图3中的协议节点301可以为NFS/CIFS节点。
NAS集群30可以为NAS客户端提供NFS/CIFS服务。与NAS集群10相比,NAS集群30增加了目录归属查询及内部路由转发的功能。当NAS客户端连接的协议节点查询操作目录的归属不在当前节点时,协议节点会向目录归属的协议节点转发操作请求。目录归属的协议节点分解操作请求,并将分解后的操作请求发送至与该协议节点连接的服务节点。
DLM节点33用于管理分布式锁的申请、释放及可靠性处理,对外提供分布式锁服务。本发明实施例中的DLM节点33用于管理目录归属锁。本发明实施例中的目录归属锁用于保护当前目录下各个数据不被其他服务节点操作,而不保护各个数据的下一级数据。目录归属锁与目录一一对应,因此,不同的目录标识FID所对应的目录归属锁不同。可选的,DLM节点33可以将目录FID作为目录归属锁的键值。
特殊的,若某一目录包括的数据数量较多,则该目录可能需要动态分裂为多个子分片迁移到不同的服务节点以实现资源的均衡。在这种场景中,DLM节点33可采用<FID,FRAGID>作为目录归属锁的键值,其中,FRAGID为分片标识。也就是说,在这种情况下,目录下的每个子分片对应一个目录归属锁。
存储设备32可以为OSD,也可以为提供分布式块存储的存储设备,还可以为其他类型的存储设备,本发明实施例对此不作具体限定。存储设备32可以参考上述OSD 13的描述,此处不再进行详细赘述。
服务节点31用于管理某一目录下的数据、元数据的缓存。与上述CA 11和MDS 120的独立部署相比,有效的减少了元数据处理时的IO路径及时延。服务节点31包括数据管理模块和元数据管理模块,其中,数据管理模块具备目录归属查询、数据读写及缓存的功能,元数据管理模块为数据管理模块提供元数据操作接口,即提供MDS接口,具备元数据的缓存管理功能。
以管理第一目录中所有数据以及每一数据的元数据的操作的服务节点是第一服务节点为例,第一服务节点在接收到与其对应的协议节点,以第一协议节点为例,发送的数据处理请求后,响应该数据处理请求,处理目标数据,并将处理后的目标数据的元数据存储于第一OSD中,然后,该第一服务节点向第一协议节点发送用于指示第一服务节点已处理目标数据的数据处理响应。其中,数据处理请求可以用于请求在第一目录中创建目标数据,也可以用于请求更新第一目录中的目标数据。这里,更新第一目录中的目标数据可以为删除目标数据,也可以为对目标数据不进行处理,仅修改目标数据的第一元数据,还可以为在目标数据中添加第一待处理数据,还可以为删除目标数据中的第二待处理数据。
上述目标数据可以为文件或目录,本发明实施例对此不作具体限定。
在硬件实现上,如图4所示,上述服务节点31包括:通信接口40、处理器41、存储器42。其中,通信接口40、处理器41与存储器42之间通过系统总线43连接,并完成相互间通信。
通信接口40用于与其他设备通信,例如接收与服务节点31对应的协议节点发送的数据处理请求,或者向与服务节点31对应的协议节点发送数据处理响应。
存储器42可用于存储某一目录中所有数据的元数据,也可以用于存储软件程序以及应用模块,处理器41通过运行存储在存储器42的软件程序以及应用模块,从而执行服务节点31的各种功能应用以及数据处理。
存储器42可主要包括存储程序区420和存储数据区421,其中,存储程序区420可存储操作系统、至少一个功能所需的应用程序,比如用于写数据的应用程序、用于修改元数据的应用程序等;存储数据区421可存储某一目录中所有数据的元数据,也可存储服务节点31的操作系统。在本发明实施方式中,所述操作系统可以为Windows操作系统,也可以是Vxworks这类的嵌入式操作系统。
在本发明实施例中,存储器42可以包括易失性存储器,例如非挥发性动态随机存取内存(Nonvolatile Random Access Memory,NVRAM)、相变化随机存取内存(PhaseChange RAM,PRAM)、磁阻式随机存取内存(Magnetic Random Access Memory,MRAM)等;存储器42还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、闪存器件,例如反或闪存(NOR flash memory)或是反及闪存(NAND flash memory)。非易失存储器存储处理器41所执行的操作系统及应用程序。
存储器42可以是独立存在,通过系统总线43与处理器41相连接。存储器42也可以和处理器41集成在一起。
处理器41是服务节点31的控制中心。处理器41利用各种接口和线路连接整个服务节点31的各个部分,通过运行或执行存储在存储器42内的软件程序和/或应用模块,以及调用存储在存储器42内的数据,执行服务节点31的各种功能和处理数据,从而对服务节点31整体监控。
处理器41可以仅包括中央处理器(Central Processing Unit,CPU),也可以是CPU、数字信号处理器(Digital Signal Processor,DSP)以及通信单元中的控制芯片的组合。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。在具体实现中,作为一种实施例,处理器41可以包括一个或多个CPU,例如图4中的处理器41包括CPU 0和CPU1。
系统总线42可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该系统总线42可以分为地址总线、数据总线、控制总线等。本发明实施例中为了清楚说明,在图4中将各种总线都示意为系统总线42。
需要说明的是,本发明实施例提供的数据处理方法主要应用于海量小文件的场景。
以下,结合上述图3示出的存储系统、图4示出的服务节点对本发明实施例提供的数据处理方法进行详细描述。
从上面描述可知,服务节点可以在某一目录中创建目标数据,也可以删除目标数据,还可以对目标数据不进行处理,仅修改目标数据的第一元数据,还可以在目标数据中添加第一待处理数据,还可以删除目标数据中的第二待处理数据。
为了便于理解,现在先对服务节点在第一目录中创建目标数据进行说明。具体的,如图5所示,该数据处理方法包括:
S501、NAS客户端向第一协议节点发送第一数据处理请求。
该第一数据处理请求用于请求在第一目录中创建目标数据。具体的,该第一数据处理请求包括第一目录的标识和目标数据的名称。其中,第一目录的标识可以采用第一目录的FID来表示。
具体的,NAS客户端向NAS集群发送第一数据处理请求,NAS集群根据负载/第一数据处理请求中协议节点的互联网协议(Internet Protocol,IP)地址确定第一协议节点,并向第一协议节点发送该第一数据处理请求。
在一种可能的实现方式中,NAS集群包括负载均衡节点,该负载均衡节点用于将NAS客户端的业务分配到各个协议节点上,以达到负载均衡的目的。这样,负载均衡节点根据各个协议节点的负载,确定出第一协议节点。
在另一种可能的实现方式中,NAS集群不包括负载均衡节点,根据第一预设算法进行负载均衡,例如分布式哈希表(Distributed Hash Table,DHT)算法。示例性的,NAS集群根据预设的DHT算法,确定第一协议节点。
在另一种可能的实现方式中,第一数据处理请求包括第一协议节点的IP地址,这样,NAS集群根据该第一协议节点的IP地址,确定第一协议节点,并向第一协议节点发送第一数据处理请求。
可以看出,NAS客户端向NAS集群发送第一数据处理请求实质上为NAS客户端向第一协议节点发送第一数据处理请求。
S502、第一协议节点确定第一目录是否归属于第一服务节点。
其中,第一服务节点与第一协议节点对应。
从上面描述可知,本发明实施例中的协议节点与服务节点一一对应,服务节点用于管理某一目录。因此,第一协议节点在接收到第一数据处理请求后,需要确定第一目录是否归属于第一服务节点。
具体的,第一协议节点向第一服务节点发送路由查询请求,以便于第一服务节点查询第一目录是否归属于第一服务节点。相应的,第一服务节点在查询后,向第一协议节点发送路由查询响应。若第一目录归属于第一服务节点,则第一服务节点向第一协议节点发送用于指示第一目录归属于第一服务节点的路由查询响应。若第一目录不归属于第一服务节点,则第一服务节点向第一协议节点发送用于指示第一目录不归属于第一服务节点的路由查询响应。
若第一协议节点确定第一目录归属于第一服务节点,则在S502后,顺序执行S503~S508。若第一协议节点确定第一目录不归属于第一服务节点,且第一协议节点确定出NAS集群中的第二协议节点所对应的第二服务节点管理第一目录,则在S502后,顺序执行S509~S515。
S503、若第一目录归属于第一服务节点,则第一协议节点向第一服务节点发送该第一数据处理请求。
S504、第一服务节点查询目标数据的名称在第一目录中是否已经存在。
具体的,第一服务节点中的数据管理模块调用MDS接口进行名称去重检查。
若目标数据的名称在第一目录中已经存在,则该目标数据无法创建成功,创建目标数据的流程结束。若目标数据的名称在第一目录中不存在,则在S504后顺序执行S505。
S505、在第一目录不存在目标数据的名称的情况下,第一服务节点创建目标数据,并获取创建目标数据的时间。
具体的,第一服务节点中的数据管理模块创建目标数据,元数据管理模块获取创建目标数据的时间。
S506、第一服务节点将目标数据的元数据存储于第一存储设备中。
这里,目标数据的元数据包括目标数据的名称和创建目标数据的时间,还可以包括数据类型、用户组信息等。
可选的,第一服务节点可以根据第一目录的FID和预设的磁盘冗余阵列级别,采用Hash算法选择若干个存储设备写入目标数据的元数据。每个存储设备中均保存有一份目标数据的元数据。也就是说,本发明实施例中的第一存储设备的数量可以为至少一个。
第一服务节点将目标数据的元数据存储于第一存储设备的方法还可以为现有技术中元数据存储的任意一种方法,本发明实施例对此不作具体限定。
具体的,第一服务节点中的元数据管理模块将目标数据的元数据存储于第一存储设备中。
S507、第一服务节点向第一协议节点发送第一数据处理响应。
第一服务节点在创建目标数据,并存储该目标数据的元数据后,向第一协议节点发送用于指示第一服务节点已创建目标数据的第一数据处理响应。
其中,第一数据处理响应包括目标数据的句柄,该句柄包括目标数据的FID和第一存储设备的标识。
S508、第一协议节点向NAS客户端发送第一数据处理响应。
S509、若第一目录归属于第二服务节点,第一协议节点向第二协议节点发送第一数据处理请求。
集群内的各个协议节点通过内部局域网相互通信。由于第一协议节点和第二协议节点均属于NAS集群,因此,第一协议节点和第二协议节点可相互通信,彼此获取对方的通信信息。因此,若第一协议节点确定第一目录不归属第一服务节点,则该第一协议节点可在NAS集群中确定出第一目录所归属的节点。
具体的,在第一协议节点确定出第一目录归属于与第二协议节点对应的第二服务节点的情况下,该第一协议节点向第二协议节点发送第一数据处理请求。
S510、第二协议节点向第二服务节点发送第一数据处理请求。
S511、第二服务节点查询目标数据的名称在第一目录中是否已经存在。
若目标数据的名称在第一目录中已经存在,则该目标数据无法创建成功,创建目标数据的流程结束。若目标数据的名称在第一目录中不存在,则在S511后顺序执行S512~S515。
S511与上述S504类似,此处不再进行详细赘述。不同的是,S504的执行主体为第一服务节点,S511的执行主体为第二服务节点。
S512、在第一目录不存在目标数据的名称的情况下,第二服务节点创建目标数据,并获取创建目标数据的时间。
S512可以参考上述S505,此处不再进行详细赘述。
S513、第二服务节点将目标数据的元数据存储于第一存储设备中。
S513可以参考上述S506,此处不再进行详细赘述。
S514、第二服务节点向第二协议节点发送第一数据处理响应。
S515、第二协议节点向第一协议节点发送该第一数据处理响应,第一协议节点向NAS客户端转发该第一数据处理响应。
容易理解的是,在S501中能够与NAS客户端进行通信的设备为第一协议节点。在第二协议节点接收到第一数据处理响应后,该第二协议节点依旧需要通过第一协议节点向NAS客户端转发该第一数据处理响应。
可以看出,在创建目标数据的过程中,本发明实施例中的服务节点无需与其他设备交互,即可实现对目标数据以及目标数据的元数据的操作。与现有技术相比,有效的减少了RPC消息的传输,降低了时延。
可选的,上述服务节点(第一服务节点或第二服务节点)在创建目标数据之前,还可以获取第一目录归属锁,该第一目录归属锁用于保护第一目录中的所有数据不被除该服务节点之外的其他服务节点处理。
结合上述图5,如图6所示,该数据处理方法在S505之前还包括S601,在S512之前还包括S602:
S601、第一服务节点获取第一目录归属锁。
具体的,若第一服务节点已经持有第一目录归属锁,则第一服务节点可直接利用已经持有的第一目录归属锁。反之,该第一服务节点向DLM节点发送包括第一目录的FID的锁资源申请请求,该锁资源申请请求用于请求获取与第一目录的FID对应的目录归属锁;响应于锁资源申请请求,DLM节点为第一服务节点分配第一目录归属锁。
S602、第二服务节点获取第一目录归属锁。
S602可以参考上述S601,此处不再进行详细赘述。
服务节点删除目标数据的流程以及仅修改目标数据的第一元数据的流程与服务节点创建目标数据的流程类似,可以参考上述图5/图6的描述,这里不再进行详细赘述。不同的是,在创建目标数据的过程中,服务节点是存储目标数据的元数据。而在删除目标数据的过程中,服务节点则需要删除目标数据的元数据。在仅修改目标数据的第一元数据(如权限)的过程中,服务节点则需要修改目标数据的元数据。其中,服务节点修改目标数据的元数据的过程可以为服务节点获取目标数据的最新元数据,并将目标数据的原元数据替换为最新元数据。
综上所述,本发明实施例中的服务节点通过获取与某一目录对应的目录归属锁,防止其他服务节点对该目录中的数据进行处理。服务节点只需获取一次目录归属锁即可,无需获取多次分布式锁,降低了锁资源的开销,提高了锁资源的有效利用率。
此外,本发明实施例中的元数据采用以目录为单位的单层子树存储,单层子树的归属和数据由目录归属锁确定,这样,在某一服务节点获取到目录归属锁后,其他服务节点无法再对该目录中的所有数据进行处理,保证了该目录中元数据的准确性和一致性。
在创建目标数据后,服务节点还可以对目标数据进行处理,如写入、修改、删除等。为了便于理解,现对服务节点在目标数据中添加第一待处理数据进行说明。具体的,如图7所示,该数据处理方法包括:
S701、NAS客户端向第一协议节点发送第二数据处理请求。
该第二数据处理请求用于请求在第一目录的目标数据中添加第一待处理数据。该第二数据处理请求包括目标数据的句柄。
具体的,NAS客户端向NAS集群发送第二数据处理请求,该NAS集群将第二数据处理请求发送至句柄所在的协议节点。本发明实施例以句柄所在的协议节点为第一协议节点为例进行说明。
S702、第一协议节点确定第一目录是否归属于第一服务节点。
S702可以参考上述S502,此处不再进行详细赘述。
若第一协议节点确定第一目录归属于第一服务节点,则在S702后顺序执行S703~S707。若第一协议节点确定第一目录不归属于第一服务节点,且第一协议节点确定出NAS集群中的第二协议节点所对应的第二服务节点管理第一目录,则在S702后,顺序执行S708~S713。
S703、若第一目录归属于第一服务节点,第一协议节点向第一服务节点发送第二数据处理请求。
S704、第一服务节点将第一待处理数据添加到目标数据中。
具体的,第一服务节点中的数据管理模块采用纠删码(Erasure Code,EC)的方式将第一待处理数据添加到目标数据中。
S705、第一服务节点获取添加第一待处理数据后的目标数据的元数据,并将添加第一待处理数据后的目标数据的元数据存储于第一存储设备中。
具体的,第一服务节点中的元数据管理模块获取添加第一待处理数据后的目标数据的元数据,并将添加第一待处理数据后的目标数据的元数据存储于第一存储设备中。
S706、第一服务节点向第一协议节点发送第二数据处理响应。
该第二数据处理响应用于表示第一服务节点已在目标数据中添加第一待处理数据。
S707、第一协议节点向NAS客户端转发该第二数据处理响应。
S708、若第一目录归属于第二服务节点,第一协议节点向第二协议节点发送第二数据处理请求。
集群内的各个协议节点通过内部局域网相互通信。由于第一协议节点和第二协议节点均属于NAS集群,因此,第一协议节点和第二协议节点可相互通信,彼此获取对方的通信信息。因此,若第一协议节点确定第一目录不归属第一服务节点,则该第一协议节点可在NAS集群中确定出第一目录所归属的节点。
具体的,在第一协议节点确定出第一目录归属于与第二协议节点对应的第二服务节点的情况下,该第一协议节点向第二协议节点发送第二数据处理请求。
S709、第二协议节点向第二服务节点发送第二数据处理请求。
S710、第二服务节点将第一待处理数据添加到目标数据中。
S711、第二服务节点获取添加第一待处理数据后的目标数据的元数据,并将添加第一待处理数据后的目标数据的元数据存储于第一存储设备中。
S712、第二服务节点向第二协议节点发送第二数据处理响应。
S713、第二协议节点向第一协议节点发送第二数据处理响应,第一协议节点向NAS客户端转发该第二数据处理响应。
容易理解的是,在S701中,NAS集群确定出了第一协议节点,因此,能够与NAS客户端进行通信的设备为第一协议节点。在第二协议节点接收到第二数据处理响应后,该第二协议节点依旧需要通过第一协议节点向NAS客户端转发该第二数据处理响应。
可以看出,在目标数据中添加第一待处理数据的过程中,本发明实施例中的服务节点无需与其他设备交互,即可实现对目标数据以及目标数据的元数据的操作。与现有技术相比,有效的减少了RPC消息的传输,降低了时延。
可选的,上述服务节点(第一服务节点或第二服务节点)在目标数据中添加待处理数据之前,还可以获取第一目录归属锁,该第一目录归属锁用于保护第一目录中的所有数据不被除该服务节点之外的其他服务节点处理。
结合上述图7,如图8所示,该数据处理方法在S704之前还包括S801,在S710之前还包括S802:
S801、第一服务节点获取第一目录归属锁。
具体的,若第一服务节点已经持有第一目录归属锁,则第一服务节点可直接利用已经持有的第一目录归属锁。反之,该第一服务节点向DLM节点发送包括第一目录的FID的锁资源申请请求,该锁资源申请请求用于请求获取与第一目录的FID对应的目录归属锁;响应于锁资源申请请求,DLM节点为第一服务节点分配第一目录归属锁。
S802、第二服务节点获取第一目录归属锁。
S802可以参考上述S801,此处不再进行详细赘述。
上述在目标数据中添加第一待处理数据可以为在目标数据中新添加第一待处理数据,也可以为将目标数据中的某些数据修改为第一待处理数据。
此外,服务节点删除目标数据中的第二待处理数据的流程与服务节点在目标数据中添加第一待处理数据的流程类似,可以参考上述图7/图8的描述,这里不再进行详细赘述。
综上所述,本发明实施例中的服务节点通过获取与某一目录对应的目录归属锁,防止其他服务节点对该目录中的数据进行处理。服务节点只需获取一次目录归属锁即可,无需获取多次分布式锁,降低了锁资源的开销,提高了锁资源的有效利用率。
此外,本发明实施例中的元数据采用以目录为单位的单层子树存储,单层子树的归属和数据由目录归属锁确定,这样,在某一服务节点获取到目录归属锁后,其他服务节点无法再对该目录中的所有数据进行处理,保证了该目录中元数据的准确性和一致性。
上述主要从方法的角度对本发明实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对上述服务节点等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图9所示,为本发明实施例提供的一种服务节点的结构示意图。图9所示的服务节点90可以应用于上文提供的包括分布式文件系统的存储系统。该服务节点90可以用于执行上文提供的任一种数据处理方法中第一服务节点或第二服务节点执行的步骤。服务节点90可以包括:接收单元901、处理单元902和发送单元903。其中,接收单元901,用于接收数据处理请求。处理单元902,用于处理目标数据,并将处理后的目标数据的元数据存储于第一存储设备中。发送单元903,用于发送数据处理响应,该数据处理响应用于指示服务节点已处理目标数据。示例性的,接收单元901可以用于执行S503、SS510。处理单元902可以用于执行S504、S505、S506、S511、S512、S513。发送单元903可以用于执行S507、S514。
处理单元902与上文中的数据管理模块和元数据管理模块对应。
作为一个示例,结合图4,服务节点90中的接收单元901和发送单元903可以对应图4中的通信接口40,处理单元902可以对应图4中的处理器41。
本实施例中相关内容的解释可参考上述方法实施例,此处不再赘述。
本发明另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在服务节点上运行时,该服务节点执行上述方法实施例所示的方法流程中服务节点执行的各个步骤。
在本发明的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;服务节点的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得服务节点实施执行执行上述方法实施例所示的方法流程中服务节点执行的各个步骤。
在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据终端。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,DVD)或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
服务节点接收数据处理请求,所述数据处理请求用于请求在第一目录中创建目标数据或者用于请求更新第一目录中的目标数据,所述服务节点用于管理对所述第一目录中所有数据以及每一数据的元数据的操作;
响应于所述数据处理请求,所述服务节点处理所述目标数据,并将处理后的所述目标数据的元数据存储于第一存储设备中,所述服务节点与所述第一存储设备连接;
所述服务节点发送数据处理响应,所述数据处理响应用于指示所述服务节点已处理所述目标数据。
2.根据权利要求1所述的数据处理方法,其特征在于,若所述数据处理请求用于请求在所述第一目录中创建目标数据,所述数据处理请求包括所述第一目录的标识和所述目标数据的名称;所述数据处理响应包括所述目标数据的句柄;
所述响应于所述数据处理请求,所述服务节点处理所述目标数据,并将处理后的所述目标数据的元数据存储于第一存储设备中,具体包括:
所述服务节点查询所述目标数据的名称在所述第一目录中是否已经存在;
在所述第一目录不存在所述目标数据的名称的情况下,所述服务节点创建所述目标数据,并获取创建所述目标数据的时间;
所述服务节点将所述目标数据的元数据存储于所述第一存储设备中,所述目标数据的元数据包括所述目标数据的名称和所述创建所述目标数据的时间。
3.根据权利要求1所述的数据处理方法,其特征在于,
所述数据处理请求用于请求更新所述第一目录中的目标数据具体为:用于请求删除所述目标数据、用于请求修改所述目标数据的第一元数据、用于请求在所述目标数据中添加第一待处理数据、用于请求删除所述目标数据中的第二待处理数据中的任意一种。
4.根据权利要求3所述的数据处理方法,其特征在于,若所述数据处理请求用于请求在所述目标数据中添加所述第一待处理数据,所述数据处理请求包括所述目标数据的句柄和所述第一待处理数据;
所述响应于所述数据处理请求,所述服务节点处理所述目标数据,并将处理后的所述目标数据的元数据存储于第一存储设备中,具体包括:
所述服务节点将所述第一待处理数据添加到所述目标数据中;
所述服务节点获取添加所述第一待处理数据后的所述目标数据的元数据,并将所述添加所述第一待处理数据后的所述目标数据的元数据存储于所述第一存储设备中。
5.根据权利要求1-4中任意一项所述的数据处理方法,其特征在于,所述服务节点处理所述目标数据,并将处理后的所述目标数据的元数据存储于第一存储设备中之前,所述数据处理方法还包括:
所述服务节点获取第一目录归属锁,所述第一目录归属锁用于保护所述第一目录中的所有数据不被除所述服务节点之外的其他服务节点处理。
6.一种服务节点,其特征在于,包括:
接收单元,用于接收数据处理请求,所述数据处理请求用于请求在第一目录中创建目标数据或者用于请求更改第一目录中的目标数据,所述服务节点用于管理对所述第一目录中所有数据以及每一数据的元数据的操作;
处理单元,用于响应于所述接收单元接收到的所述数据处理请求,处理所述目标数据,并将处理后的所述目标数据的元数据存储于第一存储设备中,所述服务节点与所述第一存储设备连接;
发送单元,用于发送数据处理响应,所述数据处理响应用于指示所述服务节点已处理所述目标数据。
7.根据权利要求6所述的服务节点,其特征在于,若所述数据处理请求用于请求在所述第一目录中创建目标数据,所述数据处理请求包括所述第一目录的标识和所述目标数据的名称;所述数据处理响应包括所述目标数据的句柄;所述处理单元具体用于:
查询所述目标数据的名称在所述第一目录中是否已经存在;
在所述第一目录不存在所述目标数据的名称的情况下,创建所述目标数据,并获取创建所述目标数据的时间;
将所述目标数据的元数据存储于所述第一存储设备中,所述目标数据的元数据包括所述目标数据的名称和所述创建所述目标数据的时间。
8.根据权利要求6所述的服务节点,其特征在于,
所述数据处理请求用于请求更新所述第一目录中的目标数据具体为:用于请求删除所述目标数据、用于请求修改所述目标数据的第一元数据、用于请求在所述目标数据中添加第一待处理数据、用于请求删除所述目标数据中的第二待处理数据中的任意一种。
9.根据权利要求8所述的服务节点,其特征在于,若所述数据处理请求用于请求在所述目标数据中添加所述第一待处理数据,所述数据处理请求包括所述目标数据的句柄和所述第一待处理数据;所述处理单元具体用于:
将所述第一待处理数据添加到所述目标数据中;
获取添加所述第一待处理数据后的所述目标数据的元数据,并将所述添加所述第一待处理数据后的所述目标数据的元数据存储于所述第一存储设备中。
10.根据权利要求6-9中任意一项所述的服务节点,其特征在于,
所述处理单元,还用于在处理所述目标数据,并将处理后的所述目标数据的元数据存储于第一存储设备中之前,获取第一目录归属锁,所述第一目录归属锁用于保护所述第一目录中的所有数据不被除所述服务节点之外的其他服务节点处理。
11.一种服务节点,其特征在于,所述服务节点包括:一个或多个处理器、存储器和通信接口;
所述存储器、所述通信接口与所述一个或多个处理器连接;所述服务节点通过所述通信接口与其他设备通信,所述存储器用于存储计算机程序代码,所述计算机程序代码包括指令,当所述一个或多个处理器执行所述指令时,所述服务节点执行如权利要求1-5中任意一项所述的数据处理方法。
12.一种服务节点,所述服务节点用于执行包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在服务节点上运行时,使得所述服务节点执行如权利要求1-5中任意一项所述的数据处理方法。
13.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在服务节点上运行时,使得所述服务节点执行如权利要求1-5中任意一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810983686.9A CN109302448B (zh) | 2018-08-27 | 2018-08-27 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810983686.9A CN109302448B (zh) | 2018-08-27 | 2018-08-27 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109302448A CN109302448A (zh) | 2019-02-01 |
CN109302448B true CN109302448B (zh) | 2020-10-09 |
Family
ID=65165545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810983686.9A Active CN109302448B (zh) | 2018-08-27 | 2018-08-27 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109302448B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113421086A (zh) * | 2019-03-05 | 2021-09-21 | 创新先进技术有限公司 | 基于区块链的数据存证、取证方法及装置 |
CN111125050B (zh) * | 2019-12-26 | 2023-08-22 | 浪潮云信息技术股份公司 | 一种openstack环境下基于CephFS提供NFS协议的文件存储方法 |
CN112202746B (zh) * | 2020-09-24 | 2023-04-21 | 北京百度网讯科技有限公司 | Rpc成员信息获取方法、装置、电子设备和存储介质 |
CN112860694B (zh) * | 2021-02-04 | 2024-05-17 | 京东科技控股股份有限公司 | 业务数据的处理方法、装置及设备 |
CN115002209A (zh) * | 2022-06-23 | 2022-09-02 | 京东方科技集团股份有限公司 | 数据处理方法、装置及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079902A (zh) * | 2007-06-29 | 2007-11-28 | 清华大学 | 海量数据分级存储方法 |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件系统动态元数据管理方法及系统 |
CN103020257A (zh) * | 2012-12-21 | 2013-04-03 | 曙光信息产业(北京)有限公司 | 数据操作的实现方法和装置 |
CN103179185A (zh) * | 2012-12-25 | 2013-06-26 | 中国科学院计算技术研究所 | 一种分布式文件系统客户端缓存中文件创建方法及其系统 |
CN103491152A (zh) * | 2013-09-17 | 2014-01-01 | 华为数字技术(苏州)有限公司 | 分布式文件系统中元数据获取方法、装置及系统 |
CN104516974A (zh) * | 2014-12-26 | 2015-04-15 | 华为技术有限公司 | 一种文件系统目录项的管理方法及装置 |
CN107168970A (zh) * | 2016-03-07 | 2017-09-15 | 中兴通讯股份有限公司 | 一种分布式文件系统hdfs的管理方法、装置及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7043637B2 (en) * | 2001-03-21 | 2006-05-09 | Microsoft Corporation | On-disk file format for a serverless distributed file system |
CN100595761C (zh) * | 2007-12-29 | 2010-03-24 | 中国科学院计算技术研究所 | 一种拆分名字空间的元数据管理方法 |
CN101520805B (zh) * | 2009-03-25 | 2011-05-11 | 中兴通讯股份有限公司 | 一种分布式文件系统及其文件处理方法 |
CN101719141B (zh) * | 2009-12-24 | 2011-09-07 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和系统 |
CN110119393B (zh) * | 2016-04-29 | 2021-04-09 | 清华大学 | 代码版本管理系统及方法 |
-
2018
- 2018-08-27 CN CN201810983686.9A patent/CN109302448B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079902A (zh) * | 2007-06-29 | 2007-11-28 | 清华大学 | 海量数据分级存储方法 |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件系统动态元数据管理方法及系统 |
CN103020257A (zh) * | 2012-12-21 | 2013-04-03 | 曙光信息产业(北京)有限公司 | 数据操作的实现方法和装置 |
CN103179185A (zh) * | 2012-12-25 | 2013-06-26 | 中国科学院计算技术研究所 | 一种分布式文件系统客户端缓存中文件创建方法及其系统 |
CN103491152A (zh) * | 2013-09-17 | 2014-01-01 | 华为数字技术(苏州)有限公司 | 分布式文件系统中元数据获取方法、装置及系统 |
CN104516974A (zh) * | 2014-12-26 | 2015-04-15 | 华为技术有限公司 | 一种文件系统目录项的管理方法及装置 |
CN107168970A (zh) * | 2016-03-07 | 2017-09-15 | 中兴通讯股份有限公司 | 一种分布式文件系统hdfs的管理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109302448A (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302448B (zh) | 一种数据处理方法及装置 | |
US9424204B2 (en) | Caching method for distributed storage system, a lock server node, and a lock client node | |
US11372897B1 (en) | Writing of data to a storage system that implements a virtual file structure on an unstructured storage layer | |
US8788628B1 (en) | Pre-fetching data for a distributed filesystem | |
US8935560B2 (en) | System and method of file locking in a network file system federated namespace | |
CN108363641B (zh) | 一种主备机数据传递方法、控制节点以及数据库系统 | |
JP2008033912A (ja) | Nas向けのcdpの方法および装置 | |
EP3739440A1 (en) | Distributed storage system, data processing method and storage node | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务系统 | |
CN109407975B (zh) | 写数据方法与计算节点以及分布式存储系统 | |
US8250176B2 (en) | File sharing method and file sharing system | |
WO2014015782A1 (zh) | 分布式文件系统、文件访问方法以及客户端 | |
CN113157487B (zh) | 数据恢复方法及其设备 | |
CN111399760B (zh) | Nas集群元数据处理方法、装置、nas网关及介质 | |
CN113853778B (zh) | 一种文件系统的克隆方法及装置 | |
WO2022053033A1 (zh) | 一种双活存储系统及其处理数据的方法 | |
JP6697101B2 (ja) | 情報処理システム | |
JP6607044B2 (ja) | サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム | |
WO2017028517A1 (zh) | 一种云中数据文件的管理方法、云管理点和系统 | |
CN109257453B (zh) | 在多租户保护存储部署中防止数据泄露企图的基于本地数据ip的网络安全的系统和方法 | |
KR100785774B1 (ko) | 객체 기반 파일 입출력 시스템 및 방법 | |
CN109710582B (zh) | 一种共享目录管理方法和装置 | |
CN116821058B (zh) | 元数据访问方法、装置、设备及存储介质 | |
US10936543B1 (en) | Metadata protected sparse block set for SSD cache space management | |
CN114490517A (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 |