CN106790447B - 一种基于库复制的分布式存储方法 - Google Patents

一种基于库复制的分布式存储方法 Download PDF

Info

Publication number
CN106790447B
CN106790447B CN201611111434.4A CN201611111434A CN106790447B CN 106790447 B CN106790447 B CN 106790447B CN 201611111434 A CN201611111434 A CN 201611111434A CN 106790447 B CN106790447 B CN 106790447B
Authority
CN
China
Prior art keywords
server
storage
group
storage server
cost
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
CN201611111434.4A
Other languages
English (en)
Other versions
CN106790447A (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.)
Zhongke Star Map Co Ltd
Original Assignee
Zhongke Star Map 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 Zhongke Star Map Co Ltd filed Critical Zhongke Star Map Co Ltd
Priority to CN201611111434.4A priority Critical patent/CN106790447B/zh
Publication of CN106790447A publication Critical patent/CN106790447A/zh
Application granted granted Critical
Publication of CN106790447B publication Critical patent/CN106790447B/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
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

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

Abstract

本发明涉及一种基于库复制的分布式存储方法,该方法将数据库切分为多个子库,通过计算各个存储服务器的存储代价,将每个子库冗余存储在多个存储服务器上,当一台存储服务器发生故障时,可以通过其他冗余的子库进行数据恢复,解决了数据高效自动修复的问题。

Description

