CN108196786A - 用于存储系统分区的方法和管理设备 - Google Patents

用于存储系统分区的方法和管理设备 Download PDF

Info

Publication number
CN108196786A
CN108196786A CN201711297202.7A CN201711297202A CN108196786A CN 108196786 A CN108196786 A CN 108196786A CN 201711297202 A CN201711297202 A CN 201711297202A CN 108196786 A CN108196786 A CN 108196786A
Authority
CN
China
Prior art keywords
subregion
service node
data
management equipment
client
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
Application number
CN201711297202.7A
Other languages
English (en)
Other versions
CN108196786B (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.)
Shenzhen Huawei Cloud Computing Technology Co ltd
Original Assignee
Chengdu Huawei 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 Chengdu Huawei Technology Co Ltd filed Critical Chengdu Huawei Technology Co Ltd
Priority to CN201711297202.7A priority Critical patent/CN108196786B/zh
Publication of CN108196786A publication Critical patent/CN108196786A/zh
Application granted granted Critical
Publication of CN108196786B publication Critical patent/CN108196786B/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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]

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

本申请提供了一种用于存储系统中分区的方和管理设备,能够避免扩容过程中的数据迁移和占用系统的网络带宽的问题。该存储系统包括N个服务节点,R个分区分布在该N个服务节点上,该R个分区中每个分区的副本数相同。该存储系统包括N个服务节点,R个分区分布在该N个服务节点上,该R个分区中每个分区的副本数相同,包括:管理设备根据存储系统新增加的服务节点的数量M和每服务节点能够承载的分区数量S,确定需要新增加的分区数量H;在保持该N个服务节点与该R个分区的映射关系不变的情况下,该管理设备将该H个分区分布到该M个服务节点和L个服务节点上;该管理设备将该H个分区与服务节点的映射关系发送给客户端和服务节点。

Description

