CN109257403B - 数据存储方法及设备、分布式存储系统 - Google Patents

数据存储方法及设备、分布式存储系统 Download PDF

Info

Publication number
CN109257403B
CN109257403B CN201710576191.XA CN201710576191A CN109257403B CN 109257403 B CN109257403 B CN 109257403B CN 201710576191 A CN201710576191 A CN 201710576191A CN 109257403 B CN109257403 B CN 109257403B
Authority
CN
China
Prior art keywords
storage
data
metadata
management server
server
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
CN201710576191.XA
Other languages
English (en)
Other versions
CN109257403A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201710576191.XA priority Critical patent/CN109257403B/zh
Publication of CN109257403A publication Critical patent/CN109257403A/zh
Application granted granted Critical
Publication of CN109257403B publication Critical patent/CN109257403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable

Landscapes

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

Abstract

本申请公开了一种数据存储方法及设备、分布式存储系统,属于通信技术领域。该方法包括:管理服务器向ESS同步多个存储服务器的属性信息;ESS在监测到管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息;ESS根据存储请求消息以及多个存储服务器的属性信息,确定用于存储终端中数据的第一存储服务器,并基于第一虚拟网络地址向终端发送存储响应消息;第一存储服务器接收终端发送的包括写入数据的写入请求消息,并存储写入数据。本申请解决了数据存储的可靠性较低的问题,提高了数据存储的可靠性。

Description

