CN104580427B - 一种分布式存储系统中的主从平衡方法和装置 - Google Patents

一种分布式存储系统中的主从平衡方法和装置 Download PDF

Info

Publication number
CN104580427B
CN104580427B CN201410832191.8A CN201410832191A CN104580427B CN 104580427 B CN104580427 B CN 104580427B CN 201410832191 A CN201410832191 A CN 201410832191A CN 104580427 B CN104580427 B CN 104580427B
Authority
CN
China
Prior art keywords
same slice
machine
copy
primary copy
master slave
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410832191.8A
Other languages
English (en)
Other versions
CN104580427A (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410832191.8A priority Critical patent/CN104580427B/zh
Publication of CN104580427A publication Critical patent/CN104580427A/zh
Priority to PCT/CN2015/095461 priority patent/WO2016101751A1/zh
Application granted granted Critical
Publication of CN104580427B publication Critical patent/CN104580427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种分布式存储系统中的主从平衡方法和装置,其中的方法具体包括:生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;以及在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整。本发明实施例降低了分布式环境中人工运维的成本,且减少了因冗迁移操作而导致服务暂停的那部分时间。

Description

一种分布式存储系统中的主从平衡方法和装置
技术领域
本发明涉及分布式存储技术领域,特别是涉及一种分布式存储系统中的主从平衡方法和装置。
背景技术
在分布式存储系统中,数据分片可以将整体数据分摊在多台机器上,假设将某整体数据划分为1024分片,待分摊的机器数量为N,则每台机器存储的数据量为1024/N分片,以此满足上述分布式存储系统的性能需求。
进一步,为了防止某台机器出现操作失误或者机器故障而导致数据丢失,还可以针对分片配置多个副本,假设分片对应副本的数量为M,则1个为主副本,M-1个为从副本,其中,主副本对应机器可用于提供对于分片的读写服务,而在主副本所在机器宕机时可通过主从切换将其中1个从副本切换为主副本。
在上述分布式存储系统提供对于分片的读写服务的过程中,会存在如下问题:某台机器上存储的副本全部为主副本,而其它机器上存储的副本全部为从副本,这样,容易出现该台机器负载高宕机而其它机器闲置的情况,无法做到多台机器的负载均衡。
为了实现多台机器的负载均衡,传统方案会在主从不均时人工进行分片的主从调整,这无疑增加了分布式环境中人工运维的成本;并且,上述主从调整主要包括:针对所有机器中所有分片在多台机器之间进行迁移操作,该迁移操作期间所有机器需要暂停服务,这样,如果主从调整方案不合理则容易出现冗余的迁移操作,所述冗余的迁移操作具体可以包括:在主从调整过程中对某个分片频繁地执行的迁移操作等等,这些冗余的迁移操作无疑会增加服务暂停的时间,从而影响分布式存储系统的吞吐量等性能。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种分布式存储系统中的主从平衡方法和装置。
依据本发明的一个方面,提供了一种分布式存储系统中的主从平衡方法,包括:
生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;以及
在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整。
可选地,所述相同分片的主从分布信息包括:所述M台机器中任一台中所述相同分片的最大主副本数以及所述相同分片的最小主副本数;
则所述相同分片的主从分布信息符合预置切换条件包括:所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于阈值。
可选地,所述在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整的步骤,包括:
确定所述M台机器对应的最优主从分布序列;
依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作。
可选地,所述最优主从分布序列包括:最优主副本分布序列和最优从副本分布序列;
则所述依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作的步骤,包括:依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作,以及,依据所述最优从副本分布序列,针对相同分片的从副本进行迁移操作;
其中,所述依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作过程包括:依据所述最优主副本分布序列,将所述相同分片的主副本从主副本数多的机器迁移到主副本数少的机器。
可选地,所述针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息的步骤,包括:
从各机器所维护的元数据信息中获取所有分片的主从分布信息;
依据所有分片的主从分布信息,统计每一种所述组合对应M台机器中相同分片的主从分布信息。
可选地,所述方法还包括:各机器维护元数据信息的步骤;
其中,所述各机器维护元数据信息的步骤包括:
机器在自身状态发生变化时,依据自身状态的变化更新所述元数据信息;
向所有机器广播所述元数据信息的更新。
依据本发明的另一方面,提供了一种分布式存储系统中的主从平衡装置,包括:
组合生成模块,用于生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
分布统计模块,用于针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;以及
主从调整模块,用于在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整。
可选地,所述相同分片的主从分布信息包括:所述M台机器中任一台中所述相同分片的最大主副本数以及所述相同分片的最小主副本数;
则所述相同分片的主从分布信息符合预置切换条件包括:所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于阈值。
可选地,所述主从调整模块,包括:
确定子模块,用于确定所述M台机器对应的最优主从分布序列;及
迁移子模块,用于依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作。
可选地,所述最优主从分布序列包括:最优主副本分布序列和最优从副本分布序列;
则所述迁移子模块,包括:
第一迁移单元,用于依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作;及
第二迁移单元,用于依据所述最优从副本分布序列,针对相同分片的从副本进行迁移操作;
其中,所述第一迁移单元,具体用于依据所述最优主副本分布序列,将所述相同分片的主副本从主副本数多的机器迁移到主副本数少的机器。
根据本发明实施例的一种分布式存储系统中的主从平衡方法和装置,根可以在每一种组合中统计M台机器中相同分片的主从分布信息,并在所述主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整;
首先,由于本发明实施例的主从平衡方案为自动执行,这相对于传统方案人工执行主从调整,大大降低了分布式环境中人工运维的成本;
另外,由于本发明实施例的组合为从存放分片的所有机器中取出M台机器的组合,M等于分片对应副本的数量,这样,M台机器中特定的相同分片(如分片1)仅仅会在唯一的一种组合中出现,而不会在其它组合中出现,因此,本发明实施例能够保证仅仅在一种组合中对分片1进行主从调整,从而最终实现无冗余的主从调整,这相对于传统方案在主从调整过程中对某个分片频繁地执行的冗余迁移操作,大大减少了因冗迁移操作而导致服务暂停的那部分时间,从而提高了分布式存储系统的吞吐量等性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文可选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出可选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了示出了根据本发明一个实施例的一种分布式存储系统中的主从平衡方法的步骤流程示意图;
图2示出了根据本发明一个示例的一种分布式存储系统中分片的存储结构示意图;
图3示出了示出了根据本发明一个实施例的一种分布式存储系统中的主从平衡方法的步骤流程示意图;
图4示出了示出了根据本发明一个实施例的一种分布式存储系统中的主从平衡方法的步骤流程示意图;
图5示出了示出了根据本发明一个实施例的一种分布式存储系统中的主从平衡方法的步骤流程示意图;以及
图6示出了根据本发明一个实施例的一种分布式存储系统中的主从平衡装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种分布式存储系统中的主从平衡方法的步骤流程示意图,具体可以包括如下步骤:
步骤101、生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
步骤102、针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;以及
步骤103、在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整。
本发明实施例可以应用于各种分布式存储系统,在分布式存储系统中,虽然可以在初始化阶段通过设置将主副本均匀分布在所有机器上,然而,随着时间的推移,主副本所在机器宕机等因素会导致主副本的分布越来越不均匀,甚至出现某台机器中全部为主副本的情形。而本发明实施例能够用于对分布式存储系统中分配的主从副本进行自动平衡,以降低分布式环境中人工运维的成本,以及减少因主从平衡所导致服务暂停的机器的数量,提高分布式存储系统的性能。
参照图2,示出了根据本发明一个示例的一种分布式存储系统中分片的存储结构示意图,该示例涉及采用6台机器存储1024个分片,其中,每个分片具有3个副本,也即1个主副本和2个从副本;假设6台机器分别记为机器A、机器B、机器C、机器D、机器E和机器F,分片i的3个副本分别记为P1,i、P2,i和P3,i,其中,1≤i≤1024,那么每台机器所存储分片的数量为1024*3/6=512;
对于上述示例,从存放分片的所有机器中取出M台机器的组合也即从6台机器中取出3台机器的组合,记为C(6,3)=20。
对于上述示例,每个分片均有3个副本分布在不同的机器上,这样,从全局来看任意3台机器中都会有相同分片,因此,针对每一种组合进行主从调整能够将任意3台机器中相同分片的主从副本进行调整,达到主从副本在所有机器中的平衡,也即达到全局的平衡。其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片。例如,分片1的3个副本P1,1、P2,1和P3,1分别存储在机器A、机器B和机器C上,则机器A、机器B和机器C对应组合中存在相同分片1;又如,分片501的3个副本P1,501、P2,501和P3,501分别存储在机器C、机器D和机器E上,则机器C、机器D和机器E对应组合中存在相同分片501。
以机器A、机器B和机器C对应组合为例,可以统计该3台机器中相同分片的主从分布信息,假设该3台机器中相同分片的数量为100,那么,需要统计该100个分片的主从分布信息,也即,该100个分片的主副本和从副本分别分布在该3台机器中的哪台机器上。
本发明实施例中,所述预置切换条件可用于表示该3台机器中相同分片这个局部范围内主从分布不均导致切换的各种条件,例如,上述100个分片的主副本在3台机器中的数量分别为50、30和20,显然,上述100个分片的主从分布是不均的,此种情况下可以认为满足了所述预置切换条件。
在本发明的一种可选实施例中,所述相同分片的主从分布信息具体可以包括:所述M台机器中任一台中所述相同分片的最大主副本数及对应第一机器,以及所述相同分片的最小主副本数及对应第二机器;则所述相同分片的主从分布信息符合预置切换条件具体可以包括:所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于阈值。
例如,可以对上述100个分片的主副本在3台机器中的数量按照从大到小的顺序进行排序,得到上述100个分片的最大主副本数、中间主副本数和最小主副本数的顺序,也即50、30和20的顺序。例如,所述阈值的值可以为2,这样,一旦发生所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于2的情况,就可以满足了所述预置切换条件,如上述100个分片的最大主副本数、中间主副本数和最小主副本数分别为35、33和32,由于35与32的差值大于2,则可以认为满足了所述预置切换条件。当然,上述1只是作为一种示例,本领域技术人员可以根据实际情况确定所述阈值的值,例如,在对所述相同分片的副本进行主从调整的频率不作限制时,可以采用较小的阈值,如1或2;又如,考虑到对所述相同分片的副本进行主从调整会引起服务暂停,可以希望对所述相同分片的副本进行主从调整的频率不太频繁,因此,可以采用较大的阈值,如3或4或5等等。
采用上述步骤101-步骤103的流程,遍历所有组合,并对所有组合中相同分片的副本进行调整,即可完成所有分片的主从平衡,从而达到所有分片的主从副本在所有机器中的平衡,也即达到全局的平衡。
综上,根据本发明实施例的一种分布式存储系统中的主从平衡方案,可以在每一种组合中统计M台机器中相同分片的主从分布信息,并在所述主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整;
首先,由于本发明实施例的主从平衡方案为自动执行,这相对于传统方案人工执行主从调整,大大降低了分布式环境中人工运维的成本;
另外,由于本发明实施例的组合为从存放分片的所有机器中取出M台机器的组合,M等于分片对应副本的数量,这样,M台机器中特定的相同分片(如分片1)仅仅会在唯一的一种组合中出现,而不会在其它组合中出现,因此,本发明实施例能够保证仅仅在一种组合中对分片1进行主从调整,从而最终实现无冗余的主从调整,这相对于传统方案在主从调整过程中对某个分片频繁地执行的冗余迁移操作,大大减少了因冗迁移操作而导致服务暂停的那部分时间,从而提高了分布式存储系统的吞吐量等性能。
参照图3,示出了根据本发明一个实施例的一种分布式存储系统中的主从平衡方法的步骤流程示意图,具体可以包括如下步骤:
步骤301、生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
步骤302、针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;
步骤303、在所述相同分片的主从分布信息符合预置切换条件时,确定所述M台机器对应的最优主从分布序列;以及
步骤304、依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作。
相对于图1所示实施例,本实施例将在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整的步骤具体化为:确定所述M台机器对应的最优主从分布序列,依据所述最优主从分布序列,针对所述相同分片的主副本在所述M台机器之间进行迁移操作;所述最优主从分布序列能够保证以最少的迁移操作实现每一种组合中相同分片的主从调整,因此能够大大减少了因主从调整导致服务暂停的时间,从而进一步提高了分布式存储系统的吞吐量等性能。
在本发明的一种应用示例中,可以依据所述相同分片数量的平均数得到所述最优主从分布序列。例如,上述示例中相同分片的数量为100,那么,可以将该100个分片的最优主副本分布序列确定为:34、33和33,其中,34可以与最大主副本数对应第一机器相应,以保证使用最少的迁移操作实现每一种组合中相同分片的主从调整。
在本发明的一种可选实施例中,所述最优主从分布序列具体可以包括:最优主副本分布序列和最优从副本分布序列;则所述依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作的步骤,具体可以包括:依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作,以及,依据所述最优从副本分布序列,针对相同分片的从副本进行迁移操作;
其中,所述依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作过程具体可以包括:依据所述最优主副本分布序列,将所述相同分片的主副本从主副本数多的机器迁移到主副本数少的机器。
在具体实现中,可以通过机器间主副本数的比较确定主副本数多的机器和主副本数少的机器,或者,可以依据所述最优主副本分布序列确定主副本数多的机器和主副本数少的机器,本发明实施例对主副本数多的机器和主副本数少的机器的确定方法不加以限制。
上例中,最大主副本数、中间主副本数和最小主副本数分别为:50、30和20,那么,可以首先依据上述34、33和33的最优主副本分布序列,确定最大主副本数对应第一机器、中间主副本数对应第三机器和最小主副本数对应第二机器的最终主副本数为34、33和33,然后将该100个分片的主副本从最大主副本数对应第一机器分别向中间主副本数对应第三机器和最小主副本数对应第二机器迁移,其中,从最大主副本数对应第一机器向中间主副本数对应第三机器进行的第一迁移操作的终止条件是:中间主副本数对应第三机器的主副本数达到了33,从最大主副本数对应第一机器向最小主副本数对应第二机器进行的第二迁移操作的终止条件是:最小主副本数对应第二机器的主副本数达到了33。需要说明的是,上述第一迁移操作和第二迁移操作可以并行执行,以提高主从调整的效率。
需要说明的是,除了依据所述最优从副本分布序列,针对相同分片的从副本进行迁移操作外,还可以利用所述针对相同分片的从副本进行的迁移操作与针对相同分片的主副本进行的迁移操作之间的可逆性进行所述针对相同分片的从副本进行的迁移操作。例如,将分片i的主副本从第一机器迁移到第二机器的操作与将分片i的从副本从第二机器迁移到第一机器的操作可以互为可逆操作,以及,将分片i的主副本从第一机器迁移到第三机器的操作与将分片i的从副本从第三机器迁移到第一机器的操作也可以互为可逆操作,等等。
在具体实现中,所述针对相同分片的从副本进行的迁移操作与针对相同分片的主副本进行的迁移操作可以并行执行,也可以按照次序先后执行,本发明实施例对针对相同分片的从副本进行的迁移操作与针对相同分片的主副本进行的迁移操作之间的执行顺序不加以限制。
需要说明的是,将分片i的主副本从第一机器迁移到第二机器的操作,和将分片i的主副本从第一机器迁移到第三机器的操作只是作为示例,实际上,本领域技术人员还可以根据实际情况执行将分片i的主副本从第三机器迁移到第二机器的操作,例如,假设100个分片的最大主副本数、中间主副本数和最小主副本数分别为:50、40和10,那么,需要执行将分片i的主副本从第三机器迁移到第二机器的操作。
参照图4,示出了根据本发明一个实施例的一种分布式存储系统中的主从平衡方法的步骤流程示意图,具体可以包括如下步骤:
步骤401、生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
步骤402、从各机器所维护的元数据信息中获取所有分片的主从分布信息;
步骤403、依据所有分片的主从分布信息,统计每一种所述组合对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;
这里,可以采用各种统计方法统计得到每一种所述组合对应M台机器中相同分片的主从分布信息,本发明实施例对具体的统计方法不加以限制。
步骤404、在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整。
相对于图1所示实施例,本实施例将针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息的步骤具体化为:从各机器所维护的元数据信息中获取所有分片的主从分布信息;依据所有分片的主从分布信息,统计所述组合对应M台机器中相同分片的主从分布信息;由于各机器通过元数据信息维护最新的分片的主从分布信息,故从各机器所维护的元数据信息中获取所有分片的主从分布信息为实时最新的信息,这样,既能够保证获取所有分片的主从分布信息的便利性,提高获取效率,又能够保证分片的主从分布信息的及时性。
在本发明的一种可选实施例中,所述方法还可以包括:各机器维护元数据信息的步骤;
其中,所述各机器维护元数据信息的步骤具体可以包括:
子步骤A1、机器在自身状态发生变化时,依据自身状态的变化更新所述元数据信息;
子步骤A2、向所有机器广播所述元数据信息的更新.
在实际应用中,每台机器可以通过元数据信息维护所有分片的主从分布信息,所述分片的主从分布信息主要可以包括:分片i的3个副本P1,i、P2,i和P3,i对应机器的标识信息;
这样,当一台机器因宕机等原因发生变化后,可以首先更新自身所维护的元数据信息,例如,机器A原本存储有分片i的主副本P1,i,而在机器A宕机后可以将主副本P1,i对应的机器更新为机器B,以及将机器B原本存储的P2,i对应的机器更新为机器A;
并且,在更新完成后,可以向所有机器广播所述元数据信息的更新,使得所有机器进行相应的同步更新,从而能够保证所有机器维护元数据信息的一致性和及时性。
为使本领域技术人员更好地理解本发明,参照图5,示出了根据本发明一个示例的一种分布式存储系统中的主从平衡方法的步骤流程示意图,具体可以包括如下步骤:
步骤501、生成从存放1024个分片的6台机器中取出3台机器的20种组合;其中,所述分片对应副本的数量为3;
步骤502、针对每一种所述组合,统计其对应3台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;
步骤503、所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于1时,确定所述3台机器对应的最优主副本分布序列;
步骤504、依据所述最优主副本分布序列,针对所述相同分片的主副本进行迁移操作;以及
步骤505、利用所述针对相同分片的从副本进行的迁移操作与针对相同分片的主副本进行的迁移操作之间的可逆性,针对所述相同分片的从副本进行迁移操作。
以图2中的机器A、机器B和机器C对应组合为例,可以统计该3台机器中相同分片的主从分布信息,假设该3台机器中相同分片的数量为100,那么,需要统计该100个分片的主从分布信息,也即,该100个分片的主副本和从副本分别分布在该3台机器中的哪台机器上;
进一步假设上述100个分片的主副本在3台机器中的数量分别为50、30和20,也即上述100个分片的最大主副本数、中间主副本数和最小主副本数分别为50、30和20,由于50与20的差值大于1,故可以首先依据所述相同分片数量的平均数得到上述100个分片的最优主副本分布序列:34、33和33,其中,34对应机器A、33对应机器B及33对应机器C;
然后,可以将该100个分片的主副本从机器A分别向机器B和机器C迁移,其中,从机器A向机器B进行的第一迁移操作的终止条件是机器B的主副本数达到了33,从机器A向机器C进行的第二迁移操作的终止条件是:机器C的主副本数达到了33;需要说明的是,上述第一迁移操作和第二迁移操作可以并行执行,以提高主从调整的效率;
由于将分片i的主副本从机器A迁移到机器C的第三操作与将分片i的从副本从机器C迁移到机器A的第四操作互为可逆操作,故可以同时执行所述第三操作和第四操作,或者,在所述第三操作执行完成后紧接着执行所述第四操作,或者,在所述第四操作执行完成后紧接着执行所述第三操作;可以看出,利用所述针对相同分片的从副本进行的迁移操作与针对相同分片的主副本进行的迁移操作之间的可逆性,针对所述相同分片的从副本进行迁移操作,节省了确定最优从副本分布序列的操作,因此能够提高主从调整的效率。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了根据本发明一个实施例的一种分布式存储系统中的主从平衡装置的结构示意图,具体可以包括如下模块:
组合生成模块601,用于生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
分布统计模块602,用于针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;以及
主从调整模块603,用于在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整。
在本发明的一种可选实施例中,所述相同分片的主从分布信息具体可以包括:所述M台机器中任一台中所述相同分片的最大主副本数、以及所述相同分片的最小主副本数;
则所述相同分片的主从分布信息符合预置切换条件具体可以包括:所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于阈值。
在本发明的另一种可选实施例中,所述主从调整模块603,具体可以包括:
确定子模块,用于确定所述M台机器对应的最优主从分布序列;及
迁移子模块,用于依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作。
在本发明的又一种可选实施例中,所述最优主从分布序列具体可以包括:最优主副本分布序列和最优从副本分布序列;
则所述迁移子模块,可以进一步包括:
第一迁移单元,用于依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作;以及
第二迁移单元,用于依据所述最优从副本分布序列,针对相同分片的从副本进行迁移操作;
其中,所述第一迁移单元,可具体用于依据所述最优主副本分布序列,将所述相同分片的主副本从主副本数多的机器迁移到主副本数少的机器。
在本发明的再一种可选实施例中,所述分布统计模块602,具体可以包括:
分布获取子模块,用于从各机器所维护的元数据信息中获取所有分片的主从分布信息;及
统计子模块,用于依据所有分片的主从分布信息,统计每一种所述组合对应M台机器中相同分片的主从分布信息。
在本发明的一种可选实施例中,所述装置还可以包括:
维护模块,用于通过各机器维护元数据信息;
其中,所述维护模块具体可以包括:
更新子模块,用于在机器状态发生变化时,依据自身状态的变化更新所述元数据信息;及
广播子模块,用于向所有机器广播所述元数据信息的更新。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的分布式存储系统中的主从平衡方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网平台上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种分布式存储系统中的主从平衡方法,包括:
生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;以及
在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整。
A2、如A1所述的方法,所述相同分片的主从分布信息包括:所述M台机器中任一台中所述相同分片的最大主副本数以及所述相同分片的最小主副本数;
则所述相同分片的主从分布信息符合预置切换条件包括:所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于阈值。
A3、如A1所述的方法,所述在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整的步骤,包括:
确定所述M台机器对应的最优主从分布序列;
依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作。
A4、如A3所述的方法,所述最优主从分布序列包括:最优主副本分布序列和最优从副本分布序列;
则所述依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作的步骤,包括:依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作,以及,依据所述最优从副本分布序列,针对相同分片的从副本进行迁移操作;
其中,所述依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作过程包括:依据所述最优主副本分布序列,将所述相同分片的主副本从主副本数多的机器迁移到主副本数少的机器。
A5、如A1或A2或A3或A4所述的方法,所述针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息的步骤,包括:
从各机器所维护的元数据信息中获取所有分片的主从分布信息;
依据所有分片的主从分布信息,统计每一种所述组合对应M台机器中相同分片的主从分布信息。
A6、如A5所述的方法,还包括:各机器维护元数据信息的步骤;
其中,所述各机器维护元数据信息的步骤包括:
机器在自身状态发生变化时,依据自身状态的变化更新所述元数据信息;
向所有机器广播所述元数据信息的更新。
本发明还公开了B7、一种分布式存储系统中的主从平衡装置,包括:
组合生成模块,用于生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
分布统计模块,用于针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;以及
主从调整模块,用于在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整。
B8、如B7所述的装置,所述相同分片的主从分布信息包括:所述M台机器中任一台中所述相同分片的最大主副本数以及所述相同分片的最小主副本数;
则所述相同分片的主从分布信息符合预置切换条件包括:所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于阈值。
B9、如B7所述的装置,所述主从调整模块,包括:
确定子模块,用于确定所述M台机器对应的最优主从分布序列;及
迁移子模块,用于依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作。
B10、如B9所述的装置,所述最优主从分布序列包括:最优主副本分布序列和最优从副本分布序列;
则所述迁移子模块,包括:
第一迁移单元,用于依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作;及
第二迁移单元,用于依据所述最优从副本分布序列,针对相同分片的从副本进行迁移操作;
其中,所述第一迁移单元,具体用于依据所述最优主副本分布序列,将所述相同分片的主副本从主副本数多的机器迁移到主副本数少的机器。
B11、如B7或B8或B9或B10所述的装置,所述分布统计模块,包括:
分布获取子模块,用于从各机器所维护的元数据信息中获取所有分片的主从分布信息;及
统计子模块,用于依据所有分片的主从分布信息,统计每一种所述组合对应M台机器中相同分片的主从分布信息。
B12、如B11所述的方装置,所述装置还包括:
维护模块,用于通过各机器维护元数据信息;
其中,所述维护模块包括:
更新子模块,用于在机器状态发生变化时,依据自身状态的变化更新所述元数据信息;及
广播子模块,用于向所有机器广播所述元数据信息的更新。

Claims (10)

1.一种分布式存储系统中的主从平衡方法,包括:
生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;以及
在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整;所述相同分片的主从分布信息包括:所述M台机器中任一台中所述相同分片的最大主副本数以及所述相同分片的最小主副本数;则所述相同分片的主从分布信息符合预置切换条件包括:所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于阈值。
2.如权利要求1所述的方法,其特征在于,所述在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整的步骤,包括:
确定所述M台机器对应的最优主从分布序列;
依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作。
3.如权利要求2所述的方法,其特征在于,所述最优主从分布序列包括:最优主副本分布序列和最优从副本分布序列;
则所述依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作的步骤,包括:依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作,以及,依据所述最优从副本分布序列,针对相同分片的从副本进行迁移操作;
其中,所述依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作过程包括:依据所述最优主副本分布序列,将所述相同分片的主副本从主副本数多的机器迁移到主副本数少的机器。
4.如权利要求1或2或3所述的方法,其特征在于,所述针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息的步骤,包括:
从各机器所维护的元数据信息中获取所有分片的主从分布信息;
依据所有分片的主从分布信息,统计每一种所述组合对应M台机器中相同分片的主从分布信息。
5.如权利要求4所述的方法,其特征在于,还包括:各机器维护元数据信息的步骤;
其中,所述各机器维护元数据信息的步骤包括:
机器在自身状态发生变化时,依据自身状态的变化更新所述元数据信息;
向所有机器广播所述元数据信息的更新。
6.一种分布式存储系统中的主从平衡装置,包括:
组合生成模块,用于生成从存放分片的所有机器中取出M台机器的组合;其中,M等于分片对应副本的数量;
分布统计模块,用于针对每一种所述组合,统计其对应M台机器中相同分片的主从分布信息,其中,所述相同分片为所述M台机器中皆存有其主副本/从副本的分片;以及
主从调整模块,用于在所述相同分片的主从分布信息符合预置切换条件时,对所述相同分片的副本进行主从调整;所述相同分片的主从分布信息包括:所述M台机器中任一台中所述相同分片的最大主副本数以及所述相同分片的最小主副本数;则所述相同分片的主从分布信息符合预置切换条件包括:所述相同分片的最大主副本数与所述相同分片的最小主副本数的差值大于阈值。
7.如权利要求6所述的装置,其特征在于,所述主从调整模块,包括:
确定子模块,用于确定所述M台机器对应的最优主从分布序列;及
迁移子模块,用于依据所述最优主从分布序列,针对所述相同分片的副本在所述M台机器之间进行迁移操作。
8.如权利要求7所述的装置,其特征在于,所述最优主从分布序列包括:最优主副本分布序列和最优从副本分布序列;
则所述迁移子模块,包括:
第一迁移单元,用于依据所述最优主副本分布序列,针对相同分片的主副本进行的迁移操作;及
第二迁移单元,用于依据所述最优从副本分布序列,针对相同分片的从副本进行迁移操作;
其中,所述第一迁移单元,具体用于依据所述最优主副本分布序列,将所述相同分片的主副本从主副本数多的机器迁移到主副本数少的机器。
9.如权利要求6或7或8所述的装置,其特征在于,所述分布统计模块,包括:
分布获取子模块,用于从各机器所维护的元数据信息中获取所有分片的主从分布信息;及
统计子模块,用于依据所有分片的主从分布信息,统计每一种所述组合对应M台机器中相同分片的主从分布信息。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
维护模块,用于通过各机器维护元数据信息;
其中,所述维护模块包括:
更新子模块,用于在机器状态发生变化时,依据自身状态的变化更新所述元数据信息;及
广播子模块,用于向所有机器广播所述元数据信息的更新。
CN201410832191.8A 2014-12-27 2014-12-27 一种分布式存储系统中的主从平衡方法和装置 Active CN104580427B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410832191.8A CN104580427B (zh) 2014-12-27 2014-12-27 一种分布式存储系统中的主从平衡方法和装置
PCT/CN2015/095461 WO2016101751A1 (zh) 2014-12-27 2015-11-24 一种分布式存储系统中的主从平衡方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410832191.8A CN104580427B (zh) 2014-12-27 2014-12-27 一种分布式存储系统中的主从平衡方法和装置

Publications (2)

Publication Number Publication Date
CN104580427A CN104580427A (zh) 2015-04-29
CN104580427B true CN104580427B (zh) 2018-09-04

Family

ID=53095584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410832191.8A Active CN104580427B (zh) 2014-12-27 2014-12-27 一种分布式存储系统中的主从平衡方法和装置

Country Status (2)

Country Link
CN (1) CN104580427B (zh)
WO (1) WO2016101751A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104580427B (zh) * 2014-12-27 2018-09-04 北京奇虎科技有限公司 一种分布式存储系统中的主从平衡方法和装置
CN106302702B (zh) * 2016-08-10 2020-03-20 华为技术有限公司 数据的分片存储方法、装置及系统
CN110007866B (zh) * 2019-04-11 2020-03-31 苏州浪潮智能科技有限公司 一种存储单元性能优化方法、装置、存储设备及存储介质
CN112711376B (zh) * 2019-10-25 2022-12-23 北京金山云网络技术有限公司 对象存储系统中对象主副本文件的确定方法及装置
CN113867928A (zh) * 2020-06-30 2021-12-31 北京金山云网络技术有限公司 负载均衡的方法、装置及服务器
CN114398371B (zh) * 2022-01-13 2024-06-04 深圳九有数据库有限公司 数据库集群系统多副本分片方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419600A (zh) * 2007-10-22 2009-04-29 深圳市亚贝电气技术有限公司 基于面向对象文件系统的数据副本映射方法及装置
CN103294787A (zh) * 2013-05-21 2013-09-11 成都市欧冠信息技术有限责任公司 分布式数据库系统的多副本存储方法和系统
CN103838860A (zh) * 2014-03-19 2014-06-04 华存数据信息技术有限公司 一种基于动态副本策略的文件存储系统及其存储方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200913433A (en) * 2007-09-10 2009-03-16 J Tek Inc Scattered energy storage control system
US8893131B2 (en) * 2008-04-11 2014-11-18 Yahoo! Inc. System and/or method for bulk loading of records into an ordered distributed database
CN102984184B (zh) * 2011-09-05 2017-09-19 上海可鲁系统软件有限公司 一种分布式系统的服务负载均衡方法及装置
CN103023932A (zh) * 2011-09-21 2013-04-03 鸿富锦精密工业(深圳)有限公司 服务器负载平衡方法及系统
CN104580427B (zh) * 2014-12-27 2018-09-04 北京奇虎科技有限公司 一种分布式存储系统中的主从平衡方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419600A (zh) * 2007-10-22 2009-04-29 深圳市亚贝电气技术有限公司 基于面向对象文件系统的数据副本映射方法及装置
CN103294787A (zh) * 2013-05-21 2013-09-11 成都市欧冠信息技术有限责任公司 分布式数据库系统的多副本存储方法和系统
CN103838860A (zh) * 2014-03-19 2014-06-04 华存数据信息技术有限公司 一种基于动态副本策略的文件存储系统及其存储方法

Also Published As

Publication number Publication date
WO2016101751A1 (zh) 2016-06-30
CN104580427A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN104580427B (zh) 一种分布式存储系统中的主从平衡方法和装置
CN107508901B (zh) 分布式数据处理方法、装置、服务器和系统
US9921880B2 (en) Dynamic performance isolation of competing workloads on CPUs with shared hardware components
US20240095060A1 (en) Tenant-controlled cloud updates
US10884795B2 (en) Dynamic accelerator scheduling and grouping for deep learning jobs in a computing cluster
US10235337B2 (en) Distributed work flow using database replication
CN104978228B (zh) 一种分布式计算系统的调度方法和装置
US9753713B2 (en) Coordinated upgrades in distributed systems
CN103744617B (zh) 一种键-值存储系统中数据文件的合并压缩方法及装置
CN109684065A (zh) 一种资源调度方法、装置及系统
CN105511962B (zh) 渲染方法和装置
US10628740B2 (en) Asynchronous stochastic gradient descent
US10356167B1 (en) Workload profiling
EP2921954A1 (en) Virtual machine allocation method and apparatus
US20160057074A1 (en) Combining blade servers based on workload characteristics
CN105743677B (zh) 一种资源配置方法及装置
CN108829469A (zh) 一种应用程序页面展示方法及装置
CN104794155B (zh) 数据加载的方法、装置及系统
US20200152253A1 (en) Storing method and apparatus of data
WO2021057465A1 (zh) 一种对深度学习模型进行并行处理的方法及装置
CN106503010B (zh) 一种数据库更改写入分区的方法及装置
CN110609807A (zh) 用于删除快照数据的方法、设备和计算机可读存储介质
US9195515B1 (en) Method and system for process load balancing
CN110034994A (zh) 用于虚拟专有云服务的系统和虚拟专有云服务的实现方法
CN108196970A (zh) Spark平台的内存动态管理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20220726

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right