一种基于库复制的分布式存储方法
【技术领域】
本发明属于计算机和数据库领域,尤其涉及一种基于库复制的分布式存储方法。
【背景技术】
现在,计算机在各个领域都得到了深入应用,各行各业都使用计算机来存储和处理各种数据,而数据库是计算机领域中最常见的数据存储设施,常常用来存储重要的数据。但是,众所周知,由于各种原因,数据库可能会出现故障,甚至完全被损毁,从而导致数据丢失;因而现在在设计重要的数据库系统时,通常都会考虑对数据库进行备份,以便在数据库丢失数据后,可以使用备份恢复数据库。
现有技术中,一种常见的方法是在异地对原数据库进行完全备份,一旦原数据库损坏,则从完全备份中恢复到原数据库,这个方式的缺点是在恢复时,整个系统需要暂停运行,并且恢复速度很慢。另一种方法是使用多台服务器进行镜像备份,如果一台出现故障,则使用其他服务器进行恢复,但是,一般情况下,一台机器对外提供的数据吞吐量是有限的,如果采用这种机器镜像即几台机器上的数据完全一致的方式,修复大数据量的数据库时耗时也会很长,如果还需要同时考虑到提供正常服务,则修复的时间还会大大增加。
对于现有技术的上述缺点,还没有一种完善的解决方案。
【发明内容】
为了解决现有技术中的上述问题,本发明提出了一种基于库复制的分布式存储方法。
本发明采用的技术方案如下:
一种基于库复制的分布式存储方法,其特征在于,该方法使用n台存储服务器存储数据库,包括以下步骤:
(1)将数据库切分为多个子库;
(2)设置冗余服务器的数量t;
(3)在n台存储服务器中任取t台,组成一个服务器,共得到个服务器组,记这些服务器组为S1,S2,……,SK由这些服务器组构成一个集合S={Si,1≤i≤K}。
(4)计算每一台存储服务器当前的存储代价;
(5)对于集合S中的每个服务器组,计算服务器组的存储代价,所述服务器组的存储代价是该服务器组中所有存储服务器的存储代价之和;
(6)对集合S中的服务器组,按照服务器组的存储代价进行排序,将存储代价最小的服务器组作为一个选择组,并从集合S中删除;
(7)重复步骤4-6,一直到获取了m个选择组;
(8)每个选择组分别存储一个子库,即将选择组中的每一台存储服务器都存储相应子库的一个复制。
进一步地,该方法还包括:
(9)对于不在任何一个选择组中的存储服务器,使用该存储服务器存储所有的子库。
进一步地,所述步骤(4)包括以下步骤:
(4.1)设n台存储服务器为A1,A2,……,An;首先计算Ai(1≤i≤n)的数据代价Di,即Di=Ti/Li;其中,Ti是存储服务器Ai到接口服务器的传输延迟时间,Li是存储服务器Ai本身的数据吞吐率;
(4.2)计算存储服务器Ai的存储代价Ci=FiDi,其中,Fi是Ai在已经获取的选择组中出现的次数。
进一步地,所述子库的数量不少于3个。
进一步地,所述存储服务器的数量n、子库的数量m和冗余服务器的数量t,满足n≥mt/2。
进一步地,当有一台存储服务器丢失数据时,根据该存储服务器上所存储的子库,选择相应的存储服务器为其恢复数据。
本发明的有益效果包括:保证了数据库系统的冗余度,提高了数据的安全性,解决了数据高效自动修复的问题。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明方法所应用的系统结构图。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
参见附图1,其示出了本发明分布式存储方法所适用的系统结构,该系统包括多台存储服务器,用于分布式存储一个数据库。所有的存储服务器都通过网络互相连接,相互之间可以互相传输数据,同时各存储服务器接受接口服务器的管理和调度,并通过接口服务器向外部提供数据库服务。所述网络可以是一个内部的局域网,使用局域网的优点是相互之间传输数据快;但是,考虑到异地容灾,该网络也可以是广域网、互联网。
基于上述结构,下面详细说明本发明的基于库复制的分布式存储方法:
(1)将整个数据库切分成多个子库。
具体的切分方式取决于数据库内所存储的数据,以及数据库的组织形式。例如,可以基于数据表进行切分,即将多个数据表构成一个子库;也可以根据存储的数据量进去切分,使得每个子库所存储的数据量基本相同。考虑到分布式存储,子库的数量可以根据具体情况所确定,但是一般不少于3个。
(2)设置冗余服务器的数量t。
所述冗余服务器的数量,指的是存储同一个子库的存储服务器的数量,假设共有n台存储服务器,则每一个子库都同时存储于其中的t台存储服务器中,这意味着即使其中有t-1台存储服务器故障,凭借剩余的1台存储服务器,该子库也能够得到恢复。为了保证冗余度,一般要求t≥3。另外,优选的,为了使得分布式存储的优势更好地发挥,数据分布平均,应当满足n≥mt/2,其中m是子库的数量。
(3)在n台存储服务器中任取t台,组成一个服务器组,通过排列组合,一共可以得到个服务器组,记这些服务器组为S1,S2,……,SK那么可以获得由这些服务器组所构成的一个集合S={Si,1≤i≤K}。
例如,如果t=3,一共有5台存储服务器,则通过排列组合,服务器组一共有个,即|S|=10。这一步骤实际上给出了同一子库的t个冗余服务器的所有可能的组合。
(4)计算每一台存储服务器当前的存储代价,具体的计算方法在后面说明。
所述存储代价实际上是存储服务器存储数据子库所要耗费的代价,其反应了该存储服务器存储数据的效率。
(5)对于集合S中的每个服务器组,计算服务器组的存储代价,所述服务器组的存储代价是该服务器组中所有存储服务器的存储代价之和。
所述存储代价之和反映了一个子库要存储到该服务器所要花费的总的存储代价,通过该存储代价和,可以衡量不同服务器组的优劣。
(6)对集合S中的服务器组,按照服务器组的存储代价进行排序,将存储代价最小的服务器组作为一个选择组,并从集合S中删除。
(7)重复步骤4-6,一直到获取了m个选择组。
通过步骤4-6,选出了一个相对最优解,即将m个子库在冗余度t下存储于n台存储服务器的相对最优解,通过这一相对最优解,整个数据库的分布式存储效率得到了保证。
(8)每个选择组分别存储一个子库,即将选择组中的每一台存储服务器都存储相应子库的一个复制。
m个选择组与m个子库一一对应,因此上述步骤实质上将m个子库分别存储在m个存储代价最小的服务器组中,并且每个子库都有t个冗余,即使其中的t-1台服务器故障,也能够继续提供服务,并在故障修复后提供恢复数据。一方面达到了分布式存储的目的,另一方面也达到了冗余备份的目的。
(9)对于不在任何一个选择组中的存储服务器,使用该存储服务器存储所有的子库。
可能由于某些存储服务器存储代价过大,或者由于存储服务器数量很大,导致有一些存储服务器没有在前面的步骤中被选择存储子库,为了不浪费其存储能力,本发明使用这些服务器存储所有的子库,作为进一步的分布式存储的备份。
前述步骤(4)中,需要针对每一台存储服务器计算当前的存储代价,存储代价可以有多种计算方式,下面是依据本发明的一个实施例的计算方式,但是本领域技术人员可以采用任意一种可行的其他计算方式,本发明对此不作限制。
(4.1)设n台存储服务器为A1,A2,……,An;首先计算Ai(1≤i≤n)的数据代价Di,即Di=Ti/Li。其中,Ti是存储服务器Ai到接口服务器的传输延迟时间(单位为秒),Li是存储服务器Ai本身的数据吞吐率(单位为MB/秒)。
如果各台存储服务器在同一个局域网中,则所述传输延迟时间应该是相同的,这种情况下可以省略该时间的计算,直接用一个固定数值代替。
(4.2)计算存储服务器Ai的存储代价Ci=FiDi
其中,Fi是Ai在已经获取的选择组中出现的次数。例如,已经获取的选择组为S1={A1,A2,A3}和S2={A1,A3,A4},那么当前的F1=2,即A1在已获取的两个选择组中出现2次,同理有F2=1,F3=2。
所述Fi反映了存储服务器Ai中已有的子库数量,每个子库都会占用存储空间和数据传输带宽,导致存储服务器负载增加,因而导致了存储代价的增加。
基于上述基于库复制的分布式存储方法,在数据库的管理上,同一个子库在不同存储服务器上都是同步的,因此如果n台存储服务器中有一台丢失了数据,可以使用其他的存储服务器为其恢复数据,例如,如果丢失数据的服务器上本来有k个子库,那么就可以同时使用另外的相应于k个子库的k台存储服务器为其恢复数据。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