数据存储方法及设备、分布式存储系统
技术领域
本申请涉及通信技术领域,特别涉及一种数据存储方法及设备、分布式存储系统。
背景技术
随着网络通信技术的发展,分布式存储系统得到了广泛的应用。分布式存储系统可以包括:管理服务器以及该管理服务器所管理的多个存储服务器。终端能够在分布式存储系统中存储数据。
相关技术中,管理服务器上可以存储有管理服务器所管理的多个存储服务器的信息。当终端需要存储数据时,终端可以向管理服务器发送存储请求消息,使得管理服务器在接收到存储请求消息后,根据该存储请求消息以及管理服务器所管理的多个存储服务器的信息,为终端分配一个用于存储该终端的数据的存储服务器,并将分配的存储服务器的信息发送至终端。终端在接收到分配的存储服务器的信息后,可以根据该分配的存储服务器的信息,向该分配的存储服务器发送待存储数据,以便于存储服务器对接收到的数据进行存储。终端还可以向该分配的存储服务器发送上述待存储数据的元数据,存储服务器在接收到该元数据后,可以将元数据发送至管理服务器,使得管理服务器对元数据进行存储。
由于在分布式存储系统中,管理服务器需要先进行存储服务器的分配,终端才能进行相应的数据存储,但管理服务器出现故障或升级时,其停止工作,终端无法完成数据的存储,因此,数据存储的可靠性较低。
发明内容
为了解决数据存储的可靠性较低的问题,本申请提供了一种数据存储方法及设备、分布式存储系统。所述技术方案如下:
第一方面,提供了一种数据存储方法,用于分布式存储系统,所述分布式存储系统包括:管理服务器、紧急支援服务器ESS以及所述管理服务器所管理的多个存储服务器,所述方法包括:
所述管理服务器向所述ESS同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息;
所述ESS在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态;
所述ESS根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据;
所述第一存储服务器接收所述终端发送的包括写入数据的写入请求消息,并存储所述写入数据。
可选的,所述写入请求消息还包括:所述写入数据的第一元数据,在所述第一存储服务器接收所述终端发送的包括写入数据的写入请求消息之后,所述方法还包括:
所述第一存储服务器向第二虚拟网络地址发送所述写入数据的第二元数据,所述写入数据的第二元数据是基于所述写入数据的第一元数据得到的,所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址;
所述ESS基于所述第二虚拟网络地址获取所述第一存储服务器发送的所述写入数据的第二元数据,并存储所述写入数据的第二元数据。
可选的,在所述ESS存储所述写入数据的第二元数据之后,所述方法还包括:
所述ESS在监测到所述管理服务器处于正常工作状态后,向所述管理服务器发送所述写入数据的第二元数据;
所述管理服务器接收所述ESS发送的所述写入数据的第二元数据,并存储所述写入数据的第二元数据。
可选的,所述管理服务器接收所述写入数据的第二元数据,并存储所述写入数据的第二元数据,包括:
所述管理服务器在由升级状态转换为正常工作状态后,接收所述写入数据的第二元数据;
所述管理服务器监测所述写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
所述管理服务器在监测到所述写入数据的第二元数据与所述升级后的数据存储格式不同时,对所述写入数据的第二元数据进行格式转换,使得格式转换后的所述写入数据的第二元数据的格式与所述升级后的数据存储格式相同;
所述管理服务器存储格式转换后的所述写入数据的第二元数据。
可选的,在所述ESS基于第二虚拟网络地址,获取所述第一存储服务器发送所述写入数据的第二元数据之前,所述方法还包括:
所述第一存储服务器根据所述写入数据的第一元数据以及所述写入数据的存储地址,生成所述写入数据的第二元数据。
第二方面,提供了一种数据存储方法,用于分布式存储系统中的管理服务器,所述分布式存储系统还包括:紧急支援服务器ESS以及所述管理服务器所管理的多个存储服务器,所述方法包括:
向所述ESS同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息。
可选的,在所述向所述ESS同步所述多个存储服务器的属性信息之后,所述方法还包括:
接收所述ESS发送的写入数据的第二元数据,并存储所述写入数据的第二元数据。
可选的,所述接收所述ESS发送的写入数据的第二元数据,并存储所述写入数据的第二元数据,包括:
在由升级状态转换为正常工作状态后,接收所述写入数据的第二元数据;
监测所述写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
在监测到所述写入数据的第二元数据与所述升级后的数据存储格式不同时,对所述写入数据的第二元数据进行格式转换,使得格式转换后的所述写入数据的第二元数据的格式与所述升级后的数据存储格式相同;
存储格式转换后的所述写入数据的第二元数据。
第三方面,提供了一种数据存储方法,用于分布式存储系统中的紧急支援服务器ESS,所述分布式存储系统还包括:管理服务器以及所述管理服务器所管理的多个存储服务器,所述方法包括:
从所述管理服务器上同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息;
在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态;
根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据。
可选的,在所述根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息之后,所述方法还包括:
基于第二虚拟网络地址,获取所述第一存储服务器发送的写入数据的第二元数据,并存储所述写入数据的第二元数据,所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址。
可选的,在所述基于第二虚拟网络地址,获取所述第一存储服务器发送的写入数据的第二元数据,并存储所述写入数据的第二元数据之后,所述方法还包括:
在监测到所述管理服务器处于正常工作状态后,向所述管理服务器发送所述写入数据的第二元数据。
第四方面,提供了一种分布式存储系统,所述分布式存储系统包括:管理服务器、紧急支援服务器ESS以及所述管理服务器所管理的多个存储服务器,
所述管理服务器用于向所述ESS同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息;
所述ESS用于在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态;
所述ESS还用于根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据;
所述第一存储服务器用于接收所述终端发送的包括写入数据的写入请求消息,并存储所述写入数据。
可选的,所述写入请求消息还包括:所述写入数据的第一元数据,
所述第一存储服务器还用于向第二虚拟网络地址发送所述写入数据的第二元数据,所述写入数据的第二元数据是基于所述写入数据的第一元数据得到的,所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址;
所述ESS还用于基于所述第二虚拟网络地址获取所述第一存储服务器发送的所述写入数据的第二元数据,并存储所述写入数据的第二元数据。
可选的,所述ESS还用于在监测到所述管理服务器处于正常工作状态后,向所述管理服务器发送所述写入数据的第二元数据;
所述管理服务器还用于接收所述ESS发送的所述写入数据的第二元数据,并存储所述写入数据的第二元数据。
可选的,所述管理服务器还用于在由升级状态转换为正常工作状态后,接收所述写入数据的第二元数据;
所述管理服务器还用于监测所述写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
所述管理服务器还用于在监测到所述写入数据的第二元数据与所述升级后的数据存储格式不同时,对所述写入数据的第二元数据进行格式转换,使得格式转换后的所述写入数据的第二元数据的格式与所述升级后的数据存储格式相同;
所述管理服务器还用于存储格式转换后的所述写入数据的第二元数据。
可选的,所述第一存储服务器还用于根据所述写入数据的第一元数据以及所述写入数据的存储地址,生成所述写入数据的第二元数据。
第五方面,提供了一种数据存储设备,用于分布式存储系统中的管理服务器,所述分布式存储系统还包括:紧急支援服务器ESS以及所述管理服务器所管理的多个存储服务器,所述数据存储设备包括:
同步模块,用于向所述ESS同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息。
可选的,所述数据存储设备还包括:
接收模块,用于接收所述ESS发送的写入数据的第二元数据,并存储所述写入数据的第二元数据。
可选的,所述接收模块还用于:
在由升级状态转换为正常工作状态后,接收所述写入数据的第二元数据;
监测所述写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
在监测到所述写入数据的第二元数据与所述升级后的数据存储格式不同时,对所述写入数据的第二元数据进行格式转换,使得格式转换后的所述写入数据的第二元数据的格式与所述升级后的数据存储格式相同;
存储格式转换后的所述写入数据的第二元数据。
第六方面,提供了一种数据存储设备,用于分布式存储系统中的紧急支援服务器ESS,所述分布式存储系统还包括:管理服务器以及所述管理服务器所管理的多个存储服务器,所述数据存储设备包括:
同步模块,用于从所述管理服务器上同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息;
第一获取模块,用于在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态;
确定模块,用于根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据。
可选的,所述数据存储设备还包括:
第二获取模块,用于基于第二虚拟网络地址,获取所述第一存储服务器发送写入数据的第二元数据,并存储所述写入数据的第二元数据,所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址。
可选的,所述数据存储设备还包括:
发送模块,用于在监测到所述管理服务器处于正常工作状态后,向所述管理服务器发送所述写入数据的第二元数据。
第七方面,提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现第二方面或第三方面所述的方法。
第八方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第二方面或第三方面所述的方法。
本申请提供的技术方案带来的有益效果是:
由于管理服务器向ESS同步了管理服务器所管理的存储服务器的属性信息,因此,在管理服务器处于故障状态或升级状态时,ESS能够根据管理服务器所管理的至少一个存储服务器的信息,替代管理服务器为终端分配存储服务器,从而使得在管理服务器处于故障状态或升级状态而停止工作时,终端仍然能够在ESS的指示下在存储服务器上进行写入数据的存储,提高了数据存储的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的文件访问方法所涉及的一种通信网络的环境结构示意图;
图2为本发明实施例提供的一种数据存储方法的方法流程图;
图3为本发明实施例提供的另一种数据存储方法的方法流程图;
图4为本发明实施例提供的又一种数据存储方法的方法流程图;
图5为本发明实施例提供的又一种数据存储方法的方法流程图;
图6为本发明实施例提供的一种分布式存储系统的结构示意图;
图7为本发明实施例提供的一种数据存储设备的结构示意图;
图8为本发明实施例提供的另一种数据存储设备的结构示意图;
图9为本发明实施例提供的又一种数据存储设备的结构示意图;
图10为本发明实施例提供的再一种数据存储设备的结构示意图;
图11为本发明另一实施例提供的一种数据存储设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1为本发明实施例提供的文件访问方法所涉及的应用环境的结构示意图,如图1所示,该应用环境包括分布式存储系统0和终端1。分布式存储系统0可以包括:管理服务器01,以及该管理服务器01管理的多个存储服务器02(图1中以管理服务器01共管理3个存储服务器02为例)。
可选的,管理服务器01可以为一个服务器,或者多个服务器组成的服务器集群;管理服务器可以是元数据管理服务器(英文:metadata service;简称:MDS);存储服务器可以是对象存储设备(英文:object storage device;简称:OSD)。管理服务器01可以通过第一虚拟网络地址与终端1进行通信,以及通过第二虚拟网络地址与每个存储服务器02通信。需要说明的是,在图1所示的分布式存储系统中,每个设备均被分配有至少一个虚拟网络地址,示例的,管理服务器01被分配了第一虚拟网络地址和第二虚拟网络地址。终端1可以向第一虚拟网络地址发送数据,被分配有第一虚拟网络地址的管理服务器01可以从第一虚拟网络地址获取终端发送的数据。存储服务器02可以向第二虚拟网络地址发送数据,被分配有第二虚拟网络地址的管理服务器01可以从第二虚拟网络地址获取终端发送的数据。
进一步的,该分布式存储系统0还可以包括:紧急支援服务器(英文:emergencysupport service;简称:ESS)03,该ESS03可以为一个服务器,或者其他设备。管理服务器01与ESS 03建立有通信连接,管理服务器01和ESS 03可以共用上述第一虚拟网络地址和第二虚拟网络地址(也即是ESS 03也被分配了第一虚拟网络地址和第二虚拟网络地址),ESS 03也可以通过该第一虚拟网络地址与终端1进行通信,以及通过第二虚拟网络地址与每个存储服务器02通信。
需要说明的是,本发明实施例中所说的通信连接,可以是通过有线网络或者无线网络建立的通信连接,其中,有线网络可以包括但不限于:通用串行总线(英文:UniversalSerial Bus;简称:USB),无线网络可以包括但不限于:无线保真(英文:WirelessFidelity;简称:WIFI)、蓝牙、红外、紫蜂(英文:Zigbee)、数据等。
在图1所示的应用环境中,管理服务器01上可以存储有管理服务器01管理的存储服务器02的属性信息,以及存储服务器02上存储的数据的元数据。其中,存储服务器02的属性信息能够表征存储服务器02用于数据存储的相关信息,例如:存储服务器的标识、存储服务器已使用的存储容量、存储服务器的剩余存储容量、存储服务器中存储的数据的类型等信息。存储服务器02中存储的数据的元数据为表征该数据的特征的数据,例如,数据的大小、数据的类型以及数据在存储服务器中的存储地址等数据。
示例的,假设管理服务器01管理的多个存储服务器02包括存储服务器A1,则管理服务器01中可以存储有:存储服务器A1的属性信息(包括:存储服务器A1的标识A1、存储服务器A1已使用的存储容量50兆比特、存储服务器A1的剩余存储容量450兆比特、存储服务器A1的最大存储容量500兆比特、存储服务器A1中存储的数据类型为视频类型)。假设存储服务器A1中存储有数据B,则管理服务器01中还可以存储有:数据B的元数据(包括:数据B的大小100千字节、数据B的类型为视频类型以及数据B在存储服务器A1中的存储地址)。
终端1可以通过管理服务器01在存储服务器02上存储数据。示例的,当终端1需要存储数据时,终端1可以向第一虚拟网络地址发送存储请求消息,该存储请求消息可以用于指示终端1需要存储的数据的信息,比如,该存储请求消息可以用于指示终端1需要存储的数据的大小和类型。管理服务器01能够从该第一虚拟网络地址获取存储请求消息,并根据管理服务器01管理的多个存储服务器02的属性信息,以及该存储请求消息所指示的终端1需要存储的数据的信息,为终端1分配一个用于存储终端1中数据的存储服务器02。然后,管理服务器01可以基于第一虚拟网络地址向终端1发送用于指示该存储服务器02的存储响应消息。终端1在接收到该存储响应消息后,可以在该存储响应消息所指示的存储服务器02中存储数据。
例如,终端1发送的存储请求消息用于指示:终端1需要存储的数据的大小为5千字节,以及终端1需要存储的数据的类型为音频类型。则管理服务器01根据其管理的多个存储服务器02的属性信息可以确定:存储服务器A2中存储的数据的类型为音频类型,且存储服务器A2的剩余存储容量大于5千字节,则管理服务01可以向终端1发送用于指示存储服务器A2的存储响应消息,以便于终端1根据该存储响应消息在存储服务器A2中存储数据。
图2为本发明实施例提供的一种数据存储方法的方法流程图,该数据存储方法可以用于如图1所示的分布式存储系统0,如图2所示,该数据存储方法可以包括:
步骤201、管理服务器向ESS同步多个存储服务器的属性信息,该属性信息表征多个存储服务器用于数据存储的相关信息。
在步骤201中,管理服务器可以在处于正常工作状态时,向ESS同步该管理服务器所管理的多个存储服务器的属性信息,从而保证ESS上也存储有这多个存储服务器的属性信息。示例的,管理服务器可以每隔一段时间向ESS发送管理服务器上存储的属性信息;或者,在管理服务器中存储的属性信息发生改变时,管理服务器可以向ESS同步发生改变的属性信息,从而保证ESS上存储的属性信息与管理服务器上存储的属性信息相同。
需要说明的是,由于存储服务器能够存储较多的数据,且管理服务器上会存储每个存储服务器上存储的数据的元数据,因此,通常情况下管理服务器上存储的元数据的数据量远远大于管理服务器上存储的存储服务器的属性信息的数据量。又由于步骤201中管理服务器仅向ESS同步了数据量较小的存储服务器的属性信息,而并未向ESS同步数据量较大的元数据,因此,在步骤201中管理服务器向ESS同步多个存储服务器的属性信息并不需要占用较多的网络资源,且ESS也无需为了存储从管理服务器上同步的属性信息而配置较大的存储空间。实际应用中,ESS可以通过设置有插件的设备实现。
步骤202、ESS在监测到管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,该第一虚拟网络地址为管理服务器与终端通信时所使用的地址,该非正常状态包括故障状态或升级状态。
ESS能够监测管理服务器的状态是否为非正常状态,该非正常状态包括故障状态或升级状态。当ESS监测到管理服务器处于非正常状态时,由于ESS和管理服务器共用第一虚拟网络地址,所以此时ESS可以及时地代替管理服务器来执行相应的动作,例如ESS可以基于第一虚拟网络地址获取终端发送的存储请求消息,该存储请求消息用于指示终端需要存储的数据的信息。
需要说明的是,在ESS监测到管理服务器并不是处于上述非正常状态时,ESS确定管理服务器处于正常工作状态,则ESS会重复执行上述步骤202,直至监测到管理服务器处于非正常状态,再代替管理服务器来执行相应的动作。
步骤203、ESS根据存储请求消息以及多个存储服务器的属性信息,确定用于存储终端中数据的第一存储服务器,并基于第一虚拟网络地址向终端发送存储响应消息,该存储响应消息用于指示终端在第一存储服务器上存储数据。
ESS在获取到该存储请求消息后,可以根据该存储请求消息,以及多个存储服务器的属性信息,为终端分配用于存储终端中数据的第一存储服务器。然后,ESS可以通过第一虚拟网络地址向终端发送存储响应消息,以指示终端在第一存储服务器上存储数据。
步骤204、第一存储服务器接收终端发送的包括写入数据的写入请求消息,并存储写入数据。
终端在接收到存储响应消息后,可以根据该存储响应消息确定可进行数据存储的第一存储服务器,并向该第一存储服务器发送写入请求消息,该写入请求消息可以包括终端需要存储的写入数据。第一存储服务器在接收到终端发送的写入请求消息后,可以从该写入请求消息中提取写入数据,并将该写入数据进行存储,从而实现了在管理服务器处于非正常状态时,终端仍然能够在存储服务器上进行写入数据的存储。相应的,由于ESS的存在,使用终端的用户在前台对管理服务器的非正常状态无感知,从而实现ESS在一些紧急状态下保证用户的感受,避免用户的不良体验。
综上所述,本发明提供的数据存储方法中,由于管理服务器向ESS同步了管理服务器所管理的存储服务器的属性信息,因此,在管理服务器处于故障状态或升级状态时,ESS能够根据管理服务器所管理的至少一个存储服务器的信息,替代管理服务器为终端分配存储服务器,从而使得在管理服务器处于故障状态或升级状态而停止工作时,终端仍然能够在ESS的指示下在存储服务器上进行写入数据的存储,提高了数据存储的可靠性。
本发明实施例的ESS的应用场景可以有多种,例如,ESS只监测管理服务器是否处于升级状态,并基于监测结果进行相应动作的场景,或者,ESS只监测管理服务器是否处于故障状态,并基于监测结果进行相应动作的场景,或者,ESS既监测管理服务器是否处于升级状态又监测管理服务器是否处于故障状态,并基于监测结果进行相应动作的场景。在不同的应用场景下,数据存储方法中的步骤也不相同,本发明通过以下三个实施例分别对每种应用场景中,数据存储方法的具体步骤进行解释说明。
图3为本发明实施例提供的另一种数据存储方法的方法流程图,该数据存储方法可以用于如图1所示的分布式存储系统0,假设ESS只监测管理服务器是否处于升级状态,如图3所示,该数据存储方法可以包括:
步骤301、管理服务器向ESS同步管理服务器所管理的多个存储服务器的属性信息。执行步骤302。
步骤301可以参考步骤201中管理服务器向ESS同步存储服务器的属性信息的步骤,本发明实施例在此不做赘述。
步骤302、终端向第一虚拟网络地址发送存储请求消息。执行步骤303。
当终端需要存储数据时,终端可以向第一虚拟网络地址发送存储请求消息。该存储请求消息可以用于指示终端需要存储的数据的信息,比如,该存储请求可以用于指示终端需要存储的数据的大小和类型。
步骤303、ESS在监测到管理服务器处于升级状态时,基于第一虚拟网络地址获取终端发送的存储请求消息。执行步骤304。
ESS监测管理服务器是否处于升级状态有多种实现方式,本发明实施例以以下两种实现方式为例进行说明:
在第一种可实现方式中,ESS可以通过心跳监测机制监测管理服务器是否处于升级状态。
例如,ESS可以定期向管理服务器发送心跳监测消息;若管理服务器处于正常工作状态,则管理服务器可以在接收到心跳监测消息后,向ESS发送心跳回应消息;若ESS在发出心跳监测消息后的预设时间段内接收到管理服务器发送的心跳回应消息,则ESS可以确定此时管理服务器处于正常工作状态;若ESS在发出心跳监测消息后的预设时间段内并没有接收到心跳回应消息,则ESS确定此时管理服务器已经停止工作,并确定ESS处于升级状态。
又例如,管理服务器在处于正常工作状态时,可以定期向ESS发送心跳指示消息,ESS可以监测在每次接收到心跳指示消息后的预设时间段内是否再次接收到心跳指示消息。若ESS在接收到心跳指示消息后的预设时间段内再次接收到心跳指示消息,则ESS可以确定此时管理服务器处于正常工作状态;若ESS在接收到心跳指示消息后的预设时间段内并没有再次接收到心跳指示消息,则ESS确定此时管理服务器已经停止工作,并确定ESS处于升级状态。
在第二种可实现方式中,ESS可以通过监测是否收到管理服务器发送的升级指示消息来监测管理服务器是否处于升级状态。例如,当管理服务器进行升级前,管理服务器可以向ESS发送一个升级指示消息,然后管理服务器可以从分布式存储系统中下线并进行升级。当ESS接收到该升级指示消息后,ESS可以确定此时管理服务器处于升级状态。
在第二种可实现方式中,ESS可以一直保持激活状态,但是为了减少ESS的能耗,在没有接收到升级指示消息的期间ESS可以保持休眠状态,当接收到升级指示消息时ESS再被激活,这样可以有效减少ESS的能耗。进一步的,在第二种可实现方式中,管理服务器在向ESS发送升级指示消息后,ESS能够接收到升级指示消息的可靠性较高,相应的ESS监测管理服务器是否处于升级状态的监测精度较高,因此,实际应用中ESS可以通过上述第二种可实现方式实现对管理服务器是否处于升级状态的监测。
当管理服务器处于升级状态时,管理服务器从图1所示的分布式存储系统中下线,并进行管理服务器的系统升级,且管理服务器停止工作,此时,若终端向第一虚拟网络地址发送了存储请求消息,管理服务器无法获取第一虚拟网络地址上的存储请求消息,显然,此时管理服务器也无法指示终端在存储服务器上存储数据。当ESS监测到管理服务器处于升级状态时,ESS可以从第一虚拟网络获取终端发送的存储请求消息,进而指示终端在存储服务器上存储数据。需要说明的是,当管理服务器处于正常工作状态时,ESS除了监测管理服务器是否处于升级状态之外,不进行其他动作。
步骤304、ESS根据存储请求消息以及多个存储服务器的属性信息,确定用于存储终端中数据的第一存储服务器。执行步骤305。
ESS在获取到存储请求消息后,可以根据该存储请求消息,确定终端需要存储的数据的信息,进而基于该信息以及多个存储服务器的属性信息,在管理服务器所管理的多个存储服务器中选择用于存储终端中的数据的第一存储服务器。ESS在管理服务器所管理的多个存储服务器中选择用于存储终端中的数据的第一存储服务器的步骤,可以参考管理服务器在所管理的多个存储服务器中选择用于存储终端中数据的存储服务器的步骤,本发明实施例在此不作赘述。
步骤305、ESS基于第一虚拟网络地址向终端发送存储响应消息。执行步骤306。
ESS在管理服务器所管理的多个存储服务器中确定第一存储服务器后,可以基于第一虚拟网络地址向终端发送存储响应消息,该存储响应消息可以用于指示终端在第一存储服务器上存储数据。示例的,存储响应消息可以包括第一存储服务器的标识。
步骤306、终端根据存储响应消息,向第一存储服务器发送写入请求消息,该写入请求消息包括:写入数据以及写入数据的第一元数据。执行步骤307。
终端在接收到ESS发送的存储响应消息后,可以根据该存储响应消息确定第一存储服务器,并确定此时终端可以在第一存储服务器上存储数据。然后,终端可以根据需要存储的写入数据以及该写入数据的第一元数据生成写入请求消息,并将包括该写入数据以及该写入数据的第一元数据的写入请求消息发送至第一存储服务器。
示例的,假设终端待存储的写入数据为数据C,数据C的第一元数据可以包括:数据C的大小87千字节以及数据C的类型为语音类型。此时,该写入请求消息可以包括:数据C、数据C的大小87千字节以及数据C的类型为语音类型。
步骤307、第一存储服务器存储写入请求消息中的写入数据。执行步骤308。
第一存储服务器在接收到终端发送的写入请求消息后,可以对该写入请求消息进行解析,以得到写入数据以及该写入数据的第一元数据,并将该写入数据进行存储,从而将终端需要存储的写入数据存储在第一存储服务器上。
步骤308、第一存储服务器基于写入请求消息中的写入数据的第一元数据,得到写入数据的第二元数据。执行步骤309。
由于写入数据在存储之后,其数据特征会发生更新,则相应的元数据也需要更新,因此第一存储服务器需要进行元数据的更新操作。示例的,第一存储服务器在得到写入数据的第一元数据后,可以根据步骤307中在存储写入数据时的存储地址,生成写入数据的第二元数据。
例如,数据C(写入数据)的第一元数据可以包括:数据C的大小87千字节以及数据C的类型为语音类型,则ESS生成的数据C的第二元数据可以包括:数据C的大小87千字节、数据C的类型为语音类型以及数据C在第一存储服务器中的存储地址。
步骤309、第一存储服务器向第二虚拟网络地址发送写入数据的第二元数据。执行步骤310。
第一存储服务器在得到写入数据的第二元数据后,第一存储服务器可以向第二虚拟网络地址发送该写入数据的第二元数据,以便于ESS可以基于该第二虚拟网络地址,获取第一存储服务器发送的写入数据的第二元数据。
步骤310、ESS基于第二虚拟网络地址获取第一存储服务器发送的写入数据的第二元数据。执行步骤311。
步骤311、ESS将写入数据的第二元数据进行存储。执行步骤312。
ESS在获取到写入数据的第二元数据后,可以将写入数据的第二元数据进行存储。需要说明的是,ESS在存储该第二元数据时,并不会对第二元数据的格式进行改变,也即是,ESS上存储的第二元数据的格式与第一存储服务器生成的第二元数据的格式相同。
基于步骤311的过程可知,在管理服务器升级的过程中,ESS代替管理服务器存储了终端写入数据的元数据,相应的,ESS还可以基于该元数据指示终端进行数据访问。例如,若终端需要访问在管理服务器升级的过程中所存储的数据,则终端可以向ESS发送数据访问请求消息,ESS可以根据该数据访问请求消息,以及ESS上存储的元数据,确定终端当前需要访问的数据所在的存储服务器以及该数据在该存储服务器中的存储地址,进而指示终端在该存储服务器上的该存储地址访问数据。
步骤312、ESS在监测到管理服务器从升级状态转变为正常工作状态后,向管理服务器发送写入数据的第二元数据。执行步骤313。
当ESS监测到管理服务器从升级状态转变为正常工作状态后,ESS可以将在管理服务器升级过程中,ESS上存储的元数据(如写入数据的第二元数据)均发送至管理服务器。管理服务器在获取了该第二元数据之后,当有终端需要访问第二元数据所对应的写入数据时,管理服务器能够根据该第二元数据指示终端访问该第二元数据对应的写入数据。
可选的,在ESS将ESS上存储的所有第二元数据均发送至管理服务器后,ESS可以将存储的所有第二元数据进行删除。
步骤313、管理服务器监测写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同。若写入数据的第二元数据的格式与预设的升级后的数据存储格式不同,则执行步骤314;若写入数据的第二元数据的格式与预设的升级后的数据存储格式相同,则执行步骤315。
需要说明的是,由于管理服务器进行了升级,其支持的数据存储格式通常会更新,升级后的格式是根据具体的升级场景预先设置的,也即是,在管理服务器升级前后,管理服务器中支持的数据存储格式发生了改变。而在图1所示的分布式存储系统中,存储服务器也可以进行升级,在某一存储服务器需要进行升级时,可以将存储服务器从该分布式存储系统中下线,并对下线的存储服务器进行升级,在对该存储服务器升级完毕后,可以将升级后的存储服务器再次加入该分布式存储系统。但是,存储服务器是否经过升级,管理服务器可能无法监测,因此,可能存在存储服务器与管理服务器的数据存储格式不匹配的情况。
为了避免管理服务器存储了其不支持的数据存储格式的数据,在管理服务器从升级状态转变为正常工作状态后,需要对接收到的存储服务器发送的数据进行格式监测,由于第二元数据是存储服务器生成的,ESS只是进行了数据的透传,因此,管理服务器在接收到ESS发送的写入数据的第二元数据后,需要监测该写入数据的第二元数据是否与预设的升级后的数据存储格式相同。
步骤314、管理服务器对写入数据的第二元数据进行格式转换,使得格式转换后的写入数据的第二元数据的格式与升级后的数据存储格式相同。执行步骤315。
本发明实施例中的管理服务器具有转换数据服务(英文:translate dataservice;简称:TDS)的功能。若管理服务器监测到ESS发送的写入数据的第二元数据与管理服务器中预设的升级后的数据存储格式不同,则管理服务器需要对该写入数据的第二元数据进行格式转换,以使得转换后的写入数据的第二元数据的格式与预设的升级后的数据存储格式相同。
步骤315、管理服务器存储格式与预设的升级后的数据存储格式相同的写入数据的第二元数据。
管理服务器在确定接收到的写入数据的第二元数据的格式与预设的升级后的数据存储格式相同后,或者在确定转换后的写入数据的第二元数据的格式与预设的升级后的数据存储格式相同后,可以将格式与预设的升级后的数据存储格式相同的写入数据的第二元数据进行存储。
本发明实施例中,终端在需要存储数据时,可以向第一虚拟网络地址发送存储请求消息。当管理服务器处于正常工作状态时,管理服务器可以从第一虚拟网络地址获取该存储请求消息,并指示终端在存储服务器上存储数据。当管理服务器处于升级状态时,ESS可以从第一虚拟网络地址获取该存储请求消息,并指示终端在存储服务器上存储数据。
在终端需要访问数据时,可以向第一虚拟网络地址发送访问请求消息。当管理服务器处于正常工作状态时,管理服务器可以从第一虚拟网络地址获取该访问请求消息,并指示终端在存储服务器上访问数据。当管理服务器处于升级状态时,ESS可以从第一虚拟网络地址获取该访问请求消息,若该访问请求消息用于访问在管理服务器处于升级状态时存储的数据,则ESS可以指示终端在存储服务器上访问数据。
也即是,在管理服务器处于正常工作状态时,管理服务器指示终端进行数据的存储和访问,在管理服务器处于升级状态时,ESS可以指示终端进行数据的存储和访问。从而保证了无论管理服务器处于正常工作状态还是升级状态,终端均能够存储数据,以及访问在管理服务器升级过程中存储的数据。
可选的,在步骤308中第一存储服务器得到写入数据的第二元数据后,第一存储服务器也可以不向第二虚拟网络地址发送该写入数据的第二元数据,而是直接将该写入数据的第二元数据进行存储,在ESS监测到管理服务器从升级状态转变为正常工作状态时,ESS可以通过第二虚拟网络地址指示第一存储服务器将存储的写入数据的第二元数据发送至第二虚拟网络地址,以便于管理服务器从该第二虚拟网络地址获取第二元数据,进而执行步骤313以及步骤313之后的步骤。
综上所述,本发明提供的数据存储方法中,由于管理服务器向ESS同步了管理服务器所管理的存储服务器的属性信息,因此,在管理服务器处于升级状态时,ESS能够根据管理服务器所管理的至少一个存储服务器的信息,替代管理服务器为终端分配存储服务器,从而使得在管理服务器处于故障状态或升级状态而停止工作时,终端仍然能够在ESS的指示下在存储服务器上进行写入数据的存储,提高了数据存储的可靠性。
图4为本发明实施例提供的又一种数据存储方法的方法流程图,该数据存储方法可以用于如图1所示的分布式存储系统0,假设ESS只监测管理服务器是否处于故障状态,如图4所示,该数据存储方法可以包括:
步骤401、管理服务器向ESS同步管理服务器所管理的多个存储服务器的属性信息。执行步骤402。
步骤401可以参考步骤201中管理服务器向ESS同步存储服务器的属性信息的步骤,本发明实施例在此不做赘述。
步骤402、终端向第一虚拟网络地址发送存储请求消息。执行步骤403。
步骤402可以参考步骤302中终端向第一虚拟网络地址发送存储请求消息的步骤,本发明实施例在此不做赘述。
步骤403、ESS在监测到管理服务器处于故障状态时,基于第一虚拟网络地址获取终端发送的存储请求消息。执行步骤404。
ESS监测管理服务器是否处于故障状态有多种实现方式,本发明实施例以以其中的一种实现方式为例进行说明。示例的,ESS可以通过心跳监测机制监测管理服务器是否处于故障状态。
例如,ESS可以定期向管理服务器发送心跳监测消息;若管理服务器处于正常工作状态,则管理服务器可以在接收到心跳监测消息后,向ESS发送心跳回应消息;若ESS在发出心跳监测消息后的预设时间段内接收到管理服务器发送的心跳回应消息,则ESS可以确定此时管理服务器处于正常工作状态;若ESS在发出心跳监测消息后的预设时间段内并没有接收到心跳回应消息,则ESS确定此时管理服务器已经停止工作,并确定ESS处于故障状态。
又例如,管理服务器在处于正常工作状态时,可以定期向ESS发送心跳指示消息,ESS可以监测在每次接收到心跳指示消息后的预设时间段内是否再次接收到心跳指示消息。若ESS在接收到心跳指示消息后的预设时间段内再次接收到心跳指示消息,则ESS可以确定此时管理服务器处于正常工作状态;若ESS在接收到心跳指示消息后的预设时间段内并没有再次接收到心跳指示消息,则ESS确定此时管理服务器已经停止工作,并确定ESS处于故障状态。
当管理服务器处于故障状态时,管理服务器停止工作,此时,若终端向第一虚拟网络地址发送了存储请求消息,管理服务器无法获取第一虚拟网络地址上的存储请求消息,显然,此时管理服务器也无法指示终端在存储服务器上存储数据。因此,当ESS监测到管理服务器处于故障状态时,ESS可以从第一虚拟网络获取终端发送的存储请求消息,进而指示终端在存储服务器上存储数据。
步骤404、ESS根据存储请求消息以及多个存储服务器的属性信息,确定用于存储终端中数据的第一存储服务器。执行步骤405。
步骤404可以参考步骤304中ESS确定第一存储服务器的步骤,本发明实施例在此不做赘述。
步骤405、ESS基于第一虚拟网络地址向终端发送存储响应消息。执行步骤406。
步骤405可以参考步骤304中ESS向终端发送存储响应消息的步骤,本发明实施例在此不做赘述。
步骤406、终端根据存储响应消息,向第一存储服务器发送写入请求消息,该写入请求消息包括:写入数据以及写入数据的第一元数据。执行步骤407。
步骤406可以参考步骤306中终端向第一存储服务器发送写入请求消息的步骤,本发明实施例在此不做赘述。
步骤407、第一存储服务器存储写入请求消息中的写入数据。执行步骤408。
步骤407可以参考步骤307中第一存储服务器存储写入数据的步骤,本发明实施例在此不做赘述。
步骤408、第一存储服务器基于写入请求消息中的写入数据的第一元数据,得到写入数据的第二元数据。执行步骤409。
步骤408可以参考步骤308中第一存储服务器得到第二元数据的步骤,本发明实施例在此不做赘述。
步骤409、第一存储服务器向第二虚拟网络地址发送写入数据的第二元数据。执行步骤410。
步骤409可以参考步骤309中第一存储服务器发送第二元数据的步骤,本发明实施例在此不做赘述。
步骤410、ESS基于第二虚拟网络地址获取第一存储服务器发送的写入数据的第二元数据。执行步骤411。
步骤411、ESS将写入数据的第二元数据进行存储。执行步骤412。
步骤411可以参考步骤311中ESS存储第二元数据的步骤,本发明实施例在此不做赘述。
步骤412、ESS在监测到管理服务器从故障状态转变为正常工作状态后,向管理服务器发送写入数据的第二元数据。执行步骤413。
当ESS监测到管理服务器从故障状态转变为正常工作状态后,ESS可以将在管理服务器故障过程中,ESS上存储的元数据(如写入数据的第二元数据)均发送至管理服务器。管理服务器在获取了该第二元数据之后,当有终端需要访问第二元数据所对应的写入数据时,管理服务器能够根据该第二元数据指示终端访问该第二元数据对应的写入数据。
可选的,在ESS将ESS上存储的所有第二元数据均发送至管理服务器后,还可以将存储的所有第二元数据进行删除。
步骤413、管理服务器存储写入数据的第二元数据。
管理服务器在接收到ESS发送的写入数据的第二元数据后,可以将写入数据的第二元数据进行存储。
本发明实施例中,终端在需要存储数据时,可以向第一虚拟网络地址发送存储请求消息。当管理服务器处于正常工作状态时,管理服务器可以从第一虚拟网络地址获取该存储请求消息,并指示终端在存储服务器上存储数据。当管理服务器处于故障状态时,ESS可以从第一虚拟网络地址获取该存储请求消息,并指示终端在存储服务器上存储数据。
在终端需要访问数据时,可以向第一虚拟网络地址发送访问请求消息。当管理服务器处于正常工作状态时,管理服务器可以从第一虚拟网络地址获取该访问请求消息,并指示终端在存储服务器上访问数据。当管理服务器处于故障状态时,ESS可以从第一虚拟网络地址获取该访问请求消息,若该访问请求消息用于访问在管理服务器处于故障状态时存储的数据,则ESS可以指示终端在存储服务器上访问数据。
也即是,在管理服务器处于正常工作状态时,管理服务器指示终端进行数据的存储和访问,在管理服务器处于故障状态时,ESS可以指示终端进行数据的存储和访问。从而保证了无论管理服务器处于正常工作状态还是故障状态,终端均能够存储数据,以及访问在管理服务器故障过程中存储的数据。
可选的,在步骤408中第一存储服务器得到写入数据的第二元数据后,第一存储服务器也可以不向第二虚拟网络地址发送该写入数据的第二元数据,而是直接将该写入数据的第二元数据进行存储,在ESS监测到管理服务器从故障状态转变为正常工作状态时,ESS可以通过第二虚拟网络地址指示第一存储服务器将存储的写入数据的第二元数据发送至第二虚拟网络地址,以便于管理服务器从该第二虚拟网络地址获取第二元数据,并将获取到的写入数据的第二元数据进行存储。
综上所述,本发明提供的数据存储方法中,由于管理服务器向ESS同步了管理服务器所管理的存储服务器的属性信息,因此,在管理服务器处于故障状态时,ESS能够根据管理服务器所管理的至少一个存储服务器的信息,替代管理服务器为终端分配存储服务器,从而使得在管理服务器处于故障状态或升级状态而停止工作时,终端仍然能够在ESS的指示下在存储服务器上进行写入数据的存储,提高了数据存储的可靠性。
图5为本发明实施例提供的再一种数据存储方法的方法流程图,该数据存储方法可以用于如图1所示的分布式存储系统0,假设ESS既监测管理服务器是否处于升级状态又监测管理服务器是否处于故障状态,如图5所示,该数据存储方法可以包括:
步骤501、管理服务器向ESS同步管理服务器所管理的多个存储服务器的属性信息。执行步骤502。
步骤501可以参考步骤201中管理服务器向ESS同步存储服务器的属性信息的步骤,本发明实施例在此不做赘述。
步骤502、终端向第一虚拟网络地址发送存储请求消息。执行步骤503。
步骤502可以参考步骤302中终端发送存储请求消息的步骤,本发明实施例对此不作限定。
步骤503、ESS在监测到管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,该非正常状态包括:故障状态或升级状态。执行步骤504。
ESS监测管理服务器是否处于非正常状态有多种实现方式,本发明实施例以以其中的一种实现方式为例进行说明。示例的,ESS可以通过心跳监测机制监测管理服务器是否处于非正常状态。
例如,ESS可以定期向管理服务器发送心跳监测消息;若管理服务器处于正常工作状态,则管理服务器可以在接收到心跳监测消息后,向ESS发送心跳回应消息;若ESS在发出心跳监测消息后的预设时间段内接收到管理服务器发送的心跳回应消息,则ESS可以确定此时管理服务器处于正常工作状态;若ESS在发出心跳监测消息后的预设时间段内并没有接收到心跳回应消息,则ESS确定此时管理服务器已经停止工作,并确定ESS处于非正常状态。
又例如,管理服务器在处于正常工作状态时,可以定期向ESS发送心跳指示消息,ESS可以监测在每次接收到心跳指示消息后的预设时间段内是否再次接收到心跳指示消息。若ESS在接收到心跳指示消息后的预设时间段内再次接收到心跳指示消息,则ESS可以确定此时管理服务器处于正常工作状态;若ESS在接收到心跳指示消息后的预设时间段内并没有再次接收到心跳指示消息,则ESS确定此时管理服务器已经停止工作,并确定ESS处于非正常状态。
当管理服务器处于非正常状态时,管理服务器停止工作,此时,若终端向第一虚拟网络地址发送了存储请求消息,管理服务器无法获取第一虚拟网络地址上的存储请求消息,显然,此时管理服务器也无法指示终端在存储服务器上存储数据。当ESS监测到管理服务器处于故障状态或升级状态(并非处于正常工作状态)时,ESS可以从第一虚拟网络获取终端发送的存储请求消息,进而指示终端在存储服务器上存储数据。
步骤504、ESS根据存储请求消息以及多个存储服务器的属性信息,确定用于存储终端中数据的第一存储服务器。执行步骤505。
步骤504可以参考步骤304中ESS确定第一存储服务器的步骤,本发明实施例在此不做赘述。
步骤505、ESS基于第一虚拟网络地址向终端发送存储响应消息。执行步骤506。
步骤505可以参考步骤305中ESS向终端发送存储响应消息的步骤,本发明实施例在此不做赘述。
步骤506、终端根据存储响应消息,向第一存储服务器发送写入请求消息,该写入请求消息包括:写入数据以及写入数据的第一元数据。执行步骤507。
步骤506可以参考步骤306中终端向第一存储服务器发送写入请求消息的步骤,本发明实施例在此不做赘述。
步骤507、第一存储服务器存储写入请求消息中的写入数据。执行步骤508。
步骤507可以参考步骤307中第一存储服务器存储写入数据的步骤,本发明实施例在此不做赘述。
步骤508、第一存储服务器基于写入请求消息中的写入数据的第一元数据,得到写入数据的第二元数据。执行步骤509。
步骤508可以参考步骤308中第一存储服务器得到第二元数据的步骤,本发明实施例在此不做赘述。
步骤509、第一存储服务器向第二虚拟网络地址发送写入数据的第二元数据。执行步骤510。
步骤509可以参考步骤309中第一存储服务器发送第二元数据的步骤,本发明实施例在此不做赘述。
步骤510、ESS基于第二虚拟网络地址获取第一存储服务器发送的写入数据的第二元数据。执行步骤511。
步骤511、ESS将写入数据的第二元数据进行存储。执行步骤512。
步骤511可以参考步骤311中ESS存储第二元数据的步骤,本发明实施例在此不做赘述。
步骤512、ESS在监测到管理服务器转变为正常工作状态后,向管理服务器发送写入数据的第二元数据。执行步骤513。
当ESS监测到管理服务器从非正常状态转变为正常工作状态后,ESS可以将在管理服务器停止工作过程中,ESS上存储的元数据(如写入数据的第二元数据)均发送至管理服务器。管理服务器在获取了该第二元数据之后,当有终端需要访问第二元数据所对应的写入数据时,管理服务器能够根据该第二元数据指示终端访问该第二元数据对应的写入数据。
可选的,在ESS将ESS上存储的所有第二元数据均发送至管理服务器后,ESS还可以将存储的所有第二元数据进行删除。
步骤513、若管理服务器进行过至少一次升级,则管理服务器监测写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同。若写入数据的第二元数据的格式与预设的升级后的数据存储格式不同,则执行步骤514;若写入数据的第二元数据的格式与预设的升级后的数据存储格式相同,则执行步骤515。
需要说明的是,管理服务器在升级后,其支持的数据存储格式通常会更新,升级后的格式是根据具体的升级场景预先设置的,也即是,在管理服务器升级前后,管理服务器中支持的数据存储格式发生了改变。而在图1所示的分布式存储系统中,存储服务器也可以进行升级,在某一存储服务器需要进行升级时,可以将存储服务器从该分布式存储系统中下线,并对下线的存储服务器进行升级,在对该存储服务器升级完毕后,可以将升级后的存储服务器再次加入该分布式存储系统。但是,存储服务器是否经过升级,管理服务器可能无法监测,因此,可能存在存储服务器与管理服务器的数据存储格式不匹配的情况。
由于第二元数据是存储服务器生成的,ESS只是进行了数据的透传,因此,在管理服务器从非正常状态转变为正常工作状态前,若管理服务器进行过至少一次升级,则为了避免管理服务器存储了其不支持的数据存储格式的数据,管理服务器在接收到ESS发送的写入数据的第二元数据后,需要监测该写入数据的第二元数据是否与预设的升级后的数据存储格式相同。
需要说明的是,若在管理服务器转变为正常工作状态之前,管理服务器并未进行过升级,则在管理服务器接收到写入数据的第二元数据后,管理服务器可以直接执行步骤515,也即直接将接收到的写入数据的第二元数据进行存储。
步骤514、管理服务器对写入数据的第二元数据进行格式转换,使得格式转换后的写入数据的第二元数据的格式与升级后的数据存储格式相同。执行步骤515。
步骤514可以参考步骤314中管理服务器对第二元数据进行格式转换的步骤,本发明实施例在此不做赘述。
步骤515、管理服务器存储写入数据的第二元数据。
在管理服务器转变为正常工作状态前管理服务器进行过至少一次升级,且管理服务器在确定接收到的写入数据的第二元数据的格式与预设的升级后的数据存储格式相同后,或者,在管理服务器转变为正常工作状态前管理服务器进行过至少一次升级,且管理服务器在确定转换后的写入数据的第二元数据的格式与预设的升级后的数据存储格式相同后,或者,在管理服务器转变为正常工作状态前管理服务器并未进行过升级,则管理服务器可以将写入数据的第二元数据进行存储。
本发明实施例中,终端在需要存储数据时,可以向第一虚拟网络地址发送存储请求消息。当管理服务器处于正常工作状态时,管理服务器可以从第一虚拟网络地址获取该存储请求消息,并指示终端在存储服务器上存储数据。当管理服务器处于非正常状态时,ESS可以从第一虚拟网络地址获取该存储请求消息,并指示终端在存储服务器上存储数据。
在终端需要访问数据时,可以向第一虚拟网络地址发送访问请求消息。当管理服务器处于正常工作状态时,管理服务器可以从第一虚拟网络地址获取该访问请求消息,并指示终端在存储服务器上访问数据。当管理服务器处于非正常状态时,ESS可以从第一虚拟网络地址获取该访问请求消息,若该访问请求消息用于访问在管理服务器处于非正常状态时存储的数据,则ESS可以指示终端在存储服务器上访问数据。
也即是,在管理服务器处于正常工作状态时,管理服务器指示终端进行数据的存储和访问,在管理服务器处于非正常状态时,ESS可以指示终端进行数据的存储和访问。从而保证了无论管理服务器处于正常工作状态还是非正常状态,终端均能够存储数据,以及访问在管理服务器非正常过程中存储的数据。
可选的,在步骤508中第一存储服务器得到写入数据的第二元数据后,第一存储服务器也可以不向第二虚拟网络地址发送该写入数据的第二元数据,而是直接将该写入数据的第二元数据进行存储,在ESS监测到管理服务器从升级状态转变为正常工作状态时,ESS可以通过第二虚拟网络地址指示第一存储服务器将存储的写入数据的第二元数据发送至第二虚拟网络地址,以便于管理服务器从该第二虚拟网络地址获取第二元数据,进而执行步骤513以及步骤513之后的步骤。
综上所述,本发明提供的数据存储方法中,由于管理服务器向ESS同步了管理服务器所管理的存储服务器的属性信息,因此,在管理服务器处于非正常状态时,ESS能够根据管理服务器所管理的至少一个存储服务器的信息,替代管理服务器为终端分配存储服务器,从而使得在管理服务器处于故障状态或升级状态而停止工作时,终端仍然能够在ESS的指示下在存储服务器上进行写入数据的存储,提高了数据存储的可靠性。
需要说明的是,本发明实施例提供的数据存储方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
图6为本发明实施例提供的一种分布式存储系统的结构示意图,如图6所示,该分布式存储系统0可以包括:管理服务器01、ESS 03以及管理服务器01所管理的多个存储服务器02(图6中示出了三个存储服务器02)。
管理服务器01用于向ESS 03同步多个存储服务器02的属性信息,属性信息表征多个存储服务器02用于数据存储的相关信息;
ESS 03用于在监测到管理服务器01处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,第一虚拟网络地址为管理服务器01与终端通信时所使用的地址,非正常状态包括故障状态或升级状态;
ESS 03还用于根据存储请求消息以及多个存储服务器02的属性信息,确定用于存储终端中数据的第一存储服务器02,并基于第一虚拟网络地址向终端发送存储响应消息,存储响应消息用于指示终端在第一存储服务器02上存储数据;
第一存储服务器02用于接收终端发送的包括写入数据的写入请求消息,并存储写入数据。
综上所述,本发明提供的分布式存储系统中,由于管理服务器向ESS同步了管理服务器所管理的存储服务器的属性信息,因此,在管理服务器处于非正常状态时,ESS能够根据管理服务器所管理的至少一个存储服务器的信息,替代管理服务器为终端分配存储服务器,从而使得在管理服务器处于故障状态或升级状态而停止工作时,终端仍然能够在ESS的指示下在存储服务器上进行写入数据的存储,提高了数据存储的可靠性。
可选的,写入请求消息还包括:写入数据的第一元数据,
第一存储服务器02还用于向第二虚拟网络地址发送写入数据的第二元数据,写入数据的第二元数据是基于写入数据的第一元数据得到的,第二虚拟网络地址为管理服务器01与第一存储服务器02通信时所使用的地址;
ESS 03还用于基于第二虚拟网络地址获取第一存储服务器02发送的写入数据的第二元数据,并存储写入数据的第二元数据。
可选的,ESS 03还用于在监测到管理服务器01处于正常工作状态后,向管理服务器01发送写入数据的第二元数据;
管理服务器01还用于接收ESS 03发送的写入数据的第二元数据,并存储写入数据的第二元数据。
可选的,管理服务器01还用于在由升级状态转换为正常工作状态后,接收写入数据的第二元数据;
管理服务器01还用于监测写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
管理服务器01还用于在监测到写入数据的第二元数据与升级后的数据存储格式不同时,对写入数据的第二元数据进行格式转换,使得格式转换后的写入数据的第二元数据的格式与升级后的数据存储格式相同;
管理服务器01还用于存储格式转换后的写入数据的第二元数据。
可选的,第一存储服务器02还用于根据写入数据的第一元数据以及写入数据的存储地址,生成写入数据的第二元数据。
综上所述,本发明提供的分布式存储系统中,由于管理服务器向ESS同步了管理服务器所管理的存储服务器的属性信息,因此,在管理服务器处于非正常状态时,ESS能够根据管理服务器所管理的至少一个存储服务器的信息,替代管理服务器为终端分配存储服务器,从而使得在管理服务器处于故障状态或升级状态而停止工作时,终端仍然能够在ESS的指示下在存储服务器上进行写入数据的存储,提高了数据存储的可靠性。
图7为本发明实施例提供的一种数据存储设备的结构示意图,该数据存储设备可以用于如图1或图6所示的管理服务器,如图7所示,该数据存储设备可以包括:
同步模块011,用于向ESS同步多个存储服务器的属性信息,属性信息表征多个存储服务器用于数据存储的相关信息。
可选的,图8为本发明实施例提供的另一种数据存储设备的结构示意图,如图8所示,在图7的基础上,该数据存储设备还可以包括:
接收模块012,用于接收ESS发送的写入数据的第二元数据,并存储写入数据的第二元数据。
可选的,接收模块012还可以用于:
在由升级状态转换为正常工作状态后,接收写入数据的第二元数据;
监测写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
在监测到写入数据的第二元数据与升级后的数据存储格式不同时,对写入数据的第二元数据进行格式转换,使得格式转换后的写入数据的第二元数据的格式与升级后的数据存储格式相同;
存储格式转换后的写入数据的第二元数据。
综上所述,本发明提供的数据存储设备中,由于同步模块向ESS同步了管理服务器所管理的存储服务器的属性信息,因此,在管理服务器处于非正常状态时,ESS能够根据管理服务器所管理的至少一个存储服务器的信息,替代管理服务器为终端分配存储服务器,从而使得在管理服务器处于故障状态或升级状态而停止工作时,终端仍然能够在ESS的指示下在存储服务器上进行写入数据的存储,提高了数据存储的可靠性。
图9为本发明实施例提供的又一种数据存储设备的结构示意图,该数据存储设备可以用于如图1或图6所示的ESS,如图9所示,该数据存储设备可以包括:
同步模块031,用于从管理服务器上同步多个存储服务器的属性信息,属性信息表征多个存储服务器用于数据存储的相关信息;
第一获取模块032,用于在监测到管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,第一虚拟网络地址为管理服务器与终端通信时所使用的地址,非正常状态包括故障状态或升级状态;
确定模块033,用于根据存储请求消息以及多个存储服务器的属性信息,确定用于存储终端中数据的第一存储服务器,并基于第一虚拟网络地址向终端发送存储响应消息,存储响应消息用于指示终端在第一存储服务器上存储数据。
可选的,图10为本发明实施例提供的再一种数据存储设备的结构示意图,如图10所示,在图9的基础上,该数据存储设备03还可以包括:
第二获取模块034,用于基于第二虚拟网络地址,获取第一存储服务器发送写入数据的第二元数据,并存储写入数据的第二元数据,第二虚拟网络地址为管理服务器与第一存储服务器通信时所使用的地址。
可选的,图11为本发明另一实施例提供的一种数据存储设备的结构示意图,如图11所示,在图10的基础上,该数据存储设备还可以包括:
发送模块035,用于在监测到管理服务器处于正常工作状态后,向管理服务器发送写入数据的第二元数据。
综上所述,本发明提供的数据存储设备中,由于同步模块从管理服务器上同步了管理服务器所管理的存储服务器的属性信息,因此,第一获取模块在管理服务器处于非正常状态时,确定模块能够根据管理服务器所管理的至少一个存储服务器的信息,替代管理服务器为终端分配存储服务器,从而使得在管理服务器处于故障状态或升级状态而停止工作时,终端仍然能够在ESS的指示下在存储服务器上进行写入数据的存储,提高了数据存储的可靠性。
本发明实施例提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现数据存储方法。
本发明实施例还提供了一种计算机可读存储介质,存储介质内存储有计算机程序,计算机程序被处理器执行时实现数据存储方法。
一方面,该数据存储方法可以包括:
向所述ESS同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息。
可选的,在所述向所述ESS同步所述多个存储服务器的属性信息之后,所述数据存储方法还包括:接收所述ESS发送的写入数据的第二元数据,并存储所述写入数据的第二元数据。
可选的,所述接收所述ESS发送的写入数据的第二元数据,并存储所述写入数据的第二元数据,包括:
在由升级状态转换为正常工作状态后,接收所述写入数据的第二元数据;
监测所述写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
在监测到所述写入数据的第二元数据与所述升级后的数据存储格式不同时,对所述写入数据的第二元数据进行格式转换,使得格式转换后的所述写入数据的第二元数据的格式与所述升级后的数据存储格式相同;
存储格式转换后的所述写入数据的第二元数据。
另一方面,该数据存储方法可以包括:
从所述管理服务器上同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息;
在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,非正常状态包括故障状态或升级状态;
根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于第一虚拟网络地址向所述终端发送存储响应消息,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据。
可选的,在所述根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并向所述终端发送存储响应消息之后,所述方法还包括:
基于第二虚拟网络地址,获取所述第一存储服务器发送的写入数据的第二元数据,并存储所述写入数据的第二元数据,所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址。
可选的,在所述存储所述写入数据的第二元数据之后,所述方法还包括:在监测到所述管理服务器处于正常工作状态后,向所述管理服务器发送所述写入数据的第二元数据。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,本发明实施例提供的数据存储方法实施例与、数据存储设备实施例以及分布式存储系统实施例均可以互相参考,本发明实施例对此不做限定。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种数据存储方法,其特征在于,用于分布式存储系统,所述分布式存储系统包括:管理服务器、紧急支援服务器ESS以及所述管理服务器所管理的多个存储服务器,所述方法包括:
所述管理服务器向所述ESS仅同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息,所述管理服务器为多个服务器组成的服务器集群,每个属性信息包括以下至少一项:存储服务器的标识、存储服务器已使用的存储容量、存储服务器的剩余存储容量、存储服务器中存储的数据的类型;
所述ESS在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态;
所述ESS根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据;
所述第一存储服务器接收所述终端发送的包括写入数据的写入请求消息,并存储所述写入数据;
所述写入请求消息还包括:所述写入数据的第一元数据,在所述第一存储服务器接收所述终端发送的包括写入数据的写入请求消息之后,所述方法还包括:
所述第一存储服务器向第二虚拟网络地址发送所述写入数据的第二元数据,所述写入数据的第二元数据是基于所述写入数据的第一元数据得到的,所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址;
所述ESS基于所述第二虚拟网络地址获取所述第一存储服务器发送的所述写入数据的第二元数据,并存储所述写入数据的第二元数据;
所述ESS在监测到所述管理服务器处于正常工作状态后,向所述管理服务器发送所述写入数据的第二元数据;
所述管理服务器接收所述ESS发送的所述写入数据的第二元数据,并存储所述写入数据的第二元数据。
2.根据权利要求1所述的方法,其特征在于,所述管理服务器接收所述写入数据的第二元数据,并存储所述写入数据的第二元数据,包括:
所述管理服务器在由升级状态转换为正常工作状态后,接收所述写入数据的第二元数据;
所述管理服务器监测所述写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
所述管理服务器在监测到所述写入数据的第二元数据与所述升级后的数据存储格式不同时,对所述写入数据的第二元数据进行格式转换,使得格式转换后的所述写入数据的第二元数据的格式与所述升级后的数据存储格式相同;
所述管理服务器存储格式转换后的所述写入数据的第二元数据。
3.根据权利要求1所述的方法,其特征在于,在所述第一存储服务器向第二虚拟网络地址发送所述写入数据的第二元数据之前,所述方法还包括:
所述第一存储服务器根据所述写入数据的第一元数据以及所述写入数据的存储地址,生成所述写入数据的第二元数据。
4.一种数据存储方法,其特征在于,用于分布式存储系统中的管理服务器,所述分布式存储系统还包括:紧急支援服务器ESS以及所述管理服务器所管理的多个存储服务器,所述方法包括:
向所述ESS仅同步所述多个存储服务器的属性信息,以使所述ESS在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息;基于第二虚拟网络地址,获取所述第一存储服务器发送的写入数据的第二元数据,并存储所述写入数据的第二元数据;所述管理服务器为多个服务器组成的服务器集群,每个属性信息包括以下至少一项:存储服务器的标识、存储服务器已使用的存储容量、存储服务器的剩余存储容量、存储服务器中存储的数据的类型;
所述属性信息表征所述多个存储服务器用于数据存储的相关信息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据;所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址;
在所述向所述ESS同步所述多个存储服务器的属性信息之后,所述方法还包括:
接收所述ESS发送的写入数据的第二元数据,并存储所述写入数据的第二元数据。
5.根据权利要求4所述的方法,其特征在于,所述接收所述ESS发送的写入数据的第二元数据,并存储所述写入数据的第二元数据,包括:
在由升级状态转换为正常工作状态后,接收所述写入数据的第二元数据;
监测所述写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
在监测到所述写入数据的第二元数据与所述升级后的数据存储格式不同时,对所述写入数据的第二元数据进行格式转换,使得格式转换后的所述写入数据的第二元数据的格式与所述升级后的数据存储格式相同;
存储格式转换后的所述写入数据的第二元数据。
6.一种数据存储方法,其特征在于,用于分布式存储系统中的紧急支援服务器ESS,所述分布式存储系统还包括:管理服务器以及所述管理服务器所管理的多个存储服务器,所述方法包括:
从所述管理服务器上仅同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息,所述管理服务器为多个服务器组成的服务器集群,每个属性信息包括以下至少一项:存储服务器的标识、存储服务器已使用的存储容量、存储服务器的剩余存储容量、存储服务器中存储的数据的类型;
在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态;
根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据;
在所述根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息之后,所述方法还包括:
基于第二虚拟网络地址,获取所述第一存储服务器发送的写入数据的第二元数据,并存储所述写入数据的第二元数据,所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址;
在监测到所述管理服务器处于正常工作状态后,向所述管理服务器发送所述写入数据的第二元数据,以使所述管理服务器接收并存储所述写入数据的第二元数据。
7.一种分布式存储系统,其特征在于,所述分布式存储系统包括:管理服务器、紧急支援服务器ESS以及所述管理服务器所管理的多个存储服务器,
所述管理服务器用于向所述ESS仅同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息,所述管理服务器为多个服务器组成的服务器集群,每个属性信息包括以下至少一项:存储服务器的标识、存储服务器已使用的存储容量、存储服务器的剩余存储容量、存储服务器中存储的数据的类型;
所述ESS用于在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态;
所述ESS还用于根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据;
所述第一存储服务器用于接收所述终端发送的包括写入数据的写入请求消息,并存储所述写入数据;
所述写入请求消息还包括:所述写入数据的第一元数据,
所述第一存储服务器还用于向第二虚拟网络地址发送所述写入数据的第二元数据,所述写入数据的第二元数据是基于所述写入数据的第一元数据得到的,所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址;
所述ESS还用于基于所述第二虚拟网络地址获取所述第一存储服务器发送的所述写入数据的第二元数据,并存储所述写入数据的第二元数据;
所述ESS还用于在监测到所述管理服务器处于正常工作状态后,向所述管理服务器发送所述写入数据的第二元数据;
所述管理服务器还用于接收所述ESS发送的所述写入数据的第二元数据,并存储所述写入数据的第二元数据。
8.根据权利要求7所述的分布式存储系统,其特征在于,
所述管理服务器还用于在由升级状态转换为正常工作状态后,接收所述写入数据的第二元数据;
所述管理服务器还用于监测所述写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
所述管理服务器还用于在监测到所述写入数据的第二元数据与所述升级后的数据存储格式不同时,对所述写入数据的第二元数据进行格式转换,使得格式转换后的所述写入数据的第二元数据的格式与所述升级后的数据存储格式相同;
所述管理服务器还用于存储格式转换后的所述写入数据的第二元数据。
9.根据权利要求7所述的分布式存储系统,其特征在于,
所述第一存储服务器还用于根据所述写入数据的第一元数据以及所述写入数据的存储地址,生成所述写入数据的第二元数据。
10.一种数据存储设备,其特征在于,用于分布式存储系统中的管理服务器,所述分布式存储系统还包括:紧急支援服务器ESS以及所述管理服务器所管理的多个存储服务器,所述数据存储设备包括:
同步模块,用于向所述ESS仅同步所述多个存储服务器的属性信息,以使所述ESS在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息;基于第二虚拟网络地址,获取所述第一存储服务器发送的写入数据的第二元数据,并存储所述写入数据的第二元数据;所述管理服务器为多个服务器组成的服务器集群,每个属性信息包括以下至少一项:存储服务器的标识、存储服务器已使用的存储容量、存储服务器的剩余存储容量、存储服务器中存储的数据的类型;
所述属性信息表征所述多个存储服务器用于数据存储的相关信息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据;所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址;
所述数据存储设备还包括:
接收模块,用于在由升级状态转换为正常工作状态后,接收所述ESS发送的写入数据的第二元数据,并存储所述写入数据的第二元数据。
11.根据权利要求10所述的数据存储设备,其特征在于,所述接收模块还用于:
在由升级状态转换为正常工作状态后,接收所述写入数据的第二元数据;
监测所述写入数据的第二元数据的格式与预设的升级后的数据存储格式是否相同;
在监测到所述写入数据的第二元数据与所述升级后的数据存储格式不同时,对所述写入数据的第二元数据进行格式转换,使得格式转换后的所述写入数据的第二元数据的格式与所述升级后的数据存储格式相同;
存储格式转换后的所述写入数据的第二元数据。
12.一种数据存储设备,其特征在于,用于分布式存储系统中的紧急支援服务器ESS,所述分布式存储系统还包括:管理服务器以及所述管理服务器所管理的多个存储服务器,所述数据存储设备包括:
同步模块,用于从所述管理服务器上仅同步所述多个存储服务器的属性信息,所述属性信息表征所述多个存储服务器用于数据存储的相关信息,所述管理服务器为多个服务器组成的服务器集群,每个属性信息包括以下至少一项:存储服务器的标识、存储服务器已使用的存储容量、存储服务器的剩余存储容量、存储服务器中存储的数据的类型;
第一获取模块,用于在监测到所述管理服务器处于非正常状态时,基于第一虚拟网络地址获取终端发送的存储请求消息,所述第一虚拟网络地址为所述管理服务器与终端通信时所使用的地址,所述非正常状态包括故障状态或升级状态;
确定模块,用于根据所述存储请求消息以及所述多个存储服务器的属性信息,确定用于存储所述终端中数据的第一存储服务器,并基于所述第一虚拟网络地址向所述终端发送存储响应消息,所述存储响应消息用于指示所述终端在所述第一存储服务器上存储数据;
所述数据存储设备还包括:
第二获取模块,用于基于第二虚拟网络地址,获取所述第一存储服务器发送写入数据的第二元数据,并存储所述写入数据的第二元数据,所述第二虚拟网络地址为所述管理服务器与所述第一存储服务器通信时所使用的地址;
所述数据存储设备还包括:
发送模块,用于在监测到所述管理服务器处于正常工作状态后,向所述管理服务器发送所述写入数据的第二元数据,以使所述管理服务器接收并存储所述写入数据的第二元数据。
CN201710576191.XA 2017-07-14 2017-07-14 数据存储方法及设备、分布式存储系统 Active CN109257403B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710576191.XA CN109257403B (zh) 2017-07-14 2017-07-14 数据存储方法及设备、分布式存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710576191.XA CN109257403B (zh) 2017-07-14 2017-07-14 数据存储方法及设备、分布式存储系统

