CN106603692A - 一种分布式存储系统中的数据存储方法及装置 - Google Patents

一种分布式存储系统中的数据存储方法及装置 Download PDF

Info

Publication number
CN106603692A
CN106603692A CN201611228605.1A CN201611228605A CN106603692A CN 106603692 A CN106603692 A CN 106603692A CN 201611228605 A CN201611228605 A CN 201611228605A CN 106603692 A CN106603692 A CN 106603692A
Authority
CN
China
Prior art keywords
server
standby
data
master
cluster
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
CN201611228605.1A
Other languages
English (en)
Other versions
CN106603692B (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.)
China Unionpay Co Ltd
Original Assignee
China Unionpay 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 China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201611228605.1A priority Critical patent/CN106603692B/zh
Publication of CN106603692A publication Critical patent/CN106603692A/zh
Application granted granted Critical
Publication of CN106603692B publication Critical patent/CN106603692B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

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

Abstract

本发明涉及数据处理技术领域,公开了一种分布式存储系统中的数据存储方法及装置,包括:主服务器接到数据后,将所述数据存入所述主服务器的缓存中;所述主服务器从预先划分的服务器集群中选出设定数量的服务器作为备服务器并确定各备服务器的写入顺序;所述主服务器将缓存中的所述数据写入本地磁盘,并将所述数据发送给第一备服务器,所述第一备服务器为所述写入顺序中的首个备服务器;所述主服务器在接收到所述第一备服务器发送的写入成功消息后,删除所述缓存中的数据。本发明用以解决现有技术中多副本写磁盘延迟的问题,提高了服务器的响应速度。

Description