Claims (3)

1.一种基于库复制的分布式存储方法,所述方法所适用的系统包括存储服务器,用于分布式存储一个数据库;所有的存储服务器都通过网络互相连接,相互之间互相传输数据,同时各存储服务器接受接口服务器的管理和调度,并通过接口服务器向外部提供数据库服务;所述网络包括内部的局域网、广域网或互联网,其特征在于,该方法使用n台存储服务器存储数据库,包括以下步骤:
(1)将数据库切分为多个子库;
(2)设置冗余服务器的数量t;t指的是存储同一个子库的存储服务器的数量,t≥3;存储服务器的数量n≥mt/2,其中m是子库的数量;
(3)在n台存储服务器中任取t台,组成一个服务器,共得到个服务器组,记这些服务器组为由这些服务器组构成一个集合S={Si,1≤i≤K};
(4)计算每一台存储服务器当前的存储代价,该步骤(4)包括以下步骤:
(4.1)设n台存储服务器为A1,A2,……,An;首先计算Ai,1≤i≤n的数据代价Di,即Di=Ti/Li;其中,Ti是存储服务器Ai到接口服务器的传输延迟时间,Li是存储服务器Ai本身的数据吞吐率;
(4.2)计算存储服务器Ai的存储代价Ci=FiDi,其中,Fi是Ai在已经获取的选择组中出现的次数;
(5)对于集合S中的每个服务器组,计算服务器组的存储代价,所述服务器组的存储代价是该服务器组中所有存储服务器的存储代价之和;
(6)对集合S中的服务器组,按照服务器组的存储代价进行排序,将存储代价最小的服务器组作为一个选择组,并从集合S中删除;
(7)重复步骤4-6,一直到获取了m个选择组;
(8)每个选择组分别存储一个子库,即将选择组中的每一台存储服务器都存储相应子库的一个复制;
(9)对于不在任何一个选择组中的存储服务器,使用该存储服务器存储所有的子库。
2.根据权利要求1所述的基于库复制的分布式存储方法,其特征在于,所述子库的数量不少于3个。
3.根据权利要求1所述的基于库复制的分布式存储方法,其特征在于,当有一台存储服务器丢失数据时,根据该存储服务器上所存储的子库,选择相应的存储服务器为其恢复数据。
CN201611111434.4A 2016-12-02 2016-12-02 一种基于库复制的分布式存储方法 Active CN106790447B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611111434.4A CN106790447B (zh) 2016-12-02 2016-12-02 一种基于库复制的分布式存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611111434.4A CN106790447B (zh) 2016-12-02 2016-12-02 一种基于库复制的分布式存储方法

