CN117591038B - 一种数据访问方法、装置、分布式存储系统及设备和介质 - Google Patents

一种数据访问方法、装置、分布式存储系统及设备和介质 Download PDF

Info

Publication number
CN117591038B
CN117591038B CN202410071339.4A CN202410071339A CN117591038B CN 117591038 B CN117591038 B CN 117591038B CN 202410071339 A CN202410071339 A CN 202410071339A CN 117591038 B CN117591038 B CN 117591038B
Authority
CN
China
Prior art keywords
client
read
write request
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
Application number
CN202410071339.4A
Other languages
English (en)
Other versions
CN117591038A (zh
Inventor
臧林劼
何怡川
孟祥瑞
李晓伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202410071339.4A priority Critical patent/CN117591038B/zh
Publication of CN117591038A publication Critical patent/CN117591038A/zh
Application granted granted Critical
Publication of CN117591038B publication Critical patent/CN117591038B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种数据访问方法、装置、分布式存储系统及设备和介质,涉及计算机技术领域,该方法包括:当委派服务器接收到第一客户端对于目标文件的授权访问请求时,判断是否存在第二客户端具有对目标目录的访问权限;若是,则向第一客户端返回第二客户端的地址信息,以便第一客户端通过第二客户端对目标文件的进行读写;若否,则向第一客户端授权目标目录的访问权限;在第一客户端对目标目录的访问授权期间内,接收第一客户端对于目标文件的符合可移植操作系统接口语义的读写请求发送至转换设备,以便转换设备将符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,并通过分布式对象存储集群进行响应。

Description

一种数据访问方法、装置、分布式存储系统及设备和介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种数据访问方法、装置、分布式存储系统及设备和介质。
背景技术
分布式存储属于新型数据存储技术,能够将数据分散存储至多个存储服务器中的软件定义存储系统。为了满足当前高性能计算场景下对文件系统的功能要求,即以目录层次结构的方式进行存储计算处理,分布式存储系统通过私有客户端的方式将对象数据挂载到本地文件系统供用户使用,能够使用户通过POSIX(Portable Operating SystemInterface,可移植操作系统接口)语义访问对象存储数据。但是,相关技术不支持文件系统POSIX语义接口的权限管理,即挂载后同一个桶数据不支持多个客户端并发访问。
因此,如何在支持通过POSIX访问分布式对象存储集群的同时,支持多个客户端的并发访问是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种数据访问方法、装置、分布式存储系统及设备和介质,在支持通过POSIX访问分布式对象存储集群的同时,支持多个客户端的并发访问。
为实现上述目的,本申请提供了一种数据访问方法,应用于分布式存储系统中的委派服务器,所述方法包括:
当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;
若是,则向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件的进行读写;
若否,则向所述第一客户端授权所述目标目录的访问权限;
在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;
将所述符合可移植操作系统接口语义的读写请求发送至转换设备,以便所述转换设备将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,并将所述符合对象存储接口语义的读写请求发送至分布式对象存储集群进行响应。
其中,授权访问请求包括所述第一客户端访问所述目标文件的标识符、所述第一客户端的地址、端口号。
其中,向所述第一客户端返回所述第二客户端的地址信息,包括:
向所述第一客户端返回所述第二客户端的地址和端口号。
其中,向所述第一客户端授权所述目标目录的访问权限,包括:
向所述第一客户端授权所述目标目录的预设期限的访问权限。
其中,向所述第一客户端授权所述目标目录的预设期限的访问权限之后,还包括:
将所述第一客户端访问所述目标文件的标识符、所述第一客户端的地址、端口号、所述第一客户端对所述目标目录的访问授权期限存储至日志设备。
其中,还包括:
当所述委派服务器重启后,从所述日志设备更新客户端的访问授权信息。
其中,将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,包括:
将所述符合可移植操作系统接口语义的读写请求中的标识符转换为对象存储的对象标识符,将所述符合可移植操作系统接口语义的读写请求中的操作字转换为对象数据类型,以生成符合对象存储接口语义的读写请求。
其中,将所述符合可移植操作系统接口语义的读写请求中的标识符转换为对象存储的对象标识符,包括:
将所述符合可移植操作系统接口语义的读写请求中的标识符转换为十六进制的数据以生成对象标识符。
其中,所述第一客户端在获得所述目标目录的访问权限之后,从所述分布式对象存储集群获取所述目标目录的元数据,并基于所述目标目录的元数据在本地创建元数据表,所述第一客户端用于在对所述目标目录的访问授权期间内维护所述目标目录的元数据;
所述符合可移植操作系统接口语义的读写请求为所述第一客户端基于本地创建的所述元数据表构建的读写请求。
其中,所述元数据表包括所述目标目录的元数据和所述目标目录的临近目录的元数据。
其中,所述元数据表为基于目录层次结构创建的元数据表。
其中,所述第一客户端在创建元数据表之后,缓存所述元数据表中预设数量的元数据条目。
其中,所述第一客户端在创建元数据表之后,将所述目标目录的元数据存储至日志设备中所述目标目录对应的日志分区中;
在所述第一客户端对所述目标目录的访问授权到期之前,将所述日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
其中,当所述第一客户端修改所述目标目录的元数据时,更新所述日志设备中存储的所述目标目录的元数据,并按照预设周期将所述日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
其中,向所述第一客户端返回所述第二客户端的地址信息之后,还包括:
向所述第二客户端发送更新元数据的通知,以便所述第二客户端将日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
其中,所述第一客户端在获得所述目标目录的访问权限之后,判断所述日志设备中是否存在所述第一客户端在所述日志设备中存储的其他目录的元数据,若是,则将所述日志设备中存储的其他目录的元数据更新至所述分布式对象存储集群。
为实现上述目的,本申请提供了一种数据访问装置,应用于分布式存储系统中的委派服务器,所述装置包括:
判断模块,用于当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;
返回模块,用于当存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限时,向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件的进行读写;
授权模块,用于当不存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限时,则向所述第一客户端授权所述目标目录的访问权限;
接收模块,用于在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;
发送模块,用于将所述符合可移植操作系统接口语义的读写请求发送至转换设备,以便所述转换设备将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,并将所述符合对象存储接口语义的读写请求发送至分布式对象存储集群进行响应。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据访问方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据访问方法的步骤。
为实现上述目的,本申请提供了一种分布式存储系统,包括:
委派服务器,用于当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;若是,则向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件的进行读写;若否,则向所述第一客户端授权所述目标目录的访问权限;在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;
转换设备,用于将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求;
分布式对象存储集群,用于响应所述符合对象存储接口语义的读写请求。
其中,还包括:
日志设备,用于记录客户端的访问授权信息、授权客户端访问权限的目录的元数据;
其中,所述日志设备包括多个日志分区,每个所述日志分区用于存储对应的目录的元数据。
其中,还包括:
监控设备,用于监控客户端和所述委派服务器的故障情况。
通过以上方案可知,本申请提供的一种数据访问方法应用于分布式存储系统中的委派服务器,所述方法包括:当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;若是,则向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件的进行读写;若否,则向所述第一客户端授权所述目标目录的访问权限;在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;将所述符合可移植操作系统接口语义的读写请求发送至转换设备,以便所述转换设备将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,并将所述符合对象存储接口语义的读写请求发送至分布式对象存储集群进行响应。
本申请提供的数据,利用转换设备将符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,符合对象存储接口语义的读写请求可以被分布式对象存储集群直接响应,实现了支持通过可移植操作系统接口访问分布式对象存储集群。同时,通过委派服务器授权客户端对目录的访问权限,在第一客户端请求目标目录的访问权限时,如果第二客户端已经具有对目标目录的访问权限时,委派服务器向第一客户端返回第二客户端的地址信息,第一客户端可以通过第二客户端访问目标目录,实现了多个客户端的并发访问。本申请还公开了一种数据访问装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种数据访问方法的流程图;
图2为根据一示例性实施例示出的一种客户端管理元数据的示意图;
图3为根据一示例性实施例示出的一种授权访问权限控制结构图;
图4为根据一示例性实施例示出的一种数据访问装置的结构图;
图5为根据一示例性实施例示出的一种分布式存储系统的结构图;
图6为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
分布式存储属于新型数据存储技术,能够将数据分散存储至多个存储服务器中的软件定义存储系统。分布式存储具有弹性扩展、灵活性、生产成本低等优势,已逐渐成为各大企业处理海量业务数据的重要设备。在HPC(高性能计算,High Performance Computing)场景下,采用分布式文件系统POSIX语义进行高密集型的数据IO(Input/Output,输入/输出)计算,文件存储的呈现形式是目录和文件,数据以文件的方式存储和访问,按照目录结构进行组织,元数据是描述文件数据属性的信息,随着海量业务数据的不断增加,要求分布式存储系统提供更高效的带宽和IOPS(Input/Output Operations Per Second,每秒输入/输出操作次数)来满足高性能计算,其中,元数据的负载能力、性能和扩展性对分布式文件系统至关重要。
在分布式存储文件系统中,元数据的性能、均衡性、可扩展性具有重要意义,据统计,海量业务HPC场景中,如AI(人工智能,Artificial Intelligence)分析,高性能计算,数据运算演练等,元数据密集型业务模型占比65%,元数据处理请求量远远超过了对数据本身的处理,元数据操作量比数据操作量高出近30倍。
在HPC场景中,应用程序需要通过文件系统的全局目录层次结构进行计算处理,相比于以对象为存储单元通过键值形式存储数据的扁平化命名空间,文件系统的全局目录层次结构会受到元数据性能的制约,当前高性能计算技术背景下,用户仍然需要在以支持POSIX接口的分布式文件系统下进行计算。
为了满足当前高性能计算场景下对文件系统的功能要求,即以目录层次结构的方式进行存储计算处理,分布式存储系统通过私有客户端的方式将对象数据挂载到本地文件系统供用户使用,也即将对象存储数据挂载到本地文件系统需要在客户端安装程序软件,通过mount挂载的方式能够使用户通过POSIX语义访问对象存储数据,每个对象存储单元,即对象桶可以挂载为一个本地文件系统。由于这种方式每个对象会映射为一个文件,用户对文件的操作,常见的,重命名文件、追加写或者随机写会导致映射的整个对象进行重新写,因为,对象是以键值对进行扁平化存储的,对象的key即键值是映射为文件的路径名,对文件的修改写、重命名文件或目录即修改了对象键值,会导致挂载文件系统目录下的所有文件都需要重新写,影响存储数据IO性能。此外,相关技术不支持文件系统POSIX语义接口的权限管理,即挂载后同一个桶数据不支持多个客户端并发访问,原因是私有客户端挂载后不支持POSIX语义的文件锁类型处理,对象存储语义接口只有GET、PUT、POST和DELETE数据类型,即读取、更新、创建和删除有关资源的操作。
为了解决高性能计算密集型元数据请求不断扩大导致的分布式存储系统元数据性能下降和扩展性不能线性增长的问题,提出一种在客户端维护的元数据服务方法。该方法在多个客户端并发请求处理同一个共享目录文件时,会发生冲突,不能保证文件数据的一致性,当一个客户端应用成语进行文件访问并进行修改时,无法识别其他客户端对文件数据的访问修改。因此,在每个客户端上进行维护元数据服务,具有局限性,不能满足并发作业的性能要求。
因此,在本申请中,利用转换设备将符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,符合对象存储接口语义的读写请求可以被分布式对象存储集群直接响应,实现了支持通过可移植操作系统接口访问分布式对象存储集群。同时,通过委派服务器授权客户端对目录的访问权限,在第一客户端请求目标目录的访问权限时,如果第二客户端已经具有对目标目录的访问权限时,委派服务器向第一客户端返回第二客户端的地址信息,第一客户端可以通过第二客户端访问目标目录,实现了多个客户端的并发访问。另外,在分布式存储系统的客户端,以目录形式管理文件系统元数据,将文件目录的元数据管理部署在访问该文件目录的客户端上,无需在分布式存储系统服务器上进行维护。
本申请实施例公开了一种数据访问方法,在支持通过POSIX访问分布式对象存储集群的同时,支持多个客户端的并发访问。
参见图1,根据一示例性实施例示出的一种数据访问方法的流程图,如图1所示,包括:
S101:当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;若是,则进入S102;若否,则进入S103;
本实施例的执行主体为分布式存储系统中的委派服务器,委派服务器用于授权客户端对目录的访问权限。
在具体实施中,第一客户端需要访问目标文件时,向委派服务器发送授权访问请求,以申请目标文件的父目录也即目标目录的访问权限,此处的授权访问请求可以包括所述第一客户端访问所述目标文件的标识符、所述第一客户端的IP(网际互连协议,InternetProtocol)地址、端口号。在具体实施中,读、写租约是由客户端访问该目录文件的父目录申请的,父目录对其子目录具有一致性管理权限,当客户端发起open打开文件请求时,客户端会从父目录获取租约。委派服务器判断是否有其他客户端也即第二客户端已经获得了目标目录的访问权限,如果有,则进入S102,否则进入S103。
S102:向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件的进行读写;
在具体实施中,如果第二客户端已经具有对目标目录的访问权限时,委派服务器向第一客户端返回第二客户端的地址信息,可以包括第二客户端的IP地址和端口号,也即向所述第一客户端返回所述第二客户端的地址信息,包括:向所述第一客户端返回所述第二客户端的地址和端口号。第一客户端在获取第二客户端的地址信息之后,可以基于该地址信息将读写请求发送至第二客户端,通过第二客户端访问目标目录。
S103:向所述第一客户端授权所述目标目录的访问权限;
在具体实施中,当没有其他客户端具有对目标目录的访问权限时,委派服务器向第一客户端授权目标目录的访问权限,第一客户端可以直接对目标目录中的文件进行读写。
作为一种可行的实施方式,向所述第一客户端授权所述目标目录的访问权限,包括:向所述第一客户端授权所述目标目录的预设期限的访问权限。在具体实施中,委派服务器可以向第一客户端响应对目标目录预设期限的访问权限,也即租约,在该期限下第一客户端能够对目录文件进行读写。
作为一种优选实施方式,向所述第一客户端授权所述目标目录的预设期限的访问权限之后,还包括:将所述第一客户端访问所述目标文件的标识符、所述第一客户端的地址、端口号、所述第一客户端对所述目标目录的访问授权期限存储至日志设备。在具体实施中,委派服务管理器存储客户端的访问授权信息,并将其记录至日志设备,访问授权信息可以包括客户端访问目标的标识符、客户端的地址、端口号、访问授权期限等。
进一步的,分布式存储系统中的监控设备监控委派服务器的故障情况,定期检测委派服务器进程是否存在,不存在则说明监控到委派服务器故障,重启委派服务器进行恢复。委派服务器重启后,从日志设备更新客户端的访问授权信息,避免不同客户端同时拥有一个目录的租约。在委派服务器故障时,任何拥有目录租约的客户端仍然可以继续进行,直到租约到期,此时无法进行新的目录租约申请,直到委派服务器正常启动。
举例说明,如图2所示,客户端1对根目录和目录1具有读写访问权限,客户端2对目录3具有目录读写访问权限。如图3所示,当客户端2发起对根目录和目录1读写请求时,此时根目录和目录1的租约已经授权给了客户端1。客户端2发起对根目录和目录1读写请求租约请求到委派服务管理器,委派管理器通过查表,确定请求的目录租约所属的客户端,所属表数据结构包括客户端IP,端口号和目录的唯一标识符号。委派管理器查询到根目录和目录1已经授权租约给了clinet1,委派管理器记录客户端2的请求信息,并拒绝授权租约给客户端2,将客户端1的IP地址和端口号响应给客户端2。客户端2收到客户端1的IP地址和端口后,客户端2发送了对根目录和目录1的读写请求到客户端1。客户端1收到客户端2的请求后,解析操作请求,由客户端1对根目录和目录1进行读写操作。最后将执行结果响应给客户端1,完成对未获得租约的客户端进行存储IO操作。
可见,委派服务管理器根据客户端请求的顺序进行授权租约,获得租约的客户端并且在租约期限内具有该目录、文件的读写请求权限,可以修改读写该目录的数据。一种情况下,高性能计算客户端会拥有访问多个不同目录的租约,当其他客户端对目录进行并发读写请求时,本发明委派服务管理器根据客户端的IP地址,端口号,访问目录文件的唯一标识符合进行查询,对没有获得租约的客户端请求,将请求信息通知到具有租约的客户端,目的是将没有租约授权的客户端请求转移到已经授权租约的客户端进行读写请求操作,有效的提高了高性能计算的并发性能,充分利用具有租约的客户端处理IO对象请求,增加了存储IO的时效性。
S104:在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;
在具体实施中,委派服务器接收到第一客户端对目标目录的读写请求时,判断第一客户端是否具有对目标目录的访问权限,若是,则进行S105。需要说明的是,第一客户端向委派服务器发送对于目标文件的符合可移植操作系统接口语义的读写请求,支持客户端通过可移植操作系统接口访问分布式对象存储集群。
S105:将所述符合可移植操作系统接口语义的读写请求发送至转换设备,以便所述转换设备将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,并将所述符合对象存储接口语义的读写请求发送至分布式对象存储集群进行响应。
在具体实施中,委派服务器将符合可移植操作系统接口语义的读写请求发送至转换设备,转换设备将符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,符合对象存储接口语义的读写请求可以被分布式对象存储集群直接响应。
作为一种可行的实施方式,将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,包括:将所述符合可移植操作系统接口语义的读写请求中的标识符转换为对象存储的对象标识符,将所述符合可移植操作系统接口语义的读写请求中的操作字转换为对象数据类型,以生成符合对象存储接口语义的读写请求。
在具体实施中,首先,在转换设备中注册对象存储接口(REST)API,将读写请求中的标识符转换为对象存储的唯一标识符也即对象标识符,对象标识符用于唯一确定对象,将文件系统目录或文件数据和对象标识符结合存储为每个对象的键值。作为一种可行的实施方式,将所述符合可移植操作系统接口语义的读写请求中的标识符转换为对象存储的对象标识符,包括:将所述符合可移植操作系统接口语义的读写请求中的标识符转换为十六进制的数据以生成对象标识符。例如,通过调用文件stat信息获取其唯一标识符inode id1099534954258,转换为十六进制为1000163ef1与文件系统目录或文件的数据进行拼接组成每个读写的键值进行存储。进一步,将读写请求中的操作字转换为对象数据类型,可以包括GET、PUT、POST和DELETE等。
在高性能HPC场景下,客户端基于POSXI文件系统进行密集型元数据、数据存储IO请求,将密集型元数据、数据存储IO请求转换为简单的对象存储接口,即GET、PUT、POST和DELETE数据类型以对象为存储单元进行存储IO,分布式存储底层以对象为存储单元通过键值形式存储数据的扁平化命名空间,对象存储将数据存储为独立的对象,每个对象包含数据本身、元数据(包括标识符、访问控制等信息)和唯一的标识符,对象存储通过这些唯一标识符访问数据,而不是通过文件路径,因此,对比POSIX文件系统接口不需要通过大量的元数据查询路径等操作,不受元数据性能制约,对象接口存储形式性能优于文件系统。文件系统接口转换设备对HPC客户端透明,不影响高性能计算所需要的接口API,转换过程不影响高性能计算性能。
在本申请实施例中,利用转换设备将符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,符合对象存储接口语义的读写请求可以被分布式对象存储集群直接响应,实现了支持通过可移植操作系统接口访问分布式对象存储集群。同时,通过委派服务器授权客户端对目录的访问权限,在第一客户端请求目标目录的访问权限时,如果第二客户端已经具有对目标目录的访问权限时,委派服务器向第一客户端返回第二客户端的地址信息,第一客户端可以通过第二客户端访问目标目录,实现了多个客户端的并发访问。
在上述实施例的基础上,作为一种优选实施方式,所述第一客户端在获得所述目标目录的访问权限之后,从所述分布式对象存储集群获取所述目标目录的元数据,并基于所述目标目录的元数据在本地创建元数据表,所述第一客户端用于在对所述目标目录的访问授权期间内维护所述目标目录的元数据;所述符合可移植操作系统接口语义的读写请求为所述第一客户端基于本地创建的所述元数据表构建的读写请求。
在具体实施中,第一客户端在获得目标目录的访问权限之后,从分布式对象存储集群中获取目标目录最新的元数据,创建元数据表的数据结构。元数据表可以包括目标目录的元数据和目标目录的临近目录的元数据,也即目标目录与其他目录的元数据关联信息。元数据表在客户端的内存中进行存储,并在内存中执行元数据操作,内存执行效率高于其他磁盘、固态盘等存储介质。
需要说明的是,客户端可以拥有多个目录的访问权限,对应的元数据信息表存储在客户端本地内存中,元数据表为基于目录层次结构创建,高性能应用程序的元数据操作即可在本地内存元数据表完成,增加元数据查找效率并且不会对分布式对象存储集群造成影响。
可以理解的是,由于元数据表是在客户端内存缓存中进行存储,客户端每次获取租约都需要进行更新元数据,防止客户端元数据信息不是最新的。某个客户端对某个目录的访问权限,相同的客户端再次对相同的目录申请访问权限时,不需要进行重新刷新元数据请求,原因是同一个客户端的元数据租约到期已经进行刷新到分布式对象存储底层,该方法减少了元数据更新对分布式对象存储的压力。
由此可见,在本实施例中,在高性能计算节点客户端上的元数据服务,而不是在分布式对象集群服务器上进行管理元数据,不受分布式存储系统的资源制约。客户端上基于每个目录构建一个元数据表,当高性能计算应用程序在客户端读写访问一个目录时,客户端先发起目录的租约查询请求,由分布式对象存储集群上的委派服务进行查询。如果该客户端可以被授权,然后客户端对该目录进行构建元数据表。
在分布式存储系统HPC高性能场景下,利用客户端的系统资源对元数据进行管理,客户端的应用程序在执行数据处理过程中,通过客户端本地的内存资源管理元数据,因此,当客户端发送数据存储请求时,首先,在客户端本地进行查询并确定存储路径,减少了对分布式存储系统的元数据集群服务请求的压力,然后,将文件系统接口语义转换为对象接口语义,在元数据密集型工作负载请求时具有显著的性能提升,并且不影响存储系统的可扩展性。
在上述实施例的基础上,作为一种优选实施方式,所述第一客户端在创建元数据表之后,缓存所述元数据表中预设数量的元数据条目。
在具体实施中,在高性能计算客户端构建元数据表之外,还在客户端设计了一种元数据缓存方法,能够加速元数据访问效率,缓存元数据的条目和每个缓存项的大小可通过配置参数进行修改,默认情况下,缓存元数据项的数量为30万个,每个元数据条目大小设置为4KB,通过红黑树数据结构对缓存元数据条目进行快速查找,采用缓存预读的方法用以提高读缓存,通过设置每个文件的预读窗口,大小未4MB,在该窗口大小的文件数据会被提前读取。
在上述实施例的基础上,作为一种优选实施方式,所述第一客户端在创建元数据表之后,将所述目标目录的元数据存储至日志设备中所述目标目录对应的日志分区中;在所述第一客户端对所述目标目录的访问授权到期之前,将所述日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
客户端的读写请求首先在日志设备提交,创建文件的请求包括一个新创建的文件唯一标识号和一个目录项,日志设备负责处理当前客户端存储在该目录下的所有元数据请求。
在相关技术中,日志文件系统仅设计保留一个日志分区,通过高性能场景实践发现,单个日志分区会造成性能瓶颈,为了解决日志分区性能瓶颈问题,本实施例设计了一种针对每个目录的日志分区,每个目录拥有一个日志分区,每个日志分区的大小由客户端根据目录大小进行设置,当客户端创建元数据表时,会将该目录和子文件的日志信息构建到这个目录的日志分区,如果客户端对子文件进行重命名或修改写操作,则操作后的文件元数据信息将提交到其父目录日志分区进行更新。客户端对目录的访问权限在过期之前需要将目录日志下刷到分布式对象存储集群中。
在上述实施例的基础上,作为一种优选实施方式,当所述第一客户端修改所述目标目录的元数据时,更新所述日志设备中存储的所述目标目录的元数据,并按照预设周期将所述日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
在具体实施中,当客户端的元数据信息被修改时,日志设备会将更新信息提交给一致性事务,提交线程是由一个线程池进行维护,提交线程根据一致性事务信息定期进行提交,并写入日志。日志设备允许多个日志即不同目录进行并发提交,性能要优于相关技术的全局日志分区工作方式。
在上述实施例的基础上,作为一种优选实施方式,向所述第一客户端返回所述第二客户端的地址信息之后,还包括:向所述第二客户端发送更新元数据的通知,以便所述第二客户端将日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
在具体实施中,在第一客户端申请目标目录的访问权限时,如果有其他客户端也即第二客户端已经拥有该目标目录的访问权限,委派服务器会通知第二客户端对元数据缓存进行更新操作,也即将日志设备中存储的目标目录的元数据更新至分布式对象存储集群,避免第一客户端到访问到分布式对象存储集群中无效元数据。
在上述实施例的基础上,作为一种优选实施方式,所述第一客户端在获得所述目标目录的访问权限之后,判断所述日志设备中是否存在所述第一客户端在所述日志设备中存储的其他目录的元数据,若是,则将所述日志设备中存储的其他目录的元数据更新至所述分布式对象存储集群。
在具体实施中,客户端故障时,如果客户端的目录新申请的租约在日志中发现依然有其他事务,表示在申请租约之前,该目录客户端出现过故障,此时,新的目录租约需要对日志进行更新,并提交事务到委派服务器进行查询并更细元数据信息。在客户端故障恢复期间,称为保护期,委派服务器拒绝其他客户端获取因故障的目录租约,在保护期内对故障的目录租约进行恢复。
由此可见,在高性能计算客户端设计部署元数据服务,构建元数据表和元数据缓存,通过委派服务器、日志设备和文件系统到对象存储的转换设备,使高性能计算上层应用采用分布式文件系统实现以对象进行存储,实现存储的性能跨越。另外,为每个目录创建元数据表和目录日志分区,能够使不同客户端进行对并发操作,通过委派服务器授权管理租约给目录的方式保证了多个客户端之间的一致性。最后,经过转换设备能够在分布式对象存储系统之上提供标准的文件系统POSIX语义,转换设备将客户端请求的文件系统IO转换为REST对象语义,能够提供高性能场景下的元数据处理性能,减少对底层分布式对象存储系统的压力,使高性能计算客户端与分布式存储具有灵活线性的可扩展性,不会由于元数据性能瓶颈导致分布式存储IO下降的问题。
下面对本申请实施例提供的一种数据访问装置进行介绍,下文描述的一种数据访问装置与上文描述的一种数据访问方法可以相互参照。
参见图4,根据一示例性实施例示出的一种数据访问装置的结构图,如图4所示,包括:
判断模块401,用于当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;
返回模块402,用于当存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限时,向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件的进行读写;
授权模块403,用于当不存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限时,则向所述第一客户端授权所述目标目录的访问权限;
接收模块404,用于在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;
发送模块405,用于将所述符合可移植操作系统接口语义的读写请求发送至转换设备,以便所述转换设备将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,并将所述符合对象存储接口语义的读写请求发送至分布式对象存储集群进行响应。
在本实施例中,利用转换设备将符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,符合对象存储接口语义的读写请求可以被分布式对象存储集群直接响应,实现了支持通过可移植操作系统接口访问分布式对象存储集群。同时,通过委派服务器授权客户端对目录的访问权限,在第一客户端请求目标目录的访问权限时,如果第二客户端已经具有对目标目录的访问权限时,委派服务器向第一客户端返回第二客户端的地址信息,第一客户端可以通过第二客户端访问目标目录,实现了多个客户端的并发访问。
在上述实施例的基础上,作为一种优选实施方式,授权访问请求包括所述第一客户端访问所述目标文件的标识符、所述第一客户端的地址、端口号。
在上述实施例的基础上,作为一种优选实施方式,所述返回模块402具体用于:向所述第一客户端返回所述第二客户端的地址和端口号。
在上述实施例的基础上,作为一种优选实施方式,所述授权模块403具体用于:向所述第一客户端授权所述目标目录的预设期限的访问权限。
在上述实施例的基础上,作为一种优选实施方式,还包括:
存储模块,用于将所述第一客户端访问所述目标文件的标识符、所述第一客户端的地址、端口号、所述第一客户端对所述目标目录的访问授权期限存储至日志设备。
在上述实施例的基础上,作为一种优选实施方式,还包括:
更新模块,用于当所述委派服务器重启后,从所述日志设备更新客户端的访问授权信息。
在上述实施例的基础上,作为一种优选实施方式,所述转换设备将所述符合可移植操作系统接口语义的读写请求中的标识符转换为对象存储的对象标识符,将所述符合可移植操作系统接口语义的读写请求中的操作字转换为对象数据类型,以生成符合对象存储接口语义的读写请求。
在上述实施例的基础上,作为一种优选实施方式,所述转换设备将所述符合可移植操作系统接口语义的读写请求中的标识符转换为十六进制的数据以生成对象标识符。
在上述实施例的基础上,作为一种优选实施方式,所述第一客户端在获得所述目标目录的访问权限之后,从所述分布式对象存储集群获取所述目标目录的元数据,并基于所述目标目录的元数据在本地创建元数据表,所述第一客户端用于在对所述目标目录的访问授权期间内维护所述目标目录的元数据;所述符合可移植操作系统接口语义的读写请求为所述第一客户端基于本地创建的所述元数据表构建的读写请求。
在上述实施例的基础上,作为一种优选实施方式,所述元数据表包括所述目标目录的元数据和所述目标目录的临近目录的元数据。
在上述实施例的基础上,作为一种优选实施方式,所述元数据表为基于目录层次结构创建的元数据表。
在上述实施例的基础上,作为一种优选实施方式,所述第一客户端在创建元数据表之后,缓存所述元数据表中预设数量的元数据条目。
在上述实施例的基础上,作为一种优选实施方式,所述第一客户端在创建元数据表之后,将所述目标目录的元数据存储至日志设备中所述目标目录对应的日志分区中;在所述第一客户端对所述目标目录的访问授权到期之前,将所述日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
在上述实施例的基础上,作为一种优选实施方式,当所述第一客户端修改所述目标目录的元数据时,更新所述日志设备中存储的所述目标目录的元数据,并按照预设周期将所述日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
在上述实施例的基础上,作为一种优选实施方式,还包括:
通知模块,用于在向所述第一客户端返回所述第二客户端的地址信息之后,向所述第二客户端发送更新元数据的通知,以便所述第二客户端将日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
在上述实施例的基础上,作为一种优选实施方式,所述第一客户端在获得所述目标目录的访问权限之后,判断所述日志设备中是否存在所述第一客户端在所述日志设备中存储的其他目录的元数据,若是,则将所述日志设备中存储的其他目录的元数据更新至所述分布式对象存储集群。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本实施例提供了一种分布式存储系统,如图5所示,包括:
委派服务器,用于当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;若是,则向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件的进行读写;若否,则向所述第一客户端授权所述目标目录的访问权限;在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;
转换设备,用于将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求;
分布式对象存储集群,用于响应所述符合对象存储接口语义的读写请求。
在上述实施例的基础上,作为一种优选实施方式,还包括:
日志设备,用于记录客户端的访问授权信息、授权客户端访问权限的目录的元数据;
其中,所述日志设备包括多个日志分区,每个所述日志分区用于存储对应的目录的元数据。
在上述实施例的基础上,作为一种优选实施方式,还包括:
监控设备,用于监控客户端和所述委派服务器的故障情况。
关于上述实施例中的分布式存储系统,其中各个组件执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图6为根据一示例性实施例示出的一种电子设备的结构图,如图6所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的数据访问方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (22)

1.一种数据访问方法,其特征在于,应用于分布式存储系统中的委派服务器,所述方法包括:
当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;
若是,则向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件进行读写;其中,所述第一客户端基于所述地址信息将读写请求发送至所述第二客户端,所述第二客户端基于所述读写请求对所述目标文件进行读写;
若否,则向所述第一客户端授权所述目标目录的访问权限;
在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;
将所述符合可移植操作系统接口语义的读写请求发送至转换设备,以便所述转换设备将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,并将所述符合对象存储接口语义的读写请求发送至分布式对象存储集群进行响应。
2.根据权利要求1所述数据访问方法,其特征在于,授权访问请求包括所述第一客户端访问所述目标文件的标识符、所述第一客户端的地址、端口号。
3.根据权利要求2所述数据访问方法,其特征在于,向所述第一客户端返回所述第二客户端的地址信息,包括:
向所述第一客户端返回所述第二客户端的地址和端口号。
4.根据权利要求2所述数据访问方法,其特征在于,向所述第一客户端授权所述目标目录的访问权限,包括:
向所述第一客户端授权所述目标目录的预设期限的访问权限。
5.根据权利要求4所述数据访问方法,其特征在于,向所述第一客户端授权所述目标目录的预设期限的访问权限之后,还包括:
将所述第一客户端访问所述目标文件的标识符、所述第一客户端的地址、端口号、所述第一客户端对所述目标目录的访问授权期限存储至日志设备。
6.根据权利要求5所述数据访问方法,其特征在于,还包括:
当所述委派服务器重启后,从所述日志设备更新客户端的访问授权信息。
7.根据权利要求1所述数据访问方法,其特征在于,将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,包括:
将所述符合可移植操作系统接口语义的读写请求中的标识符转换为对象存储的对象标识符,将所述符合可移植操作系统接口语义的读写请求中的操作字转换为对象数据类型,以生成符合对象存储接口语义的读写请求。
8.根据权利要求7所述数据访问方法,其特征在于,将所述符合可移植操作系统接口语义的读写请求中的标识符转换为对象存储的对象标识符,包括:
将所述符合可移植操作系统接口语义的读写请求中的标识符转换为十六进制的数据以生成对象标识符。
9.根据权利要求1所述数据访问方法,其特征在于,所述第一客户端在获得所述目标目录的访问权限之后,从所述分布式对象存储集群获取所述目标目录的元数据,并基于所述目标目录的元数据在本地创建元数据表,所述第一客户端用于在对所述目标目录的访问授权期间内维护所述目标目录的元数据;
所述符合可移植操作系统接口语义的读写请求为所述第一客户端基于本地创建的所述元数据表构建的读写请求。
10.根据权利要求9所述数据访问方法,其特征在于,所述元数据表包括所述目标目录的元数据和所述目标目录的临近目录的元数据。
11.根据权利要求10所述数据访问方法,其特征在于,所述元数据表为基于目录层次结构创建的元数据表。
12.根据权利要求9所述数据访问方法,其特征在于,所述第一客户端在创建元数据表之后,缓存所述元数据表中预设数量的元数据条目。
13.根据权利要求9所述数据访问方法,其特征在于,所述第一客户端在创建元数据表之后,将所述目标目录的元数据存储至日志设备中所述目标目录对应的日志分区中;
在所述第一客户端对所述目标目录的访问授权到期之前,将所述日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
14.根据权利要求13所述数据访问方法,其特征在于,当所述第一客户端修改所述目标目录的元数据时,更新所述日志设备中存储的所述目标目录的元数据,并按照预设周期将所述日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
15.根据权利要求13所述数据访问方法,其特征在于,向所述第一客户端返回所述第二客户端的地址信息之后,还包括:
向所述第二客户端发送更新元数据的通知,以便所述第二客户端将日志设备中存储的所述目标目录的元数据更新至所述分布式对象存储集群。
16.根据权利要求13所述数据访问方法,其特征在于,所述第一客户端在获得所述目标目录的访问权限之后,判断所述日志设备中是否存在所述第一客户端在所述日志设备中存储的其他目录的元数据,若是,则将所述日志设备中存储的其他目录的元数据更新至所述分布式对象存储集群。
17.一种数据访问装置,其特征在于,应用于分布式存储系统中的委派服务器,所述装置包括:
判断模块,用于当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;
返回模块,用于当存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限时,向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件进行读写;其中,所述第一客户端基于所述地址信息将读写请求发送至所述第二客户端,所述第二客户端基于所述读写请求对所述目标文件进行读写;
授权模块,用于当不存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限时,则向所述第一客户端授权所述目标目录的访问权限;
接收模块,用于在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;
发送模块,用于将所述符合可移植操作系统接口语义的读写请求发送至转换设备,以便所述转换设备将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求,并将所述符合对象存储接口语义的读写请求发送至分布式对象存储集群进行响应。
18.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至16任一项所述数据访问方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至16任一项所述数据访问方法的步骤。
20.一种分布式存储系统,其特征在于,包括:
委派服务器,用于当接收到第一客户端对于目标文件的授权访问请求时,判断是否存在除所述第一客户端之外的第二客户端具有对目标目录的访问权限;其中,所述目标目录为所述目标文件的父目录;若是,则向所述第一客户端返回所述第二客户端的地址信息,以便所述第一客户端通过所述第二客户端对所述目标文件进行读写;其中,所述第一客户端基于所述地址信息将读写请求发送至所述第二客户端,所述第二客户端基于所述读写请求对所述目标文件进行读写;若否,则向所述第一客户端授权所述目标目录的访问权限;在所述第一客户端对所述目标目录的访问授权期间内,接收所述第一客户端对于所述目标文件的符合可移植操作系统接口语义的读写请求;
转换设备,用于将所述符合可移植操作系统接口语义的读写请求转换为符合对象存储接口语义的读写请求;
分布式对象存储集群,用于响应所述符合对象存储接口语义的读写请求。
21.根据权利要求20所述分布式存储系统,其特征在于,还包括:
日志设备,用于记录客户端的访问授权信息、授权客户端访问权限的目录的元数据;
其中,所述日志设备包括多个日志分区,每个所述日志分区用于存储对应的目录的元数据。
22.根据权利要求20所述分布式存储系统,其特征在于,还包括:
监控设备,用于监控客户端和所述委派服务器的故障情况。
CN202410071339.4A 2024-01-18 2024-01-18 一种数据访问方法、装置、分布式存储系统及设备和介质 Active CN117591038B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410071339.4A CN117591038B (zh) 2024-01-18 2024-01-18 一种数据访问方法、装置、分布式存储系统及设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410071339.4A CN117591038B (zh) 2024-01-18 2024-01-18 一种数据访问方法、装置、分布式存储系统及设备和介质

Publications (2)

Publication Number Publication Date
CN117591038A CN117591038A (zh) 2024-02-23
CN117591038B true CN117591038B (zh) 2024-06-11

Family

ID=89916972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410071339.4A Active CN117591038B (zh) 2024-01-18 2024-01-18 一种数据访问方法、装置、分布式存储系统及设备和介质

Country Status (1)

Country Link
CN (1) CN117591038B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117806836B (zh) * 2024-02-29 2024-06-07 济南浪潮数据技术有限公司 分布式文件系统命名空间管理方法、装置和设备

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697168A (zh) * 2009-10-22 2010-04-21 中国科学技术大学 一种分布式文件系统动态元数据管理方法及系统
CN102945139A (zh) * 2011-09-12 2013-02-27 微软公司 存储设备驱动器和集群参与
CN104537076A (zh) * 2014-12-31 2015-04-22 北京奇艺世纪科技有限公司 一种文件读写方法及装置
CN105512279A (zh) * 2015-12-04 2016-04-20 华为技术有限公司 一种元数据访问方法、相关设备及系统
CN106775446A (zh) * 2016-11-11 2017-05-31 中国人民解放军国防科学技术大学 基于固态硬盘加速的分布式文件系统小文件访问方法
CN110554834A (zh) * 2018-06-01 2019-12-10 阿里巴巴集团控股有限公司 文件系统数据访问方法和文件系统
CN111158597A (zh) * 2019-12-28 2020-05-15 浪潮电子信息产业股份有限公司 一种元数据读取方法、装置及电子设备和存储介质
CN111198848A (zh) * 2020-01-03 2020-05-26 南京领行科技股份有限公司 一种分布式文件访问方法、系统、服务器和存储介质
CN112559481A (zh) * 2020-11-27 2021-03-26 西安中科星图空间数据技术有限公司 一种基于分布式系统和关系数据库的数据存储方法及装置
CN113568881A (zh) * 2021-06-11 2021-10-29 济南浪潮数据技术有限公司 一种实现读写共享的方法、系统、设备及介质
CN113946291A (zh) * 2021-10-20 2022-01-18 重庆紫光华山智安科技有限公司 数据访问方法、装置、存储节点及可读存储介质
CN114021089A (zh) * 2021-09-29 2022-02-08 苏州浪潮智能科技有限公司 一种目录访问控制方法、装置、设备及可读存储介质
CN115484276A (zh) * 2022-08-24 2022-12-16 国家气象信息中心(中国气象局气象数据中心) 一种基于虚拟数据湖的气象数据文件目录服务生成方法及系统
CN115933975A (zh) * 2022-11-28 2023-04-07 阿里云计算有限公司 数据处理方法、计算设备及计算机系统
CN116204133A (zh) * 2023-03-17 2023-06-02 济南浪潮数据技术有限公司 一种快速读取元数据的方法、系统、设备和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9130920B2 (en) * 2013-01-07 2015-09-08 Zettaset, Inc. Monitoring of authorization-exceeding activity in distributed networks
US10275171B2 (en) * 2014-09-16 2019-04-30 Kove Ip, Llc Paging of external memory

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697168A (zh) * 2009-10-22 2010-04-21 中国科学技术大学 一种分布式文件系统动态元数据管理方法及系统
CN102945139A (zh) * 2011-09-12 2013-02-27 微软公司 存储设备驱动器和集群参与
CN104537076A (zh) * 2014-12-31 2015-04-22 北京奇艺世纪科技有限公司 一种文件读写方法及装置
CN105512279A (zh) * 2015-12-04 2016-04-20 华为技术有限公司 一种元数据访问方法、相关设备及系统
CN106775446A (zh) * 2016-11-11 2017-05-31 中国人民解放军国防科学技术大学 基于固态硬盘加速的分布式文件系统小文件访问方法
CN110554834A (zh) * 2018-06-01 2019-12-10 阿里巴巴集团控股有限公司 文件系统数据访问方法和文件系统
CN111158597A (zh) * 2019-12-28 2020-05-15 浪潮电子信息产业股份有限公司 一种元数据读取方法、装置及电子设备和存储介质
CN111198848A (zh) * 2020-01-03 2020-05-26 南京领行科技股份有限公司 一种分布式文件访问方法、系统、服务器和存储介质
CN112559481A (zh) * 2020-11-27 2021-03-26 西安中科星图空间数据技术有限公司 一种基于分布式系统和关系数据库的数据存储方法及装置
CN113568881A (zh) * 2021-06-11 2021-10-29 济南浪潮数据技术有限公司 一种实现读写共享的方法、系统、设备及介质
CN114021089A (zh) * 2021-09-29 2022-02-08 苏州浪潮智能科技有限公司 一种目录访问控制方法、装置、设备及可读存储介质
CN113946291A (zh) * 2021-10-20 2022-01-18 重庆紫光华山智安科技有限公司 数据访问方法、装置、存储节点及可读存储介质
CN115484276A (zh) * 2022-08-24 2022-12-16 国家气象信息中心(中国气象局气象数据中心) 一种基于虚拟数据湖的气象数据文件目录服务生成方法及系统
CN115933975A (zh) * 2022-11-28 2023-04-07 阿里云计算有限公司 数据处理方法、计算设备及计算机系统
CN116204133A (zh) * 2023-03-17 2023-06-02 济南浪潮数据技术有限公司 一种快速读取元数据的方法、系统、设备和存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Comparative Analysis of Hadoop Security Ad-Ons;Khushbu Khalid Butt et al.;《2019 IEEE International Conference on Computational Science and Engineering (CSE) and IEEE International Conference on Embedded and Ubiquitous Computing (EUC)》;20191231;全文 *
一种基于授权机制的分布式文件系统小文件访问优化策略;曹风华;;计算机系统应用;20130715(07);全文 *
海量小文件系统的可移植操作系统接口兼容技术;陈博;何连跃;严巍巍;徐照淼;徐俊;;计算机应用;20180531(05);全文 *

Also Published As

Publication number Publication date
CN117591038A (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
US11153380B2 (en) Continuous backup of data in a distributed data store
US10929428B1 (en) Adaptive database replication for database copies
US10579610B2 (en) Replicated database startup for common database storage
CN109783438B (zh) 基于librados的分布式NFS系统及其构建方法
US9946735B2 (en) Index structure navigation using page versions for read-only nodes
US9842031B1 (en) Incremental updates to user transaction state at read-only nodes of a distributed database
US10747746B2 (en) Efficient read replicas
US9251003B1 (en) Database cache survivability across database failures
US9424140B1 (en) Providing data volume recovery access in a distributed data store to multiple recovery agents
US6339793B1 (en) Read/write data sharing of DASD data, including byte file system data, in a cluster of multiple data processing systems
US7743038B1 (en) Inode based policy identifiers in a filing system
US10725666B2 (en) Memory-based on-demand data page generation
CN108667904B (zh) 一种Docker容器远程内存卷管理方法和系统
US20220114064A1 (en) Online restore for database engines
US10409804B2 (en) Reducing I/O operations for on-demand demand data page generation
CN117591038B (zh) 一种数据访问方法、装置、分布式存储系统及设备和介质
US11080253B1 (en) Dynamic splitting of contentious index data pages
US10885023B1 (en) Asynchronous processing for synchronous requests in a database
CN107818111B (zh) 一种缓存文件数据的方法、服务器及终端
US10909143B1 (en) Shared pages for database copies
US11263270B1 (en) Heat balancing in a distributed time-series database
CN111984191A (zh) 一种支持分布式存储的多客户端缓存方法及系统
US10223184B1 (en) Individual write quorums for a log-structured distributed storage system
US11409771B1 (en) Splitting partitions across clusters in a time-series database
US11144407B1 (en) Synchronous database geo-mirroring using delayed visibility write operations

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