一种分布式存储系统中的数据存储方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种分布式存储系统中的数据存储方法及装置。
背景技术
分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
分布是存储系统中,将存入一个服务器的磁盘中的数据称为副本。数据副本通过在不同地点存放数据的多个副本,可以减低远程访问该数据的网络延迟及带宽消耗,还可以提高网络的负载均衡,同时能够提高数据的安全性和可靠性,以及系统的容错性等。
一般来说,很多存储系统默认存储的副本数量为3,这是由于副本数量太少容易产生数据热点问题,即短时间内对少量数据块进行了过于频繁的访问,会对服务器造成较大的压力,延长访问时间,而副本数量太多又会造成存储空间的浪费,因此,在数据投入使用时复制三份该数据的副本进行写入磁盘,之后根据具体情况来创建或撤销副本。
现有技术中,数据存储在服务器的缓存中,需等三个副本均写入成功,才处理缓存中的后续请求,数据处理效率较低。此外,若其中有一个副本写入失败或者没有及时反馈,后续请求需排队等待或暂停执行,甚至超过预定时间后,会认为副本丢失,需要执行数据重传机制,重新进行副本写入。因此会产生多副本写磁盘延迟问题,严重影响到数据处理效率,降低了服务器的响应速度。
发明内容
本发明实施例提供一种分布式存储系统中的数据存储方法及装置,用以解决现有技术中多副本写磁盘延迟的问题,提高了服务器的响应速度。
本发明实施例提供的分布式存储系统中的数据存储方法包括:
主服务器接到数据后,将所述数据存入所述主服务器的缓存中;
所述主服务器从预先划分的服务器集群中选出设定数量的服务器作为备服务器并确定各备服务器的写入顺序;
所述主服务器将缓存中的所述数据写入本地磁盘,并将所述数据发送给第一备服务器,所述第一备服务器为所述写入顺序中的首个备服务器;所述第一备服务器在所述数据写入成功后,按照所述写入顺序将所述数据发送给所述备服务器中的第二备服务器,直至所述各备服务器均写入成功;
所述主服务器在接收到所述第一备服务器发送的写入成功消息后,删除所述缓存中的数据。
可选的,所述主服务器从预先划分的服务器集群中选出设定数量的服务器,包括:
若所述设定数量不小于2,所述主服务器从所述主服务器所在的服务器集群中确定一个备服务器,并从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器;
若所述设定数量等于1,所述主服务器从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器。
可选的,所述主服务器从预先划分的服务器集群中选出设定数量的服务器作为备服务器,包括:
针对一个服务器集群,所述主服务器将所述服务器集群中的服务器进行优先级排序,将所述服务器集群中优先级最高的服务器作为备服务器;
所述主服务器根据所述各备服务器的优先级确定各备服务器的写入顺序。
可选的,所述主服务器根据以下方式将服务器进行优先级排序,包括:
所述主服务器向服务器发送传输控制协议TCP握手请求,并按设定周期发送ping包;
所述主服务器根据TCP握手情况,以及ping包的平均响应时间,将所述服务器进行优先级排序。
可选的,所述第一备服务器在所述数据写入成功后,按照所述写入顺序将所述数据发送给所述备服务器中的第二备服务器,直至所述各备服务器均写入成功,包括:
所述第一备服务器将所述数据存入所述第一备服务器的缓存中;
所述第一备服务器将缓存中的所述数据写入本地磁盘,并向所述第二备服务器发送所述数据;
所述第一备服务器在接收到所述第二备服务器发送的写入成功消息后,删除所述第一备服务器的缓存中的数据。
可选的,还包括:
若所述主服务器确定所述各备服务器中存在写入失败的备服务器,则指定新的备服务器替代所述写入失败的备服务器。
可选的,至少根据以下内容之一将所有服务器划分为服务器集群:
服务器所属的交换机、服务器所在的地理位置、服务器的配置信息、服务器的设备编号。
一种分布式存储系统中的数据存储装置,包括:
缓存单元,用于在主服务器接到数据后,将所述数据存入所述主服务器的缓存中;
选择单元,用于从预先划分的服务器集群中选出设定数量的服务器作为备服务器并确定各备服务器的写入顺序;
写入单元,用于将缓存中的所述数据写入本地磁盘;
收发单元,用于将所述数据发送给第一备服务器,所述第一备服务器为所述写入顺序中的首个备服务器;
所述缓存单元,还用于在接收到所述第一备服务器发送的写入成功消息后,删除所述缓存中的数据。
可选的,所述选择单元,具体用于:
若所述设定数量不小于2,从所述主服务器所在的服务器集群中确定一个备服务器,并从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器;
若所述设定数量等于1,从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器。
可选的,所述选择单元,具体用于:
针对一个服务器集群,将所述服务器集群中的服务器进行优先级排序,将所述服务器集群中优先级最高的服务器作为备服务器;
根据所述各备服务器的优先级确定各备服务器的写入顺序。
可选的,所述选择单元,具体用于向服务器发送传输控制协议TCP握手请求,并按设定周期发送ping包;
所述选择单元,具体用于根据TCP握手情况,以及ping包的平均响应时间,将所述服务器进行优先级排序。
可选的,所述选择单元,还用于:
若确定所述各备服务器中存在写入失败的备服务器,则指定新的备服务器替代所述写入失败的备服务器。
可选的,所述选择单元,用于至少根据以下内容之一将所有服务器划分为服务器集群:
服务器所属的交换机、服务器所在的地理位置、服务器的配置信息、服务器的设备编号。
本发明实施例中,处理数据的主服务器将数据存入缓存中。然后,主服务器从其余的服务器中选出设定数量的服务器作为备服务器,并确定各个备服务器对数据的写入顺序。主服务器将缓存中的数据写入本地磁盘,并复制该数据并发送给第一备服务器,第一备服务器为根据写入顺序确定的第一个写入数据的备服务器。第一备服务器接收到数据后,将数据写入第一备服务器的本地此步,并按照写入顺序,将该数据发送给第二个备服务器,以此类推,直至所有的备服务器将数据写入本地磁盘。同时,第一备服务器将数据写入磁盘成功后,向主服务器发送写入成功消息,主服务器在确定第一备服务器写入成功后,删除缓存中的数据,之后主服务器就可以处理该数据之后的请求,无需等所有备服务器均成功写入数据。因此,本发明实施例中的主服务器可以在接收到第一备服务器成功写入数据后,立刻处理后续的请求,无需等待所有备服务器写入,增加了主服务器处理数据的效率,进而提高了服务器的响应速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例适用的一种系统架构的示意图;
图2为本发明实施例中一种分布式存储系统中的数据存储方法的流程图;
图3为本发明实施例中一种服务器集群的划分示意图;
图4为本发明的具体实施例中服务器集群的划分示意图;
图5为本发明的具体实施例中分布式存储系统中的数据存储方法的流程图;
图6为本发明实施例中一种分布式存储系统中的数据存储装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例所适用的一种系统架构,如图1所示,服务器A至服务器F为分布式存储系统中的多个服务器,服务器之间通过交换机X、交换机Y和交换机Z连接。主服务器101为其中的一个服务器,如服务器A,用于接收处理外部请求,将接收到的数据存入本地磁盘作为主副本。备服务器102为其中的一个或多个服务器,如服务器C和D,是主服务器101从除主服务器之外的其余服务器中选出的服务器,用于接收主服务器发送的数据备份,并将数据存入各自的本地磁盘中,作为备副本。备服务器可在主服务器访问较多或出现故障时,向外部应用提供访问节点,用于分担主服务器的访问压力,并保证整个系统的持续运行。
本发明实施例中的服务器,可支持机器盘、SSD(Solid State Drives,固态硬盘)、PCIE-SSD等存储功能的服务器,通过分布式软件控制服务器,提供对象、块、文件方式存储数据。
需要说明的是,本发明实施例中,主服务器101和备服务器102的区分是为了方便描述。对于不同的数据,同一个服务器执行的步骤和产生的作用不同,对于某些数据,服务器A为主服务器,服务器C和服务器D为备服务器,而对于其它数据,也可以是服务器B为主服务器,服务器F为备服务器。主服务器是根据接收到的请求数据确定,备服务器是主服务根据需求和服务器的运行状态进行确定。
图2示例性示出了本发明实施例提供的一种分布式存储系统中的数据存储方法的流程示意图。
基于前述内容,如图2所示,本发明实施例提供的一种分布式存储系统中的数据存储方法,包括以下步骤:
步骤201、主服务器接到数据后,将所述数据存入所述主服务器的缓存中。
步骤202、所述主服务器从预先划分的服务器集群中选出设定数量的服务器作为备服务器并确定各备服务器的写入顺序。
步骤203、所述主服务器将缓存中的所述数据写入本地磁盘,并将所述数据发送给第一备服务器,所述第一备服务器为所述写入顺序中的首个备服务器;所述第一备服务器在所述数据写入成功后,按照所述写入顺序将所述数据发送给所述备服务器中的第二备服务器,直至所述各备服务器均写入成功。
步骤204、所述主服务器在接收到所述第一备服务器发送的写入成功消息后,删除所述缓存中的数据。
本发明实施例中,处理数据的主服务器将数据存入缓存中。然后,主服务器从其余的服务器中选出设定数量的服务器作为备服务器,并确定各个备服务器对数据的写入顺序。主服务器将缓存中的数据写入本地磁盘,并复制该数据并发送给第一备服务器,第一备服务器为根据写入顺序确定的第一个写入数据的备服务器。第一备服务器接收到数据后,将数据写入第一备服务器的本地此步,并按照写入顺序,将该数据发送给第二个备服务器,以此类推,直至所有的备服务器将数据写入本地磁盘。同时,第一备服务器将数据写入磁盘成功后,向主服务器发送写入成功消息,主服务器在确定第一备服务器写入成功后,删除缓存中的数据,之后主服务器就可以处理该数据之后的请求,无需等所有备服务器均成功写入数据。因此,本发明实施例中的主服务器可以在接收到第一备服务器成功写入数据后,立刻处理后续的请求,无需等待所有备服务器写入,增加了主服务器处理数据的效率,进而提高了服务器的响应速度。
为了保证系统的高可用,本发明实施例将所有支持分布式存储的服务器划分为服务器集群,形成多个服务器集群。这样可以根据服务器所属的服务器集群选择备服务器,保证每个备服务器分布于不同的服务器集群中,从而保证系统的高可用性。
较佳的,至少根据以下内容之一将所有服务器划分为服务器集群:
服务器所属的交换机、服务器所在的地理位置、服务器的配置信息、服务器的设备编号。
例如上述服务器A、服务器B和服务器C属于交换机Y,服务器D、服务器E和服务器F属于交换机Z,则可将服务器A、服务器B和服务器C划分为一个服务器集群,形成服务器集群1;将服务器D、服务器E和服务器F划分为一个服务器集群,形成服务器集群2,如图3所示。若交换机Y之下的某个服务器访问量超出阈值或无法访问,可以将后续的访问请求置于交换机Z之下的服务器。这样,交换机Z可以分担交换机Y的工作压力,而如果无法访问的原因是交换机Y出现故障,对交换机Z之下服务器的访问也可以避免再次访问失败的问题。
与上述理由类似,也可以将服务器根据所处的不同位置划分服务器集群,将位置相近的服务器划分为同一个服务器集群,或者将配置相同或相似的服务器归属于同一个服务器集群。此外,为了方便管理,会将服务器进行编号,因此,也可根据服务器的设备编号将服务器划分集群。
将分布式存储系统中的服务器划分为服务器集群后,主服务器可以依据服务器集群的划分情况,进行备服务器的筛选。上述步骤202,所述主服务器从预先划分的服务器集群中选出设定数量的服务器,包括:
若所述设定数量不小于2,所述主服务器从所述主服务器所在的服务器集群中确定一个备服务器,并从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器;
若所述设定数量等于1,所述主服务器从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器。
根据服务器的数量和规模,以及数据存储的需要,会预先决定需要的副本数量,相应的,备服务器的数量即被预先设定。选择的规则为尽量保证备服务器不全在同一个服务器集群中。这样,如果某个备服务器出现故障,可以访问出现故障的备服务器所属的服务器集群之外的服务器集群中的备服务器。
具体来说,若设定数量不小于2,即主服务器需从其余服务器中选出两个或两个以上的备服务器,则主服务器从主服务器所在的服务器集群中确定一个备服务器,并从除主服务器所在的服务器集群之外的服务器集群中确定备服务器。一般来说,会在主服务器所在服务器集群中选择一个服务器作为备服务器。例如,现有的数据存储策略中一般会设置3个副本,即主服务器的磁盘中存储一份数据作为主副本,再另外选择两个服务器作为备服务器,磁盘中各存储一份数据作为备副本。若服务器集群如图3的形式划分,其中服务器A为主服务器,则服务器A需从服务器集群1中选择一个服务器作为备服务器,即将服务器B或服务器C作为一个备服务器;此外,从服务器集群2中选择一个服务器作为备服务器,即从服务器D、服务器E和服务器F中选择一个作为备服务器。这样,如果主服务器出现故障,则可以使外部应用访问服务器集群2中的备服务器,如服务器D。
若设定数量为1,即主服务器从其余服务器中选出一个备服务器,则主服务器从主服务器所在的服务器集群之外的服务器集群中确定备服务器。以图3为例,其中服务器A为主服务,若服务器A需选择一个备服务器,则服务器A从服务器集群2中选择一个服务器作为备服务器,即从服务器D、服务器E和服务器F中选择一个作为备服务器。
此外,若服务器集群的数量小于备服务器的数量,可以有服务器集群中包括两个或两个以上的备服务器;或者,若服务器集群的数量大于备服务器的数量,则有部分服务器集群中没有备服务器。
具体的选择规则,需要主服务器将所有服务器进行优先级排序。主服务器可以根据以下方式将服务器进行优先级排序,包括:
所述主服务器向服务器发送TCP(Transmission Control Protocol,传输控制协议)握手请求,并按设定周期发送ping(Packet Internet Groper,因特网包探索器)包;
所述主服务器根据TCP握手情况,以及ping包的平均响应时间,将所述服务器进行优先级排序。
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,通过三次握手建立连接。主动方发出SYN(synchronous,握手信号)连接请求后,等待对方回答SYN+ACK(Acknowledgement,确认字符),并最后对对方的SYN执行ACK确认。主服务器向其余所有的备服务器发送SYN,若三次握手建立成功,则该服务器可以作为备服务器,若三次握手未建立成功,则不将该服务器作为备服务器。即,只有与主服务器的TCP三次握手成功,才有作为备服务器备选的资格。
ping就是对一个服务器发送测试数据包,看对方是否有响应并统计响应时间,以此测试网络。因此,主服务器向所有服务器周期性地发送ping包,统计所有服务器的ping包响应时间,根据每个服务器ping包的平均响应时间或最慢响应时间,将服务器进行优先级排序。显然,服务器ping包的平均响应时间越短,则该服务器优先级越高;特殊的,若某个服务器的ping包丢失,则该服务器不作为备服务器。
主服务器将所有服务器的优先级排序后,根据优先级进行备服务器的选择。所述主服务器从预先划分的服务器集群中选出设定数量的服务器作为备服务器,包括:
针对一个服务器集群,所述主服务器将所述服务器集群中的服务器进行优先级排序,将所述服务器集群中优先级最高的服务器作为备服务器;
所述主服务器根据所述各备服务器的优先级确定各备服务器的写入顺序。
仍以图3为例,针对服务器集群1和服务器集群2,主服务器将服务器集群1中的服务器进行优先级排序,并将服务器集群2中的服务器进行优先级排序。若在服务器集群1中,除主服务器外,优先级最高的服务器为服务器C,则将服务器C作为备服务器。在服务器集群2中,优先级最高的服务器为服务器D,则将服务器D作为备服务器。选择了备服务器之后,主服务器也根据优先级确定各备服务器的写入顺序,优先级越高的备服务器写入顺序越靠前。例如上述服务器C和服务器D,一般来说服务器C的ping包响应时间会短于服务器D的ping包响应时间,因此,服务器C的优先级高于服务器D的优先级,则将服务器D作为第一个写入的备服务器,服务器D作为第二个写入的备服务器。
本发明实施例中,所述第一备服务器在所述数据写入成功后,按照所述写入顺序将所述数据发送给所述备服务器中的第二备服务器,直至所述各备服务器均写入成功,包括:
所述第一备服务器将所述数据存入所述第一备服务器的缓存中;
所述第一备服务器将缓存中的所述数据写入本地磁盘,并向所述第二备服务器发送所述数据;
所述第一备服务器在接收到所述第二备服务器发送的写入成功消息后,删除所述第一备服务器的缓存中的数据。
本发明实施例中,主服务器将数据暂存在缓存中,在成功写入数据,并接收到第一备服务器反馈的写入成功消息后,删除缓存中的数据。同样的,第一备服务器在接收到主服务器发送的数据后,也将数据暂存在缓存中。第一备服务器将数据写入磁盘,将数据复制后向第二备服务器发送,并在接到第二备服务器发送的写入成功消息后,删除缓存中的数据。第二备服务器及之后的备服务器也执行与之前的备服务器相同的步骤,直至所有备服务器中均成功写入该数据。
上述备服务器将数据写入磁盘,也会出现写入失败的情况,因此,本发明实施例还包括:
若所述主服务器确定所述各备服务器中存在写入失败的备服务器,则指定新的备服务器替代所述写入失败的备服务器。
即,若某个备服务器写入数据失败,则该备服务器向发送数据给它的服务器上报写入失败消息,并将写入失败消息层层上报直至主服务器。主服务器则从其余的服务器中另外选择一个服务器作为新的备服务器,并指定该新的备服务器替代写入失败的备服务器。例如,若图3中的备服务器D写入数据失败,则备服务器D上报写入失败消息给备服务器C,备服务器C保留缓存中的数据,并上报给主服务器A。主服务器重新选择服务器F作为备服务器,并发送消息通知备服务C。备服务器C收到消息后,重新发送数据给新的备服务器F,当接收到备服务器F的写入成功消息后,再将缓存中的数据删除。
为了更清楚地理解本发明,下面以具体的实施例对上述流程进行详细描述,该具体的实施例中,包括服务器G至服务器N,服务器之间通过交换机连接(交换机在图中未画出)。如图4所示,服务器G、服务器H和服务器I属于服务器集群3,服务器J和服务器K属于服务器集群4,服务器L、服务器M和服务器N属于服务器集群5,其中服务器H为主服务器。
具体实施例中分布式存储系统中的数据存储方法的步骤如下图5所示,包括:
步骤501、主服务器H接收到数据后,将数据存入缓存中。
步骤502、主服务器H向其余各服务器发送TCP握手请求,并按设定周期发送ping包。
步骤503、主服务器H根据TCP握手情况和ping包的响应时间将其余各服务器进行优先级排序。
步骤504、主服务器H从其余各服务器中选出2个服务器作为备服务器。根据优先级排序,由于服务器集群3中,服务器I的优先级较高;服务器集群4中,服务器J的优先级较高;服务器集群5中,服务器M的优先级最高;同时,服务器I、服务器J和服务器M中,服务器I和服务器M的优先级比服务器J的优先级高,因此将服务器I和服务器M作为备服务器。
步骤505、主服务器H将数据写入本地磁盘,并将数据发送给服务器I。
步骤506、服务器I接收到数据后,将数据存在缓存中,将缓存中的数据写入本地磁盘,向服务器M发送数据,并在数据写入成功后向主服务器H发送写入成功消息。
步骤507、主服务器H在接收到服务器I发送的写入成功消息后,删除缓存中的数据。
步骤508、服务器M接收到数据后,将数据写入磁盘,并在写入成功后向服务器I发送写入成功消息。
步骤509、服务器I接收到服务M发送的写入成功消息后,删除缓存中的数据。
基于相同的技术构思,本发明实施例还提供一种分布式存储系统中的数据存储装置,如图6所示,包括:
缓存单元601,用于在主服务器接到数据后,将所述数据存入所述主服务器的缓存中;
选择单元602,用于从预先划分的服务器集群中选出设定数量的服务器作为备服务器并确定各备服务器的写入顺序;
写入单元603,用于将缓存中的所述数据写入本地磁盘;
收发单元604,用于将所述数据发送给第一备服务器,所述第一备服务器为所述写入顺序中的首个备服务器;
所述缓存单元601,还用于在接收到所述第一备服务器发送的写入成功消息后,删除所述缓存中的数据。
可选的,所述选择单元602,具体用于:
若所述设定数量不小于2,从所述主服务器所在的服务器集群中确定一个备服务器,并从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器;
若所述设定数量等于1,从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器。
可选的,所述选择单元602,具体用于:
针对一个服务器集群,将所述服务器集群中的服务器进行优先级排序,将所述服务器集群中优先级最高的服务器作为备服务器;
根据所述各备服务器的优先级确定各备服务器的写入顺序。
可选的,所述收发单元604,具体用于向服务器发送传输控制协议TCP握手请求,并按设定周期发送ping包;
所述选择单元602,具体用于根据TCP握手情况,以及ping包的平均响应时间,将所述服务器进行优先级排序。
可选的,所述选择单元602,还用于:
若确定所述各备服务器中存在写入失败的备服务器,则指定新的备服务器替代所述写入失败的备服务器。
可选的,所述选择单元,用于至少根据以下内容之一将所有服务器划分为服务器集群:
服务器所属的交换机、服务器所在的地理位置、服务器的配置信息、服务器的设备编号。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种分布式存储系统中的数据存储方法,其特征在于,包括:
主服务器接到数据后,将所述数据存入所述主服务器的缓存中;
所述主服务器从预先划分的服务器集群中选出设定数量的服务器作为备服务器并确定各备服务器的写入顺序;
所述主服务器将缓存中的所述数据写入本地磁盘,并将所述数据发送给第一备服务器,所述第一备服务器为所述写入顺序中的首个备服务器;所述第一备服务器在所述数据写入成功后,按照所述写入顺序将所述数据发送给所述备服务器中的第二备服务器,直至所述各备服务器均写入成功;
所述主服务器在接收到所述第一备服务器发送的写入成功消息后,删除所述缓存中的数据。
2.如权利要求1所述的方法,其特征在于,所述主服务器从预先划分的服务器集群中选出设定数量的服务器,包括:
若所述设定数量不小于2,所述主服务器从所述主服务器所在的服务器集群中确定一个备服务器,并从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器;
若所述设定数量等于1,所述主服务器从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器。
3.如权利要求1所述的方法,其特征在于,所述主服务器从预先划分的服务器集群中选出设定数量的服务器作为备服务器,包括:
针对一个服务器集群,所述主服务器将所述服务器集群中的服务器进行优先级排序,将所述服务器集群中优先级最高的服务器作为备服务器;
所述主服务器根据所述各备服务器的优先级确定各备服务器的写入顺序。
4.如权利要求3所述的方法,其特征在于,所述主服务器根据以下方式将服务器进行优先级排序,包括:
所述主服务器向服务器发送传输控制协议TCP握手请求,并按设定周期发送ping包;
所述主服务器根据TCP握手情况,以及ping包的平均响应时间,将所述服务器进行优先级排序。
5.如权利要求1所述的方法,其特征在于,所述第一备服务器在所述数据写入成功后,按照所述写入顺序将所述数据发送给所述备服务器中的第二备服务器,直至所述各备服务器均写入成功,包括:
所述第一备服务器将所述数据存入所述第一备服务器的缓存中;
所述第一备服务器将缓存中的所述数据写入本地磁盘,并向所述第二备服务器发送所述数据;
所述第一备服务器在接收到所述第二备服务器发送的写入成功消息后,删除所述第一备服务器的缓存中的数据。
6.如权利要求1所述的方法,其特征在于,还包括:
若所述主服务器确定所述各备服务器中存在写入失败的备服务器,则指定新的备服务器替代所述写入失败的备服务器。
7.如权利要求1至6任一项所述的方法,其特征在于,至少根据以下内容之一将所有服务器划分为服务器集群:
服务器所属的交换机、服务器所在的地理位置、服务器的配置信息、服务器的设备编号。
8.一种分布式存储系统中的数据存储装置,其特征在于,包括:
缓存单元,用于在主服务器接到数据后,将所述数据存入所述主服务器的缓存中;
选择单元,用于从预先划分的服务器集群中选出设定数量的服务器作为备服务器并确定各备服务器的写入顺序;
写入单元,用于将缓存中的所述数据写入本地磁盘;
收发单元,用于将所述数据发送给第一备服务器,所述第一备服务器为所述写入顺序中的首个备服务器;
所述缓存单元,还用于在接收到所述第一备服务器发送的写入成功消息后,删除所述缓存中的数据。
9.如权利要求8所述的装置,其特征在于,所述选择单元,具体用于:
若所述设定数量不小于2,从所述主服务器所在的服务器集群中确定一个备服务器,并从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器;
若所述设定数量等于1,从除所述主服务器所在的服务器集群之外的服务器集群中确定备服务器。
10.如权利要求8所述的装置,其特征在于,所述选择单元,具体用于:
针对一个服务器集群,将所述服务器集群中的服务器进行优先级排序,将所述服务器集群中优先级最高的服务器作为备服务器;
根据所述各备服务器的优先级确定各备服务器的写入顺序。
11.如权利要求10所述的装置,其特征在于,
所述选择单元,具体用于向服务器发送传输控制协议TCP握手请求,并按设定周期发送ping包;
所述选择单元,具体用于根据TCP握手情况,以及ping包的平均响应时间,将所述服务器进行优先级排序。
12.如权利要求8所述的装置,其特征在于,所述选择单元,还用于:
若确定所述各备服务器中存在写入失败的备服务器,则指定新的备服务器替代所述写入失败的备服务器。
13.如权利要求8至12任一项所述的装置,其特征在于,所述选择单元,用于至少根据以下内容之一将所有服务器划分为服务器集群:
服务器所属的交换机、服务器所在的地理位置、服务器的配置信息、服务器的设备编号。
CN201611228605.1A 2016-12-27 2016-12-27 一种分布式存储系统中的数据存储方法及装置 Active CN106603692B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611228605.1A CN106603692B (zh) 2016-12-27 2016-12-27 一种分布式存储系统中的数据存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611228605.1A CN106603692B (zh) 2016-12-27 2016-12-27 一种分布式存储系统中的数据存储方法及装置

