CN112083892B - 一种数据存储方法、装置、设备和介质 - Google Patents
一种数据存储方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN112083892B CN112083892B CN202011021628.1A CN202011021628A CN112083892B CN 112083892 B CN112083892 B CN 112083892B CN 202011021628 A CN202011021628 A CN 202011021628A CN 112083892 B CN112083892 B CN 112083892B
- Authority
- CN
- China
- Prior art keywords
- logic
- node
- target
- fragment
- storage
- 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
- 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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
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)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据存储方法、装置、设备和介质,属于数据处理技术领域,该方法包括,确定接收到包含原始数据的存储请求消息,获取存储请求消息中包含的原始数据;对原始数据进行备份,获得原始数据的至少一个备份数据;根据获取的各逻辑分片的负载指示信息,筛选出符合预设存储条件的目标逻辑分片;根据设置的逻辑分片和节点之间的第一对应关系,确定目标逻辑分片对应的目标节点;根据设置的逻辑分片和存储区域的之间的第二对应关系,确定目标逻辑分片对应的目标存储区域;将原始数据和各备份数据,分别存储至每一目标节点中的目标存储区域中。这样,保证了数据均衡存储,提高了系统的性能和稳定性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据存储方法、装置、设备和介质。
背景技术
随着互联网技术的发展,互联网中的数据量也不断增大,为提高数据存储的安全性,通常将原始数据在数据存储集群的不同节点中进行备份存储。数据存储集群中包含多个节点,每一节点包含多个存储区域,如,盘。
现有技术中,通常采用以下两种方式:
第一种方式为:将原始数据,以及原始数据的备份数据放置在随机选择的节点和存储区域中。
第二种方式为:将原始数据,以及原始数据对应的备份数据放置在空闲的节点中的空闲的存储区域中。
但是,采用上述两种方式,难以将原始数据和备份数据均匀放置在各个节点的各个存储区域中,导致系统负载不均衡,系统性能和稳定性降低。
发明内容
本申请实施例提供一种数据存储方法、装置、设备和介质,用以在进行数据备份存储时,保证系统数据均衡存储,提高系统性能和稳定性。
一方面,提供一种数据存储方法,应用于包含多个节点的数据存储集群,每一节点中包含多个存储区域,每一存储区域被划分为多个子区域,数据存储集群对应的总存储区域被划分为多个逻辑分片,包括:
确定接收到包含原始数据的存储请求消息,获取存储请求消息中包含的原始数据;
对原始数据进行备份,获得原始数据的至少一个备份数据;
根据获取的各逻辑分片的负载指示信息,筛选出符合预设存储条件的目标逻辑分片;
根据设置的逻辑分片和节点之间的第一对应关系,确定目标逻辑分片对应的目标节点;
根据设置的逻辑分片和存储区域的之间的第二对应关系,确定目标逻辑分片对应的目标存储区域;
将原始数据和至少一个备份数据,分别存储至每一目标节点中的目标存储区域中。
较佳的,在根据设置的逻辑分片和节点之间的第一对应关系,确定目标逻辑分片对应的目标节点之前,进一步包括:
获取一个逻辑分片对应的主从副本数量,每一逻辑分片被划分为多个主从副本;
将主从副本数量确定为节点数量,并按照节点数量,将所有节点进行分组,获得多个节点集合,使得每一节点集合中包含节点数量的节点;
确定各节点集合对应的节点集合数量;
将各逻辑分片进行分组,获得多个逻辑分片集合,使得逻辑分片集合数量与节点集合数量相同;
分别针对每一节点集合配置一个逻辑分片集合;
根据各节点集合对应的逻辑分片集合,获得逻辑分片与节点之间的第一对应关系。
较佳的,在根据设置的逻辑分片和存储区域的之间的第二对应关系,确定目标逻辑分片对应的目标存储区域之前,进一步包括:
分别针对每一逻辑分片集合,执行以下步骤:将逻辑分片集合中的各逻辑分片进行排序,获得相应的逻辑分片序号;
分别针对每一存储区域,执行以下步骤:将存储区域中的各子区域进行排序,获得相应的存储区域序号;
分别针对每一逻辑分片集合中的每一逻辑分片,执行以下步骤:将逻辑分片对应的逻辑分片序号和子区域数量进行向下取整运算,获得存储区域序号,并建立逻辑分片和相应节点中存储区域序号对应的存储区域之间的第二对应关系;
其中,子区域数量为一个存储区域中包含的子区域的数量。
较佳的,将原始数据和至少一个备份数据,分别存储至每一目标节点中的目标存储区域中,包括:
根据设置的逻辑分片与节点之间的第三对应关系,确定目标逻辑分片对应的主节点;
将原始数据存储至主节点的目标存储区域中,并将至少一个备份数据,分别存储至主节点之外的其它每一目标节点的目标存储区域中。
较佳的,在根据设置的逻辑分片与节点之间的第三对应关系,确定目标逻辑分片对应的主节点之前,进一步包括:
分别针对每一逻辑分片,执行以下步骤:对逻辑分片对应的逻辑分片序号和节点数量进行取余运算,获得主节点序号,并在逻辑分片对应设置的各节点中,筛选出主节点序号对应的主节点,并建立逻辑分片和主节点之间的第三对应关系。
一方面,提供一种数据存储装置,包括:
获取单元,用于确定接收到包含原始数据的存储请求消息,获取存储请求消息中包含的原始数据;
获得单元,用于对原始数据进行备份,获得原始数据的至少一个备份数据;
筛选单元,用于根据获取的各逻辑分片的负载指示信息,筛选出符合预设存储条件的目标逻辑分片;
第一确定单元,用于根据设置的逻辑分片和节点之间的第一对应关系,确定目标逻辑分片对应的目标节点;
第二确定单元,用于根据设置的逻辑分片和存储区域的之间的第二对应关系,确定目标逻辑分片对应的目标存储区域;
存储单元,用于将原始数据和至少一个备份数据,分别存储至每一目标节点中的目标存储区域中。
较佳的,第一确定单元用于:
获取一个逻辑分片对应的主从副本数量,每一逻辑分片被划分为多个主从副本;
将主从副本数量确定为节点数量,并按照节点数量,将所有节点进行分组,获得多个节点集合,使得每一节点集合中包含节点数量的节点;
确定各节点集合对应的节点集合数量;
将各逻辑分片进行分组,获得多个逻辑分片集合,使得逻辑分片集合数量与节点集合数量相同;
分别针对每一节点集合配置一个逻辑分片集合;
根据各节点集合对应的逻辑分片集合,获得逻辑分片与节点之间的第一对应关系。
较佳的,第二确定单元用于:
分别针对每一逻辑分片集合,执行以下步骤:将逻辑分片集合中的各逻辑分片进行排序,获得相应的逻辑分片序号;
分别针对每一存储区域,执行以下步骤:将存储区域中的各子区域进行排序,获得相应的存储区域序号;
分别针对每一逻辑分片集合中的每一逻辑分片,执行以下步骤:将逻辑分片对应的逻辑分片序号和子区域数量进行向下取整运算,获得存储区域序号,并建立逻辑分片和相应节点中存储区域序号对应的存储区域之间的第二对应关系;
其中,子区域数量为一个存储区域中包含的子区域的数量。
较佳的,存储单元用于:
根据设置的逻辑分片与节点之间的第三对应关系,确定目标逻辑分片对应的主节点;
将原始数据存储至主节点的目标存储区域中,并将至少一个备份数据,分别存储至主节点之外的其它每一目标节点的目标存储区域中。
较佳的,存储单元还用于:
分别针对每一逻辑分片,执行以下步骤:对逻辑分片对应的逻辑分片序号和节点数量进行取余运算,获得主节点序号,并在逻辑分片对应设置的各节点中,筛选出主节点序号对应的主节点,并建立逻辑分片和主节点之间的第三对应关系。
一方面,提供一种控制设备,包括:
至少一个存储器,用于存储程序指令;
至少一个处理器,用于调用存储器中存储的程序指令,按照获得的程序指令执行上述任一种数据存储方法的步骤。
一方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一种数据存储方法的步骤。
本申请实施例提供的一种数据存储方法、装置、设备和介质中,确定接收到包含原始数据的存储请求消息,获取存储请求消息中包含的原始数据;对原始数据进行备份,获得原始数据的至少一个备份数据;根据获取的各逻辑分片的负载指示信息,筛选出符合预设存储条件的目标逻辑分片;根据设置的逻辑分片和节点之间的第一对应关系,确定目标逻辑分片对应的目标节点;根据设置的逻辑分片和存储区域的之间的第二对应关系,确定目标逻辑分片对应的目标存储区域;将原始数据和各备份数据,分别存储至每一目标节点中的目标存储区域中。这样,预先建立各逻辑分片、各节点以及各存储区域三者之间的对应关系,并将原始数据和各备份数据分别存储至空闲的目标逻辑分片对应设置的每一目标节点的目标存储区域中,保证了系统的负载均衡,提高了系统性能和稳定性。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例方式中一种数据存储集群的示例图;
图2为本申请实施例方式中一种数据存储集群配置的方法实施流程图;
图3为本申请实施例方式中一种数据存储方法的实施流程图;
图4为本申请实施例方式中一种数据存储装置的结构示意图;
图5为本申请实施例方式中一种控制设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
为了在通过人工智能技术为用户提供引领服务时,扩大服务的信息覆盖面,提高用户体验,本申请实施例提供了一种数据存储方法、装置、设备和介质。
首先对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。
终端设备:可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统设备、个人导航设备、个人数字助理、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,终端设备能够支持任意类型的针对用户的接口(例如可穿戴设备)等。
服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。
节点:通常一个节点运行在一个隔离的容器或虚拟机中。
集群:由一个或多个节点组成,并通过集群名称与其他集群进行区分。
逻辑分片:本申请实施例中,逻辑分片被划分为一个主副本和至少一个从副本,逻辑分片为一个逻辑存储区域,主副本和从副本均为该逻辑存储区域中的子逻辑存储区域,主副本和从副本可以位于不同设备中。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。方法在实际的处理过程中或者装置执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
参阅图1所示,为一种数据存储集群的示例图。数据存储集群中包含多个节点,即节点1、节点2……节点N,每一节点包含多个存储区域,即存储区域1、存储区域2……存储区域M,每一存储区域被划分为多个子区域,即子区域1、子区域2……,子区域T。
其中,N为节点数量,M为存储区域数量,T为一个存储区域中的子区域数量,N、M和T均为正整数。节点可以为服务器,也可以为终端设备,在此不作限制。
进一步地,为便于集群数据管理,数据存储集群对应的总存储区域被划分为多个逻辑分片。其中,逻辑分片对应的存储空间是逻辑上的空间而非物理上的空间,一个逻辑分片对应的存储空间可以位于同一设备中,也可以位于多个设备中。每一逻辑分片包含一个主副本和Q-1个副本分片,且主副本和副本分片均为主从副本,即每一逻辑分片包含Q个主从副本。主副本用于存储原始数据,从副本用于存储主副本中的原始数据的副本数据,主副本以及从副本的存储容量均与子区域的存储容量相同。其中,Q为一个逻辑分片对应的主从副本数量。
本申请实施例中,数据存储集群对应的总存储区域,通过数据存储集群中包含的子区域的总数量表示,因此,数据存储集群对应的总存储区域为数据存储集群中对应的子区域总数量T*M*N。数据存储集群中对应的逻辑分片数量S=T*M*N/Q,数据存储集群中的主从副本总数量为S*Q。
参阅图2所示,为一种数据存储集群配置的方法实施流程图。执行主体为数据存储集群,基于图1所示的数据存储集群,该方法的具体实施流程如下:
步骤200:根据预设的主从副本数量,将各节点进行分组,获得多个节点集合以及节点集合数量。
具体的,将预设的主从副本数量确定为节点数量,并按照节点数量,将所有节点进行分组,获得多个节点集合,使得每一节点集合中包含的节点的数量为节点数量,以及确定各节点集合对应的节点集合数量。
其中,预设的主从副本数量是针对一个逻辑分片设置的,表示一个逻辑分片对应的主从副本数量为Q,则节点数量为Q,即每一节点集合中包含Q个节点,且节点集合数量C=N/Q。
实际应用中,主从副本数量Q,可以根据实际应用场景进行设置,在此不作限制。
由于一个逻辑分片对应的主从副本数量为Q,因此,设置每一节点集合中包含Q个节点,从而在后续数据存储的步骤中,可以将原始数据和相应的Q-1个备份数据,分别存储至一个节点集合中的每一节点中。
步骤201:根据预设的主从副本数量,将数据存储集群对应的总存储区域被划分为多个逻辑分片。
具体的,根据节点数量,存储区域数量,一个存储区域中的子区域数量,确定数据存储集群对应的总存储区域,并根据预设的主从副本数量,将数据存储集群对应的总存储区域被划分为多个逻辑分片。
其中,逻辑分片数量S=T*M*N/Q,数据存储集群中的主从副本总数量为S*Q。
步骤202:基于节点集合数量,根据将各逻辑分片进行分组,获得数量为节点集合数量的逻辑分片集合。
具体的,将各逻辑分片进行分组,获得多个逻辑分片集合,使得逻辑分片集合的数量为节点集合数量。
一种实施方式中,将各逻辑分片进行均等分组,获得多个逻辑分片集合,使得逻辑分片集合数量与节点集合数量相同。
由于,逻辑分片集合数量与节点集合数量相同,均为C=N/Q,逻辑分片数量S=T*M*N/Q。因此,一个逻辑分片集合中包含的逻辑分片数量K=S/C=(T*M*N/Q)/(N/Q)=T*M。
步骤203:分别针对每一节点集合配置一个逻辑分片集合,并根据各节点集合对应的逻辑分片集合,获得逻辑分片与节点之间的第一对应关系。
具体的,分别为每一节点集合,随机分配一个逻辑分片集合,使得节点集合和逻辑分片集合具有一对一的关系,一个节点集合中包含的节点与对应设置的逻辑分片集合中的逻辑分片具有对应关系,因此,可以获得逻辑分片与节点之间的第一对应关系。
需要说明的是,第一对应关系还包括:节点集合与逻辑分片集合之间的对应关系,节点集合与逻辑分片之间的对应关系,节点与逻辑分片集合之间的对应关系。
也就是说,通过第一对应关系,可以确定节点集合、逻辑分片集合、节点以及逻辑分片四者之间的对应关系。
步骤204:建立各逻辑分片与相应节点中的各存储区域的第二对应关系。
具体的,执行步骤204时,可以执行以下步骤:
S2041:分别针对每一逻辑分片集合,执行以下步骤:将逻辑分片集合中的各逻辑分片进行排序,获得相应的逻辑分片序号。
一种实施方式中,一个逻辑分片集合中的各逻辑分片可以是随机排序的,每一逻辑分片集合中的各逻辑分片对应的逻辑分片序号均是从1开始依次增大的,如,分片1、分片2……。
S2042:分别针对每一存储区域,执行以下步骤:将存储区域中的各子区域进行排序,获得相应的存储区域序号。
一种实施方式中,可以将一个存储区域中的各子区域进行随机排序,每一存储区域中的各子区域序号,也都是从1开始依次增大的,如,子区域1、子区域2……。
S2043:分别针对每一逻辑分片集合中的每一逻辑分片,执行以下步骤:将逻辑分片对应的逻辑分片序号和子区域数量进行向下取整运算,获得存储区域序号,并建立逻辑分片和相应节点中存储区域序号对应的存储区域之间的第二对应关系。
其中,子区域数量为一个存储区域中包含的子区域的数量。各存储区域对应的子区域数量相同。逻辑分片的相应节点是根据第一对应关系确定的。
也就是说,第二对应关系为:逻辑分片、节点以及存储区域三者之间的对应关系。各逻辑分片对应的节点的存储区域上,用于放置原始数据以及相应的备份数据。
一种实施方式中,一个逻辑分片集合中的各逻辑分片依次为:a1,a2…ai…aK。一个节点中的各存储区域依次为:p1,p2……pM。则该逻辑分片集合中的逻辑分片ai在各节点中对应设置的存储区域为:P{i/T}。
其中,K表示一个逻辑分片集合中包含的逻辑分片数量。ai为序号为i的逻辑分片。M为存储区域数量,T为一个存储区域对应的子区域数量。
步骤205:建立逻辑分片与节点之间的第三对应关系。
具体的,分别针对每一逻辑分片,执行以下步骤:
对逻辑分片对应的逻辑分片序号和节点数量进行取余运算,获得主节点序号,并在逻辑分片对应设置的各节点中,筛选出主节点序号对应的主节点,并建立逻辑分片和主节点之间的第三对应关系。
也就是说,第三对应关系为:各逻辑分片以及各主节点之间的对应关系。
其中,逻辑分片对应的主节点,为该逻辑分片对应的各节点中的一个。一个逻辑分片对应的主节点中。
一种实施方式中,一个逻辑分片集合中的各逻辑分片依次为:a1,a2…ai…aK。逻辑分片ai对应的节点集合中的各节点依次为:b1、b2……,bQ。则逻辑分片ai对应的主节点为:b{i/Q}。
其中,K表示一个逻辑分片集合中包含的逻辑分片数量。ai为序号为i的逻辑分片。b为节点,Q为一个节点集合对应的节点数量。
进一步地,当新增节点时,即N增大时,逻辑分片也会相应增加,根据更新后的N,执行步骤200-步骤204,以新增逻辑分片和相应的副本。
采用这种方式,原有逻辑分片对应的主从副本不需要迁移,新增的逻辑分片对应的节点、存储区域以及主节点均在新增的节点中。
进一步地,当新增存储区域时,即M增大时,逻辑分片也会相应增加,根据更新后的M,执行步骤200-步骤204,以新增逻辑分片。
采用这种方式,新增逻辑分片对应的主从副本位于新增存储区域中,原有的逻辑分片的主从副本不需要迁移。
这样,在对数据存储集群进行配置之后,就可以通过数据存储集群进行数据存储。
参阅图3所示,为本申请提供的一种数据存储方法的实施流程图。执行主体为数据存储集群,该方法的具体实施流程如下:
步骤300:对原始数据进行备份,获得原始数据的至少一个备份数据。
具体的,确定接收到包含原始数据的存储请求消息,获取存储请求消息中包含的原始数据,并对原始数据进行备份,获得原始数据的至少一个备份数据。
这样,当原始数据损坏时,可以启用相应的备份数据,保证了数据安全性。
步骤301:根据获取的各逻辑分片的负载指示信息,筛选出符合预设存储条件的目标逻辑分片。
具体的,负载指示信息用于表示逻辑分片对应的空闲存储资源的大小。
一种实施方式中,执行步骤301时,可以执行以下步骤:
S3011:根据获取的各逻辑分片的负载指示信息,筛选出一个逻辑分片集合。
具体的,负载指示信息可以为空闲存储资源,则根据各逻辑分片的空闲存储资源,分别确定每一逻辑分片集合的总空闲存储资源,并筛选出各总负载指示信息中的最小值对应的逻辑分片集合。
这样,就可以筛选出最空闲的逻辑分片集合。
S3012:根据筛选出的逻辑分片集合中的各逻辑分片的负载指示信息,从该逻辑分片集合中,筛选出目标逻辑分片。
具体的,负载指示信息可以为空闲存储资源,根据筛选出的逻辑分片集合中的各逻辑分片的空闲存储资源,筛选出各空闲存储资源中的最小值对应的逻辑分片,并将筛选出的逻辑分片,确定为目标逻辑分片。
实际应用中,预设存储条件可以根据实际应用场景进行设置,在此不作限制。
一种实施方式中,执行步骤301时,还可以执行以下步骤:
负载指示信息可以为空闲存储资源,根据各逻辑分片的空闲存储资源,筛选出各空闲存储资源中的最小值对应的逻辑分片,并将筛选出的逻辑分片,确定为目标逻辑分片。
这样,就可以筛选出最空闲的逻辑分片集合中的空闲的逻辑分片,或者筛选出最空闲的逻辑分片,从而可以在后续的步骤中,将数据存储至空闲的逻辑分片中,保证了系统的负载均衡。
步骤302:根据设置的逻辑分片和节点之间的第一对应关系,确定目标逻辑分片对应的目标节点。
步骤303:根据设置的逻辑分片和存储区域的之间的第二对应关系,确定目标逻辑分片对应的目标存储区域。
步骤304:将原始数据和各备份数据,分别存储至每一目标节点中的目标存储区域中。
具体的,执行步骤304时,可以采用以下步骤:
S3041:根据设置的逻辑分片与节点之间的第三对应关系,确定目标逻辑分片对应的主节点。
S3042:将原始数据存储至主节点的目标存储区域中。
S3043:将至少一个备份数据,分别存储至主节点之外的其它每一目标节点的目标存储区域中。
这样,就可以将原始数据和备份数据存储至目标逻辑分片对应的各目标节点中,且将原始数据存储至各目标节点中的主节点,并将备份数据存储至各目标节点中的非主节点。
本申请实施例中,可以应用于支持多逻辑分片和/或多副本的存储产品,主要应用于逻辑分片数量与存储区域总数成正比的应用场景,所有逻辑分片的主从副本在所有节点的所有存储区域上的分布可以达到最大程度的均衡,保证了数据负载均衡,在新增节点或新增存储区域时,也不需要动态调整或者迁移各逻辑分片的主从副本的位置,节省了主从副本迁移的性能开销,且可以高效地达到新的数据均衡放置状态,提高了系统的可用性和稳定性。
基于同一发明构思,本申请实施例中还提供了一种数据存储装置,由于上述装置及设备解决问题的原理与一种数据存储方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,其为本申请实施例提供的一种数据存储装置的结构示意图,包括:
获取单元401,用于确定接收到包含原始数据的存储请求消息,获取存储请求消息中包含的原始数据;
获得单元402,用于对原始数据进行备份,获得原始数据的至少一个备份数据;
筛选单元403,用于根据获取的各逻辑分片的负载指示信息,筛选出符合预设存储条件的目标逻辑分片;
第一确定单元404,用于根据设置的逻辑分片和节点之间的第一对应关系,确定目标逻辑分片对应的目标节点;
第二确定单元405,用于根据设置的逻辑分片和存储区域的之间的第二对应关系,确定目标逻辑分片对应的目标存储区域;
存储单元406,用于将原始数据和至少一个备份数据,分别存储至每一目标节点中的目标存储区域中。
较佳的,第一确定单元404用于:
获取一个逻辑分片对应的主从副本数量,每一逻辑分片被划分为多个主从副本;
将主从副本数量确定为节点数量,并按照节点数量,将所有节点进行分组,获得多个节点集合,使得每一节点集合中包含节点数量的节点;
确定各节点集合对应的节点集合数量;
将各逻辑分片进行分组,获得多个逻辑分片集合,使得逻辑分片集合数量与节点集合数量相同;
分别针对每一节点集合配置一个逻辑分片集合;
根据各节点集合对应的逻辑分片集合,获得逻辑分片与节点之间的第一对应关系。
较佳的,第二确定单元405用于:
分别针对每一逻辑分片集合,执行以下步骤:将逻辑分片集合中的各逻辑分片进行排序,获得相应的逻辑分片序号;
分别针对每一存储区域,执行以下步骤:将存储区域中的各子区域进行排序,获得相应的存储区域序号;
分别针对每一逻辑分片集合中的每一逻辑分片,执行以下步骤:将逻辑分片对应的逻辑分片序号和子区域数量进行向下取整运算,获得存储区域序号,并建立逻辑分片和相应节点中存储区域序号对应的存储区域之间的第二对应关系;
其中,子区域数量为一个存储区域中包含的子区域的数量。
较佳的,存储单元406用于:
根据设置的逻辑分片与节点之间的第三对应关系,确定目标逻辑分片对应的主节点;
将原始数据存储至主节点的目标存储区域中,并将至少一个备份数据,分别存储至主节点之外的其它每一目标节点的目标存储区域中。
较佳的,存储单元406还用于:
分别针对每一逻辑分片,执行以下步骤:对逻辑分片对应的逻辑分片序号和节点数量进行取余运算,获得主节点序号,并在逻辑分片对应设置的各节点中,筛选出主节点序号对应的主节点,并建立逻辑分片和主节点之间的第三对应关系。
本申请实施例提供的一种数据存储方法、装置、设备和介质中,确定接收到包含原始数据的存储请求消息,获取存储请求消息中包含的原始数据;对原始数据进行备份,获得原始数据的至少一个备份数据;根据获取的各逻辑分片的负载指示信息,筛选出符合预设存储条件的目标逻辑分片;根据设置的逻辑分片和节点之间的第一对应关系,确定目标逻辑分片对应的目标节点;根据设置的逻辑分片和存储区域的之间的第二对应关系,确定目标逻辑分片对应的目标存储区域;将原始数据和各备份数据,分别存储至每一目标节点中的目标存储区域中。这样,预先建立各逻辑分片、各节点以及各存储区域三者之间的对应关系,并将原始数据和各备份数据分别存储至空闲的目标逻辑分片对应设置的每一目标节点的目标存储区域中,保证了系统的负载均衡,提高了系统性能和稳定性。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
基于上述实施例,参阅图5所示,本申请实施例中,一种控制设备的结构示意图。
本申请实施例提供了一种控制设备,该控制设备可以包括处理器510(CenterProcessing Unit,CPU)、存储器520,还可以包括输入设备530和输出设备540等,输入设备530可以包括键盘、鼠标、触摸屏等,输出设备540可以包括显示设备,如液晶显示器(LiquidCrystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器520可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器510提供存储器520中存储的程序指令和数据。在本申请实施例中,存储器520可以用于存储本申请实施例中数据存储的程序。
处理器510通过调用存储器520存储的程序指令,处理器510用于执行图3所示的实施例提供的一种数据存储的方法。
本申请实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意方法实施例中的数据存储的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种数据存储方法,其特征在于,应用于包含多个节点的数据存储集群,每一节点中包含多个存储区域,每一存储区域被划分为多个子区域,所述数据存储集群对应的总存储区域被划分为多个逻辑分片,包括:
确定接收到包含原始数据的存储请求消息,获取所述存储请求消息中包含的原始数据;
对所述原始数据进行备份,获得原始数据的至少一个备份数据;
根据获取的各逻辑分片的负载指示信息,筛选出符合预设存储条件的目标逻辑分片;
根据设置的逻辑分片和节点之间的第一对应关系,确定所述目标逻辑分片对应的目标节点,其中,在根据设置的逻辑分片和节点之间的第一对应关系,确定所述目标逻辑分片对应的目标节点之前,进一步包括:获取一个逻辑分片对应的主从副本数量,每一逻辑分片被划分为多个主从副本;将主从副本数量确定为节点数量,并按照所述节点数量,将所有节点进行分组,获得多个节点集合,使得每一节点集合中包含所述节点数量的节点;确定各节点集合对应的节点集合数量;将各逻辑分片进行分组,获得多个逻辑分片集合,使得所述逻辑分片集合数量与所述节点集合数量相同;分别针对每一节点集合配置一个逻辑分片集合;根据各节点集合对应的逻辑分片集合,获得逻辑分片与节点之间的第一对应关系;
根据设置的逻辑分片和存储区域的之间的第二对应关系,确定所述目标逻辑分片对应的目标存储区域,其中,在根据设置的逻辑分片和存储区域的之间的第二对应关系,确定所述目标逻辑分片对应的目标存储区域之前,进一步包括:分别针对每一逻辑分片集合,执行以下步骤:将所述逻辑分片集合中的各逻辑分片进行排序,获得相应的逻辑分片序号;分别针对每一存储区域,执行以下步骤:将所述存储区域中的各子区域进行排序,获得相应的存储区域序号;分别针对每一逻辑分片集合中的每一逻辑分片,执行以下步骤:将所述逻辑分片对应的逻辑分片序号和子区域数量相除后,对商进行向下取整运算,获得存储区域序号,并建立所述逻辑分片和相应节点中所述存储区域序号对应的存储区域之间的第二对应关系;其中,子区域数量为一个存储区域中包含的子区域的数量;
将所述原始数据和所述至少一个备份数据,分别存储至每一目标节点中的目标存储区域中。
2.如权利要求1所述的方法,其特征在于,将所述原始数据和所述至少一个备份数据,分别存储至每一目标节点中的目标存储区域中,包括:
根据设置的逻辑分片与节点之间的第三对应关系,确定所述目标逻辑分片对应的主节点;
将所述原始数据存储至所述主节点的目标存储区域中,并将所述至少一个备份数据,分别存储至所述主节点之外的其它每一目标节点的目标存储区域中。
3.如权利要求2所述的方法,其特征在于,在根据设置的逻辑分片与节点之间的第三对应关系,确定所述目标逻辑分片对应的主节点之前,进一步包括:
分别针对每一逻辑分片,执行以下步骤:对所述逻辑分片对应的逻辑分片序号和所述节点数量进行取余运算,获得主节点序号,并在所述逻辑分片对应设置的各节点中,筛选出主节点序号对应的主节点,并建立所述逻辑分片和所述主节点之间的第三对应关系。
4.一种数据存储装置,其特征在于,包括:
获取单元,用于确定接收到包含原始数据的存储请求消息,获取所述存储请求消息中包含的原始数据;
获得单元,用于对所述原始数据进行备份,获得原始数据的至少一个备份数据;
筛选单元,用于根据获取的各逻辑分片的负载指示信息,筛选出符合预设存储条件的目标逻辑分片;
第一确定单元,用于根据设置的逻辑分片和节点之间的第一对应关系,确定所述目标逻辑分片对应的目标节点,其中,所述第一确定单元用于:获取一个逻辑分片对应的主从副本数量,每一逻辑分片被划分为多个主从副本;将主从副本数量确定为节点数量,并按照所述节点数量,将所有节点进行分组,获得多个节点集合,使得每一节点集合中包含所述节点数量的节点;确定各节点集合对应的节点集合数量;将各逻辑分片进行分组,获得多个逻辑分片集合,使得所述逻辑分片集合数量与所述节点集合数量相同;分别针对每一节点集合配置一个逻辑分片集合;根据各节点集合对应的逻辑分片集合,获得逻辑分片与节点之间的第一对应关系;
第二确定单元,用于根据设置的逻辑分片和存储区域的之间的第二对应关系,确定所述目标逻辑分片对应的目标存储区域,其中,所述第二确定单元用于:分别针对每一逻辑分片集合,执行以下步骤:将所述逻辑分片集合中的各逻辑分片进行排序,获得相应的逻辑分片序号;分别针对每一存储区域,执行以下步骤:将所述存储区域中的各子区域进行排序,获得相应的存储区域序号;分别针对每一逻辑分片集合中的每一逻辑分片,执行以下步骤:将所述逻辑分片对应的逻辑分片序号和子区域数量相除后,对商进行向下取整运算,获得存储区域序号,并建立所述逻辑分片和相应节点中所述存储区域序号对应的存储区域之间的第二对应关系;其中,子区域数量为一个存储区域中包含的子区域的数量;
存储单元,用于将所述原始数据和所述至少一个备份数据,分别存储至每一目标节点中的目标存储区域中。
5.如权利要求4所述的装置,其特征在于,所述存储单元用于:
根据设置的逻辑分片与节点之间的第三对应关系,确定所述目标逻辑分片对应的主节点;
将所述原始数据存储至所述主节点的目标存储区域中,并将所述至少一个备份数据,分别存储至所述主节点之外的其它每一目标节点的目标存储区域中。
6.如权利要求5所述的装置,其特征在于,所述存储单元还用于:
分别针对每一逻辑分片,执行以下步骤:对所述逻辑分片对应的逻辑分片序号和所述节点数量进行取余运算,获得主节点序号,并在所述逻辑分片对应设置的各节点中,筛选出主节点序号对应的主节点,并建立所述逻辑分片和所述主节点之间的第三对应关系。
7.一种控制设备,其特征在于,包括:
至少一个存储器,用于存储程序指令;
至少一个处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行上述权利要求1-3任一项所述的方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1~3任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011021628.1A CN112083892B (zh) | 2020-09-25 | 2020-09-25 | 一种数据存储方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011021628.1A CN112083892B (zh) | 2020-09-25 | 2020-09-25 | 一种数据存储方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112083892A CN112083892A (zh) | 2020-12-15 |
CN112083892B true CN112083892B (zh) | 2021-05-18 |
Family
ID=73739839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011021628.1A Active CN112083892B (zh) | 2020-09-25 | 2020-09-25 | 一种数据存储方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112083892B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110803B (zh) * | 2021-04-19 | 2022-10-21 | 浙江中控技术股份有限公司 | 一种数据存储方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629934A (zh) * | 2012-02-28 | 2012-08-08 | 北京搜狐新媒体信息技术有限公司 | 基于分布式存储系统的数据存储方法及装置 |
CN103929500A (zh) * | 2014-05-06 | 2014-07-16 | 刘跃 | 一种分布式存储系统的数据分片方法 |
CN104503708A (zh) * | 2014-12-29 | 2015-04-08 | 成都致云科技有限公司 | 数据散列存储的方法及装置 |
CN104932953A (zh) * | 2015-06-04 | 2015-09-23 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
CN108833570A (zh) * | 2018-06-27 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种基于云存储的集群存储及均衡传输系统 |
CN109992206A (zh) * | 2019-03-27 | 2019-07-09 | 新华三技术有限公司成都分公司 | 数据分布存储方法及相关装置 |
CN110445822A (zh) * | 2018-05-03 | 2019-11-12 | 中移(苏州)软件技术有限公司 | 一种对象存储方法及装置 |
CN111596868A (zh) * | 2020-07-24 | 2020-08-28 | 南京鹏云网络科技有限公司 | 基于段单元的分布式存储系统的负载均衡方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100596358C (zh) * | 2005-11-18 | 2010-03-31 | 杭州华三通信技术有限公司 | 区域网络的链路层通信方法及其应用的网络设备 |
JP2008310685A (ja) * | 2007-06-15 | 2008-12-25 | Hitachi Ltd | 冗長性を維持した性能最適化を行うストレージシステム |
CN102325154B (zh) * | 2011-07-13 | 2014-11-05 | 百度在线网络技术(北京)有限公司 | 具有容灾备份功能的网络系统及实现容灾备份功能的方法 |
US11216315B2 (en) * | 2018-02-21 | 2022-01-04 | Rubrik, Inc. | Distributed semaphore with a different keys to reduce contention for dynamic reservation of disk space |
CN111443872A (zh) * | 2020-03-26 | 2020-07-24 | 深信服科技股份有限公司 | 分布式存储系统构建方法、装置、设备、介质 |
-
2020
- 2020-09-25 CN CN202011021628.1A patent/CN112083892B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629934A (zh) * | 2012-02-28 | 2012-08-08 | 北京搜狐新媒体信息技术有限公司 | 基于分布式存储系统的数据存储方法及装置 |
CN103929500A (zh) * | 2014-05-06 | 2014-07-16 | 刘跃 | 一种分布式存储系统的数据分片方法 |
CN104503708A (zh) * | 2014-12-29 | 2015-04-08 | 成都致云科技有限公司 | 数据散列存储的方法及装置 |
CN104932953A (zh) * | 2015-06-04 | 2015-09-23 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
CN110445822A (zh) * | 2018-05-03 | 2019-11-12 | 中移(苏州)软件技术有限公司 | 一种对象存储方法及装置 |
CN108833570A (zh) * | 2018-06-27 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种基于云存储的集群存储及均衡传输系统 |
CN109992206A (zh) * | 2019-03-27 | 2019-07-09 | 新华三技术有限公司成都分公司 | 数据分布存储方法及相关装置 |
CN111596868A (zh) * | 2020-07-24 | 2020-08-28 | 南京鹏云网络科技有限公司 | 基于段单元的分布式存储系统的负载均衡方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112083892A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210218796A1 (en) | Efficient, automated distributed-search methods and systems | |
CN103200020B (zh) | 一种资源部署方法和系统 | |
CN111338774A (zh) | 分布式定时任务调度系统及计算装置 | |
CN103873534B (zh) | 一种应用集群迁移方法及装置 | |
CN112379971B (zh) | 应用容器管理方法、装置及设备 | |
CN111897558A (zh) | 容器集群管理系统Kubernetes升级方法和装置 | |
US20200042392A1 (en) | Implementing Affinity And Anti-Affinity Constraints In A Bundled Application | |
EP3951607A1 (en) | Data reading method, data writing method, and server | |
CN113961312A (zh) | 目标服务的部署方法、装置和电子设备 | |
CN111309440B (zh) | 一种多类型gpu的管理调度的方法和设备 | |
CN104598316A (zh) | 一种存储资源分配方法及装置 | |
CN112199192B (zh) | 基于服务器部署Kubernetes集群精细化管理配额的方法及系统 | |
CN110162397B (zh) | 资源分配方法、装置及系统 | |
CN112083892B (zh) | 一种数据存储方法、装置、设备和介质 | |
US20180329782A1 (en) | Data Migration For A Shared Database | |
CN103279387A (zh) | 对相关资源分区重定位 | |
EP4006725A1 (en) | Virtual machine migration processing and strategy generation method, apparatus and device, and storage medium | |
CN112363980A (zh) | 一种分布式系统的数据处理方法及装置 | |
CN115794305B (zh) | 虚拟机内存的调整方法和装置、存储介质及电子装置 | |
US20240028323A1 (en) | Simulation of nodes of container orchestration platforms | |
CN116954863A (zh) | 数据库调度方法、装置、设备及存储介质 | |
US20230229477A1 (en) | Upgrade of cell sites with reduced downtime in telco node cluster running containerized applications | |
CN115964176A (zh) | 云计算集群调度方法、电子设备和存储介质 | |
US10635336B1 (en) | Cache-based partition allocation | |
CN109617954B (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 |