Publications (2)

Publication Number Publication Date
CN109257403A CN109257403A (zh) 2019-01-22
CN109257403B true CN109257403B (zh) 2022-01-18

Family

ID=65051164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710576191.XA Active CN109257403B (zh) 2017-07-14 2017-07-14 数据存储方法及设备、分布式存储系统

Country Status (1)

Country Link
CN (1) CN109257403B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110611603B (zh) * 2019-09-09 2021-08-31 苏州浪潮智能科技有限公司 一种集群网卡监控方法及装置
CN111782886A (zh) * 2020-06-28 2020-10-16 杭州海康威视数字技术股份有限公司 元数据管理的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101355476A (zh) * 2008-05-23 2009-01-28 林云帆 一种基于服务器群集的数据文件存储、分发和应用的系统和方法
CN102882983A (zh) * 2012-10-22 2013-01-16 南京云创存储科技有限公司 一种云存储系统中提升并发访问性能的数据快速存储方法
CN103150347A (zh) * 2013-02-07 2013-06-12 浙江大学 基于文件热度的动态副本管理方法
CN105117171A (zh) * 2015-08-28 2015-12-02 南京国电南自美卓控制系统有限公司 一种能源scada海量数据分布式处理系统及其方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101355476A (zh) * 2008-05-23 2009-01-28 林云帆 一种基于服务器群集的数据文件存储、分发和应用的系统和方法
CN102882983A (zh) * 2012-10-22 2013-01-16 南京云创存储科技有限公司 一种云存储系统中提升并发访问性能的数据快速存储方法
CN103150347A (zh) * 2013-02-07 2013-06-12 浙江大学 基于文件热度的动态副本管理方法
CN105117171A (zh) * 2015-08-28 2015-12-02 南京国电南自美卓控制系统有限公司 一种能源scada海量数据分布式处理系统及其方法