Publications (2)

Publication Number Publication Date
CN106603692A true CN106603692A (zh) 2017-04-26
CN106603692B CN106603692B (zh) 2020-12-01

Family

ID=58604448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611228605.1A Active CN106603692B (zh) 2016-12-27 2016-12-27 一种分布式存储系统中的数据存储方法及装置

Country Status (1)

Country Link
CN (1) CN106603692B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107104841A (zh) * 2017-05-22 2017-08-29 深信服科技股份有限公司 一种集群高可用交付方法及系统
CN109151079A (zh) * 2018-10-31 2019-01-04 珠海迈科智能科技股份有限公司 跨区域服务器资源注入方法、访问方法及传输系统
CN110337633A (zh) * 2017-06-30 2019-10-15 华为技术有限公司 一种数据存储方法及设备
CN111104069A (zh) * 2019-12-20 2020-05-05 北京金山云网络技术有限公司 分布式存储系统的多区域数据处理方法、装置及电子设备
CN111198783A (zh) * 2018-11-16 2020-05-26 阿里巴巴集团控股有限公司 数据存取方法、装置、系统、设备及存储介质
CN112395139A (zh) * 2021-01-13 2021-02-23 武汉思普崚技术有限公司 一种实现高可用部署报文信息同步上报方法及系统
CN115361270A (zh) * 2022-08-19 2022-11-18 济南浪潮数据技术有限公司 一种存储集群访问ad域的方法、装置及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067433A (zh) * 2011-10-24 2013-04-24 阿里巴巴集团控股有限公司 一种分布式存储系统的数据迁移方法、设备和系统
WO2014039210A1 (en) * 2012-09-04 2014-03-13 Mireplica Technology, Llc Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets
CN105302676A (zh) * 2014-07-28 2016-02-03 浙江大华技术股份有限公司 一种分布式文件系统的主备机制数据传输方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067433A (zh) * 2011-10-24 2013-04-24 阿里巴巴集团控股有限公司 一种分布式存储系统的数据迁移方法、设备和系统
WO2014039210A1 (en) * 2012-09-04 2014-03-13 Mireplica Technology, Llc Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets
CN105302676A (zh) * 2014-07-28 2016-02-03 浙江大华技术股份有限公司 一种分布式文件系统的主备机制数据传输方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107104841A (zh) * 2017-05-22 2017-08-29 深信服科技股份有限公司 一种集群高可用交付方法及系统
CN110337633A (zh) * 2017-06-30 2019-10-15 华为技术有限公司 一种数据存储方法及设备
CN109151079A (zh) * 2018-10-31 2019-01-04 珠海迈科智能科技股份有限公司 跨区域服务器资源注入方法、访问方法及传输系统
CN111198783A (zh) * 2018-11-16 2020-05-26 阿里巴巴集团控股有限公司 数据存取方法、装置、系统、设备及存储介质
CN111198783B (zh) * 2018-11-16 2023-04-07 阿里巴巴集团控股有限公司 数据存取方法、装置、系统、设备及存储介质
CN111104069A (zh) * 2019-12-20 2020-05-05 北京金山云网络技术有限公司 分布式存储系统的多区域数据处理方法、装置及电子设备
CN111104069B (zh) * 2019-12-20 2024-02-06 北京金山云网络技术有限公司 分布式存储系统的多区域数据处理方法、装置及电子设备
CN112395139A (zh) * 2021-01-13 2021-02-23 武汉思普崚技术有限公司 一种实现高可用部署报文信息同步上报方法及系统
CN115361270A (zh) * 2022-08-19 2022-11-18 济南浪潮数据技术有限公司 一种存储集群访问ad域的方法、装置及介质