Publications (2)

Publication Number Publication Date
CN106790447A CN106790447A (zh) 2017-05-31
CN106790447B true CN106790447B (zh) 2019-04-19

Family

ID=58874458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611111434.4A Active CN106790447B (zh) 2016-12-02 2016-12-02 一种基于库复制的分布式存储方法

Country Status (1)

Country Link
CN (1) CN106790447B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920104B (zh) * 2018-06-29 2021-06-25 吴俊杰 一种无中心的视频监控云存取方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699572A (zh) * 2013-11-26 2014-04-02 北京航空航天大学 一种云环境下数字媒体内容资源的集成共享方法
WO2015067013A1 (en) * 2013-11-08 2015-05-14 Huawei Technologies Co., Ltd. A method and device for database & storage aware routers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015067013A1 (en) * 2013-11-08 2015-05-14 Huawei Technologies Co., Ltd. A method and device for database & storage aware routers
CN103699572A (zh) * 2013-11-26 2014-04-02 北京航空航天大学 一种云环境下数字媒体内容资源的集成共享方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
分布式系统基础-副本与数据分布;zhangsai;《博客园》;20151216;全文

Also Published As

Publication number Publication date
CN106790447A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN109729129B (zh) 存储集群系统的配置修改方法、存储集群及计算机系统
US8886796B2 (en) Load balancing when replicating account data
US10095708B2 (en) Data mobility, accessibility, and consistency in a data storage system
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
US7188125B1 (en) Replication using a special off-host network device
US20060179082A1 (en) Method, system and article of manufacture for metadata replication and restoration
CN104468651B (zh) 分布式多副本数据存储方法及装置
CN104486438B (zh) 分布式存储系统的容灾方法及装置
CN113326006B (zh) 一种基于纠删码的分布式块存储系统
CN107038192B (zh) 数据库容灾方法和装置
CN108319618A (zh) 一种分布式存储系统的数据分布控制方法、系统及装置
CN107943615B (zh) 基于分布式集群的数据处理方法与系统
CN106790447B (zh) 一种基于库复制的分布式存储方法
CN110321386A (zh) 数据同步架构的设置、数据恢复方法及系统
CN116389233B (zh) 容器云管理平台主备切换系统、方法、装置和计算机设备
CN116974489A (zh) 一种数据处理方法、装置、系统、电子设备及存储介质
CN105323271A (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN108153787B (zh) 一种数据库的容灾方法
CN115686368A (zh) 区块链网络的节点的存储扩容的方法、系统、装置和介质
CN108664643A (zh) 一种采集数据的分布式存储系统及方法
CN104391926B (zh) 一种同步数据复制方法及装置
CN108241556A (zh) Hdfs中数据异地备份的方法及装置
Wibowo et al. Building scalable and resilient database system to mitigate disaster and performance risks
CN106020975A (zh) 数据操作方法、装置和系统
Adly et al. Maintaining causal order in large scale distributed systems using a logical hierarchy

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 101399 No. 2 East Airport Road, Shunyi Airport Economic Core Area, Beijing (1st, 5th and 7th floors of Industrial Park 1A-4)

Applicant after: Zhongke Star Map Co., Ltd.

Address before: 101399 Building 1A-4, National Geographic Information Technology Industrial Park, Guomen Business District, Shunyi District, Beijing

Applicant before: Space Star Technology (Beijing) Co., Ltd.

GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wu Fangcai

Inventor after: Liu Bin

Inventor after: Chu Yongquan

Inventor before: Liu Bin

Inventor before: Wu Fangcai

Inventor before: Chu Yongquan

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Chen Wei

Inventor after: Liu Bin

Inventor after: Wu Fangcai

Inventor after: Chu Yongquan

Inventor before: Wu Fangcai

Inventor before: Liu Bin

Inventor before: Chu Yongquan