用于存储系统分区的方法和管理设备
技术领域
本申请涉及数据存储领域,并且更具体地,涉及一种用于存储系统分区的方法和管理设备。
背景技术
随着对存储容量和计算能力需求的增加,单个硬件设备的能力已经不能满足现代应用需求,于是产生了分布式技术。分布式技术旨在把存储和计算能力分布到多个服务节点,以解决单服务节点的硬件瓶颈。业界有各种各样的分布算法,常用有映射表、哈希、按范围等算法,其中哈希算法由于通过计算就能得到数据的分布,减少了映射表的开销,被广泛应用到分布式系统中。
哈希分布算法把数据键(key)对应的哈希空间划分为固定数量的分区,然后把这些分区均匀分布到每个服务节点上。哈希分布方式下,当增加服务节点个数时,需要把所有分区重新均匀分布到所有服务节点上。比如,系统从4个服务节点增加到8个服务节点后,需要把m个分区重新均匀分布到8个服务节点上,也就是至少要把原有分区的一半,也就是m/2个分区的数据从原有服务节点(N1~N4)迁移到新的服务节点(N5~N8)。在哈希分布方式下,认为每个分区的数据量是大致相同的,可以计算出需要迁移的数据量是原有数据的一半。
可以看出,当系统增加服务节点时,需要搬移大量的数据,占用了系统的网络带宽,影响数据的读写性能。
发明内容
本申请提供一种用于存储系统分区的方法和管理设备,能够避免扩容过程中的数据迁移和占用系统的网络带宽的问题,有利于增强数据的读写性能。
第一方面,提供了一种存储系统分区的方法,所述存储系统包括N个服务节点,R个分区分布在所述N个服务节点上,N和R均为正整数,所述R个分区中每个分区的副本数相同,包括:
管理设备根据所述存储系统新增加的服务节点的数量M和每个服务节点能够承载的分区数量S,确定需要新增加的分区数量H,M>0,S≥2,H≥2,且M、S和H均为整数;
在保持所述N个服务节点中的每个服务节点与所述R个分区的映射关系不变的情况下,所述管理设备将所述H个分区分布到所述M个服务节点和L个服务节点上,所述L个服务节点属于所述N个服务节点,所述H个分区中每个分区的副本数相同,0≤L≤N;
所述管理设备将所述H个分区与服务节点的映射关系发送给客户端和服务节点。
本申请实施例的用于存储系统分区的方法,当系统增加服务节点时,保持原有的服务节点和原有的分区映射关系不变,只增加新的分区,通过将增加的新的分区映射至新增加的服务节点上或新增加的服务节点和原有的服务节点上,能够避免扩容过程中的数据迁移和占用系统的网络带宽的问题,有利于增强数据的读写性能。
在一种可能的实现方式中,所述管理设备根据所述存储系统新增加的服务节点的数量M和每个服务节点能够承载的分区数量S,确定需要新增加的分区数量H,包括:
管理设备可以根据以下公式计算需要新增加的分区数量H:
H1=S*M/W
其中,W≥2,且W为整数,W为H个分区中每个分区的副本数。
若H1为整数,则H=H1,若H1不为整数,则或者 表示向下取整,表示向上取整,p为预设的整数。
在一种可能的实现方式中,所述方法还包括:
所述管理设备接收第一客户端发送的写请求消息,所述写请求消息用于请求写入第一数据;
所述管理设备根据所述写请求消息,确定第一分区,所述第一分区属于所述H个分区;
所述管理设备向所述第一客户端发送所述第一分区的标识,以使所述第一客户端根据所述第一分区的标识和所述H个分区与服务节点的映射关系确定所述第一分区所在的服务节点,并向所述第一分区所在的服务节点写入所述第一数据。
在一种可能的实现方式中,所述方法还包括:
所述管理设备接收第一客户端发送的写请求消息,所述写请求消息用于请求写入第一数据;
所述管理设备根据所述写请求消息,确定第一分区,并为所述第一数据分配数据标识,所述第一分区属于所述H个分区;
所述管理设备向所述第一客户端发送所述第一数据的数据标识,以使所述第一客户端确定所述第一数据的数据标识所对应的第一分区,并根据所述H个分区与服务节点的映射关系确定所述第一分区所在的服务节点,以及向所述第一分区所在的服务节点写入所述第一数据。
根据上述两种可能的实现方式,可以实现对数据的写入。
在一种可能的实现方式中,所述管理设备确定所述第一数据的数据标识,包括:
所述管理设备根据以下公式,确定所述第一数据的数据标识:
ID1=(H+R)*n+PT_INDEX1;
其中,ID1为所述第一数据的数据标识,PT_INDEX1为所述第一分区的编号,PT_INDEX1≥0,且PT_INDEX1为整数,n为所述H个分区和所述R个分区中每个分区的序列号,n为预设值,n≥0,且n为整数,当为任一分区每分配与其对应的一个数据标识时,该分区的序列号加1。
第二方面,提供了一种管理设备,其特征在于,所述管理设备能够与存储系统通信,所述存储系统包括N个服务节点,R个分区分布在所述N个服务节点上,N和R均为正整数,所述R个分区中每个分区的副本数相同。所述管理设备包括用于执行第一方面或第一方面任一种可能实现方式中的各个单元。
第三方面,提供了一种管理设备,包括输入/输出接口、处理器和存储器,所述处理器用于控制所述输入/输出接口收发信号,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,使得该管理设备执行上述第一方面中的方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述各方面中的方法。
第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述各方面中的方法。
第六方面,提供了一种芯片系统,该芯片系统包括处理器,用于管理设备实现上述方面中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存必要的计算机指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1是基于哈希算法的分布式系统原理示意图。
图2是增加服务节点个数后,基于哈希算法的分布式系统原理示意图。
图3是一种分布式系统的架构示意图。
图4是根据本申请一个实施例的用于存储系统分区的方法的示意性流程图。
图5是一种分区与服务节点之间的映射关系的示意图。
图6是一种分区与服务节点之间的映射关系的示意图。
图7是根据本申请另一实施例的用于存储系统分区的方法的示意性流程图。
图8是根据本申请再一实施例的用于存储系统分区的方法的示意性流程图。
图9是根据本申请再一实施例的用于存储系统分区的方法的示意性流程图。
图10是根据本申请实施例的管理设备的示意性框图。
图11根据本申请另一实施例的管理设备的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
当前技术中,基于哈希算法的分布式系统原理如图1所示。
在图1中,哈希分布算法把数据键(key)对应的哈希空间划分为固定数量的分区P0~Pn,然后把分区P0~Pn均匀分布到服务节点N1~N4上。这里,数据key可以理解为数据的标识(Identifier,ID)。分区与服务节点之间的映射关系可通过分区映射表表示。
在分布式系统中,通过分布式哈希算法定位一个数据块的步骤如下:
1、通过公式计算数据所在分区pt:pt=hash(key)%m,分区pt属于分区P0~Pn,m是分区个数。
2、通过查询分区映射表,找到分区所在的服务节点。
哈希分布方式下,当增加服务节点个数时,需要把所有分区重新均匀分布到所有服务节点上。如图2所示,系统从4个服务节点增加到8个服务节点后,需要把m个分区重新均匀分布到8个服务节点上,也就是至少要把原有分区的一半,也就是m/2个分区的数据从原有服务节点(N1~N4)迁移到新的服务节点(N5~N8)。在哈希分布方式下,认为每个分区的数据量是大致相同的,可以计算出需要迁移的数据量是原有数据的一半。
可以看出,现有的技术中,把所有分区映射到所有的服务节点上,当系统增加服务节点时,需要把分区重新进行分布,导致大量的数据搬移,从而占用系统的网络带宽,影响数据的读写性能。
基于此,本申请提供了一种用于存储系统分区的方法,当系统增加服务节点时,保持原有服务节点和原有分区映射关系不变,只增加新的分区,通过将增加的新的分区映射至新增加的服务节点上或新增加的服务节点和原有服务节点上,能够避免扩容过程中的数据迁移和占用系统的网络带宽的问题,有利于增强数据的读写性能。
在介绍本申请实施例之前,首先简要介绍可以应用于本申请的分布式系统的架构图。
图3示出了一种分布式系统的架构图。如图3所示,该系统可以包括应用层、客户端、控制器和服务节点。应用层、客户端、控制器和服务节点的数量均可以为一个或者多个,本申请实施例对此不作限定。比如,在图3中,示出了应用层104、客户端(client)101a、客户端101b、客户端101c、控制器(manager)102、服务节点N1~N8。其中,客户端用于访问存储数据。控制器用于分配数据ID和管理分区映射表。服务节点可以实现数据的本地存储。
服务节点可以是服务器(server),本申请实施例对此不作限定。客户端用于接收应用层的读/写请求,比如客户端(client)101a、客户端101b或客户端101c接收图3所示的应用层104发送的读/写请求,然后将读/写请求发送至控制器102。控制器102可根据该读/写请求,确定需要进行读操作或写操作的服务节点,即确定向哪个或哪些服务节点写入数据或确定从哪个或哪些服务节点上读取数据,然后将需要进行读操作或写操作的服务节点告知客户端101,接着客户端101将数据写入服务节点或从服务节点上读取数据。
应理解,控制器102可以作为硬件或者软件,或者作为硬件和软件的结合。应用层和客户端可以集成于一个模块或者单元或者设备中。应用层、客户端和控制器也可以集成于一个模块或者单元或者设备中。本申请实施例对此都不做限定。
以下,对本申请实施例进行详细描述。
图4是根据本申请一个实施例的用于存储系统分区的方法的示意性流程图。应理解,图4示出了用于存储系统分区的步骤或操作,但这些步骤或操作仅是示例,本申请实施例还可以执行其他操作或者图4中的各个操作的变形。此外,图4中的各个步骤可以按照与图4呈现的不同的顺序来执行,并且有可能并非要执行图4中的全部操作。
S410,管理设备根据存储系统新增加的服务节点的数量M和每个服务节点能够承载的分区数量S,确定需要新增加的分区数量H。M>0,S≥2,H≥2,且M、S和H均为整数。
应理解,本申请中的管理设备可以是图3所示的控制器102,但本申请实施例对此不作限定。
在该存储系统未增加服务节点之前,该存储系统原有的服务节点(即,原有服务节点)为N个。该N个原有服务节点被划分为R个分区,或者说,R个分区分布在该N个原有服务节点上。对于该R个分区,每个分区的副本数相同,或者说每个分区所对应的原有服务节点的数量相同。例如,该N个原有存储节点可以是图1或图2所示的服务节点N1~N4,服务节点N1~N4被划分为3个分区,并且每个分区包括3个副本。比如,参见图1,分区0分布在服务节点N1、N2和N3上,若分区0已经有数据写入,那么服务节点N1、N2和N3上的分区1所存储的数据相同,若分区0没有数据写入,那么服务节点N1、N2和N3上的分区1均为空。
当管理设备检测到存储系统新增加服务节点后,即存储系统有新增服务节点后,管理设备根据新增服务节点的数量M和每个服务节点能够承载的分区数量S,确定需要新增加的分区数量。
可选地,管理设备可以根据公式(1)计算需要新增加的分区数量H:
H1=S*M/W (1)
其中,W≥2,且W为整数,W为H个分区中每个分区的副本数。
若H1为整数,则H=H1,若H1不为整数,则或者 表示向下取整,表示向上取整,p为预设的整数。
应理解,S可以根据工程实践获得,即S为经验值。
S420,在保持N个原有服务节点与该R个分区的映射关系不变的情况下,管理设备将需要新增加的H个分区分布到新增加的M个服务节点和L个原有服务节点上。
应理解,0≤L≤N,新增加的H个分区中每个分区的副本数均为W。进一步地,新增加的H个分区中每个分区的副本数可以和原有的R个分区中每个分区的副本数相同,本申请实施例对此不作限定。
具体地,在确定需要新增加的分区数量后,管理设备将新增加的H个分区分布到M个新增服务节点上,或者在并保持N个原有服务节点与该R个分区的映射关系不变的前提下,管理设备将H个分区分布到M个新增服务节点和L个原有服务节点上。
在分布新增加的M个服务节点的过程中,管理设备可以更新原有分区映射表,得到更新后的分区映射表,例如记作:分区映射表A1。或者,管理设备也可以不更新原有分区映射表,仅基于新增加的H个分区,生成另一新分区映射表,例如记作:分区映射表B。这里,原有分区映射表,例如记作:分区映射表A,表示原有的N个服务节点与原有的R个分区的对应关系。
S430,管理设备将新增加的H个分区与服务节点的映射关系发送给客户端和服务节点。
比如,管理设备可以将分区映射表A1发送给客户端和服务节点,或者,原理设备可以将分区映射表B发送给客户端和服务节点,本申请实施例对此不作限定。
应理解,若管理设备将分区映射表A1发送给客户端和服务节点,客户端和服务节点可以丢弃或删除分区映射表A,而仅保存分区映射表A1。在后续的数据读写过程中,客户端和服务节点仅需根据分区映射表A1定位需要读取或写入的服务节点。若管理设备将分区映射表B发送给客户端和服务节点,客户端和服务节点需同时保存分区映射表A和分区映射表B。在后续的数据读写过程中,客户端和服务节点需要同时根据分区映射表A和分区映射表B定位需要读取或写入的服务节点。
还应理解,在S430中,管理设备可以将新增加的H个分区与服务节点的映射关系发送给每个客户端和每个原有服务节点和每个新增服务节点,但本申请实施例对此不作限定。比如,管理设备可以仅将分区映射表B发送给每个客户端和上述的L个原有服务节点和M个新增的服务节点。
综上,本申请实施例的用于存储系统分区的方法,当系统增加服务节点时,保持原有服务节点和原有分区映射关系不变,只增加新的分区,通过将增加的新的分区映射至新增加的服务节点上或新增加的服务节点和原有服务节点上,能够避免扩容过程中的数据迁移和占用系统的网络带宽的问题,有利于增强数据的读写性能。
图5和图6分别示出了一种分区与服务节点之间的映射关系。应理解,图5和图6所示的分区与服务节点之间的映射关系仅为示意性说明,并不对本申请构成任何限定。
图5示出了一种分区与服务节点之间的映射关系。
图5中,假设N=4,R=4,M=4,H=4,分区0~分区7中每个分区的副本数均为3。原有服务节点N1~N4与原有的分区0~分区3的映射关系如表1所示。当增加新的服务节点N5~N8后,管理设备确定增加新的分区,即分区4~分区7,并将服务节点N5~N8和分布到分区4~分区7上,同时将表1更新为表2。
表1
分区编号 对应的服务节点
0 N1/N2/N4
1 N1/N2/N3
2 N1/N3/N4
3 N2/N3/N4
表2
分区编号 对应的服务节点
0 N1/N2/N4
1 N1/N2/N3
2 N1/N3/N4
3 N2/N3/N4
4 N5/N6/N8
5 N5/N6/N7
6 N5/N7/N8
7 N6/N7/N8
图6示出了另一种分区与服务节点之间的映射关系。
图6中,假设N=4,R=4,M=4,H=6,分区0~分区7中每个分区的副本数均为3。原有服务节点N1~N4与原有的分区0~分区3的映射关系如上述表1所示。当增加新的服务节点N5~N8后,管理设备确定增加新的分区,即分区4~分区9。在保持表1中的映射关系不变的前提下,管理设备可以将分区4~分区9分布到服务节点N1、N2以及服务节点N5~N8上,同时将表1更新为表3。
表3
分区编号 对应的服务节点
0 N1/N2/N4
1 N1/N2/N3
2 N1/N3/N4
3 N2/N3/N4
4 N1/N5/N8
5 N5/N6/N8
6 N5/N6/N7
7 N5/N6/N7
8 N6/N7/N8
9 N2/N7/N8
下面,结合图7和图8所示的写数据的流程,描述本申请的两种可选的实施例。
图7示出了一种用于存储系统分区的方法的示意性流程图。
在S430之后,若客户端,例如,第一客户端,需要写入数据时,本申请实施例的方法还可以包括以下各步骤。
S710,第一客户端向管理设备发送写请求消息。该写请求消息用于请求写入第一数据。
应理解,该写请求消息可以是应用层需要写第一数据时发送给第一客户端的,然后客户端再将该写请求消息发送至管理设备。
S720,管理设备根据该写请求消息,确定第一分区。
第一分区可以是原有R个分区中的任一个,也可以是新增加的H个分区中的任一个,以下,为了便于理解,以第一分区为新增加的H个分区中的其中一个分区为例进行说明。
在本申请实施例中,管理设备可根据各服务节点的负载情况,比如,各服务节点当前所存储的数据量,确定可以写第一数据的分区。以图5所示的分区与服务节点之间的映射关系举例来说,若服务节点N5~N8中,仅分区5中存储有数据,那么网络设备可以将分区4或分区6或分区7中的任一个作为第一分区。
S730,管理设备向第一客户端发送第一分区的标识。
比如,第一分区的标识可以是第一分区的编号,本申请实施例对此不作限定。应理解,分区的标识应与分区映射表中的分区的表示形式相同。例如,若第一分区的标识为第一分区的编号,那么分区映射表中的分区则用分区的编号表示。
S740,第一客户端根据第一分区的标识和H个分区与服务节点的映射关系确定第一分区所在的服务节点。
具体地,第一客户端接收到管理设备发送的第一分区的标识后,可以根据分区与服务节点之间的映射关系,比如根据上述表2,确定第一分区对应的服务节点。例如,若第一分区为图5所示的分区4,则根据表2可以确定,第一分区对应的服务节点为N5、N6和N8。
S750,第一客户端向第一分区所在的服务节点写入第一数据。
比如,第一客户端向服务节点N5、N6和N8写入第一数据。
S760,第一分区所在的服务节点将第一数据写入成功后,向第一客户端返回完成指示信息。
S770,第一客户端接收到完成指示信息后,向应用层返回第一数据的数据ID。
可选地,数据ID可以根据公式(2)确定:
ID=(H+R)*n+PT_INDEX (2)
其中,PT_INDEX为分区的编号,n为H个分区和R个分区中每个分区的序列号,n为预设值,n≥0,且n为整数,为任一分区每分配与其对应的一个数据标识,则该分区的序列号加1。
根据公式(2),可以获得第一数据的数据ID,即ID1:ID1=(H+R)*n+PT_INDEX1,PT_INDEX1为第一分区的编号。例如,若第一分区为分区4,n=0,结合图5所示的实施例,则ID1=8*1+4=12。
通过采用公式(2)设置数据的ID,可使不同分区对应不同的数据ID,并且同一分区中的数据ID各不相同,从而能够准确的读取数据。
应理解,确定第一数据的ID的过程可以在S770中执行,也可以在S740或S750中执行,或者在S740之后S750之前执行,或者在S750之后执行,或者还可以在其他合理的时机执行,本申请实施例对此不作限定。
图8示出了另一种用于存储系统分区的方法的示意性流程图。
在S430之后,若客户端,例如,第一客户端,需要写入数据时,本申请实施例的方法还可以包括以下各步骤。
S810,第一客户端向管理设备发送写请求消息。该写请求消息用于请求写入第一数据。
应理解,该写请求消息可以是应用层需要写第一数据时发送给第一客户端的,然后客户端再将该写请求消息发送至管理设备。
S820,管理设备根据该写请求消息,确定第一分区,并为第一数据分配数据标识。
第一分区可以是原有R个分区中的任一个,也可以是新增加的H个分区中的任一个,以下,为了便于理解,以第一分区为新增加的H个分区中的其中一个分区为例进行说明。
在本申请实施例中,管理设备可根据各服务节点的负载情况,比如,各服务节点当前所存储的数据量,确定可以写第一数据的分区。以图5所示的分区与服务节点之间的映射关系举例来说,若服务节点N5~N8中,仅分区5中存储有数据,那么网络设备可以将分区4或分区6或分区7中的任一个作为第一分区。
可选地,管理设备可以根据上述公式2为第一数据分配数据标识。具体地可以参照上文中的描述,为了简洁,此处不再赘述。
S830,管理设备向所第一客户端发送第一数据的数据标识,即ID1。
S840,第一客户端根据ID1确定第一数据的数据标识所对应的分区,即第一分区,以及根据分区与服务节点的映射关系确定第一分区所在的服务节点。
可选地,若在S820中,管理设备根据上述公式2为第一数据分配数据标识,那么客户端可以根据公式(3)确定数据标识所对应的分区:
ID%MAX_PT_NUM=PT_INDEX (3)
其中,MAX_PT_NUM为分区的数量,在本申请实施例中,MAX_PT_NUM=R+H。
同样地以第一分区为图5所示的分区4为例,MAX_PT_NUM=8,那么,ID1所对应的分区编号PT_INDEX1=ID1%8=4,即第一分区为分区4。
第一客户端确定第一分区或第一分区的编号后,可根据分区与服务节点的映射关系确定第一分区所在的服务节点。比如,第一客户端可根据表2确定第一分区所在的服务节点为N5、N6和N8。
S850,第一客户端向第一分区所在的服务节点写入第一数据。
比如,第一客户端向服务节点N5、N6和N8写入第一数据。
S860,第一分区所在的服务节点将第一数据写入成功后,向第一客户端返回完成指示信息。
S870,第一客户端接收到完成指示信息后,向应用层返回第一数据的数据ID。
图7和图8描述了写数据的流程,下面结合图9描述读取数据的流程。
图9示出了一种用于存储系统分区的方法的示意性流程图。
在S430之后,若客户端,例如,第二客户端,需要读取数据时,本申请实施例的方法还可以包括以下各步骤。
S910,应用层向第二客户端发送读请求消息。
具体地,若应用层需要读取数据,则向第二客户端发送读请求消息,该读请求消息包括应用层需要读取的第二数据的数据ID,即ID2。
应理解,第二客户端可以与第一客户端相同,第二数据也可以是第一数据,本申请实施例对此不作限定。
S920,第二客户端根据第二数据的数据ID确定第二数据所对应的分区。
例如,第二客户端可以根据上述公式(3)确定ID2所对应的分区编号。
S930,第二客户端确定第二数据所对应的分区所在的服务节点。
在S920中,第二客户端确定ID2所对应的分区编号后,可以根据分区映射表确定第二数据所对应的分区所在的服务节点。
S940,第二客户端从第二数据所对应的分区所在的服务节点读取第二数据。相应地,第二数据所对应的分区所在的服务节点将第二数据返回给第二客户端。
应理解,第二客户端从第二数据所对应的分区所在的服务节点读取第二数据的过程可以是,第二客户端向第二数据所对应的分区所在的服务节点发送数据读取请求消息,第二数据所对应的分区所在的服务节点接收到该数据读取请求消息后,将第二数据发送给第二客户端。
S950,第二客户端向应用层返回第二数据。
在第二客户端向应用层返回第二数据的同时,还可以向应用层返回读第二数据的执行结果,即若第二数据读取成功,则该执行结果表示读取数据成功。
上文中结合图3至图9描述了根据本申请实施例的用于存储系统分区的方法。下面,结合图10和图11,介绍本申请的管理设备。
图10示出了根据本申请实施例的管理设备1000的示意性框图。所述管理设备能够与存储系统通信,所述存储系统包括N个服务节点,R个分区分布在所述N个服务节点上,N和R均为正整数,所述R个分区中每个分区的副本数相同。如图10所示,该管理设备1000包括处理单元1010和收发单元1020。
处理单元1010,用于根据所述存储系统新增加的服务节点的数量M和每个服务节点能够承载的分区数量S,确定需要新增加的分区数量H,M>0,S≥2,H≥2,且M、S和H均为整数。
处理单元1010还用于,在保持所述N个服务节点中的每个服务节点与所述R个分区的映射关系不变的情况下,将所述H个分区分布到所述M个服务节点和L个服务节点上,所述L个服务节点属于所述N个服务节点,所述H个分区中每个分区的副本数相同,0≤L≤N;
收发单元1020,用于将所述H个分区与服务节点的映射关系发送给客户端和服务节点。
可选地,处理单元1010具体用于:
根据以下公式确定分区数量H:
其中,表示向下取整,W≥2,且W为整数,W为所述H个分区中每个分区的副本数。
可选地,收发单元1020还用于:
接收第一客户端发送的写请求消息,所述写请求消息用于请求写入第一数据。此时,处理单元1010还用于,根据所述写请求消息,确定第一分区,所述第一分区属于所述H个分区;向所述第一客户端发送所述第一分区的标识,以使所述第一客户端根据所述第一分区的标识和所述H个分区与服务节点的映射关系确定所述第一分区所在的服务节点,并向所述第一分区所在的服务节点写入所述第一数据。
可选地,收发单元1020还用于:
接收第一客户端发送的写请求消息,所述写请求消息用于请求写入第一数据。此时,处理单元1010还用于,根据所述写请求消息,确定第一分区,并为所述第一数据分配数据标识,所述第一分区属于所述H个分区。收发单元1020还用于,向所述第一客户端发送所述第一数据的数据标识,以使所述第一客户端确定所述第一数据的数据标识所对应的第一分区,并根据所述H个分区与服务节点的映射关系确定所述第一分区所在的服务节点,以及向所述第一分区所在的服务节点写入所述第一数据。
可选地,处理单元1010具体用于:
根据以下公式,确定所述第一数据的数据标识:
ID1=(H+R)*n+PT_INDEX1;
其中,ID1为所述第一数据的数据标识,PT_INDEX1为所述第一分区的编号,PT_INDEX1≥0,且PT_INDEX1为整数,n为所述H个分区和所述R个分区中每个分区的序列号,n为预设值,n≥0,且n为整数,当为任一分区每分配与其对应的一个数据标识时,该分区的序列号加1。
在可选的实施例中,所述收发单元1020为输入/输出接口1130,所述处理单元1010可以为处理器1120。所述管理设备还可以包括存储器1110,具体如图11所示。
图11是本申请另一实施例的管理设备的示意性框图。图11所示的客户端1100可以包括:存储器1110、处理器1120和输入/输出接口1130。其中,存储器1110、处理器1120和输入/输出接口1130通过内部连接通路相连,该存储器1110用于存储指令,该处理器1120用于执行该存储器1110存储的指令,以控制输入/输出接口1130接收客户端1100的外部及内部输入的数据、信息和信号,输出操作结果、发送信息和信号等。
应理解,在本申请实施例中,该处理器1120可以采用通用的中央处理器(CentralProcessing Unit,CPU),微处理器,应用专用集成电路(Application SpecificIntegrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
还应理解,输入/输出接口1130又称通信接口,使用例如但不限于收发器一类的收发装置,来实现客户端1100与其它设备或通信网络之间的通信。
该存储器1110可以包括只读存储器和随机存取存储器,并向处理器1120提供指令和数据。处理器1120的一部分还可以包括非易失性随机存取存储器。例如,处理器1120还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器1120中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的用于存储系统分区的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1110,处理器1120读取存储器1110中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(Digital Video Disc,DVD))或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (13)