Also Published As

Publication number Publication date
CN106603692B (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
CN106603692A (zh) 一种分布式存储系统中的数据存储方法及装置
CN105549904B (zh) 一种应用于存储系统中的数据迁移方法及存储设备
US20200358848A1 (en) Methods, systems, and media for providing distributed database access during a network split
CN103763383B (zh) 一体化云存储系统及其存储方法
US20200241613A1 (en) Persistent reservations for virtual disk using multiple targets
CN101370030B (zh) 基于内容复制的资源负载平衡方法
JP5427630B2 (ja) 動的ページ再割当てストレージシステムにおけるアプリケーション及び階層構成の管理
US8452819B1 (en) Methods and apparatus for optimizing resource utilization in distributed storage systems
JP5124551B2 (ja) ボリューム割り当てを管理する計算機システム及びボリューム割り当て管理方法
CN108183961A (zh) 一种基于Redis的分布式缓存方法
EP2824893B1 (en) Data storage method and device
CN103324533B (zh) 分布式数据处理方法、装置及系统
CN107885612A (zh) 数据处理方法和系统及装置
US20220179585A1 (en) Management of Idle Time Compute Tasks in Storage Systems
WO2014162586A1 (ja) ストレージシステムおよびストレージシステム制御方法
CN104811473B (zh) 一种创建虚拟非易失性存储介质的方法、系统及管理系统
CN103312624A (zh) 一种消息队列服务系统和方法
CN100530069C (zh) 一种非同质存储设备的虚拟化系统及方法
JP2007094755A (ja) 記憶システムにおけるリモートコピー制御
US10877684B2 (en) Changing a distributed storage volume from non-replicated to replicated
CN109144972A (zh) 一种数据迁移的方法以及数据节点
CN112148430A (zh) 一种虚拟网络功能的虚拟机在线安全迁移的方法
CN102868727A (zh) 一种实现逻辑卷高可用性的方法
CN105827678A (zh) 一种基于高可用架构下的通信方法和节点
CN114840148B (zh) 在Kubernetes中基于linux内核bcache技术实现磁盘加速的方法

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