CN111399764A - 数据存储方法、读取方法、装置、设备及存储介质 - Google Patents
数据存储方法、读取方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111399764A CN111399764A CN201911354801.7A CN201911354801A CN111399764A CN 111399764 A CN111399764 A CN 111399764A CN 201911354801 A CN201911354801 A CN 201911354801A CN 111399764 A CN111399764 A CN 111399764A
- Authority
- CN
- China
- Prior art keywords
- data
- stripe
- storage
- index information
- stripe data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据存储、数据读取方法、装置、设备及存储介质,属于数据存储技术领域。所述方法应用于分布式存储***的多个存储节点中的调度存储节点,该调度存储节点是由管理节点从该多个存储节点中为当前待存储的对象数据选择的,该方法包括:接收该对象数据;对该对象数据进行条带化处理,得到多个条带数据;根据该多个存储节点当前的资源信息,确定该多个条带数据的存储位置信息;根据该多个条带数据的存储位置信息,生成该多个条带数据的条带索引信息;将该多个条带数据和该条带索引信息存储至该多个存储节点中。如此,可以避免将所有对象元数据都存储至管理节点给管理节点带来巨大的存储压力。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种数据存储方法、读取方法、装置、设备及存储介质。
背景技术
目前,对象存储在数据存储技术领域得到广泛应用。其中,对象存储是指将数据以对象的形式进行存储,对象通常包括对象标识、对象数据、对象元数据,对象数据是指具体业务数据,如视频、图片等,对象元数据用于描述对象数据,比如可以为对象数据的时间、大小、索引等描述性信息。
通常情况下,可以采用分布式存储***进行对象存储,分布式存储***一般包括客户端、管理节点和多个存储节点。在数据存储时,管理节点可以为客户端分配存储节点,并将所分配的存储节点的地址信息发送给客户端,如此,客户端即可以将对象数据存储至该地址信息指向的存储节点中。存储节点生成对象数据的索引信息,并将包括该索引信息的对象元数据发送给管理节点进行存储。
然而,当将对象数据切成数据块,并将数据块分布存储于不同存储节点中时,该索引信息包含的信息量较多,在该种情况下,由于包括索引信息的对象元数据集中存储于管理节点中,因此,导致管理节点的存储压力较大。
发明内容
本申请实施例提供了一种数据存储方法、读取方法、装置、设备及存储介质,可以解决相关技术中所有对象元数据集中存储于管理节点导致管理节点的存储压力和访问压力较大的问题。所述技术方案如下:
一方面,提供了一种数据存储方法,应用于分布式存储***的多个存储节点中的调度存储节点,所述调度存储节点是由管理节点从所述多个存储节点中为当前待存储的对象数据选择的,所述方法包括:
接收所述对象数据;
对所述对象数据进行条带化处理,得到多个条带数据;
根据所述多个存储节点当前的资源信息,确定所述多个条带数据的存储位置信息;
根据所述多个条带数据的存储位置信息,生成所述多个条带数据的条带索引信息;
将所述多个条带数据和所述条带索引信息存储至所述多个存储节点中。
在本申请一种可能的实现方式中,所述将所述多个条带数据和所述条带索引信息存储至所述多个存储节点中之前,还包括:
生成所述多个条带数据的条带数据标识;
相应地,所述将所述多个条带数据和所述条带索引信息存储至所述多个存储节点中,包括:
将所述多个条带数据存储至所述多个存储节点中,以及将所述多个条带数据的条带数据标识与条带索引信息对应存储至所述多个存储节点中。
在本申请一种可能的实现方式中,所述将所述多个条带数据存储至所述多个存储节点中,以及将所述多个条带数据的条带数据标识与条带索引信息对应存储至所述多个存储节点中,包括:
在本地存储目标条带数据,以及将所述目标条带数据的条带数据标识与索引信息对应存储至本地,所述目标条带数据是指需要本端存储的条带数据;
将所述多个条带数据中除所述目标条带数据之外的其他条带数据、其他条带数据的条带数据标识和条带索引信息发送至其他存储节点进行存储。
在本申请一种可能的实现方式中,每个条带数据包括多个数据单元,所述存储位置信息包括每个数据单元的存储位置信息,所述根据所述多个条带数据的存储位置信息,生成所述多个条带数据的条带索引信息之前,还包括:
获取每个条带数据中的每个数据单元的位置索引信息;
相应地,所述根据所述多个条带数据的存储位置信息,生成所述多个条带数据的条带索引信息,包括:
对于所述多个条带数据中的任一条带数据,根据所述任一条带数据中的每个数据单元的存储位置信息和所述每个数据单元在所述任一条带数据中的位置索引信息,生成所述任一条带数据的条带索引信息。
在本申请一种可能的实现方式中,所述将所述目标条带数据的条带数据标识与索引信息对应存储至本地之后,还包括:
根据参考策略,从所述多个存储节点中确定目标存储节点;
将所述目标条带数据的条带数据标识与索引信息对应存储至所述目标存储节点中,并建立所述目标存储节点与所述调度存储节点之间的关联关系。
另一方面,提供了一种数据读取方法,应用于分布式存储***的多个存储节点中的调度存储节点,所述调度存储节点是由管理节点从所述多个存储节点中为当前待读取的对象数据确定的,所述方法包括:
接收来自客户端的信息获取请求,所述信息获取请求携带所述对象数据的对象数据标识,所述对象数据包括多个条带数据;
基于所述对象数据标识,获取所述多个条带数据的条带数据标识,每个条带数据标识与条带索引信息对应,所述多个条带数据的条带索引信息由所述调度存储节点存储在所述多个存储节点中;
获取多个条带标识对应的节点地址信息,每个节点地址信息指示的存储节点用于存储对应的条带标识指示的条带数据;
将所述多个条带数据标识和所述多个条带标识对应的节点地址信息发送给所述客户端。
在本申请一种可能的实现方式中,所述方法还包括:
接收来自所述客户端的数据读取请求,所述数据读取请求携带待读取条带数据的条带数据标识;
从本地存储的条带数据标识与条带索引信息之间的对应关系中,查询所述条带数据标识对应的条带索引信息;
当查询到所述条带数据标识对应的条带索引信息时,根据所述条带索引信息从对应的存储节点中获取所述待读取条带数据。
在本申请一种可能的实现方式中,所述从本地存储的条带数据标识与条带索引信息之间的对应关系中,查询所述条带数据标识对应的条带索引信息之后,还包括:
当未查询到所述条带数据标识对应的条带索引信息时,确定与所述调度存储节点具有关联关系的目标存储节点的节点地址信息;
基于所确定的节点地址信息,从所述目标存储节点中查询所述条带数据标识对应的条带索引信息。
在本申请一种可能的实现方式中,所述待读取数据包括多个数据单元,所述条带索引信息包括所述待读取条带数据在所述多个存储节点的存储位置信息、以及所述待读取条带数据中每个数据单元在所述待读取条带数据中的位置索引信息;
所述根据所述条带索引信息从对应的存储节点中获取所述待读取条带数据,包括:
根据所述待读取条带数据的每个数据单元的存储位置信息,从对应的存储节点中获取所述每个数据单元;
按照所述每个数据单元在所述待读取条带数据中的位置索引信息,重新组合所获取的数据单元,得到所述待读取条带数据。
另一方面,提供了一种数据存储装置,配置于分布式存储***的多个存储节点中的调度存储节点,所述调度存储节点是由管理节点从所述多个存储节点中为当前待存储的对象数据选择的,所述装置包括:
第一接收模块,用于接收所述对象数据;
条带化模块,用于对所述对象数据进行条带化处理,得到多个条带数据;
确定模块,用于根据所述多个存储节点当前的资源信息,确定所述多个条带数据的存储位置信息;
生成模块,用于根据所述多个条带数据的存储位置信息,生成所述多个条带数据的条带索引信息;
存储模块,用于将所述多个条带数据和所述条带索引信息存储至所述多个存储节点中。
在本申请一种可能的实现方式中,所述存储模块还用于:
生成所述多个条带数据的条带数据标识;
将所述多个条带数据存储至所述多个存储节点中,以及将所述多个条带数据的条带数据标识与条带索引信息对应存储至所述多个存储节点中。
在本申请一种可能的实现方式中,所述存储模块用于:
在本地存储目标条带数据,以及将所述目标条带数据的条带数据标识与索引信息对应存储至本地,所述目标条带数据是指需要本端存储的条带数据;
将所述多个条带数据中除所述目标条带数据之外的其他条带数据、其他条带数据的条带数据标识和条带索引信息发送至其他存储节点进行存储。
在本申请一种可能的实现方式中,每个条带数据包括多个数据单元,所述存储位置信息包括每个数据单元的存储位置信息,所述生成模块还用于:
获取每个条带数据中的每个数据单元的位置索引信息;
对于所述多个条带数据中的任一条带数据,根据所述任一条带数据中的每个数据单元的存储位置信息和所述每个数据单元在所述任一条带数据中的位置索引信息,生成所述任一条带数据的条带索引信息。
在本申请一种可能的实现方式中,所述存储模块还用于:
根据参考策略,从所述多个存储节点中确定目标存储节点;
将所述目标条带数据的条带数据标识与索引信息对应存储至所述目标存储节点中,并建立所述目标存储节点与所述调度存储节点之间的关联关系。
另一方面,提供了一种数据读取装置,配置于分布式存储***的多个存储节点中的调度存储节点,所述调度存储节点是由管理节点从所述多个存储节点中为当前待读取的对象数据确定的,所述装置包括:
第二接收模块,用于接收来自客户端的信息获取请求,所述信息获取请求携带所述对象数据的对象数据标识,所述对象数据包括多个条带数据;
第一获取模块,用于基于所述对象数据标识,获取所述多个条带数据的条带数据标识,每个条带数据标识与条带索引信息对应,所述多个条带数据的条带索引信息由所述调度存储节点存储在所述多个存储节点中;
第二获取模块,用于获取多个条带标识对应的节点地址信息,每个节点地址信息指示的存储节点用于存储对应的条带标识指示的条带数据;
发送模块,用于将所述多个条带数据标识和所述多个条带标识对应的节点地址信息发送给所述客户端。
在本申请一种可能的实现方式中,所述第二接收模块还用于
接收来自所述客户端的数据读取请求,所述数据读取请求携带待读取条带数据的条带数据标识;
从本地存储的条带数据标识与条带索引信息之间的对应关系中,查询所述条带数据标识对应的条带索引信息;
当查询到所述条带数据标识对应的条带索引信息时,根据所述条带索引信息从对应的存储节点中获取所述待读取条带数据。
在本申请一种可能的实现方式中,所述第二接收模块还用于:
当未查询到所述条带数据标识对应的条带索引信息时,确定与所述调度存储节点具有关联关系的目标存储节点的节点地址信息;
基于所确定的节点地址信息,从所述目标存储节点中查询所述条带数据标识对应的条带索引信息。
在本申请一种可能的实现方式中,所述待读取数据包括多个数据单元,所述条带索引信息包括所述待读取条带数据在所述多个存储节点的存储位置信息、以及所述待读取条带数据中每个数据单元在所述待读取条带数据中的位置索引信息;
所述第二获取模块还用于:
根据所述待读取条带数据的每个数据单元的存储位置信息,从对应的存储节点中获取所述每个数据单元;
按照所述每个数据单元在所述待读取条带数据中的位置索引信息,重新组合所获取的数据单元,得到所述待读取条带数据。
另一方面,提供了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现上述一方面或另一方面所述的任一项方法的步骤。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述一方面或另一方面所述的任一项方法的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述一方面或另一方面所述的任一项方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
调度存储节点接收待存储的对象数据,该调度存储节点是由管理节点从分布式存储***的多个存储节点中为该对象数据选择的,即不同的对象数据可能与不同的调度存储节点对应。调度存储节点对该对象数据进行条带化处理,得到多个条带数据,根据多个存储节点当前的资源信息,确定该多个条带数据的存储位置信息,并基于该存储位置信息,生成该多个条带数据的条带索引信息,之后,将该多个条带数据和条带索引信息存储至该多个存储节点中。如此,当需要存储的条带索引信息的数据量较大时,将条带索引信息分布在多个存储节点中进行存储,可以避免将所有对象元数据都存储至管理节点中给管理节点带来巨大的存储压力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种分布式存储***的架构示意图;
图2是根据另一示例性实施例示出的一种数据存储方法流程图;
图3是根据另一示例性实施例示出的一种数据存储的流程示意图;
图4是根据另一示例性实施例示出的一种条带数据的示意图;
图5是根据另一示例性实施例示出的一种数据存储的流程示意图;
图6是根据另一示例性实施例示出的一种数据存储方法流程图;
图7是根据另一示例性实施例示出的一种数据存储的流程示意图;
图8是根据一示例性实施例示出的一种数据存储装置的结构示意图;
图9是根据另一示例性实施例示出的一种数据存储装置的结构示意图;
图10是根据另一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的数据存储方法进行详细介绍之前,先对本申请实施例涉及的实施环境进行简单介绍。
本申请实施例提供的数据存储方法可以应用于分布式存储***中,请参考图1,图1是根据一示例性实施例示出的一种分布式存储***的架构示意图。该分布式存储***可以包括多个存储节点110,该多个存储节点110彼此之间可以通过有线网络或者无线网络进行通信。另外,该分布式存储***还可以包括客户端120和管理节点130,该客户端120、管理节点130和每个存储节点110之间彼此可以进行通信。在一些实施例中,可以将该多个存储节点110和管理节点130称为是一个集群。
作为一种示例,该多个存储节点110中的每个存储节点110均可以包括SS(StripeService,切片服务)模块、OSD(Object Storage Device,对象存储设备)、RMS(ResouceManage Service,资源管理服务)模块和SMS(Stripe Manage Service,条带管理服务)模块。其中,SS模块可以用于将对象数据切片为一定大小的数据块,将多个数据块组织成条带数据,进一步地,该SS模块还可以用于根据条带数据的存储位置信息,生成条带数据的条带索引信息。
其中,OSD可以用于存储切片后的数据块,示例性的,每个OSD上可以配置有至少一块磁盘,进一步地,该OSD还可以用于采集该多个存储节点110中存储资源的状态,如磁盘损坏,节点宕机等,最后汇聚至RMS中。
其中,RMS模块可以用于管理分布式存储***中多个存储节点110的存储资源,如可以分配用于存储条带数据的存储资源、分配用于存储条带索引信息的存储资源,以及维护所有节点的在线状态等信息,其主要执行的操作包括如下几点:
(1)对外广播自身的资源信息,譬如,该资源信息包括负载状态信息以及磁盘列表信息,该磁盘列表信息可以包括自身的磁盘使用情况和磁盘位置信息等;
(2)接收其他存储节点的资源信息,并根据接收的资源信息更新本地数据库中的其他存储节点的相关信息。
(3)对外响应资源分配的相关请求,比如,对外响应条带数据的存储资源分配请求。
其中,上述SMS模块可以用于管理条带数据的条带索引信息,如存储、更新条带索引信息等。每个存储节点110中的SMS模块存储了集群中部分或者全部的条带索引信息。进一步地,当检测到磁盘损坏或者节点宕机时,SMS模块可以扫描本机的条带数据,并通过纠删码方式将状态异常的条带数据进行纠正,以进行数据恢复。
作为一种示例,客户端120中可以装有SDK(Software Development Kit,软件开发套件),以通过该SDK执行关于对象数据存储的客户端程序的相关操作。
作为一种示例,管理节点130可以包括MDS(Metadata Server,元数据服务)模块和AMS(Application Manage Server,应用管理服务)模块。其中,该MDS模块可以用于管理除条带索引信息之外的对象元数据,该AMS模块可以用于处理客户端120的相关请求,还可以用于管理该多个存储节点110,比如在数据写入过程中,该管理节点可以根据一定的策略,为客户端当前需要存储的对象数据选择一个存储节点作为调度存储节点,该调度存储节点可以用于该对象数据的处理和调度。其中,针对不同对象数据,管理节点可以分配不同的调度存储节点。
进一步地,由于存储节点110包括SS模块,因此,上述AMS模块管理存储节点110实际上相当于AMS模块管理SS模块,比如,AMS模块为客户端选择SS模块以用于进行数据的处理和调度。
接下来,将结合附图对本申请实施例提供的数据存储方法进行详细介绍。
请参考图2,该图2是根据一示例性实施例示出的一种数据存储方法的流程图,这里以数据写入流程为例进行说明,该数据存储方法可以应用于图1所示的分布式存储***中,该数据存储方法可以由上述多个存储节点中的调度存储节点作为执行主体,该方法可以包括如下几个实现步骤:
步骤201:接收对象数据。
作为一种示例,该对象数据可以为客户端直接发送的。作为另一种示例,该对象数据也可以是该客户端通过数据存储请求携带的,即该客户端可以向该调度存储节点发送数据存储请求,该数据存储请求中携带该对象数据。
作为一种示例,请参考图3,当客户端需要存储某对象数据时,可以按照如下流程向调度存储节点发送该对象数据:客户端向管理节点发送第一请求消息,该第一请求消息用于指示管理节点从多个存储节点中确定一个存储节点作为调度存储节点。该管理节点接收到客户端的第一请求消息后,根据一定的策略选择一个存储节点,并将选择的该存储节点的节点地址信息发送给客户端。为了便于描述和理解,这里将管理节点选择的存储节点称为调度存储节点。客户端接收到该节点地址信息后,向其指向的调度存储节点发送该对象数据。
进一步地,该第一请求消息中可以携带对象数据的对象数据标识,该管理节点可以将该对象数据的对象数据标识与该调度存储节点的节点地址信息对应存储,以便于后续客户端查询在写入该对象数据的过程中是由哪个调度存储节点调度的。
当然,该客户端也可以在本地存储该对象数据标识与该调度存储节点的节点地址信息之间的对象关系,本申请实施例对此不做限定。
进一步地,该客户端接收到该节点地址信息后,还可以向其指向的调度存储节点发送数据存储请求。该调度存储节点接收该数据存储请求后,可以返回同意响应消息,客户端接收到同意响应消息时,确认该调度存储节点当前可用,此时,客户端向该调度存储节点发送待存储的对象数据。如此,客户端在确定调度存储节点可用的情况下发送该对象数据,提高了数据存储的可靠性。
当然,若该客户端接收到该调度存储节点的同意响应消息,则该客户端可以向该管理节点请求为该对象数据的存储重新分配一个调度存储节点。
作为一种示例,客户端还可以向调度存储节点发送对象数据的对象元数据,该对象元数据包括但不限于时间、数据拥有者、数据业务类型之类的描述性信息。
步骤202:对该对象数据进行条带化处理,得到多个条带数据。
作为一种示例,该调度存储节点可以通过SS模块对该对象数据进行条带化处理,即该SS模块可以对该对象数据进行切片,得到多个数据块,然后基于该多个数据块,生成多个条带数据。
进一步地,该多个条带数据中的每个条带数据包括多个数据单元。譬如,请参考图4,该每个条带数据为一个stripe,每个数据单元为一个unit,其中,该数据单元的大小可以根据实际需求进行设置,譬如,每个数据单元可以为1M大小的数据块。作为一种示例,在数据存储时,存储节点可以将每个条带数据中的不同数据单元分布存储在不同存储节点的不同磁盘上。
步骤203:根据该多个存储节点当前的资源信息,确定该多个条带数据的存储位置信息。
如前文所述,由于每个存储节点可以对外广播自身的资源信息,所以,每个存储节点可以获知其他各个存储节点当前的资源信息。如此,如图3和图5所示,得到该多个条带数据后,该SS模块可以向RMS模块申请用于存储该多个条带数据的存储资源,该RMS模块可以根据该多个存储节点当前的资源信息分配该多个条带数据的存储位置,即分配哪个存储节点存储哪些条带数据,以将该多个条带数据分配给不同的存储节点。作为一种示例,该RMS模块分配存储资源后返回条带资源列表,该条带资源列表中包括该多个条带数据的存储位置信息。
对于该调度存储节点中的SS模块来说,基于该条带资源列表,可以确定该多个条带数据的存储位置信息,当然,不难理解,该调度存储节点可以确定需要自身进行存储的条带数据的存储位置信息。
步骤204:根据该多个条带数据的存储位置信息,生成该多个条带数据的条带索引信息。
为了便于后续读取对象数据时能够查询到对应的条带数据,该调度存储节点根据该多个条带数据的存储位置信息,生成该多个条带数据的条带索引信息,以通过该条带索引信息记录这些条带数据存储在哪里。
作为一种示例,每个条带数据包括多个数据单元,此时,存储位置信息包括每个数据单元的存储位置信息。在该种情况下,生成该多个条带数据的条带索引信息之前,获取每个条带数据中的每个数据单元的位置索引信息。此时,该步骤204的实现可以包括:对于该多个条带数据中的任一条带数据,根据该任一条带数据中的每个数据单元的存储位置信息和该每个数据单元在该任一条带数据中的位置索引信息,生成该任一条带数据的条带索引信息。
也即是,对于任一条带数据来说,该任一条带数据中的多个数据单元可以采用分布式存储,即可能存储在不同存储节点的不同磁盘中,因此,为了后续能够完整读取到每个数据单元,在数据存储时,可以将该多个数据单元中的每个数据单元的存储位置信息作为条带索引信息的一部分。另外,为了能够使得后续能够读取到完整的条带数据,还将该任一条带数据中每个数据单元在该任一条带数据中的位置索引信息作为条带索引信息的一部分。也就是说,该任一条带数据的条带索引信息包括了不同数据单元在该任一条带数据中的位置,以及该多个数据单元中的每个数据单元的存储位置信息,如此,根据该条带索引信息能够确定该任一条带数据。
步骤205:将该多个条带数据和该条带索引信息存储至该多个存储节点中。
也即是说,该调度存储节点不仅将该多个条带数据存储在该多个存储节点中,还将该多个条带数据的条带索引信息也存储在该多个存储节点中,即不再存储在管理节点中,如此,可以减小管理节点的存储压力。
作为一种示例,生成该多个条带数据的条带数据标识,将该多个条带数据存储至该多个存储节点中,以及将该多个条带数据的条带数据标识与条带索引信息对应存储至该多个存储节点中。
其中,条带数据标识可以用于唯一标识一个条带数据。通常情况下,由于对象数据经过条带化处理后可以得到多个条带数据,不同条带数据可以通过不同的存储节点来进行存储,因此,为了便于后续读取数据时,可以获取到对象数据的所有条带数据,可以生成条带数据的条带数据标识。在存储过程中,将该多个条带数据存储至该多个存储节点中,并将该多个条带数据的条带数据标识与条带索引信息对应存储至该多个存储节点中,如此,不同存储节点在存储条带数据时,可以记录所存储的条带数据的条带数据标识和条带索引信息之间的对应关系,如此,通过该条带数据标识来标识该存储节点存储的是对象数据中的哪些条带数据,通过该条带索引信息可以获取到所存储的这些条带数据。
作为一种示例,将该多个条带数据存储至该多个存储节点中,以及将该多个条带数据的条带数据标识与条带索引信息对应存储至该多个存储节点中的具体实现可以包括:在本地存储目标条带数据,以及将该目标条带数据的条带数据标识与索引信息对应存储至本地,该目标条带数据是指需要本端存储的条带数据。将该多个条带数据中除该目标条带数据之外的其他条带数据、其他条带数据的条带数据标识和条带索引信息发送至其他存储节点进行存储。
如前文所述,根据条带资源列表可以确定该多个条带数据的存储位置信息,其中,该多个条带数据中包括需要本端存储的条带数据,为了便于描述,这里称为目标条带数据。该调度存储节点可以将该目标条带数据存储至本地,并在本地对应存储该目标条带数据与索引信息。
另外,该多个条带数据还包括需要其他存储节点存储的条带数据,在此,该调度存储节点将需要其他存储节点存储的条带数据、以及该条带数据的条带数据标识和条带索引信息发送给该其他存储节点。对于其他存储节点来说,接收调度存储节点发送的条带数据、以及该条带数据的条带数据标识和条带索引信息,之后,可以按照该调度存储节点的存储方式,存储所接收的条带数据,以及对应存储所接收的条带数据标识与条带索引信息。
作为一种示例,该调度存储节点可以通过SMS模块对应存储该目标条带数据的条带数据标识与该条带索引信息,进一步地,该调度存储节点可以通过RMS模块来决定条带索引信息的存储位置。
进一步地,可以将该目标条带数据的多个数据单元存储至对应的OSD中。这里需要说明的是,对于其他存储节点来说,在分布式存储自身需要存储的条带数据的多个数据单元时,可以由自身包括的RMS模块来决策如何进行分布式存储,即由自身包括的RMS模块来决策将该多个数据单元存储至哪些位置,或者,也可以由该调度存储节点来指示该其他存储节点如何进行分布式存储。
作为一种示例,为了保证数据存储的有效性,可以在将多个数据单元存储至对应的OSD中后,再次更新SMS模块中存储的条带索引信息,以保证成功将该目标条带数据的条带索引信息存储至SMS模块中。
进一步地,请参考图5,该目标条带数据和其条带索引信息存储成功后,该调度存储节点可以返回存储成功消息,以表示数据成功存储。需要说明的是,对于其他存储节点来说,可以向调度存储节点返回存储成功消息,在该种情况下,该调度存储节点可以在接收到其他存储节点均返回存储成功消息后,向客户端发送该存储成功消息。
进一步地,将该目标条带数据的条带数据标识与索引信息对应存储至本地之后,该调度存储节点还可以根据参考策略,从该多个存储节点中确定目标存储节点,将该目标条带数据的条带数据标识与索引信息对应存储至该目标存储节点中,并建立该目标存储节点与该调度存储节点之间的关联关系。
其中,该参考策略可以由用户根据实际需求进行设置,也可以由该调度存储节点默认设置,本申请实施例对此不做限定。
也就是说,该调度存储节点除了在本地对应存储该目标条带数据的条带数据标识与条带索引信息之外,还可以根据参考策略,从多个存储节点中选择一个目标存储节点,比如,该目标存储节点可以为剩余存储空间较大的存储节点,然后,将该目标条带数据的条带数据标识与该条带索引信息的对应关系同步至目标存储节点中。进一步地,该调度存储节点可以通过SMS模块将该目标条带数据的条带数据标识与该条带索引信息的对应关系同步至目标存储节点的SMS模块中。
如此,在多个存储节点中备份条带数据标识与条带索引信息之间的对应关系,防止该调度存储节点出现宕机时条带索引信息丢失。也就是说,当在多个存储节点中都进行信息备份后,只有该多个存储节点都宕机时,该条带索引信息才会丢失,增加了***的容灾能力。
进一步地,该调度存储节点可以将除条带索引信息之外的其他对象元数据存储至管理节点中,在实施中,获取该调度存储节点的节点地址信息和除条带索引信息之外的其他对象元数据,将该条带数据标识、该节点地址信息和该其他对象元数据发送至该管理节点对应存储。
也就是说,这里将该条带索引信息从对象元数据中抽离出来分布存储在各个存储节点中,将除了该条带信息之外的对象元数据、该条带数据标识以及该调度存储节点的节点地址信息发送到管理节点进行存储,这里可以将这些信息称为***信息。进一步地,该管理节点存储完该***信息后,可以向该调度存储节点返回更新成功消息,以通知该调度存储节点已成功将***信息存储。
作为一种示例,任一条带数据的每个数据单元的存储位置信息和位置索引信息可以以多副本形式存储在多个存储节点中,进一步地,可以存储在该多个存储节点的SMS中进行管理。
在这里,该条带数据标识和节点地址信息相当于是一级索引,可以用于确定每个存储节点存储了哪些条带数据,而条带数据的条带索引信息和条带数据标识之间的对应关系相当于二级索引,可以用于确定每个条带数据存储在哪些存储节点的哪个或哪些磁盘上。
在本申请实施例中,调度存储节点接收待存储的对象数据,该调度存储节点是由管理节点从分布式存储***的多个存储节点中为该对象数据选择的,即不同的对象数据可能与不同的调度存储节点对应。调度存储节点对该对象数据进行条带化处理,得到多个条带数据,根据多个存储节点当前的资源信息,确定该多个条带数据的存储位置信息,并基于该存储位置信息,生成该多个条带数据的条带索引信息,之后,将该多个条带数据和条带索引信息存储至该多个存储节点中。如此,当需要存储的条带索引信息的数据量较大时,将条带索引信息分布在多个存储节点中进行存储,可以避免将所有对象元数据都存储至管理节点中给管理节点带来巨大的存储压力。
另外,将该多个条带数据和条带索引信息存储至该多个存储节点中,读取数据时可以从存储节点中查询条带索引信息以获取对象数据,即避免由管理节点统一管理,减小了管理节点的访问压力。
请参考图6,该图6是根据一示例性实施例示出的一种数据读取方法的流程图,这里以数据读取流程为例进行说明,该数据读取方法可以应用于图1所示的分布式存储***中,可以由上述多个存储节点中的调度存储节点作为执行主体,该方法可以包括如下几个实现步骤:
步骤601:接收来自客户端的信息获取请求,该信息获取请求携带该对象数据的对象数据标识,该对象数据包括多个条带数据。
在数据读取过程中,当客户端需要读取某个对象数据时,可以根据该对象数据的对象数据标识,从本地获取该对象数据对应的调度存储节点的节点地址信息,其中,该调度存储节点是在写入该对象数据过程中由该管理节点分配的。再或者,如果该客户端本地未存储该对象数据的对象数据标识与调度存储节点的节点地址信息之间的对应关系,可以在管理节点中查询,譬如,可以向该管理节点发送第二请求消息,该第二请求消息携带该对象数据的对象数据标识,以使得该管理节点根据该对象数据标识,返回该调度存储节点的节点地址信息。
上述是以该客户端确定需要读取哪个对象数据为例,在一些实施例中,该客户端还可以基于时间等信息,通过管理节点来确定需要读取哪个对象数据。譬如,参考图7,当用户想要下载数据时,比如该数据为视频数据,可以通过客户端向管理节点发送第三请求消息,该第三请求消息可以携带时间段信息,示例性地,该时间段信息可以为视频时间段信息,该第三请求消息用于指示需要下载的对象数据所处的时间段。该管理节点接收到该第三请求消息后,可以确定处于该视频时间段信息所指示的时间段内的对象数据,确定该对象数据的对象数据标识和用于调度该对象数据的调度存储节点的节点地址信息,将该对象数据标识和调度存储节点的节点地址信息发送给该客户端。
之后,该客户端基于该对象数据标识,生成信息获取请求,并向该节点地址信息指向的调度存储节点发送该信息获取请求,以查询该对象数据的多个条带数据的相关信息。
步骤602:基于该对象数据标识,获取该多个条带数据的条带数据标识,每个条带数据标识与条带索引信息对应,该多个条带数据的条带索引信息由该调度存储节点存储在该多个存储节点中。
该调度存储节点在对对象数据标识指示的对象数据进行条带化处理时,可以在本地存储该对象数据标识与该多个条带数据标识之间的对应关系,如此,在读取过程中,该调度存储节点可以基于该对象数据标识和该对象关系,获取该多个条带数据的条带数据标识。
其中,每个条带数据标识与条带索引信息对应,也就是说,根据一个条带数据的条带数据标识,可以确定该条带数据的条带索引信息。其中,该调度存储节点对该多个条带数据的条带索引信息的存储过程可以参见上述实施例,这里不再重复赘述。
步骤603:获取多个条带标识对应的节点地址信息,每个节点地址信息指示的存储节点用于存储对应的条带标识指示的条带数据。
由于该多个条带数据是由该调度存储节点分布存在多个存储节点中,在存储过程中,可以在本地存储该多个条带数据的条带数据标识与节点地址信息之间的对应关系,所以,在读数据过程中,该调度存储节点可以获取多个条带标识对应的节点地址信息。
步骤604:将该多个条带数据标识和该多个条带标识对应的节点地址信息发送给该客户端。
作为一种示例,该调度存储节点可以以列表的形式记录各个节点地址信息和条带数据标识之间的对应关系,如此,可以将该列表发送给客户端。
对于客户端来说,接收到节点地址信息和条带数据标识之间的对应关系后,可以基于与同一节点地址信息对应的条带数据标识,生成数据读取请求,并向各个节点地址信息指向的存储节点发送数据读取请求。
相应地,该各个存储节点接收数据读取请求,该数据读取请求携带待读取条带数据的条带数据标识,从本地存储的条带数据标识与条带索引信息之间的对应关系中,查询该条带数据标识对应的条带索引信息。当查询到该条带数据标识对应的条带索引信息时,根据该条带索引信息从对应的存储节点中获取该待读取条带数据。
以调度存储节点为例,该调度存储节点可以解析该数据读取请求,并从中获取所携带的数据条带标识。由于该调度存储节点中存储了条带数据标识与条带索引信息之间的对应关系,其存储过程可以参见上述所示实施例。因此,当该调度存储节点获取到该条带数据标识后,可以根据该数据条带标识,从本地存储的对应关系中查询对应的条带索引信息。
作为一种示例,由于该调度存储节点可以通过SMS模块来管理条带索引信息,即该SMS模块中存储了条带数据标识与条带索引信息之间的对应关系,因此,该调度存储节点可以在SMS模块中查询该数据条带标识对应的条带索引信息。
当查询到该条带数据标识对应的条带索引信息时,根据该条带索引信息从对应的存储节点中获取该待读取条带数据。
作为一种示例,该待读取数据包括多个数据单元,该条带索引信息包括该待读取条带数据在该多个存储节点的存储位置信息、以及该待读取条带数据中每个数据单元在该待读取条带数据中的位置索引信息,此时,基于该条带索引信息,从对应的存储节点中获取该待读取条带数据的具体实现可以包括:根据该待读取条带数据的每个数据单元的存储位置信息,从对应的存储节点中获取该每个数据单元;按照该每个数据单元在该待读取条带数据中的位置索引信息,重新组合所获取的数据单元,得到该待读取条带数据。
也就是说,对于该调度存储节点来说,在根据条带索引信息读取待读条带数据时,可以根据该待读条带数据包括的多个数据单元的存储位置信息,从对应的位置读取该多个数据单元,然后可以根据该条带索引信息中每个数据单元在该待读取条带数据中的位置索引信息,确定每个数据单元在该待读取条带数据中的位置,并根据确定的位置,将读取的多个数据单元进行组合,得到该待读取条带数据。
该调度存储节点得到该条带数据后,将该条带数据返回给客户端,客户端接收各个存储节点返回的条带数据,将该多个条带数据进行组合,得到待读取的对象数据。
进一步地,当未查询到该条带数据标识对应的条带索引信息时,确定与该调度存储节点具有关联关系的目标存储节点的节点地址信息,基于所确定的节点地址信息,从该目标存储节点中查询该条带数据标识对应的条带索引信息。
由于调度存储节点可能会由于一些外在原因导致本地存储的数据丢失,此时,该调度存储节点在本地查询不到该条带数据标识对应的条带索引信息,在该种情况下,该调度存储节点可以向与本端具有关联关系的目标存储节点查询该条带数据标识对应的条带索引信息。
其中,与本端具有关联关系的目标存储节点是指在数据存储时,该调度存储节点同步了SMS模块中的信息的存储节点,即在数据存储过程中,该调度存储节点将SMS模块中的信息同步给目标存储节点后,可以在本地记录该目标存储节点的节点地址信息,以便于后续在读取数据时,如果在本地未查询到想要查询的条带索引信息,可以基于记录的节点地址信息,从目标存储节点中查询条带索引信息。
在本申请实施例中,在数据读取过程中,客户端可以直接向待读取的对象数据对应的调度存储节点发送信息获取请求,以获取该对象数据的多个条带数据的条带数据标识,由于该条带数据标识与条带索引信息对应,且该多个条带索引信息存储在该多个存储节点中,所以获取到该多个条带数据标识后,可以直接从多个存储节点中并行读取各个条带数据。如此,当需要存储的条带索引信息的数据量较大时,将条带索引信息分布在多个存储节点中进行存储,可以避免将所有对象元数据都存储至管理节点中给管理节点带来巨大的存储压力,另外,在读取对象数据过程中,可以直接与调度存储节点交互,避免需要由管理节点统一管理,从而避免给管理节点带来巨大的访问压力。
图8是根据一示例性实施例示出的一种数据存储装置的结构示意图,该数据存储装置可以配置于分布式存储***的多个存储节点的调度存储节点中。该数据存储装置可以包括:
第一接收模块810,用于接收所述对象数据;
条带化模块820,用于对所述对象数据进行条带化处理,得到多个条带数据;
确定模块830,用于根据所述多个存储节点当前的资源信息,确定所述多个条带数据的存储位置信息;
生成模块840,用于根据所述多个条带数据的存储位置信息,生成所述多个条带数据的条带索引信息;
存储模块850,用于将所述多个条带数据和所述条带索引信息存储至所述多个存储节点中。
在本申请一种可能的实现方式中,所述存储模块850还用于:
生成所述多个条带数据的条带数据标识;
将所述多个条带数据存储至所述多个存储节点中,以及将所述多个条带数据的条带数据标识与条带索引信息对应存储至所述多个存储节点中。
在本申请一种可能的实现方式中,所述存储模块850用于:
在本地存储目标条带数据,以及将所述目标条带数据的条带数据标识与索引信息对应存储至本地,所述目标条带数据是指需要本端存储的条带数据;
将所述多个条带数据中除所述目标条带数据之外的其他条带数据、其他条带数据的条带数据标识和条带索引信息发送至其他存储节点进行存储。
在本申请一种可能的实现方式中,每个条带数据包括多个数据单元,所述存储位置信息包括每个数据单元的存储位置信息,所述生成模块840还用于:
获取每个条带数据中的每个数据单元的位置索引信息;
对于所述多个条带数据中的任一条带数据,根据所述任一条带数据中的每个数据单元的存储位置信息和所述每个数据单元在所述任一条带数据中的位置索引信息,生成所述任一条带数据的条带索引信息。
在本申请一种可能的实现方式中,所述存储模块850还用于:
根据参考策略,从所述多个存储节点中确定目标存储节点;
将所述目标条带数据的条带数据标识与索引信息对应存储至所述目标存储节点中,并建立所述目标存储节点与所述调度存储节点之间的关联关系。
在本申请实施例中,调度存储节点接收待存储的对象数据,该调度存储节点是由管理节点从分布式存储***的多个存储节点中为该对象数据选择的,即不同的对象数据可能与不同的调度存储节点对应。调度存储节点对该对象数据进行条带化处理,得到多个条带数据,根据多个存储节点当前的资源信息,确定该多个条带数据的存储位置信息,并基于该存储位置信息,生成该多个条带数据的条带索引信息,之后,将该多个条带数据和条带索引信息存储至该多个存储节点中。如此,当需要存储的条带索引信息的数据量较大时,将条带索引信息分布在多个存储节点中进行存储,可以避免将所有对象元数据都存储至管理节点中给管理节点带来巨大的存储压力
图9是根据一示例性实施例示出的一种数据读取装置的结构示意图,该数据读取装置可以配置于分布式存储***的多个存储节点的调度存储节点中。该数据读取装置可以包括:
第二接收模块910,用于接收来自客户端的信息获取请求,所述信息获取请求携带所述对象数据的对象数据标识,所述对象数据包括多个条带数据;
第一获取模块920,用于基于所述对象数据标识,获取所述多个条带数据的条带数据标识,每个条带数据标识与条带索引信息对应,所述多个条带数据的条带索引信息由所述调度存储节点存储在所述多个存储节点中;
第二获取模块930,用于获取多个条带标识对应的节点地址信息,每个节点地址信息指示的存储节点用于存储对应的条带标识指示的条带数据;
发送模块940,用于将所述多个条带数据标识和所述多个条带标识对应的节点地址信息发送给所述客户端。
在本申请一种可能的实现方式中,所述第二接收模块910还用于
接收来自所述客户端的数据读取请求,所述数据读取请求携带待读取条带数据的条带数据标识;
从本地存储的条带数据标识与条带索引信息之间的对应关系中,查询所述条带数据标识对应的条带索引信息;
当查询到所述条带数据标识对应的条带索引信息时,根据所述条带索引信息从对应的存储节点中获取所述待读取条带数据。
在本申请一种可能的实现方式中,所述第二接收模块910还用于:
当未查询到所述条带数据标识对应的条带索引信息时,确定与所述调度存储节点具有关联关系的目标存储节点的节点地址信息;
基于所确定的节点地址信息,从所述目标存储节点中查询所述条带数据标识对应的条带索引信息。
在本申请一种可能的实现方式中,所述待读取数据包括多个数据单元,所述条带索引信息包括所述待读取条带数据在所述多个存储节点的存储位置信息、以及所述待读取条带数据中每个数据单元在所述待读取条带数据中的位置索引信息;
所述第二获取模块910还用于:
根据所述待读取条带数据的每个数据单元的存储位置信息,从对应的存储节点中获取所述每个数据单元;
按照所述每个数据单元在所述待读取条带数据中的位置索引信息,重新组合所获取的数据单元,得到所述待读取条带数据。
在本申请实施例中,在数据读取过程中,客户端可以直接向待读取的对象数据对应的调度存储节点发送信息获取请求,以获取该对象数据的多个条带数据的条带数据标识,由于该条带数据标识与条带索引信息对应,且该多个条带索引信息存储在该多个存储节点中,所以获取到该多个条带数据标识后,可以直接从多个存储节点中并行读取各个条带数据,即在读取对象数据过程中,可以直接与调度存储节点交互,避免需要由管理节点统一管理,从而避免给管理节点带来巨大的访问压力。
需要说明的是:上述实施例提供的装置在实现方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图10是本申请实施例提供的一种电子设备1000的结构示意图,该电子设备1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)1001和一个或一个以上的存储器1002,其中,所述存储器1002中存储有至少一条指令,所述至少一条指令由所述处理器1001加载并执行以实现上述各个方法实施例提供的方法。
当然,该电子设备1000还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该电子设备1000还可以包括其他用于实现电子设备功能的部件,在此不做赘述。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述各个实施例提供的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个实施例提供的方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种数据存储方法,其特征在于,应用于分布式存储***的多个存储节点中的调度存储节点,所述调度存储节点是由管理节点从所述多个存储节点中为当前待存储的对象数据选择的,所述方法包括:
接收所述对象数据;
对所述对象数据进行条带化处理,得到多个条带数据;
根据所述多个存储节点当前的资源信息,确定所述多个条带数据的存储位置信息;
根据所述多个条带数据的存储位置信息,生成所述多个条带数据的条带索引信息;
将所述多个条带数据和所述条带索引信息存储至所述多个存储节点中。
2.如权利要求1所述的方法,其特征在于,所述将所述多个条带数据和所述条带索引信息存储至所述多个存储节点中之前,还包括:
生成所述多个条带数据的条带数据标识;
相应地,所述将所述多个条带数据和所述条带索引信息存储至所述多个存储节点中,包括:
将所述多个条带数据存储至所述多个存储节点中,以及将所述多个条带数据的条带数据标识与条带索引信息对应存储至所述多个存储节点中。
3.如权利要求2所述的方法,其特征在于,所述将所述多个条带数据存储至所述多个存储节点中,以及将所述多个条带数据的条带数据标识与条带索引信息对应存储至所述多个存储节点中,包括:
在本地存储目标条带数据,以及将所述目标条带数据的条带数据标识与索引信息对应存储至本地,所述目标条带数据是指需要本端存储的条带数据;
将所述多个条带数据中除所述目标条带数据之外的其他条带数据、其他条带数据的条带数据标识和条带索引信息发送至其他存储节点进行存储。
4.如权利要求3所述的方法,其特征在于,每个条带数据包括多个数据单元,所述存储位置信息包括每个数据单元的存储位置信息,所述根据所述多个条带数据的存储位置信息,生成所述多个条带数据的条带索引信息之前,还包括:
获取每个条带数据中的每个数据单元的位置索引信息;
相应地,所述根据所述多个条带数据的存储位置信息,生成所述多个条带数据的条带索引信息,包括:
对于所述多个条带数据中的任一条带数据,根据所述任一条带数据中的每个数据单元的存储位置信息和所述每个数据单元在所述任一条带数据中的位置索引信息,生成所述任一条带数据的条带索引信息。
5.如权利要求4所述的方法,其特征在于,所述将所述目标条带数据的条带数据标识与索引信息对应存储至本地之后,还包括:
根据参考策略,从所述多个存储节点中确定目标存储节点;
将所述目标条带数据的条带数据标识与索引信息对应存储至所述目标存储节点中,并建立所述目标存储节点与所述调度存储节点之间的关联关系。
6.一种数据读取方法,其特征在于,应用于分布式存储***的多个存储节点中的调度存储节点,所述调度存储节点是由管理节点从所述多个存储节点中为当前待读取的对象数据确定的,所述方法包括:
接收来自客户端的信息获取请求,所述信息获取请求携带所述对象数据的对象数据标识,所述对象数据包括多个条带数据;
基于所述对象数据标识,获取所述多个条带数据的条带数据标识,每个条带数据标识与条带索引信息对应,所述多个条带数据的条带索引信息由所述调度存储节点存储在所述多个存储节点中;
获取多个条带标识对应的节点地址信息,每个节点地址信息指示的存储节点用于存储对应的条带标识指示的条带数据;
将所述多个条带数据标识和所述多个条带标识对应的节点地址信息发送给所述客户端。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
接收来自所述客户端的数据读取请求,所述数据读取请求携带待读取条带数据的条带数据标识;
从本地存储的条带数据标识与条带索引信息之间的对应关系中,查询所述条带数据标识对应的条带索引信息;
当查询到所述条带数据标识对应的条带索引信息时,根据所述条带索引信息从对应的存储节点中获取所述待读取条带数据。
8.如权利要求7所述的方法,其特征在于,所述从本地存储的条带数据标识与条带索引信息之间的对应关系中,查询所述条带数据标识对应的条带索引信息之后,还包括:
当未查询到所述条带数据标识对应的条带索引信息时,确定与所述调度存储节点具有关联关系的目标存储节点的节点地址信息;
基于所确定的节点地址信息,从所述目标存储节点中查询所述条带数据标识对应的条带索引信息。
9.如权利要求7所述的方法,其特征在于,所述待读取数据包括多个数据单元,所述条带索引信息包括所述待读取条带数据在所述多个存储节点的存储位置信息、以及所述待读取条带数据中每个数据单元在所述待读取条带数据中的位置索引信息;
所述根据所述条带索引信息从对应的存储节点中获取所述待读取条带数据,包括:
根据所述待读取条带数据的每个数据单元的存储位置信息,从对应的存储节点中获取所述每个数据单元;
按照所述每个数据单元在所述待读取条带数据中的位置索引信息,重新组合所获取的数据单元,得到所述待读取条带数据。
10.一种数据存储装置,其特征在于,配置于分布式存储***的多个存储节点中的调度存储节点,所述调度存储节点是由管理节点从所述多个存储节点中为当前待存储的对象数据选择的,所述装置包括:
第一接收模块,用于接收所述对象数据;
条带化模块,用于对所述对象数据进行条带化处理,得到多个条带数据;
确定模块,用于根据所述多个存储节点当前的资源信息,确定所述多个条带数据的存储位置信息;
生成模块,用于根据所述多个条带数据的存储位置信息,生成所述多个条带数据的条带索引信息;
存储模块,用于将所述多个条带数据和所述条带索引信息存储至所述多个存储节点中。
11.一种数据读取装置,其特征在于,配置于分布式存储***的多个存储节点中的调度存储节点,所述调度存储节点是由管理节点从所述多个存储节点中为当前待读取的对象数据确定的,所述装置包括:
第二接收模块,用于接收来自客户端的信息获取请求,所述信息获取请求携带所述对象数据的对象数据标识,所述对象数据包括多个条带数据;
第一获取模块,用于基于所述对象数据标识,获取所述多个条带数据的条带数据标识,每个条带数据标识与条带索引信息对应,所述多个条带数据的条带索引信息由所述调度存储节点存储在所述多个存储节点中;
第二获取模块,用于获取多个条带标识对应的节点地址信息,每个节点地址信息指示的存储节点用于存储对应的条带标识指示的条带数据;
发送模块,用于将所述多个条带数据标识和所述多个条带标识对应的节点地址信息发送给所述客户端。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现权利要求1-5所述的任一项方法的步骤,或者,实现权利要求6-9所述的任一项方法的步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-5所述的任一项方法的步骤,或者,实现权利要求6-9所述的任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911354801.7A CN111399764B (zh) | 2019-12-25 | 2019-12-25 | 数据存储方法、读取方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911354801.7A CN111399764B (zh) | 2019-12-25 | 2019-12-25 | 数据存储方法、读取方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399764A true CN111399764A (zh) | 2020-07-10 |
CN111399764B CN111399764B (zh) | 2023-04-14 |
Family
ID=71432520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911354801.7A Active CN111399764B (zh) | 2019-12-25 | 2019-12-25 | 数据存储方法、读取方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399764B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112019788A (zh) * | 2020-08-27 | 2020-12-01 | 杭州海康威视***技术有限公司 | 数据存储方法、装置、***及存储介质 |
CN112748879A (zh) * | 2020-12-30 | 2021-05-04 | 中科曙光国际信息产业有限公司 | 数据获取方法、***、装置、计算机设备和存储介质 |
WO2022257685A1 (zh) * | 2021-06-07 | 2022-12-15 | 华为技术有限公司 | 存储***、网卡、处理器、数据访问方法、装置及*** |
CN115543871A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 数据存储方法及相关设备 |
CN115629714A (zh) * | 2022-12-06 | 2023-01-20 | 苏州浪潮智能科技有限公司 | Raid卡的写方法、raid卡的写***及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077055A (zh) * | 2012-12-31 | 2013-05-01 | 清华大学 | pNFS***高效支持海量虚拟机在线启动运行的方法 |
WO2014205667A1 (zh) * | 2013-06-26 | 2014-12-31 | 华为技术有限公司 | 网络卷创建方法、数据存储方法、存储设备和存储*** |
CN105404469A (zh) * | 2015-10-22 | 2016-03-16 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和*** |
WO2016202199A1 (zh) * | 2015-06-18 | 2016-12-22 | 阿里巴巴集团控股有限公司 | 分布式文件***及其文件元信息管理方法 |
CN107229425A (zh) * | 2017-06-02 | 2017-10-03 | 浙江宇视科技有限公司 | 一种数据存储方法及装置 |
CN110069210A (zh) * | 2018-01-23 | 2019-07-30 | 杭州海康威视***技术有限公司 | 一种存储***、存储资源的分配方法及装置 |
-
2019
- 2019-12-25 CN CN201911354801.7A patent/CN111399764B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077055A (zh) * | 2012-12-31 | 2013-05-01 | 清华大学 | pNFS***高效支持海量虚拟机在线启动运行的方法 |
WO2014205667A1 (zh) * | 2013-06-26 | 2014-12-31 | 华为技术有限公司 | 网络卷创建方法、数据存储方法、存储设备和存储*** |
WO2016202199A1 (zh) * | 2015-06-18 | 2016-12-22 | 阿里巴巴集团控股有限公司 | 分布式文件***及其文件元信息管理方法 |
CN105404469A (zh) * | 2015-10-22 | 2016-03-16 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和*** |
CN107229425A (zh) * | 2017-06-02 | 2017-10-03 | 浙江宇视科技有限公司 | 一种数据存储方法及装置 |
CN110069210A (zh) * | 2018-01-23 | 2019-07-30 | 杭州海康威视***技术有限公司 | 一种存储***、存储资源的分配方法及装置 |
Non-Patent Citations (1)
Title |
---|
马骋等: "虚拟存储技术研究与应用", 《河北省科学院学报》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112019788A (zh) * | 2020-08-27 | 2020-12-01 | 杭州海康威视***技术有限公司 | 数据存储方法、装置、***及存储介质 |
CN112019788B (zh) * | 2020-08-27 | 2023-04-11 | 杭州海康威视***技术有限公司 | 数据存储方法、装置、***及存储介质 |
CN112748879A (zh) * | 2020-12-30 | 2021-05-04 | 中科曙光国际信息产业有限公司 | 数据获取方法、***、装置、计算机设备和存储介质 |
WO2022257685A1 (zh) * | 2021-06-07 | 2022-12-15 | 华为技术有限公司 | 存储***、网卡、处理器、数据访问方法、装置及*** |
CN115543871A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 数据存储方法及相关设备 |
CN115543871B (zh) * | 2022-11-29 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 数据存储方法及相关设备 |
WO2024113702A1 (zh) * | 2022-11-29 | 2024-06-06 | 苏州元脑智能科技有限公司 | 数据存储方法及相关设备 |
CN115629714A (zh) * | 2022-12-06 | 2023-01-20 | 苏州浪潮智能科技有限公司 | Raid卡的写方法、raid卡的写***及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111399764B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
CN112019475B (zh) | 无服务器架构下的资源访问方法、设备、***及存储介质 | |
CN107040578B (zh) | 数据同步方法、装置和*** | |
CN106874281B (zh) | 实现数据库读写分离的方法和装置 | |
CN110532123B (zh) | HBase***的故障转移方法及装置 | |
CN109508912B (zh) | 一种业务调度方法、装置、设备和存储介质 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN111800468A (zh) | 一种基于云的多集群管理方法、装置、介质及电子设备 | |
CN108140035B (zh) | 分布式***的数据库复制方法及装置 | |
CN107025257B (zh) | 一种事务处理方法及装置 | |
CN112000850B (zh) | 进行数据处理的方法、装置、***及设备 | |
CN111435329A (zh) | 一种自动化测试方法和装置 | |
CN107623705B (zh) | 基于视频云存储***的存储模式升级方法、装置和*** | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN113761052A (zh) | 数据库同步方法和装置 | |
CN111147226B (zh) | 数据存储方法、装置及存储介质 | |
CN111431951B (zh) | 一种数据处理方法、节点设备、***及存储介质 | |
CN113965538B (zh) | 设备状态消息处理方法、装置及存储介质 | |
CN113590643B (zh) | 基于双轨数据库的数据同步方法、装置、设备和存储介质 | |
CN114172903B (zh) | slurm调度***的节点扩容方法、装置、设备和介质 | |
CN115587141A (zh) | 一种数据库同步方法和装置 | |
CN105760215A (zh) | 基于映射规约模型分布式文件***作业的运行方法 | |
US20180063242A1 (en) | Method and apparatus for operating infrastructure layer in cloud computing architecture | |
CN115080309A (zh) | 数据备份***、方法、存储介质以及电子设备 | |
CN111722783B (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 |