1.一种用于存储系统分区的方法,其特征在于,所述存储系统包括N个服务节点,R个分区分布在所述N个服务节点上,N和R均为正整数,所述R个分区中每个分区的副本数相同,包括:
管理设备根据所述存储系统新增加的服务节点的数量M和每个服务节点能够承载的分区数量S,确定需要新增加的分区数量H,M>0,S≥2,H≥2,且M、S和H均为整数;
在保持所述N个服务节点中的每个服务节点与所述R个分区的映射关系不变的情况下,所述管理设备将所述H个分区分布到所述M个服务节点和L个服务节点上,所述L个服务节点属于所述N个服务节点,所述H个分区中每个分区的副本数相同,0≤L≤N;
所述管理设备将所述H个分区与服务节点的映射关系发送给客户端和服务节点。
2.如权利要求1所述的方法,其特征在于,所述管理设备根据所述存储系统新增加的服务节点的数量M和每个服务节点能够承载的分区数量S,确定需要新增加的分区数量H,包括:
所述管理设备根据以下公式确定分区数量H:
其中,表示向下取整,W≥2,且W为整数,W为所述H个分区中每个分区的副本数。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述管理设备接收第一客户端发送的写请求消息,所述写请求消息用于请求写入第一数据;
所述管理设备根据所述写请求消息,确定第一分区,所述第一分区属于所述H个分区;
所述管理设备向所述第一客户端发送所述第一分区的标识,以使所述第一客户端根据所述第一分区的标识和所述H个分区与服务节点的映射关系确定所述第一分区所在的服务节点,并向所述第一分区所在的服务节点写入所述第一数据。
4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述管理设备接收第一客户端发送的写请求消息,所述写请求消息用于请求写入第一数据;
所述管理设备根据所述写请求消息,确定第一分区,并为所述第一数据分配数据标识,所述第一分区属于所述H个分区;
所述管理设备向所述第一客户端发送所述第一数据的数据标识,以使所述第一客户端确定所述第一数据的数据标识所对应的第一分区,并根据所述H个分区与服务节点的映射关系确定所述第一分区所在的服务节点,以及向所述第一分区所在的服务节点写入所述第一数据。
5.如权利要求4所述的方法,其特征在于,所述管理设备确定所述第一数据的数据标识,包括:
所述管理设备根据以下公式,确定所述第一数据的数据标识:
ID1=(H+R)*n+PT_INDEX1;
其中,ID1为所述第一数据的数据标识,PT_INDEX1为所述第一分区的编号,PT_INDEX1≥0,且PT_INDEX1为整数,n为所述H个分区和所述R个分区中每个分区的序列号,n为预设值,n≥0,且n为整数,当为任一分区每分配与其对应的一个数据标识时,该分区的序列号加1。
6.一种管理设备,其特征在于,所述管理设备能够与存储系统通信,所述存储系统包括N个服务节点,R个分区分布在所述N个服务节点上,N和R均为正整数,所述R个分区中每个分区的副本数相同,包括:
处理单元,用于根据所述存储系统新增加的服务节点的数量M和每个服务节点能够承载的分区数量S,确定需要新增加的分区数量H,M>0,S≥2,H≥2,且M、S和H均为整数;
所述处理单元还用于,在保持所述N个服务节点中的每个服务节点与所述R个分区的映射关系不变的情况下,将所述H个分区分布到所述M个服务节点和L个服务节点上,所述L个服务节点属于所述N个服务节点,所述H个分区中每个分区的副本数相同,0≤L≤N;
收发单元,用于将所述H个分区与服务节点的映射关系发送给客户端和服务节点。
7.如权利要求6所述的管理设备,其特征在于,所述处理单元具体用于:
根据以下公式确定分区数量H:
其中,表示向下取整,W≥2,且W为整数,W为所述H个分区中每个分区的副本数。
8.如权利要求6或7所述的管理设备,其特征在于,所述收发单元还用于:
接收第一客户端发送的写请求消息,所述写请求消息用于请求写入第一数据;
所述处理单元还用于,根据所述写请求消息,确定第一分区,所述第一分区属于所述H个分区;
所述收发单元还用于,向所述第一客户端发送所述第一分区的标识,以使所述第一客户端根据所述第一分区的标识和所述H个分区与服务节点的映射关系确定所述第一分区所在的服务节点,并向所述第一分区所在的服务节点写入所述第一数据。
9.如权利要求6或7所述的管理设备,其特征在于,所述收发单元还用于:
接收第一客户端发送的写请求消息,所述写请求消息用于请求写入第一数据;
所述处理单元还用于,根据所述写请求消息,确定第一分区,并为所述第一数据分配数据标识,所述第一分区属于所述H个分区;
所述收发单元还用于,向所述第一客户端发送所述第一数据的数据标识,以使所述第一客户端确定所述第一数据的数据标识所对应的第一分区,并根据所述H个分区与服务节点的映射关系确定所述第一分区所在的服务节点,以及向所述第一分区所在的服务节点写入所述第一数据。
10.如权利要求4所述的管理设备,其特征在于,所述处理单元具体用于:
根据以下公式,确定所述第一数据的数据标识:
ID1=(H+R)*n+PT_INDEX1;
其中,ID1为所述第一数据的数据标识,PT_INDEX1为所述第一分区的编号,
PT_INDEX1≥0,且PT_INDEX1为整数,n为所述H个分区和所述R个分区中每个分区的序列号,n为预设值,n≥0,且n为整数,当为任一分区每分配与其对应的一个数据标识时,该分区的序列号加1。
11.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至5中任一项所述的方法。
12.一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至5中任一项所述的方法。
13.一种管理设备,其特征在于,包括:输入接口和/或输出接口、处理器和存储器,
其中,所述处理器用于控制所述输入接口和/或输出接口收发信号,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,以使得所述管理设备执行如权利要求1至5中任一项所述的方法。
CN201711297202.7A 2017-12-08 2017-12-08 用于存储系统分区的方法和管理设备 Active CN108196786B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711297202.7A CN108196786B (zh) 2017-12-08 2017-12-08 用于存储系统分区的方法和管理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711297202.7A CN108196786B (zh) 2017-12-08 2017-12-08 用于存储系统分区的方法和管理设备