Also Published As

Publication number Publication date
CN109257403A (zh) 2019-01-22

Similar Documents

Publication Publication Date Title
CN101902473B (zh) 基于网格gis的数据同步更新实现方法
EP3490224A1 (en) Data synchronization method and system
CN102088490B (zh) 数据存储方法、设备和系统
CN103207841A (zh) 基于键值对缓存的数据读写方法及装置
CN105338078A (zh) 用于存储系统的数据存储方法和装置
JP2021524104A (ja) マスター・スタンドバイコンテナシステム切替
CN111399764B (zh) 数据存储方法、读取方法、装置、设备及存储介质
CN105760519A (zh) 一种集群文件系统及其文件锁分配方法
CN111641521B (zh) 一种基于Ambari的云上部署大数据集群的方法
CN102402441A (zh) 一种对多台计算机进行配置的系统和方法
CN104750428A (zh) 块储存存取和网关模块、储存系统和方法与内容递送装置
CN113051110A (zh) 集群切换方法、装置及设备
CN109257403B (zh) 数据存储方法及设备、分布式存储系统
CN109391487A (zh) 一种配置更新方法和系统
CN111858190A (zh) 提高集群可用性的方法及其系统
CN107919979B (zh) 控制器状态处理方法及装置
US20210334229A1 (en) File transfer method, apparatus, device between bmcs and storage medium
KR20160103110A (ko) 네트워크 요소 데이터 액세스 방법, 액세스 장치, 및 네트워크 관리 시스템
CN114490540B (zh) 数据存储方法、介质、装置和计算设备
CN111130872A (zh) 一种云计算中网络设备配置恢复方法
CN115629909A (zh) 业务数据处理的方法、装置、电子设备和存储介质
CN107404511B (zh) 集群中服务器的替换方法及设备
CN107872479B (zh) 云管理平台与控制器集成方法和系统以及相关模块
CN114374705A (zh) 服务集群和消息推送方法
CN110661869B (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