CN109426439A - 对分布式存储***进行扩容的方法及装置 - Google Patents
对分布式存储***进行扩容的方法及装置 Download PDFInfo
- Publication number
- CN109426439A CN109426439A CN201710786979.3A CN201710786979A CN109426439A CN 109426439 A CN109426439 A CN 109426439A CN 201710786979 A CN201710786979 A CN 201710786979A CN 109426439 A CN109426439 A CN 109426439A
- Authority
- CN
- China
- Prior art keywords
- data server
- data
- server
- dilatation
- written
- 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.)
- Pending
Links
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
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种用于对分布式存储***进行扩容的方法及装置,所述方法包括:将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据写入所述第一数据服务器及第二数据服务器。本方法在扩容时写入流量分散写入到第一和第二数据服务器上,前端在写入数据时不会感到速度减慢,显著提升了服务质量。
Description
技术领域
本申请涉及分布式存储***,具体涉及一种对分布式存储***进行扩容的方法及装置。
背景技术
在为云计算提供服务的分布式存储***中,用户数据经常会不断增长,当用户数据增加到一定程度,原有集群不能满足数据增加的需求,需要进行扩容。提供云服务的商家为了控制成本,一般在高水位(数据服务器的剩余存储空间很低)的情况下才会根据业务增长情况进行少量数据服务器的扩容。
现有技术下,当在集群处于高水位进行扩容时,日常的读写流量依然在对外提供服务,写入流量主要集中在少量新的数据服务器上,造成服务质量受到影响。一般主控服务器(通常指负责管理数据服务器的服务器,例如,GFS(Google File System)中的元数据服务器Master)的副本分布策略会考虑磁盘容量,优先写入比较空的数据服务器,就会造成新的数据服务器的负载比较重。比如原有集群有1000台已有数据服务器,每台已有数据服务器服务30M写入流量(30MB/s),在水位超过90%(剩余存储空间小于10%)的情况下,新增加100台数据服务器,大量写入流量会集中在新的数据服务器上,达到每台数据服务器150M流量,影响服务质量,对服务造成影响。
由于现有技术在扩容时,写入流量主要集中在少量新的数据服务器上,使得新的数据服务器的负载比较重,因此前端在写入数据时会感到速度比较慢,导致服务质量的下降。
发明内容
本申请提供一种用于对分布式存储***进行扩容的方法,以解决现有前端在写入数据时会感到速度比较慢,导致服务质量的下降的问题。
本申请提供的一种用于对分布式存储***进行扩容的方法,包括:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至第二数据服务器;
判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据写入所述第一数据服务器及第二数据服务器。
可选的,所述将所述第一数据服务器的部分数据搬迁至第二数据服务器,包括:
使用接近物理极限预设范围的网络写入速度或物理极限的网络写入速度将所述第一数据服务器的部分数据搬迁至第二数据服务器。
可选的,所述判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,具体为:
判断所述第一数据服务器以及第二数据服务器数据是否达到均衡状态。
可选的,所述判断所述第一数据服务器以及第二数据服务器数据是否达到均衡状态,包括:
判断第一数据服务器以及第二数据服务器数据存储水位的相似度是否大于或等于相似度阈值,若是,则判断为所述第一数据服务器以及第二数据服务器数据达到均衡状态。
可选的,所述将所述第一数据服务器的部分数据搬迁至第二数据服务器,包括:
每台第二数据服务器对应的第一数据服务器的数量相同或数量之差在预设范围内。
可选的,所述将所述第一数据服务器的部分数据搬迁至第二数据服务器,包括:对应同一第二数据服务器的所有第一数据服务器分配有的写入流量相同或流量之差在预设范围内。
可选的,所述将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至第二数据服务器之前,还包括:判断集群中第一数据服务器的水位是否大于预设水位阈值,并在大于时进行扩容。
可选的,包括:
第二数据服务器的数量与第一数据服务器的数量之比小于或等于1/10。
可选的,所述预设水位阈值范围为80%至90%。
可选的,包括:
在扩容增加数据服务器之前,保持所述第一数据服务器的数据均衡。
可选的,所述保持所述第一数据服务器的数据平衡,包括:
所述已有的数据服务器定期把磁盘空间利用信息上报给元数据服务器;
所述元数据服务器根据获取的磁盘空间利用信息在使用不均匀的数据服务器间复制数据。
可选的,所述将所述第一数据服务器的部分数据搬迁至第二数据服务器,包括:
在将所述第一数据服务器的部分数据搬迁至第二数据服务器时,采用并行的方式进行搬迁。
可选的,所述将业务数据写入所述第一数据服务器及新的数据服务器,包括:
以相同的写入流量或以写入流量之差在预设范围内的写入流量将业务数据写入所述第一数据服务器以及新的数据服务器。
此外,本申请还提供一种用于对分布式存储***进行扩容的装置,包括:
写入及搬迁单元,用于将业务数据写入第一数据服务器。并将所述第一数据服务器的部分数据搬迁至第二数据服务器;
判断单元,用于判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态;
写入单元,用于当判断单元的输出为是时,将业务数据写入所述第一数据服务器及第二数据服务器。
此外,本申请还提供一种计算机可读介质,其上存储有指令,所述指令被执行以用于:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至第二数据服务器;
判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,将业务数据写入所述第一数据服务器及第二数据服务器。
此外,本申请还提供一种电子设备,其包括:处理器和存储器,
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至第二数据服务器;
判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,将业务数据写入所述第一数据服务器及第二数据服务器。
此外,本申请还提供一种用于对分布式存储***进行扩容的方法,其包括:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断所述第一数据服务器和/或第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据业写入所述第一数据服务器和/或第二数据服务器。
与现有技术相比,本申请具有以下优点:
本申请提供一种对分布式存储***进行扩容的方法,所述方法包括:将业务数据写入第一数据服务器并且将所述第一数据服务器的部分数据搬迁至第二数据服务器;判断所述第一数据服务器以及第二数据服务器数据是否达到均衡状态,若是,采用分布式存储方法将业务数据写入所述第一数据服务器以及第二数据服务器。
本申请提供的对分布式存储***进行扩容的方法,将业务数据仍然分散写入到第一数据服务器,并且将第一数据服务器的部分数据搬迁至第二数据服务器,第二数据服务器不再对前端提供服务,只是负责尽快将第一数据服务器的部分数据复制到第二数据服务器,在所述第一数据服务器以及第二数据服务器数据达到设定状态时,第二数据服务器再参与前端流量的写入,可见,本方案在扩容时写入流量没有集中在少量第二数据服务器上,而是分散写入到第一数据服务器上,前端在写入数据时不会感到速度减慢,显著提升了服务质量。
附图说明
图1是GFS的架构图。
图2是本申请第一实施例提供的一种对分布式存储***进行扩容的方法的流程图。
图3是本申请第一实施例提供的将所述第一数据服务器的部分数据搬迁至第二数据服务器的示意图。
图4是本申请第一实施例提供的所有数据服务器接收前端写入流量的示意图。
图5是本申请第二实施例提供的一种对分布式存储***进行扩容的装置的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
在本申请实施例中,提供了一种对分布式存储***进行扩容的方法及装置。在下面的实施例中逐一进行详细说明。为了便于理解,先对本申请实施例提供的技术方案作简要说明。
现有技术下,当集群处于高水位进行扩容时,日常的读写流量依然在对外提供服务,前端业务写入流量主要集中在少量新的数据服务器上,造成服务质量受到影响。例如,GFS中,主控服务器的副本分布策略会考虑磁盘容量,优先写入比较空的数据服务器,就会造成新的数据服务器的负载比较重,大量写入流量集中在新的数据服务器上,影响服务质量,对服务造成影响。
针对现有技术存在的上述问题,本申请实施例提供了一种用于对分布式存储***进行扩容的方法,所述方法包括以下步骤:将业务数据写入第一数据服务器并且将所述第一数据服务器的部分数据搬迁至第二数据服务器;判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据写入所述第一数据服务器以及第二数据服务器。
本申请实施例所提供的方法,在集群需要扩容时,将业务数据仍然分散写入到第一数据服务器,并且将第一数据服务器的部分数据搬迁至第二数据服务器,第二数据服务器不再对前端提供服务,只是负责尽快将第一数据服务器的部分数据复制到第二数据服务器。在所述第一数据服务器以及第二数据服务器数据达到设定状态时,例如均衡状态,第二数据服务器再参与业务数据的写入。本实施例在扩容时写入流量不再集中在少量第二数据服务器上,而是分散写入到第一数据服务器上,前端在写入数据时不会感到速度减慢,实现了平滑扩容,显著提升了服务质量。
在对本申请实施例技术方案简要说明的基础上,下面对本申请实施例提供的各实施例进行说明。
本申请第一实施例提供了一种对分布式存储***进行扩容的方法。请参考图2,其示出了根据本申请的实施例提供的一种对分布式存储***进行扩容的方法的流程图。以下结合图2进行详细说明。
步骤S201,将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器。
本步骤当扩容增加的数据服务器时,第二数据服务器不参与业务数据写入,将业务数据继续写入第一数据服务器,所述第一数据服务器可以为分布式存储***已有的数据服务器,由于第一数据服务器数量较大,前端用户不会感觉到写入速度减慢,不会影响服务的质量。
本实施例中,所述分布式存储***,是将数据分散存储在多***立的设备上。传统的网络存储***采用集中的数据服务器存放所有数据,数据服务器成为***性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式存储***采用可扩展的***结构,利用多台数据服务器分担存储负荷,它不但提高了***的可靠性、可用性和存取效率,还易于扩展。例如亚马逊AWS的S3、微软的Azure Storage以及以谷歌GFS为架构(图1示出了GFS的架构图)的分布式存储***。
所述数据服务器,通常指存储文件数据的服务器,分布式文件***中的每一个文件,都被切分成若干个数据块,每一个数据块都被存储在不同的服务器上,此服务器称之为数据服务器。例如,谷歌的分布式文件***GFS中的chunkserver。
所述第一数据服务器,通常指在扩容前集群中已经存在的数据服务器,例如,扩容前集群中有1000台数据服务器,则这1000台数据服务器为第一数据服务器。
第二数据服务器,本实施例中也称为新的数据服务器,通常指在用户数据增长的情况下需要扩容时,在原有的集群中扩容增加的数据服务器。为了控制成本,一般在剩余空间很低的情况下才会根据业务增长情况增加少量新的数据服务器。例如,扩容时集群中新增加100台数据服务器,则这100台数据服务器为新的数据服务器。
所述业务数据,指前端要写入集群中数据服务器的业务数据。
所述第一数据服务器的部分数据搬迁至第二数据服务器,指将第一数据服务器的部分数据首先复制至第二数据服务器,然后当满足一定条件时(第一数据服务器被复制的数据被确定为垃圾时)异步删除掉第一数据服务器被复制的数据。例如,第一数据服务器A的数据1搬迁至新的数据服务器B,在搬迁后,新的数据服务器B中存在数据1,将第一数据服务器A中的数据1删除。
当分布式存储***集群处于高水位(剩余存储空间较少(例如存储空间使用80%以上))进行扩容时,日常的读写流量依然在对外提供服务。现有技术下,会优先写入比较空的机器中,由于新的数据服务器都是空的,写入流量主要集中在少量新的数据服务器上,造成服务质量受到影响。本实施例当扩容增加数据服务器时,将业务数据写入第一数据服务器,并且将所述第一数据服务器的部分数据搬迁至新的数据服务器。
所述将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至第二数据服务器之前,还包括:判断集群中第一数据服务器的水位是否大于预设水位阈值,并在大于时进行扩容。当集群中第一数据服务器的水位大于预设水位阈值时进行扩容,为了控制成本,预设水位阈值可以设置为一个比较高的水位,一般可以设置为80%-90%。例如,将预设水位阈值设置为90%,在水位超过90%时进行扩容。
优选的,当扩容时并且在将所述第一数据服务器的部分数据搬迁至新的数据服务器之前,判断所述已有的数据服务器是否保持数据均衡状态,若否,在扩容时可以先对所述第一数据服务器进行数据均衡,然后再进行数据的迁移;或者根据第一数据服务器的存储水位的高低程度,先对第一数据服务器的存储水位较高的第一数据服务器进行搬迁。
在扩容前,最好保持已有的数据服务器数据均衡,在日常运维中打开低流量的数据均衡的功能,这样不会影响前端写入流量服务质量,保证即使在存储水位比较高的前提下,数据也大体均衡,大部分数据服务器依然有剩余空间持续可以写入。以GFS为例,实现数据平衡功能的细节如下:Chunkserver(数据服务器)定期把自己的磁盘空间利用情况上报给Master(元数据服务器,也可称为主控数据服务器);Master根据掌握的信息,在磁盘空间使用不均匀的数据服务器间复制数据,让所有数据服务器尽可能实现磁盘空间使用均匀,比如都是70%左右。数据服务器之间的复制需要消耗网络流量,比如千兆网,一般设定复制流量在30M以下,这样不影响正常读写流量,如果较高会导致前端读写受到影响。
为了实现将所述第一数据服务器的部分数据搬迁至新的数据服务器,新的数据服务器不参与业务数据的写入,当增加新的数据服务器时,可以设置一个工作类型参数表明新的数据服务器的工作类型,例如设置type为1时,工作类型为不参与前端流量写入,设置type为0时,工作类型为参与前端流量写入,新的数据服务器在加入集群后,向主控数据服务器汇报状态时,新的数据服务器通过网络之间的通讯将type的值1发送给主控数据服务器,通知主控数据服务器新的数据服务器只负责搬迁,不参与业务数据的写入。
如图3,其示出了将所述第一数据服务器的部分数据搬迁至第二数据服务器的示意图。在扩容增加数据服务器后,没有将业务数据写入第二数据服务器,而是写入第一数据服务器中。第二数据服务器负责将第一数据服务器的部分数据搬迁至第二数据服务器,也就是将第一数据服务器的部分数据首先复制至第二数据服务器,再删除掉第一数据服务器被复制的数据。通过删除第一数据服务器被复制的数据,同时也会删除掉第一数据服务器中的一些垃圾数据(例如一些过期数据),第一数据服务器的水位会快速下降,会有更多的存储空间接收写入的业务数据。同时,第二数据服务器不再参与业务数据的写入,不会造成现有技术中第二数据服务器承担过大的业务数据的写入的问题。业务数据继续写入第一数据服务器,由于第一数据服务器相对于第二数据服务器数量较多,业务数据分散写入到第一数据服务器,第一数据服务器不会使用满网络进行写入,前端用户不会感觉到写入速度变慢,提高了服务的质量。
为了使第一数据服务器与第二数据服务器尽快达到均衡状态,将所述第一数据服务器的部分数据搬迁至第二数据服务器时,使用接近物理极限预设范围的网络写入速度将所述第一数据服务器的部分数据搬迁至第二数据服务器。其中,物理极限的网络写入速度指第二数据服务器所能达到的最大网络写入速度,物理极限的网络写入速度与扩容增加的物理服务器所连接的局域网的带宽有关,比如局域网的带宽为千兆网,则扩容增加的物理服务器物理极限的网络写入速度为125MB/s,所述预设范围,一般设定为物理极限的80%以上,例如,将预设范围设置为90%,则以超过物理极限90%的速度进行搬迁。由于第二数据服务器在搬迁第一数据服务器时的写入流量为背景流量,搬迁动作只是面向服务器端的,第二数据服务器不参与服务业务数据,不会影响到前端的写入速度,因此在进行数据复制时可以用满网络(使用物理极限的网络写入速度)、CPU和磁盘等紧缺的资源,尽快达到第一数据服务器与第二数据服务器数据均衡状态。
为了控制成本,所述第二数据服务器的数量会远小于第一数据服务器的数量,一般第二数据服务器的数量与第一数据服务器的数量之比小于1/10。考虑到第一数据服务器与第二数据服务器尽快达到均衡状态,可以设置第二数据服务器的数量与第一数据服务器的数量之比等于1/10。例如,原有集群中有1000台数据服务器,可以设置第二数据服务器的数量为100台。
如果在扩容前所述第一数据服务器处于均衡状态,为了使第一数据服务器与第二数据服务器尽快达到均衡状态,可以设置每台第二数据服务器对应数量相同或相近的第一数据服务器,一般可以设置每台第二数据服务器对应第一数据服务器数量之差不超过10%。如果每台第二数据服务器所对应的第一数据服务器的数量不等,例如一半第二数据服务器对应的第一数据服务器的数量较多,另一半第二数据服务器对应的第一数据服务器的数量较少,则前者分配给每个对应的第一数据服务器的写入流量就会小,搬迁的速度就会慢,其对应的第一数据服务器的水位就会下降的慢;后者分配给每个对应的第一数据服务器的写入流量就会大,搬迁的速度就会快,其对应的第一数据服务器的水位就下降的快,使得达到平衡状态的时间延长。例如,原有集群中有1000台数据服务器,第二数据服务器为100台,则设置每台新的数据服务器对应数量均为10台。
优选的,如果在扩容前所述第一数据服务器处于均衡状态并且在每台第二数据服务器对应数量相同或相近的第一数据服务器的情况下,在第二数据服务器进行数据搬迁时,为对应同一第二数据服务器的所有第一数据服务器分配的写入流量之差在一定的范围内。一般可将对应同一第二数据服务器的各个第一数据服务器的写入流量之差设置为小于10%。由于在扩容增加数据服务器前,集群中的第一数据服务器处于磁盘空间使用均匀的状态,第一数据服务器的水位会大体相同,因此每台第二数据服务器为其对应的第一数据服务器分配相同或相近的写入流量,就可以尽快匀速降低每个第一数据服务器的水位,使第二数据服务器与第一数据服务器达到数据均衡状态。
在第二数据服务器进行数据搬迁时,可以采用并行的方式进行搬迁,也可以采用串行的方式。所述并行的方式是指一台第二数据服务器同时对其对应的多台已有的数据服务器中的数据进行搬迁;所述串行的方式是指一台第二数据服务器在同一时间只对一台第一数据服务器进行搬迁。当然还可以采用串行、并行结合的方式,即一台第二数据服务器先同时搬迁其对应的部分第一数据服务器中的数据,然后再搬迁其对应的另外几部分第一数据服务器中的数据。
步骤S202,判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,执行步骤S203。
本实施例中,所述判断所述第一数据服务器以及新的数据服务器数据是否达到设定状态,具体为:判断所述第一数据服务器以及第二数据服务器数据是否达到均衡状态。
当所述第一数据服务器以及第二数据服务器数据达到数据均衡状态时,第二数据服务器不再进行搬迁,而是也参与业务数据的写入,新的数据服务器参与业务数据的写入,实现了集群的扩容。
判断所述第一数据服务器以及新的数据服务器数据是否达到均衡状态,可以通过判断第一数据服务器以及第二数据服务器中每一台数据服务器的数据存储水位是否接近来判断,如果比较接近就认为达到了数据均衡状态。在具体实施中,可以判断第一数据服务器以及第二数据服务器的数据存储水位相似度是否大于或等于相似度阈值,若是,则判断为所述第一数据服务器以及新的数据服务器数据达到均衡状态。其中相似度阈值为所有数据服务器中的数据达到均衡状态的最小相似值,例如,可以设置为90%,如果集群中所有数据服务器的水位都在75%-80%之间,则所有数据服务器的存储水位大于相似度阈值90%,判断为所述第一数据服务器以及第二数据服务器数据达到了均衡状态。由于主控数据服务器定期会得到所有数据服务器的汇报,获得每一台数据服务器的空间分布情况,因此主控数据服务器可以进行数据均衡状态的判断。
所述设定状态也可以为上述均衡状态之外的其它状态,例如,可以设置第一数据服务器与第二数据服务器存储水位之差小于设定的阈值。
步骤S203,采用分布式存储方法将业务数据写入所述第一数据服务器及第二数据服务器。
将业务数据采用分布式存储写入所述第一数据服务器以及第二数据服务器。即将业务数据分散或分块后将不同部分存储到不同的数据服务器。
当所述第一数据服务器以及新的数据服务器数据达到数据均衡状态时,第二数据服务器停止搬迁,也参与业务数据的写入。此时业务数据写入所述第一数据服务器以及第二数据服务器(如图4所示),由于第一数据服务器以及第二数据服务器的已经处于数据均衡状态,因此可以设置第二数据服务器的写入流量与第一数据服务器的写入流量之差在预设范围内或相同,一般可以设置各个数据服务器之间的写入流量之差不超过10%,以保证所述数据服务器继续处于数据平衡状态。
至此,通过上述步骤S201-S203,对本实施例提供的对分布式存储***进行扩容的方法的实施方式进行了描述。通过上述描述可以看出,所述方法在集群扩容增加数据服务器时,第二数据服务器不再参与业务数据的写入,不会造成现有技术中新的数据服务器承担过大的前端写入流量,业务数据继续写入第一数据服务器,由于第一数据服务器相对于第二数据服务器数量较多,业务数据分散写入到第一数据服务器,第一数据服务器不会使用满网络进行写入,前端用户不会感觉到写入速度变慢,同时,第二数据服务器全力参与第一数据服务器的数据搬迁,使第二数据服务器与第一数据服务器尽快达到数据均衡状态,当达到数据均衡状态后,第二数据服务器与第一数据服务器都参与业务数据的写入,本方法实现了平滑扩容,提高了服务的质量。
与上述对分布式存储***进行扩容的方法相对应的,本申请还提供了一种对分布式存储***进行扩容的装置。由于所述装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。所述一种对分布式存储***进行扩容的装置实施例如下:
请参考图5,其示出了根据本申请的第二实施例提供的一种对分布式存储***进行扩容的装置的示意图。
所述对分布式存储***进行扩容的装置,包括:写入及搬迁单元501、判断单元502、写入单元503。
写入及搬迁单元501,用于将业务数据写入第一数据服务器并且将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断单元502,用于判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态;
写入单元503,用于当判断单元的输出为是时,采用分布式存储方法将业务数据写入所述第一数据服务器以及第二数据服务器。
可选的,所述搬迁单元,具体用于:
使用接近物理极限预设范围的网络写入速度或物理极限的网络写入速度将所述第一数据服务器的部分数据搬迁至新的数据服务器。
可选的,所述判断单元,具体用于:
判断第一数据服务器以及新的数据服务器数据存储水位的相似度是否大于或等于相似度阈值,若是,则判断为所述第一数据服务器以及新的数据服务器数据达到均衡状态。
可选的,所述装置,包括:
每台新的数据服务器对应的第一数据服务器的数量相同或数量之差在预设范围内。
可选的,所述装置,包括:对应同一新的数据服务器的所有第一数据服务器分配有的写入流量相同或写入流量之差在预设范围内。
可选的,所述扩容,具体用于:当集群中第一数据服务器的水位大于预设水位阈值时进行扩容。
可选的,所述装置包括:
所述新的数据服务器的数量与第一数据服务器的数量之比小于或等于1/10。
可选的,所述预设水位阈值为80至90%。
可选的,所述装置还包括:
保持平衡单元,用于在增加第二数据服务器之前,保持所述已有的数据服务器数据平衡。
可选的,所述保持平衡单元,包括:
上报信息子单元,用于所述第一数据服务器定期把磁盘空间利用信息上报给元数据服务器;
复制数据子单元,用于所述元数据服务器根据获取的磁盘空间利用信息在使用不均匀的数据服务器间复制数据。
可选的,所述搬迁单元,具体用于:
在将所述第一数据服务器的部分数据搬迁至第二数据服务器时,采用并行的方式进行搬迁。
可选的,所述写入单元,具体用于:
以相同的写入流量或以写入流量之差在预设范围内的写入流量将业务数据写入所述第一数据服务器以及新的数据服务器的。
此外,本申请还提供一种计算机可读介质,其上存储有指令,所述指令被执行以用于:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据写入所述第一数据服务器及第二数据服务器。
此外,本申请还提供一种电子设备,其特包括:处理器和存储器,
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,采用分布式存储将业务数据写入所述第一数据服务器及第二数据服务器。
此外,本申请还提供一种用于对分布式存储***进行扩容的方法,包括:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断所述第一数据服务器和/或第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据业写入所述第一数据服务器和/或第二数据服务器。也就是说,若第一数据服务器或第二数据服务器达到设定状态,或者两者同时达到设定状态,可选择采用分布式存储方法将业务数据写入第一数据服务、第二数据服务器、或写入第一数据服务器和第二数据服务器。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (17)
1.一种用于对分布式存储***进行扩容的方法,其特征在于,包括:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据写入所述第一数据服务器及第二数据服务器。
2.根据权利要求1所述的用于对分布式存储***进行扩容的方法,其特征在于,所述将所述第一数据服务器的部分数据搬迁至第二数据服务器,包括:
使用接近物理极限预设范围的网络写入速度或物理极限的网络写入速度将所述第一数据服务器的部分数据搬迁至第二数据服务器。
3.根据权利要求1所述的用于对分布式存储***进行扩容的方法,其特征在于,所述判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,具体为:
判断所述第一数据服务器以及第二数据服务器数据是否达到均衡状态。
4.根据权利要求3所述的用于对分布式存储***进行扩容的方法,其特征在于,所述判断所述第一数据服务器以及第二数据服务器数据是否达到均衡状态,包括:
判断第一数据服务器以及第二数据服务器数据存储水位的相似度是否大于或等于相似度阈值,若是,则判断为所述第一数据服务器以及第二数据服务器数据达到均衡状态。
5.根据权利要求1至4任一所述的用于对分布式存储***进行扩容的方法,其特征在于,所述将所述第一数据服务器的部分数据搬迁至第二数据服务器,包括:
每台第二数据服务器对应的第一数据服务器的数量相同或数量之差在预设范围内。
6.根据权利要求5所述的用于对分布式存储***进行扩容的方法,其特征在于,所述将所述第一数据服务器的部分数据搬迁至第二数据服务器,包括:对应同一第二数据服务器的所有第一数据服务器分配有的写入流量相同或流量之差在预设范围内。
7.根据权利要求1所述的用于对分布式存储***进行扩容的方法,其特征在于,所述将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至第二数据服务器之前,还包括:判断集群中第一数据服务器的水位是否大于预设水位阈值,并在大于时进行扩容。
8.根据权利要求7所述的用于对分布式存储***进行扩容的方法,其特征在于,包括:
第二数据服务器的数量与第一数据服务器的数量之比小于或等于1/10。
9.根据权利要求7所述的用于对分布式存储***进行扩容的方法,其特征在于,所述预设水位阈值范围为80%至90%。
10.根据权利要求1所述的用于对分布式存储***进行扩容的方法,其特征在于,包括:
在扩容增加数据服务器之前,保持所述第一数据服务器的数据均衡。
11.根据权利要求10所述的用于对分布式存储***进行扩容的方法,其特征在于,所述保持所述第一数据服务器的数据平衡,包括:
所述已有的数据服务器定期把磁盘空间利用信息上报给元数据服务器;
所述元数据服务器根据获取的磁盘空间利用信息在使用不均匀的数据服务器间复制数据。
12.根据权利要求1所述的用于对分布式存储***进行扩容的方法,其特征在于,所述将所述第一数据服务器的部分数据搬迁至第二数据服务器,包括:
在将所述第一数据服务器的部分数据搬迁至第二数据服务器时,采用并行的方式进行搬迁。
13.根据权利要求1所述的用于对分布式存储***进行扩容的方法,其特征在于,所述将业务数据写入所述第一数据服务器及新的数据服务器,包括:
以相同的写入流量或以写入流量之差在预设范围内的写入流量将业务数据写入所述第一数据服务器以及新的数据服务器。
14.一种用于对分布式存储***进行扩容的装置,其特征在于,包括:
写入及搬迁单元,用于将业务数据写入第一数据服务器。并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断单元,用于判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态;
写入单元,用于当判断单元的输出为是时,采用分布式存储方法将业务数据写入所述第一数据服务器及第二数据服务器。
15.一种计算机可读介质,其特征在于,其上存储有指令,所述指令被执行以用于:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据写入所述第一数据服务器及第二数据服务器。
16.一种电子设备,其特征在于包括:处理器和存储器,
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断所述第一数据服务器以及第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据写入所述第一数据服务器及第二数据服务器。
17.一种用于对分布式存储***进行扩容的方法,其特征在于,包括:
将业务数据写入第一数据服务器,并将所述第一数据服务器的部分数据搬迁至扩容增加的第二数据服务器;
判断所述第一数据服务器和/或第二数据服务器数据是否达到设定状态,若是,采用分布式存储方法将业务数据业写入所述第一数据服务器和/或第二数据服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710786979.3A CN109426439A (zh) | 2017-09-04 | 2017-09-04 | 对分布式存储***进行扩容的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710786979.3A CN109426439A (zh) | 2017-09-04 | 2017-09-04 | 对分布式存储***进行扩容的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109426439A true CN109426439A (zh) | 2019-03-05 |
Family
ID=65513802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710786979.3A Pending CN109426439A (zh) | 2017-09-04 | 2017-09-04 | 对分布式存储***进行扩容的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109426439A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134332A (zh) * | 2019-04-28 | 2019-08-16 | 平安科技(深圳)有限公司 | 一种数据存储方法及相关装置 |
CN110333824A (zh) * | 2019-06-05 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种存储***的扩容方法和装置 |
CN113419878A (zh) * | 2021-07-02 | 2021-09-21 | 泰康保险集团股份有限公司 | 一种数据操作方法和装置 |
CN115442388A (zh) * | 2022-10-21 | 2022-12-06 | 四川省华存智谷科技有限责任公司 | 用于分布式存储集群利用率100%的扩容方法、装置及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160294949A1 (en) * | 2015-03-31 | 2016-10-06 | International Business Machines Corporation | Modifying storage capacity of a set of storage units |
CN106407308A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库的扩容方法及装置 |
CN106843745A (zh) * | 2015-12-03 | 2017-06-13 | 南京中兴新软件有限责任公司 | 容量扩展方法及装置 |
CN106843755A (zh) * | 2017-01-04 | 2017-06-13 | 北京百度网讯科技有限公司 | 用于服务器集群的数据均衡方法与装置 |
-
2017
- 2017-09-04 CN CN201710786979.3A patent/CN109426439A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160294949A1 (en) * | 2015-03-31 | 2016-10-06 | International Business Machines Corporation | Modifying storage capacity of a set of storage units |
CN106843745A (zh) * | 2015-12-03 | 2017-06-13 | 南京中兴新软件有限责任公司 | 容量扩展方法及装置 |
CN106407308A (zh) * | 2016-08-31 | 2017-02-15 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库的扩容方法及装置 |
CN106843755A (zh) * | 2017-01-04 | 2017-06-13 | 北京百度网讯科技有限公司 | 用于服务器集群的数据均衡方法与装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134332A (zh) * | 2019-04-28 | 2019-08-16 | 平安科技(深圳)有限公司 | 一种数据存储方法及相关装置 |
CN110134332B (zh) * | 2019-04-28 | 2022-03-08 | 平安科技(深圳)有限公司 | 一种数据存储方法及相关装置 |
CN110333824A (zh) * | 2019-06-05 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种存储***的扩容方法和装置 |
CN113419878A (zh) * | 2021-07-02 | 2021-09-21 | 泰康保险集团股份有限公司 | 一种数据操作方法和装置 |
CN113419878B (zh) * | 2021-07-02 | 2024-03-22 | 泰康保险集团股份有限公司 | 一种数据操作方法和装置 |
CN115442388A (zh) * | 2022-10-21 | 2022-12-06 | 四川省华存智谷科技有限责任公司 | 用于分布式存储集群利用率100%的扩容方法、装置及*** |
CN115442388B (zh) * | 2022-10-21 | 2023-01-06 | 四川省华存智谷科技有限责任公司 | 用于分布式存储集群利用率100%的扩容方法、装置及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426439A (zh) | 对分布式存储***进行扩容的方法及装置 | |
CN101957863B (zh) | 数据并行处理方法、装置及*** | |
CN104615606B (zh) | 一种Hadoop分布式文件***及其管理方法 | |
CN104484220B (zh) | 虚拟化集群的动态资源调度的方法及装置 | |
CN102985909B (zh) | 为良好分格的对象提供高扩展性网络存储的方法和设备 | |
CN106843745A (zh) | 容量扩展方法及装置 | |
CN102546782A (zh) | 一种分布式***及其数据操作方法 | |
US20140059559A1 (en) | Intellegent tiering | |
CN106202092A (zh) | 数据处理的方法及*** | |
CN106406987A (zh) | 一种集群中的任务执行方法及装置 | |
CN104142871B (zh) | 用于数据备份的方法、装置和分布式文件*** | |
CN108509157A (zh) | 一种应用于分布式文件***的数据均衡方法及装置 | |
CN109510852B (zh) | 灰度发布的方法及装置 | |
CN108519856B (zh) | 基于异构Hadoop集群环境下的数据块副本放置方法 | |
EP4170491A1 (en) | Resource scheduling method and apparatus, electronic device, and computer-readable storage medium | |
WO2020134364A1 (zh) | 一种虚拟机迁移方法、云计算管理平台和存储介质 | |
CN104869140A (zh) | 多集群***和控制多集群***的数据存储的方法 | |
CN108153776A (zh) | 数据查询方法及装置 | |
CN109918021A (zh) | 数据处理方法和装置 | |
CN106569892A (zh) | 资源调度方法与设备 | |
CN107391039B (zh) | 一种数据对象存储方法和装置 | |
US9563366B2 (en) | Using queues corresponding to attribute values associated with units of work and sub-units of the unit of work to select the units of work and their sub-units to process | |
CN109788013B (zh) | 分布式***中作业资源分配方法、装置及设备 | |
AU2015276830B2 (en) | Dynamic n-dimensional cubes for hosted analytics | |
CN105740091B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190305 |
|
RJ01 | Rejection of invention patent application after publication |