Publications (2)

Publication Number Publication Date
CN108196786A true CN108196786A (zh) 2018-06-22
CN108196786B CN108196786B (zh) 2021-05-18

Family

ID=62573758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711297202.7A Active CN108196786B (zh) 2017-12-08 2017-12-08 用于存储系统分区的方法和管理设备

Country Status (1)

Country Link
CN (1) CN108196786B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299190A (zh) * 2018-09-10 2019-02-01 华为技术有限公司 分布式存储系统中处理对象的元数据的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516181B1 (en) * 2005-02-08 2009-04-07 Microstrategy, Inc. Technique for project partitioning in a cluster of servers
CN102043726A (zh) * 2010-12-29 2011-05-04 北京播思软件技术有限公司 一种大规模时序数据的存储管理方法
CN102790784A (zh) * 2011-05-18 2012-11-21 阿里巴巴集团控股有限公司 分布式缓存方法及系统、缓存解析方法及解析系统
CN104636286A (zh) * 2015-02-06 2015-05-20 华为技术有限公司 用于数据访问的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516181B1 (en) * 2005-02-08 2009-04-07 Microstrategy, Inc. Technique for project partitioning in a cluster of servers
CN102043726A (zh) * 2010-12-29 2011-05-04 北京播思软件技术有限公司 一种大规模时序数据的存储管理方法
CN102790784A (zh) * 2011-05-18 2012-11-21 阿里巴巴集团控股有限公司 分布式缓存方法及系统、缓存解析方法及解析系统
CN104636286A (zh) * 2015-02-06 2015-05-20 华为技术有限公司 用于数据访问的方法和设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299190A (zh) * 2018-09-10 2019-02-01 华为技术有限公司 分布式存储系统中处理对象的元数据的方法及装置
CN109299190B (zh) * 2018-09-10 2020-11-17 华为技术有限公司 分布式存储系统中处理对象的元数据的方法及装置
CN112417036A (zh) * 2018-09-10 2021-02-26 华为技术有限公司 分布式存储系统中处理对象的元数据的方法及装置

