CN114327302B - 处理对象存储访问的方法、装置及*** - Google Patents
处理对象存储访问的方法、装置及*** Download PDFInfo
- Publication number
- CN114327302B CN114327302B CN202210239000.1A CN202210239000A CN114327302B CN 114327302 B CN114327302 B CN 114327302B CN 202210239000 A CN202210239000 A CN 202210239000A CN 114327302 B CN114327302 B CN 114327302B
- Authority
- CN
- China
- Prior art keywords
- data
- block address
- logical block
- cache
- attribute information
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供处理对象存储访问的方法、装置及***,其中所述方法包括:用户主机预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,至少一个数据管理单元的数据为对应对象的数据且存储于服务端缓存中和/或所述用户主机的本地缓存中;响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元;确定所述数据管理单元的逻辑块地址;基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及处理对象存储访问的方法、装置及***。
背景技术
随着越来越多的数据沉淀到对象存储,基于对象存储的分析越来越流行。对象存储采用扁平的文件组织方式,访问方便,因此,具有一定的性能优势。为了容纳大量的对象数据,目前对象存储主要采用分布式架构,基于大容量HDD(Hard Disk Drive,硬盘驱动器)来存储对象数据。用户在访问对象数据时,需基于对象存储协议经过分布式架构的访问路径进行访问,访问速度较慢,无法满足快速访问场景的需要。
发明内容
有鉴于此,本说明书实施例提供了处理对象存储访问的方法。本说明书一个或者多个实施例同时涉及处理对象存储访问的装置,处理对象存储访问的***,计算设备,计算机可读存储介质以及计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种处理对象存储访问的方法,应用于用户主机,包括:预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中和/或所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据;响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元;确定所述数据管理单元的逻辑块地址;基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
根据本说明书实施例的第二方面,提供了一种处理对象存储访问的装置,配置于用户主机,包括:映射模块,被配置为预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中和/或所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据。第一读响应模块,被配置为响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元。地址确定模块,被配置为确定所述数据管理单元的逻辑块地址。第一读取模块,被配置为基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
根据本说明书实施例的第三方面,提供了一种处理对象存储访问的方法,应用于服务端,包括:响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址;其中,所述第二数据读请求是所述用户主机响应于接收到第一数据读取请求,根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,并确定所述数据管理单元的逻辑块地址的情况下、发出的请求;其中,所述第一映射关系是第一属性信息与第二属性信息的映射关系,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中,所述至少一个数据管理单元的数据为对应对象的数据;利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据;向所述用户主机返回所述数据。
根据本说明书实施例的第四方面,提供了一种处理对象存储访问的装置,配置于服务端,包括:第二读响应模块,被配置为响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址。其中,所述第二数据读请求是所述用户主机响应于接收到第一数据读取请求,根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,并确定所述数据管理单元的逻辑块地址的情况下、发出的请求;其中,所述第一映射关系是第一属性信息与第二属性信息的映射关系,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中,所述至少一个数据管理单元的数据为对应对象的数据。第二读取模块,利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据。数据返回模块,被配置为向所述用户主机返回所述数据。
根据本说明书实施例的第五方面,提供了一种处理对象存储访问的***,包括:用户主机,被配置为预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中或者存储与服务端缓存和所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据;响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元;确定所述数据管理单元的逻辑块地址;基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据。服务端,被配置为响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址,利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据,向所述用户主机返回所述数据;如果所述服务端缓存中不存在所述逻辑块地址的数据,从所述对象存储设备获取对应的所述数据。对象存储设备,被配置为存储对象的数据。
根据本说明书实施例的第六方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述处理对象存储访问的方法的步骤。
根据本说明书实施例的第七方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述处理对象存储访问的方法的步骤。
根据本说明书实施例的第八方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述处理对象存储访问的方法的步骤。
本说明书一方面的一个实施例实现了处理对象存储访问的方法,应用于用户主机,由于该方法预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中和/或所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据,因此,实现了对象数据到块存储的映射。由此用户主机在接收到针对对象数据的第一数据读请求时,能够根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,确定所述数据管理单元的逻辑块地址,进而在用户主机能够基于块存储的访问协议从服务端缓存或用户主机的本地缓存获取对应的数据的情况下,避免通过对象存储的分布式架构的访问路径所带来的时间消耗,避免对象存储的数据访问协议的转换代价,发挥用户主机本地缓存和/或服务端缓存、以及块存储协议的高效访问性能加速对象存储的数据的访问,并结合对象存储低成本、数据访问方便的特点,更好地满足访问需求。
本说明书另一方面的一个实施例实现了处理对象存储访问的方法,应用于服务端,由于该方法中服务端响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址。而第二数据读请求是所述用户主机响应于接收到第一数据读取请求,根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,并确定所述数据管理单元的逻辑块地址的情况下、发出的请求,而且,所述第一映射关系是第一属性信息与第二属性信息的映射关系,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中,所述至少一个数据管理单元的数据为对应对象的数据,因此,实现了对象存储数据到块存储的映射。从而,在服务端能够利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据的情况下,可以向所述用户主机返回所述数据,避免用户通过对象存储的分布式架构的访问路径所带来的时间消耗,避免对象存储的数据访问协议的转换代价,发挥服务端缓存、以及块存储协议的高效访问性能加速对象存储的数据的访问,并结合对象存储低成本、数据访问方便的特点,更好地满足访问需求。
附图说明
图1是本说明书一个实施例提供的应用于用户主机的处理对象存储访问的方法的流程图;
图2是本说明书一个实施例提供的第一映射关系示意图;
图3是本说明书另一个实施例提供的处理对象存储访问的方法的处理过程图;
图4是本说明书又一个实施例提供的处理对象存储访问的方法的处理过程图;
图5是本说明书一个实施例提供的***架构示意图。
图6是本说明书一个实施例提供的处理对象存储访问的方法的消息交互示意图;
图7是本说明书一个实施例提供的配置于用户主机的处理对象存储访问的装置的结构示意图;
图8是本说明书一个实施例提供的应用于服务端的处理对象存储访问的方法的流程图;
图9是本说明书一个实施例提供的配置于服务端的处理对象存储访问的装置的结构示意图;
图10是本说明书一个实施例提供的处理对象存储访问的***的结构示意图;
图11是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
对象存储:是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
逻辑块设备:***中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的是硬盘。逻辑块设备是模拟块设备的虚拟设备。
LBA:逻辑块地址(LogicalBlockAddress,LBA)是描述计算机存储设备上数据所在区块的通用机制,一般用在像硬盘这样的辅助记忆设备。LBA可以意指某个数据区块的地址或是某个地址所指向的数据区块。例如,计算机上一个逻辑区块通常是512或1024位组。ISO-9660格式的标准以2048位组为一个逻辑区块大小。
本地文件***:文件***允许应用程序存储和检索文件,文件以分层结构放置,文件***指定文件的命名约定和指定树结构中文件路径的格式。
在本说明书中,提供了处理对象存储访问的方法,本说明书同时涉及处理对象存储访问的装置,计算设备,以及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的一种应用于用户主机的处理对象存储访问的方法的流程图,具体包括以下步骤。
步骤102:预先建立第一属性信息与第二属性信息的第一映射关系。
其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中和/或所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据。
例如,第一属性信息,可以是对象存储设备中对象的元数据信息中任一个或多个属性信息,所述第二属性信息,可以是用户主机的主机***中数据管理单元的元数据信息中任一个或多个属性信息。元数据信息是描述数据的数据,用于描述数据属性,用来支持对数据的处理。
例如,第一属性信息可以包括但不限于bucket(桶)、对象名对象数据规模等属性信息。所述第二属性信息例如可以包括但不限于数据管理单元名称、创建时间,数据管理单元数据规模等属性信息。
其中,所述数据管理单元,可以是用户主机的主机***中用于管理数据的最小单元。例如,在本地文件***中,所述数据管理单元可以是文件。可以理解的是,在挂载了逻辑块设备的用户主机中,每一个数据管理单元在所述逻辑块设备中均具有对应的逻辑块地址。初始状态下,数据管理单元可以不填充对象的数据,只分配映射空间做关系上的映射。随着用户对对象数据的读取,可以在数据放入缓存时按需为数据管理单元填充对应对象的数据。因此,用户主机的本地缓存,可以用于存储逻辑块设备的对象的数据以加速访问。
其中,所述第一映射关系,可以是对象与数据管理单元的一一对应的映射关系。例如,在主机***中,数据管理单元可以是具有层级的组织架构,因此,可以按照对象属性信息中包含的目录层次关系进行对应地映射。具体地,如图2所示,在用户主机的主机***为本地文件***的情况下,数据管理单元可以理解为文件,从而将所述对象存储设备中对象的属性信息按目录层次映射到所述文件的属性信息上,得到第一映射关系的集合。具体地,对象的属性信息包括:bucket信息,对象名前缀信息,对象名后缀信息,创建时间信息,对象数据规模信息。映射时,可以将bucket信息映射到文件***的根目录下的首层文件夹;将对象前缀信息映射到bucket所在文件夹的下一层文件夹;将对象名后缀信息映射为文件名称,其余创建时间信息,对象数据规模信息,可以映射为文件的基本属性如文件创建时间,文件大小。
其中,所述服务端与用户主机可以基于块存储的访问协议进行通信。具体地,例如,可以预先创建一个逻辑块设备,格式化用户主机的主机***后,将所述逻辑块设备挂载到用户主机。从而该逻辑块设备的服务端与挂载该逻辑块设备的用户主机可以基于块存储的访问协议通信。其中,所述用户主机可以是用户使用的任意类型的计算机。所述主机***可以是例如本地文件***等任意可能的数据管理***。为了保证数据安全,逻辑块设备可以以只读方式挂载到用户主机,避免对象的数据被篡改。
其中,所述服务端的缓存可以用于存储逻辑块设备的对象的数据以加速访问。需要从缓存读取数据时,可以基于数据的逻辑块地址从服务端缓存中读取出数据。其中,所述服务端根据需要可以包含但不限于缓存、实例、镜像、块存储、快照以及安全等各种功能组件。用户主机可以基于块存储的访问协议对服务端的缓存进行指定逻辑块地址的数据访问。
步骤104:响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元。
其中,所述第一数据读请求,可以理解为用户对对象存储中任一个或多个对象的数据的读取请求。例如,用户主机接收到对“A对象”的数据读取请求,则可以根据第一映射关系“A对象-A文件”,确定对应“A文件”。
其中,所述第一数据读请求的来源不限,任意有对对象存储设备中对象的数据有访问需求的用户或程序主体均可以触发该第一数据读请求。
例如,在一些应用场景中,为了便于用户直接按对象访问数据,可以在主机***的显示界面上根据所述第一映射关系添加对象的元数据信息,以便用户访问。例如,可以在本地文件***显示文件元数据信息的位置添加对应对象的元数据信息,以便用户根据选择需要访问的对象。再例如,可以直接将本地文件***的文件元数据信息替换显示为对应对象的元数据信息。用户可以在界面上选中一个或多个对象进行访问。在用户选中任一个或多个对象进行访问时,则相当于发出第一数据读请求。
再例如,在另一些应用场景中,在由用户程序对对象数据进行分析的应用场景中,对对象数据的访问是用户程序内部的处理,则无需在主机***的界面显示对象的元数据信息。用户程序可以直接发出对任一个或多个对象的第一数据读请求。
步骤106:确定所述数据管理单元的逻辑块地址。
例如,在数据管理单元的若干个属性信息中,可以包括对应的逻辑块地址。在确定了数据管理单元的情况下,可以从其属性信息中获取逻辑块地址。
例如,结合上述示例,用户主机可以在“B文件”的属性信息中,查找出该“B文件”在逻辑块设备中的逻辑块地址。
步骤108:基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
可以理解的是,用户主机与服务端之间的消息传输是基于块存储的访问协议。其中,所述块存储的访问协议,是对用于传输数据块的消息的消息格式进行约定的协议。基于块存储的访问协议所生成的消息是基于二进制描述的消息格式,消息格式更加紧凑,解析更快,传输性能高。
其中,服务端缓存和用户主机的本地缓存的具体实施方式不限。例如,服务端缓存可以是挂载于用户主机上的逻辑块设备在服务端上的缓存区。再例如,所述用户主机的本地缓存可以是数据管理***的缓存区。例如,在用户主机***为本地文件***情况下,所述用户主机的缓存,可以理解为本地文件***所使用的缓存pagecache(页高速缓冲存储器,简称页高缓)。例如,在linux***读写文件时,通过page cache来缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问。
由于该方法中,用户主机预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中和/或所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据,因此,实现了对象数据到块存储的映射。由此用户主机在接收到针对对象数据的第一数据读请求时,能够根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,确定所述数据管理单元的逻辑块地址,进而在用户主机能够基于块存储的访问协议从服务端缓存或用户主机的本地缓存获取对应的数据的情况下,避免通过对象存储的分布式架构的访问路径所带来的时间消耗,避免对象存储的数据访问协议的转换代价,发挥用户主机本地缓存和/或服务端缓存、以及块存储协议的高效访问性能加速对象存储的数据的访问,并结合对象存储低成本、数据访问方便的特点,更好地满足访问需求。
需要说明的是,在本说明书实施例提供的应用于用户主机的处理对象存储访问的方法中,用户主机可以与服务端和对象存储设备配合实现对象数据访问,用户主机也可以无需服务端配合,由用户主机本地缓存以及对象存储设备配合实现对象数据访问,下面一一进行说明。
例如,在用户主机与服务端和对象存储设备配合实现对象数据访问的实施例中,所述基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据,可以包括:基于块存储的访问协议以及所述逻辑块地址,访问所述用户主机的本地缓存,以获取所述逻辑块地址的数据;如果未从所述用户主机的本地缓存获取到所述逻辑块地址的数据,访问所述服务端缓存,以获取所述逻辑块地址的数据。
具体地,参见图3,图3示出了根据本说明书另一个实施例提供的一种处理对象存储访问的方法的处理过程图,具体包括以下步骤。
步骤302:预先建立第一属性信息与第二属性信息的第一映射关系。
步骤304:响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元。
步骤306:确定所述数据管理单元的逻辑块地址。
步骤308:基于块存储的访问协议以及所述逻辑块地址,访问所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
步骤310:如果未从所述用户主机的本地缓存获取到所述逻辑块地址的数据,基于块存储的访问协议以及所述逻辑块地址访问所述服务端缓存,以获取所述逻辑块地址的数据。
通过上述处理流程可见,在该实施例中,在接收到针对对象存储设备中对象的数据读取请求时,通过对象与数据管理单元的映射,先基于块存储的访问协议到用户主机的本地缓存中读取数据,如果本地缓存没有该数据,再基于块存储的访问协议从服务端缓存获取数据,从而在本地有要读取的对象的数据时,则无需通过网络发送访问请求,加速了数据访问。
另外,为了提高数据读取效率,结合上述实施例,所述方法还可以包括:将从所述服务端缓存中获取的数据放入所述用户主机的本地缓存。
在上述实施例中,由于将服务端缓存中读取出的数据放入用户主机的本地缓存,从而需要再次读取该数据时,可以直接从本地缓存中读取该数据,避免通过网络发送访问请求,加速了数据访问。
需要说明的是,用户主机本地缓存中的数据不限于从服务端获取的数据,可以是从任意位置获取的数据。例如,用户主机本地缓存中的数据可以是从所述服务端缓存中获取的数据,可以是从对象存储中获取的数据,本说明书实施例提供的方法对此并不进行限制。只要在本地缓存中的数据是用户要访问的对象的数据,均可以从本地缓存中读取出返回给用户。
由此,本说明书又一个或多个实施例中,所述基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据,可以包括:基于块存储的访问协议以及所述逻辑块地址,访问所述用户主机的本地缓存,以获取所述逻辑块地址的数据。相应地,所述方法还可以包括:如果未从所述用户主机的本地缓存获取到所述逻辑块地址的数据,向所述对象存储设备发出访问以获取所述第一数据读请求要读取的对象的数据;将获取的数据放入所述用户主机的本地缓存。
结合上述实施例,参见图4,图4示出了根据本说明书又一个实施例提供的一种处理对象存储访问的方法的处理过程图,具体包括以下步骤。
步骤402:预先建立第一属性信息与第二属性信息的第一映射关系。
其中,至少一个数据管理单元的数据存储于所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据。
步骤404:响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元。
步骤406:确定所述数据管理单元的逻辑块地址。
步骤408:基于块存储的访问协议以及所述逻辑块地址,访问所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
步骤410:如果未从所述用户主机的本地缓存获取到所述逻辑块地址的数据,向所述对象存储设备发出访问以获取所述第一数据读请求要读取的对象的数据。
步骤412:将获取的数据放入所述用户主机的本地缓存。
例如,可以利用用户主机的本地文件***实现上述实施例提供的方法。具体地,上述实施例中,所述用户主机的主机***可以为本地文件***,所述数据管理单元可以为文件。由于在用户主机上将对象的元数据信息映射到本地文件***的文件元数据信息,实现了对象到文件映射的部署,在用户要访问对象时,可以基于该映射,先到用户主机的本地缓存读取文件以获取对象的数据,在本地缓存没有该数据时,可以把用户的访问对象数据请求发给对象存储设备,得到对象数据后返回文件***进行缓存,从而把数据返回给用户。
在上述实施例中,基于对象到用户主机中数据管理单元的映射,可以直接利用用户主机的本地缓存来加速对象数据的访问,而不必通过服务端的配合来实现。在用户主机能够从本地缓存获取对应的数据的情况下,避免通过分布式的对象存储的访问路径所带来的时间消耗,避免对象存储的数据访问协议的转换代价,利用本地缓存以及基于块存储的访问协议在主机***内部数据访问的访问性能优势加速对象存储的数据的访问,并结合对象存储低成本、数据访问方便的特点,更好地满足访问需求。
在本说明书一个或多个实施例中,考虑到本地文件***在数据访问性能上具有一定优势,用户主机上的主机***可以是本地文件***,所述数据管理单元可以是文件,相应地,所述预先建立第一属性信息与第二属性信息的第一映射关系,可以包括:将所述对象存储设备中对象的属性信息按目录层次映射到所述文件的属性信息上,得到第一映射关系的集合。
通过上述实施例可见,要对对象存储中的某一个对象或多个对象进行访问时,可以根据本说明书实施例提供的方法,将该对对象的访问请求转换为对本地文件***文件的访问,通过本地文件***的接口直接访问数据,一方面降低本说明书实施例提供的方法的开发难度,另一方面可以借助本地文件***自身的性能优势例如目录/文件组织方式紧凑,查询高效,目录/小文件操作支持和访问性能优越等等,进一步提升对象存储的数据的访问性能。
下述结合附图5,以本说明书提供的处理对象存储访问的方法在基于本地文件***的用户主机的应用为例,对所述处理对象存储访问的方法进行进一步说明。其中,图5示出了本说明书一个实施例的***架构示意图。如图5所示,用户程序可以将对对象的数据的访问请求发送给本地文件***,本地文件***可以基于***内部的消息访问协议,首先在本地缓存中读取对应文件的数据;如果读取到则可以直接返回给用户程序;如果未读取到,则可以进一步基于块存储的访问协议向服务端发送对应文件的数据的读取请求。服务端先在服务端缓存中读取对应文件的数据,如果读取到则可以直接返回给用户主机,由用户主机将数据返回给用户程序;如果未读取到,则服务端可以基于对象存储的访问协议进一步向对象存储设备发送对应对象的数据的读取请求,服务端获取对应对象的数据后,放入服务端缓存,并将数据返回给用户主机,由用户主机将数据返回给用户程序。
通过上述处理流程可见,该***架构的方法实施例将对象存储设备中的对象映射为本地文件***中的文件,通过高效的数据映射,文件的数据即为对应对象的数据,把文件/对象的元数据访问在本地文件***上完成,未在缓存中的数据的访问可以通过lazyload(延迟加载)的方式访问对象存储来完成,发挥块存储与本地文件***性能优势,有效克服了对象存储的数据访问在性能上的不足,又结合对象存储低成本、数据访问方便的特点,更好的满足了访问需求。具体地,性能优势主要表现在以下几个方面:
一方面中,本地文件***在主机***内存中大量缓存了文件/目录元数据信息(inode/dentry),还有数据缓存(pagecache),因此,可以有效利用本地文件***的数据缓存机制,从本地缓存获取对应对象的数据,从而在本地缓存中存在对象对应文件的数据的情况下,避免通过网络发送访问请求,达到加速访问的效果。
另一方面中,本地文件***的目录/文件组织方式更紧凑,查询更高效,可以通过各个对象按目录层次映射到本地文件***中各个文件,进而借助本地文件***的组织方式查询需要访问的对象。并且可以有效利用逻辑块设备的服务端的缓存机制,从服务端缓存获取对应对象的数据,从而在服务端缓存中存在对象对应文件的数据的情况下,可以避免通过对象存储的分布式多轮访问,达到加速访问的效果。
又一方面中,由于用户主机与服务端之间基于块存储的访问协议传输数据,从而避免了对象存储的数据访问协议转换代价高的问题。
为了使本说明书实施例提供的方法更加易于理解,下述结合附图6,以本说明书提供的处理对象存储访问的方法在基于本地文件***的用户主机的应用为例,对所述处理对象存储访问的方法的处理流程进行进一步说明。参见图6,图6示出了根据本说明书一个实施例提供的一种处理对象存储访问的方法的消息交互示意图,具体包括以下步骤。
步骤602:服务端从对象存储设备的数据湖获取数据湖中所有对象的元数据信息以及数据偏移。
其中,数据湖是一类存储数据自然/原始格式的***或存储,通常是对象块或者文件,包括原始***所产生的原始数据拷贝以及为了各类任务而产生的转换数据,包括来自于关系型数据库中的结构化数据(行和列)、半结构化数据(如CSV、日志、XML、JSON)、非结构化数据(如email、文档、PDF等)和二进制数据(如图像、音频、视频)。例如,该实施例可以应用于基于数据湖的数据分析场景中,提高该场景中数据访问的效率。
步骤604:服务端将所有对象的元数据信息发送给用户主机。
步骤606:用户主机预先创建逻辑块设备,格式化本地文件***,将逻辑块设备和本地文件***以只读方式挂载到用户主机。
步骤608:用户主机将所述对象存储设备中对象的属性信息按目录层次映射到所述文件的属性信息上,得到第一映射关系的集合。
其中,初始时数据可以默认不填充,只分配相应空间。
步骤610:服务端从用户主机获取所有文件的逻辑块地址并确定逻辑块地址对应的对象。
例如,服务端可以从用户主机获取逻辑块地址及逻辑块地址对应的对象名的信息。
步骤612:服务端建立逻辑块地址与对象名及数据偏移的对应关系表,并生成块地址缓存信息表。
例如,服务端可以按照用户主机本地文件***的文件的LBA布局,在逻辑块设备的服务端生成数据映射Index表。数据映射Index表的key是LBA,value是对象名以及数据偏移。其中,数据偏移是对象在对象存储设备中的存储地址。服务端根据收到的LBA信息生成地址缓存信息表,也可以称为LBA填充表。在LBA填充表中,每个LBA分别有对应的缓存命中信息。其中,如果逻辑块地址的数据在服务端缓存中,则对应的缓存命中信息为1;如果逻辑块地址的数据不在服务端缓存中,则对应的缓存命中信息为0。因此,每次服务端更新缓存时,可以相应更新该地址缓存信息表。
步骤614:用户程序使用posix接口对本地文件***发出针对任一个或多个对象的数据读请求,用户主机根据对象的元数据信息与文件的元数据信息的映射关系确定对应的文件。
步骤616:本地文件***到本地缓存中读取对应文件的数据。
步骤618:如果本地文件***读取到数据,将数据返回给用户程序。
步骤620:如果本地文件***未读取到数据,逻辑块设备基于块存储的访问协议向服务端发出数据读取请求并携带对应文件的逻辑块地址。
步骤622:服务端根据接收到的数据读取请求携带的逻辑块地址,查询地址缓存信息表,以判断服务端缓存中是否存在对应的数据。
步骤624:如果存在,服务端从缓存中读取出数据,将数据返回给用户主机。
步骤626:如果不存在,服务端查询逻辑块地址与对象名及数据偏移的对应关系表,确定需要访问的对象的对象名及数据偏移,并基于对象存储协议向对象存储设备发出数据读取请求并携带对象名和数据偏移信息。
步骤628:对象存储设备向服务端返回对象的数据。
步骤630:服务端将数据返回给用户主机。
步骤632:服务端将数据放入服务端缓存。
步骤634:用户主机将从服务端获取的数据返回给用户程序并将数据作为对应文件的数据放入本地缓存,以便用户程序下次读取该数据时复用。
通过上述处理流程可见,用户程序要读取数据进行数据分析时,可以直接使用posix接口读取本地文件***,本地文件***基于元数据信息之间的映射关系可以将请求对应理解为逻辑盘的LBA读请求,从本地缓存读取数据。如果数据不在本地缓存,则用户主机发送LBA读请求到服务端请求数据。服务端首先查询地址缓存信息表也即LBA填充表。如果请求的LBA对应的缓存命中信息为1,则说明请求读取的数据可能是已经缓存的对象数据,直接读取逻辑块设备缓存盘相应地址的数据返回给用户主机即可。如果请求的LBA对应的缓存命中信息为0,说明该请求的数据还在对象存储设备上,则可以通过数据映射Index表查询对象名+数据偏移,并访问相应的对象得到数据返回给用户主机。同时服务端把数据写到逻辑块设备缓存盘作为数据缓存,并将该LBA对应的缓存命中信息相应更新为1。由此,该实施例通过高效的数据映射,将对象的访问在本地文件***上完成,而实际数据访问通过lazyload(延迟加载)对象存储完成,发挥块存储与本地文件***性能优势,又结合对象存储低成本、数据访问方便的特征,更好的满足数据湖的分析需求。
与上述方法实施例相对应,本说明书还提供了配置于用户主机的处理对象存储访问的装置实施例,图7示出了本说明书一个实施例提供的配置于用户主机的处理对象存储访问的装置的结构示意图。如图7所示,该装置包括:
第一映射模块702,可以被配置为预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中和/或所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据。
第一读响应模块704,可以被配置为响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元。
地址确定模块706,可以被配置为确定所述数据管理单元的逻辑块地址。
第一读取模块708,可以被配置为基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
由于该装置中,用户主机预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中和/或所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据,因此,实现了对象数据到块存储的映射。由此用户主机在接收到针对对象数据的第一数据读请求时,能够根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,确定所述数据管理单元的逻辑块地址,进而在用户主机能够基于块存储的访问协议从服务端缓存或用户主机的本地缓存获取对应的数据的情况下,避免通过对象存储的分布式架构的访问路径所带来的时间消耗,避免对象存储的数据访问协议的转换代价,发挥用户主机本地缓存和/或服务端缓存、以及块存储协议的高效访问性能加速对象存储的数据的访问,并结合对象存储低成本、数据访问方便的特点,更好地满足访问需求。
本说明书一个或多个实施例中,所述用户主机的主机***为本地文件***,所述数据管理单元为文件。相应地,所述第一映射模块702,可以被配置为将所述对象存储设备中对象的属性信息按目录层次映射到所述文件的属性信息上,得到第一映射关系的集合。
本说明书一个或多个实施例中,所述第一读取模块708,可以包括:本地缓存读取子模块,可以被配置为基于块存储的访问协议以及所述逻辑块地址,访问所述用户主机的本地缓存,以获取所述逻辑块地址的数据;服务端缓存读取子模块,可以被配置为如果未从所述用户主机的本地缓存获取到所述逻辑块地址的数据,基于块存储的访问协议以及所述逻辑块地址访问所述服务端缓存,以获取所述逻辑块地址的数据。
通过上述实施例,在接收到针对对象存储设备中对象的数据读取请求时,通过对象与数据管理单元的映射,先基于块存储的访问协议到用户主机的本地缓存中读取数据,如果本地缓存没有该数据,再基于块存储的访问协议从服务端缓存获取数据,从而在本地有要读取的对象的数据时,则无需通过网络发送访问请求,加速了数据访问。
另外,为了提高数据读取效率,所述装置还可以包括:本地缓存更新模块,可以被配置为将从所述服务端缓存中获取的数据放入所述用户主机的本地缓存。
本说明书另一个或多个实施例中,所述第一读取模块708,可以包括:本地缓存读取子模块,可以被配置为基于块存储的访问协议以及所述逻辑块地址,访问所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
相应地,所述装置还可以包括:对象存储访问模块710,可以被配置为如果未从所述用户主机的本地缓存获取到所述逻辑块地址的数据,向所述对象存储设备发出访问以获取所述第一数据读请求要读取的对象的数据。所述本地缓存更新模块,可以被配置为将获取的数据放入所述用户主机的本地缓存。在该实施例中,基于对象到用户主机中数据管理单元的映射,可以直接利用用户主机的本地缓存来加速对象数据的访问,而不必通过服务端的配合来实现。在用户主机能够从本地缓存获取对应的数据的情况下,避免通过分布式的对象存储的访问路径所带来的时间消耗,避免对象存储的数据访问协议的转换代价,利用本地缓存以及基于块存储的访问协议在主机***内部数据访问的访问性能优势加速对象存储的数据的访问,并结合对象存储低成本、数据访问方便的特点,更好地满足访问需求。
上述为本实施例的配置于用户主机的处理对象存储访问的装置的示意性方案。需要说明的是,该配置于用户主机的处理对象存储访问的装置的技术方案与上述的应用于用户主机的处理对象存储访问的方法的技术方案属于同一构思,配置于用户主机的处理对象存储访问的装置的技术方案未详细描述的细节内容,均可以参见上述应用于用户主机的处理对象存储访问的方法的技术方案的描述。
与上述应用于用户主机的处理对象存储访问的方法实施例相对应,本说明书还提供了应用于服务端的处理对象存储访问的方法实施例,图8示出了本说明书一个实施例提供的一种应用于服务端的处理对象存储访问的方法的流程图,具体包括以下步骤。
步骤802:响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址。
其中,所述第二数据读请求是所述用户主机响应于接收到第一数据读取请求,根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,并确定所述数据管理单元的逻辑块地址的情况下、发出的请求;
其中,所述第一映射关系是第一属性信息与第二属性信息的映射关系,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中,所述至少一个数据管理单元的数据为对应对象的数据;
步骤804:利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据。
步骤806:向所述用户主机返回所述数据。
由于该方法中服务端响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址。而第二数据读请求是所述用户主机响应于接收到第一数据读取请求,根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,并确定所述数据管理单元的逻辑块地址的情况下、发出的请求,而且,所述第一映射关系是第一属性信息与第二属性信息的映射关系,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中,所述至少一个数据管理单元的数据为对应对象的数据,因此,实现了对象存储数据到块存储的映射。从而,在服务端能够利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据的情况下,可以向所述用户主机返回所述数据,避免用户通过对象存储的分布式架构的访问路径所带来的时间消耗,避免对象存储的数据访问协议的转换代价,发挥服务端缓存、以及块存储协议的高效访问性能加速对象存储的数据的访问,并结合对象存储低成本、数据访问方便的特点,更好地满足访问需求。
本说明书一个或多个实施例中,服务端还可以向对象存储设备发出访问以获取更多的对象的数据放入服务端缓存,从而满足加速数据访问的需要。具体地,所述方法还可以包括:预先获取所述对象存储设备中各个对象的对象名以及数据偏移;预先根据所述各个对象在所述用户主机上映射到的数据管理单元的逻辑块地址,建立所述逻辑块地址与所述对象名以及数据偏移的第二映射关系;如果所述服务端缓存中不存在所述逻辑块地址的数据,根据所述逻辑块地址以及所述第二映射关系,确定所述逻辑块地址对应的对象名以及数据偏移;利用所述对象名以及数据偏移,向所述对象存储设备发出访问以获取对应的所述数据;将所述数据放入所述服务端缓存,以及向所述用户主机返回所述数据。
根据上述实施例,采用了lazy load用时加载的访问方式,即服务端在确定所述服务端不存在要读取的数据的情况下,从对象存储设备获取数据,将数据返回给用户主机,并放入服务端缓存以备复用,从而避免过多闲置数据放入缓存,减少资源浪费。
本说明书另一个或多个实施例中,为了加快访问速度,避免服务端缓存中没有对应数据仍执行访问所带来的时间消耗,还设置了块地址缓存信息表,用于访问服务端缓存之前,先根据该块地址缓存信息表判断数据是否在缓存中,如果在,则访问用户端缓存,如果不在,则可以进一步向对象存储设备发出访问以获取对应的数据。因此,具体地,在该实施例中,在所述利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据之前,还包括:
根据预设的块地址缓存信息表判断所述服务端缓存中是否存在所述逻辑块地址的数据;
其中,所述块地址缓存信息表中记录了逻辑块地址与缓存命中信息的对应关系,其中,所述缓存命中信息用于表示对应的逻辑块地址的数据是否位于所述服务端缓存中。
另外,每次服务端从对象存储设备获取新的数据并更新缓存时,可以相应更新该地址缓存信息表。
需要说明的是,上述应用于服务端的处理对象存储访问的方法实的技术方案与上述应用于用户主机的处理对象存储访问的方法的技术方案属于同一构思,应用于服务端的处理对象存储访问的方法的技术方案未详细描述的细节内容,均可以参见上述应用于用户主机的处理对象存储访问的方法方法的技术方案的描述,在此不再赘述。
与上述方法实施例相对应,本说明书还提供了配置于服务端的处理对象存储访问的装置实施例,图9示出了本说明书一个实施例提供的配置于服务端的处理对象存储访问的装置的结构示意图。如图9所示,该装置包括:
第二读响应模块902,可以被配置为响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址。
其中,所述第二数据读请求是所述用户主机响应于接收到第一数据读取请求,根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,并确定所述数据管理单元的逻辑块地址的情况下、发出的请求。
其中,所述第一映射关系是第一属性信息与第二属性信息的映射关系,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中,所述至少一个数据管理单元的数据为对应对象的数据。
第二读取模块904,可以被配置为利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据。
数据返回模块906,可以被配置为向所述用户主机返回所述数据。
由于该装置中服务端响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址。而第二数据读请求是所述用户主机响应于接收到第一数据读取请求,根据第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元,并确定所述数据管理单元的逻辑块地址的情况下、发出的请求,而且,所述第一映射关系是第一属性信息与第二属性信息的映射关系,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中,所述至少一个数据管理单元的数据为对应对象的数据,因此,实现了对象存储数据到块存储的映射。从而,在服务端能够利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据的情况下,可以向所述用户主机返回所述数据,避免用户通过对象存储的分布式架构的访问路径所带来的时间消耗,避免对象存储的数据访问协议的转换代价,发挥服务端缓存、以及块存储协议的高效访问性能加速对象存储的数据的访问,并结合对象存储低成本、数据访问方便的特点,更好地满足访问需求。
本说明书一个或多个实施例中,所述装置还可以包括:对象信息获取模块,可以被配置为预先获取所述对象存储设备中各个对象的对象名以及数据偏移。第二映射模块,可以被配置为预先根据所述各个对象在所述用户主机上映射到的数据管理单元的逻辑块地址,建立所述逻辑块地址与所述对象名以及数据偏移的第二映射关系。对象地址确定模块,可以被配置为如果所述服务端缓存中不存在所述逻辑块地址的数据,根据所述逻辑块地址以及所述第二映射关系,确定所述逻辑块地址对应的对象名以及数据偏移。对象访问模块,可以被配置为利用所述对象名以及数据偏移,向所述对象存储设备发出访问以获取对应的所述数据。服务端缓存更新模块,可以被配置为将所述数据放入所述服务端缓存,以及向所述用户主机返回所述数据。
本说明书一个或多个实施例中,所述装置还可以包括:服务端缓存判断模块,可以被配置为在所述第二读取模块904利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据之前,根据预设的块地址缓存信息表判断所述服务端缓存中是否存在所述逻辑块地址的数据。其中,所述块地址缓存信息表中记录了逻辑块地址与缓存命中信息的对应关系,其中,所述缓存命中信息用于表示对应的逻辑块地址的数据是否位于所述服务端缓存中。
本说明书另一个或多个实施例中,所述装置还可以包括:缓存信息表更新模块,可以被配置为在所述服务端缓存更新数据的情况下,相应更新所述块地址缓存信息表。
上述为本实施例的配置于服务端的处理对象存储访问的装置的示意性方案。需要说明的是,该配置于服务端的处理对象存储访问的装置的技术方案与上述的应用于服务端的处理对象存储访问的方法的技术方案属于同一构思,配置于服务端的处理对象存储访问的装置的技术方案未详细描述的细节内容,均可以参见上述应用于服务端的处理对象存储访问的方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了处理对象存储访问的***实施例,图10示出了本说明书一个实施例提供的处理对象存储访问的***的结构示意图。如图10所示,该***可以包括:
用户主机1002,可以被配置为预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中或者存储与服务端缓存和所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据;响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读取请求要读取的对象对应的数据管理单元;确定所述数据管理单元的逻辑块地址;基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
服务端1004,可以被配置为响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址,利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据,向所述用户主机返回所述数据;如果所述服务端缓存中不存在所述逻辑块地址的数据,从所述对象存储设备获取对应的所述数据。
对象存储设备1006,可以被配置为存储对象的数据。
上述***通过高效的数据映射,将对象的访问在本地***上完成,而实际数据访问通过lazyload(延迟加载)对象存储完成,发挥块存储与本地文件***性能优势,又结合对象存储低成本、数据访问方便的特征,更好的满足数据湖的分析需求。
上述为本实施例的处理对象存储访问的***的示意性方案。需要说明的是,该处理对象存储访问的***的技术方案与上述的处理对象存储访问的方法的技术方案属于同一构思,处理对象存储访问的***的技术方案未详细描述的细节内容,均可以参见上述处理对象存储访问的方法的技术方案的描述。
图11示出了根据本说明书一个实施例提供的一种计算设备1100的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。
计算设备1100还包括接入设备1140,接入设备1140使得计算设备1100能够经由一个或多个网络1160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备1100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。
其中,处理器1120用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述处理对象存储访问的方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的处理对象存储访问的方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述处理对象存储访问的方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述处理对象存储访问的方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的处理对象存储访问的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述处理对象存储访问的方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述处理对象存储访问的方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的处理对象存储访问的方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述处理对象存储访问的方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (13)
1.一种处理对象存储访问的方法,应用于用户主机,包括:
预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中和/或所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据;
响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读请求要读取的对象对应的数据管理单元;
确定所述数据管理单元的逻辑块地址;
基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据;
其中,所述服务端,还用于预先获取所述对象存储设备中各个对象的对象名以及数据偏移,预先根据所述各个对象在所述用户主机上映射到的数据管理单元的逻辑块地址,建立所述逻辑块地址与所述对象名以及数据偏移的第二映射关系,如果所述服务端缓存中不存在所述逻辑块地址的数据,根据所述逻辑块地址以及所述第二映射关系,确定所述逻辑块地址对应的对象名以及数据偏移,利用所述对象名以及数据偏移,向所述对象存储设备发出访问以获取对应的所述数据,将所述数据放入所述服务端缓存,以及向所述用户主机返回所述数据。
2.根据权利要求1所述的方法,所述用户主机的主机***为本地文件***,所述数据管理单元为文件;
所述预先建立第一属性信息与第二属性信息的第一映射关系,包括:
将所述对象存储设备中对象的属性信息按目录层次映射到所述文件的属性信息上,得到第一映射关系的集合。
3.根据权利要求1所述的方法,所述基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据,包括:
基于块存储的访问协议以及所述逻辑块地址,访问所述用户主机的本地缓存,以获取所述逻辑块地址的数据;
如果未从所述用户主机的本地缓存获取到所述逻辑块地址的数据, 基于块存储的访问协议以及所述逻辑块地址访问所述服务端缓存,以获取所述逻辑块地址的数据。
4.根据权利要求3所述的方法,还包括:
将从所述服务端缓存中获取的数据放入所述用户主机的本地缓存。
5.根据权利要求1所述的方法,所述基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据,包括:
基于块存储的访问协议以及所述逻辑块地址,访问所述用户主机的本地缓存,以获取所述逻辑块地址的数据;
所述方法还包括:
如果未从所述用户主机的本地缓存获取到所述逻辑块地址的数据,向所述对象存储设备发出访问以获取所述第一数据读请求要读取的对象的数据;
将获取的数据放入所述用户主机的本地缓存。
6.一种处理对象存储访问的装置,配置于用户主机,包括:
映射模块,被配置为预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中和/或所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据,其中,所述服务端,还用于预先获取所述对象存储设备中各个对象的对象名以及数据偏移,预先根据所述各个对象在所述用户主机上映射到的数据管理单元的逻辑块地址,建立所述逻辑块地址与所述对象名以及数据偏移的第二映射关系,如果所述服务端缓存中不存在所述逻辑块地址的数据,根据所述逻辑块地址以及所述第二映射关系,确定所述逻辑块地址对应的对象名以及数据偏移,利用所述对象名以及数据偏移,向所述对象存储设备发出访问以获取对应的所述数据,将所述数据放入所述服务端缓存,以及向所述用户主机返回所述数据;
第一读响应模块,被配置为响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读请求要读取的对象对应的数据管理单元;
地址确定模块,被配置为确定所述数据管理单元的逻辑块地址;
第一读取模块,被配置为基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据。
7.一种处理对象存储访问的方法,应用于服务端,包括:
响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址;
其中,所述第二数据读请求是所述用户主机响应于接收到第一数据读请求,根据第一映射关系确定所述第一数据读请求要读取的对象对应的数据管理单元,并确定所述数据管理单元的逻辑块地址的情况下、发出的请求;
其中,所述第一映射关系是第一属性信息与第二属性信息的映射关系,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中,所述至少一个数据管理单元的数据为对应对象的数据;
利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据;
向所述用户主机返回所述数据;
预先获取所述对象存储设备中各个对象的对象名以及数据偏移;
预先根据所述各个对象在所述用户主机上映射到的数据管理单元的逻辑块地址,建立所述逻辑块地址与所述对象名以及数据偏移的第二映射关系;
如果所述服务端缓存中不存在所述逻辑块地址的数据,根据所述逻辑块地址以及所述第二映射关系,确定所述逻辑块地址对应的对象名以及数据偏移;
利用所述对象名以及数据偏移,向所述对象存储设备发出访问以获取对应的所述数据;
将所述数据放入所述服务端缓存,以及向所述用户主机返回所述数据。
8.根据权利要求7所述的方法,在所述利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据之前,还包括:
根据预设的块地址缓存信息表判断所述服务端缓存中是否存在所述逻辑块地址的数据;
其中,所述块地址缓存信息表中记录了逻辑块地址与缓存命中信息的对应关系,其中,所述缓存命中信息用于表示对应的逻辑块地址的数据是否位于所述服务端缓存中。
9.根据权利要求8所述的方法,还包括:
在所述服务端缓存更新数据的情况下,相应更新所述块地址缓存信息表。
10.一种处理对象存储访问的装置,配置于服务端,所述服务端预先获取对象存储设备中各个对象的对象名以及数据偏移,预先根据所述各个对象在用户主机上映射到的数据管理单元的逻辑块地址,建立所述逻辑块地址与所述对象名以及数据偏移的第二映射关系,所述装置包括:
第二读响应模块,被配置为响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址;
其中,所述第二数据读请求是所述用户主机响应于接收到第一数据读请求,根据第一映射关系确定所述第一数据读请求要读取的对象对应的数据管理单元,并确定所述数据管理单元的逻辑块地址的情况下、发出的请求;
其中,所述第一映射关系是第一属性信息与第二属性信息的映射关系,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中,所述至少一个数据管理单元的数据为对应对象的数据;
第二读取模块,利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据,如果所述服务端缓存中不存在所述逻辑块地址的数据,根据所述逻辑块地址以及所述第二映射关系,确定所述逻辑块地址对应的对象名以及数据偏移;利用所述对象名以及数据偏移,向所述对象存储设备发出访问以从所述对象存储设备获取对应的所述数据,将所述数据放入所述服务端缓存;
数据返回模块,被配置为向所述用户主机返回所述数据。
11.一种处理对象存储访问的***,包括:
用户主机,被配置为预先建立第一属性信息与第二属性信息的第一映射关系,其中,所述第一属性信息为对象存储设备中对象的属性信息,所述第二属性信息为所述用户主机的主机***中数据管理单元的属性信息,其中,至少一个数据管理单元的数据存储于服务端缓存中或者存储于服务端缓存和所述用户主机的本地缓存中,所述至少一个数据管理单元的数据为对应对象的数据;响应于接收到第一数据读请求,根据所述第一映射关系确定所述第一数据读请求要读取的对象对应的数据管理单元;确定所述数据管理单元的逻辑块地址;基于块存储的访问协议以及所述逻辑块地址,访问所述服务端缓存或所述用户主机的本地缓存,以获取所述逻辑块地址的数据;
服务端,被配置为预先获取所述对象存储设备中各个对象的对象名以及数据偏移,预先根据所述各个对象在所述用户主机上映射到的数据管理单元的逻辑块地址,建立所述逻辑块地址与所述对象名以及数据偏移的第二映射关系,响应于从用户主机接收到基于块存储的访问协议的第二数据读请求,根据所述第二数据读请求确定要读取的数据的逻辑块地址,利用所述逻辑块地址,从所述服务端缓存中读取出所述逻辑块地址的数据,向所述用户主机返回所述数据;如果所述服务端缓存中不存在所述逻辑块地址的数据,根据所述逻辑块地址以及所述第二映射关系,确定所述逻辑块地址对应的对象名以及数据偏移;利用所述对象名以及数据偏移,向所述对象存储设备发出访问以从所述对象存储设备获取对应的所述数据;将所述数据放入所述服务端缓存,以及向所述用户主机返回所述数据;
对象存储设备,被配置为存储对象的数据。
12.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1-5或者权利要求7-9任意一项所述处理对象存储访问的方法的步骤。
13.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1-5或者权利要求7-9任意一项所述处理对象存储访问的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210239000.1A CN114327302B (zh) | 2022-03-11 | 2022-03-11 | 处理对象存储访问的方法、装置及*** |
PCT/CN2023/078950 WO2023169269A1 (zh) | 2022-03-11 | 2023-03-01 | 处理对象存储访问的方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210239000.1A CN114327302B (zh) | 2022-03-11 | 2022-03-11 | 处理对象存储访问的方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327302A CN114327302A (zh) | 2022-04-12 |
CN114327302B true CN114327302B (zh) | 2022-09-23 |
Family
ID=81033231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210239000.1A Active CN114327302B (zh) | 2022-03-11 | 2022-03-11 | 处理对象存储访问的方法、装置及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114327302B (zh) |
WO (1) | WO2023169269A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327302B (zh) * | 2022-03-11 | 2022-09-23 | 阿里云计算有限公司 | 处理对象存储访问的方法、装置及*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143305A (zh) * | 2019-12-06 | 2020-05-12 | 苏州浪潮智能科技有限公司 | 基于分布式存储***的数据存储方法、装置、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850502B (zh) * | 2015-05-05 | 2018-03-09 | 华为技术有限公司 | 一种数据的访问方法、装置及设备 |
US10318166B1 (en) * | 2016-12-28 | 2019-06-11 | EMC IP Holding Company LLC | Preserving locality of storage accesses by virtual machine copies in hyper-converged infrastructure appliances |
CN108776682B (zh) * | 2018-06-01 | 2021-06-22 | 紫光西部数据(南京)有限公司 | 基于对象存储的随机读写对象的方法和*** |
US11080231B2 (en) * | 2018-12-31 | 2021-08-03 | Micron Technology, Inc. | File creation with requester-specified backing |
CN111143417A (zh) * | 2019-12-27 | 2020-05-12 | 广东浪潮大数据研究有限公司 | 数据处理方法、装置、***及Nginx服务器和介质 |
CN114327302B (zh) * | 2022-03-11 | 2022-09-23 | 阿里云计算有限公司 | 处理对象存储访问的方法、装置及*** |
-
2022
- 2022-03-11 CN CN202210239000.1A patent/CN114327302B/zh active Active
-
2023
- 2023-03-01 WO PCT/CN2023/078950 patent/WO2023169269A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143305A (zh) * | 2019-12-06 | 2020-05-12 | 苏州浪潮智能科技有限公司 | 基于分布式存储***的数据存储方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023169269A1 (zh) | 2023-09-14 |
CN114327302A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10515058B2 (en) | Unified file and object data storage | |
US9762670B1 (en) | Manipulating objects in hosted storage | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
WO2017167171A1 (zh) | 一种数据操作方法,服务器及存储*** | |
CN110019004B (zh) | 一种数据处理方法、装置及*** | |
EP2369494A1 (en) | Web application based database system and data management method therof | |
CN107818111B (zh) | 一种缓存文件数据的方法、服务器及终端 | |
US10169348B2 (en) | Using a file path to determine file locality for applications | |
WO2023169235A1 (zh) | 数据访问方法、***、设备及存储介质 | |
CN106817388B (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的*** | |
CN111158851B (zh) | 一种虚拟机快速部署方法 | |
CN114327302B (zh) | 处理对象存储访问的方法、装置及*** | |
US20240028382A1 (en) | Method and Apparatus for Starting Secure Container | |
CN109947718A (zh) | 一种数据存储方法、存储平台及存储装置 | |
WO2023179784A1 (zh) | 数据处理方法以及装置 | |
CN110347656B (zh) | 文件存储***中请求的管理方法和装置 | |
US11593310B2 (en) | Providing writable streams for external data sources | |
CN114942908B (zh) | 索引***、数据处理方法、电子设备及介质 | |
CN114490540B (zh) | 数据存储方法、介质、装置和计算设备 | |
CN114385596A (zh) | 数据处理方法及装置 | |
CN115525618A (zh) | 存储集群、数据存储方法、***及存储介质 | |
CN116107515B (zh) | 存储卷挂载与访问方法、设备及存储介质 | |
EP3532939A1 (en) | Garbage collection system and process | |
US9165009B1 (en) | Lightweight appliance for content storage | |
CN117648297B (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 |