一种集群存储的方法和装置及集群存储系统与流程

文档序号:16467532发布日期:2019-01-02 22:52阅读:147来源:国知局
本发明实施例涉及但不限于互联网通信和云计算技术,尤指一种集群存储的方法和装置及集群存储系统。
背景技术
::随着互联网通信和云计算技术的不断发展,存储的数据呈爆炸式增长,对存储服务器硬件数量和集群存储系统的安全可靠性提出了更高的要求。现有的集群存储系统为了保证存储系统的高可用性和数据安全性,通常冗余策略采用多副本或纠删码(erasurecode,简称ec)两种模式,以保证在某个节点故障或宕机时,不影响整个系统的正常业务。其中,副本模式一般采用2个副本,容忍1个副本所在的服务器故障或宕机。而纠删码模式通过设置不同的n和m(均为正整数)值,将一个数据文件划分成n个等长的数据块,通过rs(reed-solomon,里德所罗门编码)等编码生成n+m个数据块,存储在不同的存储节点上。根据n+m个数据块中任意n个块,都可以恢复出原始文件,则容忍m个数据块所在的存储节点故障或宕机。如果n=6,m=2,为了保证数据的安全和可靠性,存储节点一般配置n+m,共8台服务器。容忍2台存储节点同时故障或宕机,不会影响业务的正常使用。为了确保数据安全性,现有技术中的存储服务器必须大于等于n+m,需要大量的存储服务器,成本太高。技术实现要素:本发明实施例提供一种集群存储的方法和装置及集群存储系统,以在有限的存储资源,保证存储系统的高可用性和数据的安全性。一种集群存储的方法,包括:根据预置的纠删码和集群存储服务器的数量,确定允许发生故障的存储服务器数量;根据所述纠删码和所述允许发生故障的存储服务器数量,确定每个存储服务器上最多允许存储文件分块的副本数;接收到写请求消息后,根据所述纠删码的冗余策略对分块文件副本进行编码,根据所述每个存储服务器上最多允许存储文件分块的副本数选择存储服务器进行存储。可选地,所述根据预置的纠删码n、m和集群存储服务器的数量s,确定允许发生故障的存储服务器数量d,是通过以下方式确定的:d小于等于(m*s)/(n+m)向下取整,其中,n、m均为正整数。可选地,所述根据所述纠删码m和所述允许发生故障的存储服务器数量d,确定每个存储服务器上最多允许存储文件分块的副本数c,是通过以下方式确定的:c等于m/d取整,其中,m为正整数。可选地,n为1-10之间的正整数,m为1-6之间的正整数。一种集群存储的装置,其中,包括:第一确定模块,用于根据预置的纠删码和集群存储服务器的数量,确定允许发生故障的存储服务器数量;第二确定模块,根据所述纠删码和所述允许发生故障的存储服务器数量,确定每个存储服务器上最多允许存储文件分块的副本数;选择模块,用于接收到写请求消息后,根据所述纠删码的冗余策略对分块文件副本进行编码,根据所述每个存储服务器上最多允许存储文件分块的副本数选择存储服务器进行存储。可选地,所述第一确定模块,根据预置的纠删码的参数n、m和集群存储服务器的数量s,确定允许发生故障的存储服务器数量d,是通过以下方式确定的:d小于等于(m*s)/(n+m)向下取整,其中,n、m均为正整数。可选地,所述第二确定模块,根据所述纠删码m和所述允许发生故障的存储服务器数量d,确定每个存储服务器上最多允许存储文件分块的副本数c,是通过以下方式确定的:c等于m/d取整,其中,m为正整数。可选地,n为1-10之间的正整数,m为1-6之间的正整数。一种集群存储的装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现以下步骤:根据预置的纠删码和集群存储服务器的数量,确定允许发生故障的存储服务器数量;根据所述纠删码和所述允许发生故障的存储服务器数量,确定每个存储服务器上最多允许存储文件分块的副本数;接收到写请求消息后,根据所述纠删码的冗余策略对分块文件副本进行编码,根据所述每个存储服务器上最多允许存储文件分块的副本数选择存储服务器进行存储。一种集群存储系统,包括多个存储服务器和所述的集群存储的装置。本发明实施例提供一种集群存储的方法和装置及集群存储系统,可以实现在有限的存储资源,保证存储系统的高可用性和数据的安全性。附图说明图1为本发明实施例的一种集群存储的方法的流程图。图2为本发明实施例的集群存储的装置的示意图。图3为本发明实施例的集群存储系统的示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。实施例一图1为本发明实施例的一种集群存储的方法的流程图,如图1所示,本实施例的方法包括:步骤11、根据预置的纠删码和集群存储服务器的数量,确定允许发生故障的存储服务器数量;步骤12、根据所述纠删码和所述允许发生故障的存储服务器数量,确定每个存储服务器上最多允许存储文件分块的副本数;步骤13、接收到写请求消息后,根据所述纠删码的冗余策略对分块文件副本进行编码,根据所述每个存储服务器上最多允许存储文件分块的副本数选择存储服务器进行存储。本实施例的方法能够充分利用有限的存储资源,保证存储系统的高可用性和数据的安全性。纠删码模式通过设置不同的n和m(均为正整数)值,将一个数据文件划分成n个等长的数据块,通过rs(reed-solomon,里德所罗门编码)等编码生成n+m个数据块,存储在不同的存储节点上。本实施例在有限存储资源条件下,实现了纠删码模式(ecn:m:d)冗余策略,其中,n取值范围:1-10,m取值范围:1-6,其中,n、m均为正整数。d为发生故障或宕机的服务器数量,d的取值根据有限的存储服务器总数(s)按照一定算法进行计算,即:d小于等于(m*s)/(n+m)向下取整。例如,整个集群存储系统只有5台存储服务器,采用ec6:2冗余,那么d=1,d不能大于1。根据rs编码算法,当等于或小于m个数据块丢失,都可以通过rs编码恢复丢失的数据块。d=(m*s)/(n+m)保证了发生故障的存储服务器上存储的数据块数量小于或等于m值。在一实施例中,集群存储系统在选择文件分块存储到哪个存储服务器时,根据允许故障或宕机的服务器数量(d)控制任意一台存储服务器上存储的副本数目,计算出每个存储服务器上最多允许存储文件分块的副本数(c),其中:c=m/d取整。根据d=(m*s)/(n+m),c=(n+m)/s,存储服务器上的数据块数量c小于或等于m/d,保证了当某个存储服务器故障或宕机业务访问正常例如:采用ec6:2,d=1冗余策略,则单个存储服务器上最多允许存储副本数为2;采用配置10:3,d=1,单个存储服务器上最多允许存储文件分块副本数为3。本实施例,在存储服务器资源有限的情况下,基于纠删码n:m冗余策略,在存储分块文件副本时,按照一致性hash(哈希)算法定位到分块文件副本所要存储的存储服务器,统计当前存储服务器上已有的分块文件副本数是否小于c,其中:c=m/d取整。如果小于c,该存储服务器才会被选中,否则选择其他存储服务器。保证当某个存储服务器故障或宕机业务访问正常,同时存储数据安全。实施例二图2为本发明实施例的集群存储的装置的示意图,如图2所示,本实施例的装置包括:第一确定模块,用于根据预置的纠删码和集群存储服务器的数量,确定允许发生故障的存储服务器数量;第二确定模块,根据所述纠删码和所述允许发生故障的存储服务器数量,确定每个存储服务器上最多允许存储文件分块的副本数;选择模块,用于接收到写请求消息后,根据所述纠删码的冗余策略对分块文件副本进行编码,根据所述每个存储服务器上最多允许存储文件分块的副本数选择存储服务器进行存储。本实施例的装置能够充分利用有限的存储资源,保证存储系统的高可用性和数据的安全性。在一实施例中,所述第一确定模块,根据预置的纠删码的参数n、m和集群存储服务器的数量s,确定允许发生故障的存储服务器数量d,是通过以下方式确定的:d小于等于(m*s)/(n+m)向下取整,其中,n、m均为正整数。在一实施例中,所述第二确定模块,根据所述纠删码的参数m和所述允许发生故障的存储服务器数量d,确定每个存储服务器上最多允许存储文件分块的副本数c,是通过以下方式确定的:c等于m/d取整,m为正整数。其中,n为1-10之间的正整数,m为1-6之间的正整数。本发明实施例还提供一种集群存储的装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现以下步骤:根据预置的纠删码和集群存储服务器的数量,确定允许发生故障的存储服务器数量;根据所述纠删码和所述允许发生故障的存储服务器数量,确定每个存储服务器上最多允许存储文件分块的副本数;接收到写请求消息后,根据所述纠删码的冗余策略对分块文件副本进行编码,根据所述每个存储服务器上最多允许存储文件分块的副本数选择存储服务器进行存储。实施例三图3为本发明实施例的集群存储系统的示意图,如图3所示,本实施例的集群存储系统包括多个存储服务器和上述的集群存储的装置,还可以包括网管子系统,其中,集群存储的装置中的功能模块可以有不同的划分,可以包括:管理模块、数据库模块和文件访问模块。网管子系统用于集群存储系统部署、存储系统配置管理,监控、告警,性能显示等功能,提供可视化界面,便于系统维护和设置。应用程序通过nfs(networkfilesystem,网络文件系统)/cifs(commoninternetfilesystem,通用网络文件系统)/posix(portableoperatingsysteminterfaceofunix,可移植操作系统接口)/ftp(filetransferprotocol,文件传输协议)等标准接口访问集群存储系统。本实施例的集群存储系统进行存储的方法包括以下步骤:步骤101,集群存储系统部署/开局时,根据业务需要和当前集群存储服务器的数量,在网管子系统中设置ecn:m数值,其中,n取值范围:1-10,m取值范围:1-6。配置集群存储服务器的数量:s,网管子系统通过tcp(transmissioncontrolprotocol,传输控制协议)把相关配置数据发送给数据库模块,数据库模块存储配置数据到本地磁盘上。步骤102,数据库模块根据n、m和s值,计算允许发生故障或宕机的服务器数量d,并保存在本地磁盘上。d的取值算法:d小于(m*s)/(n+m),向下取整。如果集群存储系统配置5台存储服务器,采用ec6:2冗余策略,则允许发生故障或宕机的服务器数量d,为1。步骤103,应用程序通过nfs访问集群存储系统,文件访问模块接收到应用程序的写请求消息时,发送创建请求给管理模块,由管理模块把写请求消息中携带的元数据信息写到数据库模块,返回纠删码n:m冗余策略信息给文件访问模块;步骤104,文件访问模块按照纠删码n:m冗余策略进行编码,并发送存储分块文件副本位置请求消息给管理模块,管理模块把相关请求转给数据库模块,数据库模块按照一致性hash算法定位到分块文件副本所要存储的服务器,同时,计算该存储服务器上已有的分块文件副本数是否小于c,其中:c=m/d取整。如果小于c,该服务器将会被选中,否则选择集群中的其他存储服务器,管理模块把选中的存储服务器信息发送给文件访问模块,文件访问模块按分块文件写入到选中的存储服务器中。步骤105,当有d台存储服务器发生故障或宕机,纠删码n:m和系统提供正常的读写服务,如,集群系统有5台存储服务器,采用ec6:2,有一台服务器宕机,根据高可靠系统方法任意一台存储服务器上存储的分块副本数为2,集群系统能提供正常的读写业务。本发明实施例还提供一种集群存储的装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现以下步骤:根据预置的纠删码的参数n、m和集群存储服务器的数量,确定允许发生故障的存储服务器数量,其中,n、m均为正整数;根据所述纠删码的参数m和所述允许发生故障的存储服务器数量,确定每个存储服务器上最多允许存储文件分块的副本数;接收到写请求消息后,根据所述纠删码的冗余策略对分块文件副本进行编码,根据所述每个存储服务器上最多允许存储文件分块的副本数选择存储服务器进行存储。目前,视频监控或其他类似的产品,为了提升产品的市场竞争力,通过本实施例的方案可以减少存储服务器数量,提高系统存储冗余度,达到降低硬件成本,避免当某个或部分服务器故障或宕机影响业务正常使用和数据的安全性。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1