Also Published As

Publication number Publication date
CN108196786B (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
US10374792B1 (en) Layout-independent cryptographic stamp of a distributed dataset
CN112153085B (zh) 一种数据处理方法、节点及区块链系统
CN109299190B (zh) 分布式存储系统中处理对象的元数据的方法及装置
CN106708968B (zh) 分布式数据库系统和分布式数据库系统中的数据处理方法
US20080059752A1 (en) Virtualization system and region allocation control method
JP5931196B2 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
US9805140B2 (en) Striping of directed graphs and nodes with improved functionality
CN114780458A (zh) 数据处理的方法和存储系统
US9940020B2 (en) Memory management method, apparatus, and system
JP2008165620A (ja) ストレージ装置構成管理方法、管理計算機及び計算機システム
US20090228658A1 (en) Management method for cache memory, storage apparatus, and computer system
CN112241320B (zh) 资源分配方法、存储设备和存储系统
CN103491152A (zh) 分布式文件系统中元数据获取方法、装置及系统
CN107211003A (zh) 分布式存储系统及管理元数据的方法
CN108304142A (zh) 一种数据管理方法和装置
CN108196786A (zh) 用于存储系统分区的方法和管理设备
CN113672171A (zh) 分布式对象存储方法、装置、系统和元数据服务器
CN109783002A (zh) 数据读写方法、管理设备、客户端和存储系统
CN107430510A (zh) 数据处理方法、装置和系统
CN106100953B (zh) PCIe设备共享网络的生成方法、装置及系统
JP2020035243A (ja) ストレージシステム及び記憶制御方法
CN110472167B (zh) 数据管理方法、装置及计算机可读存储介质
CN112578996B (zh) 一种存储系统的元数据的发送方法及存储系统
CN109254870A (zh) 数据备份的方法和装置
WO2021063242A1 (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
TR01 Transfer of patent right

Effective date of registration: 20220216

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee before: Chengdu Huawei Technologies Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221223

Address after: 518129 Huawei Headquarters Office Building 101, Wankecheng Community, Bantian Street, Longgang District, Shenzhen, Guangdong

Patentee after: Shenzhen Huawei Cloud Computing Technology Co.,Ltd.

Address before: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee before: Huawei Cloud Computing Technology Co.,Ltd.

TR01 Transfer of patent right