CN109828868B - 数据存储方法、装置、管理设备和双活数据存储系统 - Google Patents
数据存储方法、装置、管理设备和双活数据存储系统 Download PDFInfo
- Publication number
- CN109828868B CN109828868B CN201910011588.3A CN201910011588A CN109828868B CN 109828868 B CN109828868 B CN 109828868B CN 201910011588 A CN201910011588 A CN 201910011588A CN 109828868 B CN109828868 B CN 109828868B
- Authority
- CN
- China
- Prior art keywords
- storage
- data center
- data
- copy
- node
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据存储方法、装置、管理设备和双活数据存储系统;其中,该方法应用于双活数据存储系统中的第一数据中心的管理设备;双活数据存储系统中部署有分布式存储软件;上述方法包括:通过第一数据中心的访问入口接收数据存储请求;查找以第一数据中心为主数据中心的存储池;存储池包含有第一类存储节点和第二类存储节点,在归属于第一数据中心的第一类存储节点上创建数据存储请求对应的应用数据的主副本;通过主副本所在的存储节点,以及查找到的存储池对应的存储策略,在指定的存储节点上创建应用数据的从副本;该指定的存储节点至少包括第二类存储节点。本公开可以降低部署成本,同时提高双活数据存储系统的扩展灵活性。
Description
技术领域
本公开涉及数据存储技术领域,尤其是涉及一种数据存储方法、装置、管理设备和双活数据存储系统。
背景技术
随着信息化技术的飞速发展,信息系统在通讯、金融、医疗、电子商务、物流、政府等领域或行业的业务中扮演着重要角色。信息系统中断会导致巨大经济损失、影响品牌形象并可能导致重要数据丢失。因此,保证业务连续性是信息系统建设的关键。
为了提高信息系统的业务连续性和数据可靠性,建设双活数据中心是一种较为流行的解决方案。在双活数据中心中,两个数据中心均处于运行状态,可以同时承担生产业务;在其中一个数据中心出现故障时,相关业务可以迅速切换至另一数据中心。相对于单一的数据中心或单活形式的双数据中心,双活数据中心提高了数据中心的整体服务能力和系统资源利用率。
然而,现有的双活数据中心一般需要商业化的存储阵列和专用硬件(如EMCVplex)或专用软件(如HyperMetro),以实现数据的存储双活特性。但这种双活数据中心的实现方式不仅成本较高,受上述存储阵列扩展性的限制,双活数据中心的扩展灵活性也较差。
发明内容
有鉴于此,本公开的目的在于提供一种数据存储方法、装置、管理设备和双活数据存储系统,以降低部署成本,同时提高双活数据存储系统的扩展灵活性。
为了实现上述目的,本公开采用的技术方案如下:
第一方面,本公开提供了一种数据存储方法,方法应用于双活数据存储系统中的第一数据中心的管理设备;管理设备与第一数据中心的存储节点连接;管理设备还与双活数据存储系统的第二数据中心通信连接;双活数据存储系统中部署有分布式存储软件;上述方法包括:通过第一数据中心的访问入口接收数据存储请求;查找以第一数据中心为主数据中心的存储池;存储池包含有第一类存储节点和第二类存储节点,其中,第一类存储节点归属于第一数据中心,第二类存储节点归属于第二数据中心;在第一类存储节点上创建数据存储请求对应的应用数据的主副本;通过主副本所在的存储节点,以及查找到的存储池对应的存储策略,在指定的存储节点上创建应用数据的从副本;指定的存储节点至少包括第二类存储节点。
第二方面,本公开提供了一种数据存储装置,该装置设置于双活数据存储系统中的第一数据中心的管理设备;管理设备与第一数据中心的存储节点连接;管理设备还与双活数据存储系统的第二数据中心通信连接;双活数据存储系统中部署有分布式存储软件;上述装置包括:请求接收模块,用于通过第一数据中心的访问入口接收数据存储请求;查找模块,用于查找以第一数据中心为主数据中心的存储池;存储池包含有第一类存储节点和第二类存储节点,其中,第一类存储节点归属于第一数据中心,第二类存储节点归属于第二数据中心;主副本创建模块,用于在第一类存储节点上创建数据存储请求对应的应用数据的主副本;从主副本创建模块,用于通过主副本所在的存储节点,以及查找到的存储池对应的存储策略,在指定的存储节点上创建应用数据的从副本;指定的存储节点至少包括第二类存储节点。
第三方面,本公开提供了一种双活数据存储系统,该系统包括第一数据中心的管理设备、第二数据中心的管理设备和监控站点;第一数据中心、第二数据中心和监控站点两两之间异地部署,且两两之间通信连接;上述数据存储装置设置于第一数据中心的管理设备。
第四方面,本公开提供了一种管理设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述数据存储方法。
第五方面,本公开提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述数据存储方法。
本公开实施方式提供的数据存储方法、装置、双活数据存储系统、管理设备和机器可读存储介质,预先在双活数据存储系统划分有多个存储池;当通过第一数据中心的访问入口接收到数据存储请求时,查找以第一数据中心为主数据中心的存储池;在该存储池中归属于第一数据中心的存储节点上创建应用数据的主副本;进而通过该主副本,在指定的存储节点上创建应用数据的从副本。该方式与现有的AP双活存储机制不同,通过资源池确保应用数据主副本存储在应用的主数据中心,通过创建副本的存储节点识别同一资源,从而实现双活数据的目的;由于该方式基于通用的存储服务器和开源的分布式存储软件实现,部署成本较低;同时,与存储阵列不同的是,通用的存储服务器和开源的分布式存储软件没有扩展限制,因而本实施方式中的双活数据存储系统具有较强的扩展灵活性,数据存储容量更大。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施方式提供的一种AP双活形态的双活数据中心的数据存储示意图;
图2为本公开实施方式提供的一种双活数据存储系统的硬件部署示意图;
图3为本公开实施方式提供的一种数据存储方法的流程图;
图4为本公开实施方式提供的一种Ceph软件的基本架构示意图;
图5为本公开实施方式提供的一种Ceph软件中,通过CRUSH算法进行数据分配的示意图;
图6为本公开实施方式提供的另一种数据存储方法的流程图;
图7为本公开实施方式提供的一种双活数据存储系统的存储方式示意图;
图8为本公开实施方式提供的双活数据存储系统中,将主副本创建在主数据中心时的数据传输示意图;
图9为本公开实施方式提供的双活数据存储系统中,将主副本创建在备数据中心时的数据传输示意图;
图10为本公开实施方式提供的另一种双活数据存储系统的硬件部署示意图;
图11为本公开实施方式提供的一种数据存储装置的结构示意图;
图12为本公开实施方式提供的一种管理设备的结构示意图。
具体实施方式
为使本公开实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本公开一部分实施方式,而不是全部的实施方式。基于本公开中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本公开保护的范围。
双活数据中心中的两个数据中心可以同时对外提供业务,因而可以满足高等级的容灾需求。双活数据中心中的两个数据中心一般建设在同城,其中一个数据中心出现故障时,另一个数据中心具备持续对外提供服务的能力,使得用户数据不丢失。
双活数据中心中的每个数据中心可以从逻辑上划分为网络层、计算层和存储层等三个层面;为了实现两个数据中心的双活,需要两个数据中心从上述各个层面均实现双活。具体地,对于网络层,双活的网络层在南北向(南北向可以理解为数据中心与外部网络之间的通信方向)需要实现双活网关和路由注入等访问功能;其中,双活网关可用于提供数据在两个数据中心的双读双写,路由注入可以使两个数据中心使用同一个IP地址。双活的网络层在东西向(东西向可以理解为数据中心内部各虚拟机之间的通信方向)需要实现大二层的网络功能和广播域隔离的功能,以降低两个数据中心间的通信流量。对于计算层,双活的计算层需要支持大规模集群计算技术和虚拟化技术,以实现计算层面的高可靠、负载均衡、自动业务切换等功能。对于存储层,双活的存储层可以提供两个数据中心间统一的存储视图,同一个LUN(Logical Unit Number,逻辑单元号)的所有输入输出路径均可同时访问,且双活的存储层还具有业务负载均衡、故障时无缝切换的功能。
双活数据中心通常具有两种双活形态,包括AP(Active-Passive,主动-被动)双活形态和AA(Active-Active,主动-主动)双活形态;其中,AA双活形态中,各业务的服务器根据该服务器所在的地理位置与双活数据中心的两个数据中心的相对距离,访问距离较近的数据中心,并将该距离较近的数据中心作为该业务的主数据中心,距离较远的数据中心作为该业务的备数据中心,以达到更好的业务负载均衡效果。AP双活形态中,预先将业务分类,一部分业务以双活数据中心的第一数据中心为主数据中心,第二数据中心为备数据中心(也可以称为热备中心),该类业务从第一数据中心进行访问;另一部分业务则以双活数据中心的第二数据中心为主数据中心,第一数据中心为备数据中心,该类业务从第二数据中心进行访问。
图1所示为AP双活形态的双活数据中心的数据存储示意图;其中,应用A和应用B的应用服务器从第一数据中心访问该双活数据中心,应用C的应用服务器从第二数据中心访问该双活数据中心;因此,应用A涉及的LUN1和应用B涉及的LUN2均以第一数据中心为主数据中心,第二数据中心为备数据中心;应用C涉及的LUN3以第二数据中心为主数据中心,第一数据中心为备数据中心。其中,LUN是存储设备为数据中心的管理设备或管理主机提供的逻辑驱动器标识,LUN可以理解成一个逻辑磁盘,管理设备可以在LUN上进行数据存取。一个应用可以使用一个或多个LUN存储数据,也可以是一个LUN中保存有多个应用的数据。
无论上述哪种双活形态的双活数据中心,使用的存储阵列需要使用专用存储硬件设备,由于存储软件和存储硬件设备是绑定的,因而存储软件也需要定制购买,这就使双活数据中心的部署需要较大的成本。并且,上述存储阵列形成的系统中通常最多能扩展16个控制器,受存储阵列扩展性的限制,双活数据中心的扩展灵活性也受到了较明显的影响。
基于此,本实施方式拟提供一种通过通用的存储服务器和开源软件实现的双活数据存储系统,在降低部署成本的同时提高双活数据存储系统的扩展灵活性。具体而言,本公开实施方式提供一种数据存储方法、装置、管理设备和双活数据存储系统,重点描述AP双活形态下的双活数据存储系统结构,以及基于该系统的数据存储方式。
图2所示为该双活数据存储系统的硬件部署示意图;在硬件部署上,该存储系统中的第一数据中心和第二数据中心异地部署;每个数据中心包含有管理设备和与管理设备连接的存储节点(图2中以三个存储节点为例)。其中一种实现方式中,管理设备是一台单独的计算机或服务器,该管理设备上运行有数据中心的数据管理软件(如Ceph),该管理设备用于管理数据中心中的各个存储节点;该存储节点可以为独立的存储设备,也可以为存储设备中的存储硬盘,还可以为存储硬盘中划分的虚拟存储节点。另一种实现方式中,管理设备是计算机或者服务器中的CPU(Central Processing Unit,中央处理器),该CPU中运行有数据中心的数据管理软件;该存储节点可以为存储硬盘,或者存储硬盘中划分的虚拟存储节点;CPU和存储硬盘(或者部分存储硬盘)集成在一台计算机或服务器上。上述管理设备和存储节点均可以通过通用的设备实现。
两个数据中心的管理设备彼此之间通信连接,以实现数据的双活存储。该存储系统的软件部署可以通过开源的分布式存储软件Ceph实现,当然也可以通过其他开源或专业的存储软件实现,以使两个数据中心具有数据存储、数据同步等功能。
基于上述描述的双活数据存储系统,参见图3所示的一种数据存储方法的流程图;该方法应用于该双活数据存储系统中的第一数据中心的管理设备;该管理设备与第一数据中心的存储节点连接;该管理设备还与双活数据存储系统的第二数据中心通信连接;上述双活数据存储系统中部署有分布式存储软件;
该方法包括如下步骤:
步骤S302,通过第一数据中心的访问入口接收数据存储请求;
该数据存储请求通常由运行应用的应用服务器发出;该数据存储请求中通常包含有该应用的相关信息,如应用服务器的IP地址等,以及待存储的数据。为了提高数据访问效率,可以根据应用服务器的地理位置,为该应用设置用于访问双活数据存储系统的访问入口;具体而言,如果应用服务器的地理位置距离存储形态中的第一数据中心较近,则该应用通过第一数据中心的访问入口访问该存储系统;如果应用服务器的地理位置距离存储形态中的第二数据中心较近,则该应用通过第二数据中心的访问入口访问该存储系统。
当接收到一个新的应用的数据存储请求时,第一数据中心的访问入口可以根据该数据存储请求中携带的应用服务器的IP地址,确定该应用服务器所处的地理位置,同时计算该应用服务器与两个数据中心的距离;如果该应用服务器距离第一数据中心较近,则该第一数据中心的访问入口接收并处理该数据存储请求;如果该应用服务器距离第二数据中心较近,该第一数据中心的访问入口可以拒绝该数据存储请求,并将该数据存储请求发送至第二数据中心,以供第二数据中心的访问入口处理该数据存储请求。
步骤S304,查找以第一数据中心为主数据中心的存储池;该存储池包含有第一类存储节点和第二类存储节点,其中,第一类存储节点归属于第一数据中心,第二类存储节点归属于第二数据中心;
上述主数据中心是针对应用而言的,部分应用的主数据中心是第一数据中心,另一部分应用的主数据中心是第二数据中心;应用的主数据中心通常用于生成该应用的应用数据的主副本,并根据该主副本将其他副本同步至主数据中心的其他存储节点以及备数据中心。因此,为了避免存储系统中两个数据中心之间的数据迂回的问题,同时节约带宽、减少时延,如果从第一数据中心的访问入口接收到了数据存储请求,即可将第一数据中心作为该数据存储请求对应的应用的主数据中心。
可以理解,如果从第一数据中心的访问入口接收到了数据存储请求,而将第二数据中心作为该数据存储请求对应的应用的主数据中心,则需要将该数据存储请求中的应用数据先从第一数据中心发送至第二数据中心,再由第二数据中心生成该应用的应用数据的主副本,并根据该主副本将其他副本同步至第二数据中心的其他存储节点以及第一数据中心;数据传输较为繁琐,不仅浪费带宽,还会带来更大的时延。
为了将第一数据中心作为从第一数据中心的访问入口接收到的应用数据的主数据中心,可以将第一数据中心和第二数据中心中的存储节点划分若干存储池;并设置每个存储池是以哪个数据中心为主数据中心的。其中,存储池是一种存储数据的逻辑单位,可以包含多个存储节点,如存储物理设备、存储虚拟设备等。该存储池可以通过Ceph或其他开源的存储软件进行划分得得到;在Ceph中,存储池也可以称为pool;通常,同一个存储池中的存储节点具有相同的存储策略,诸如以哪个数据中心为主数据中心、数据副本数,数据副本的分部方式等。每个存储池包含有归属于第一数据中心的第一类存储节点和归属于第二数据中心第二类存储节点。
对存储池划分完毕后,当通过第一数据中心的访问入口接收到数据存储请求时,为了将该数据存储请求对应的应用数据,以该第一数据中心为主数据中心进行存储,则需要查找以该第一数据中心为主数据中心的存储池;由于存储池在划分过程中已经将对应的主数据中心记录在存储策略中,因而可以从各存储池的存储策略中查找存储池对应的主数据中心。
步骤S306,在第一类存储节点上创建数据存储请求对应的应用数据的主副本;
由上述可知,应用数据的主副本通常创建在该应用数据的主数据中心;由于上述步骤S304查找到的存储池以第一数据中心为主数据中心,因而该应用数据的主副本应当存储在该存储池中,归属于第一数据中心第一类存储节点上。具体可以从该存储池的第一类存储节点上随机或按照预设的顺序选择存储节点,并在选择的存储节点上写入该应用数据的副本,该副本即为主副本。通常,同一应用数据在双活存储系统中保存有多个副本,可以将首次写入的副本确定为该应用数据的主副本。
步骤S308,通过主副本所在的存储节点,以及查找到的存储池对应的存储策略,在指定的存储节点上创建应用数据的从副本;该指定的存储节点至少包括第二类存储节点。
如上文所述,存储池对应的存储策略不仅包含该存储池对应的主数据中心,还包含数据副本数、数据副本的分布方式等。如果存储策略中数据副本的分部方式表明同一应用数据的除主副本以外的从副本均保存至备数据中心中,则上述指定的存储节点仅包括第二类存储节点,继而再第二类存储节点上创建该应用数据的副本;如果存储策略中数据副本的分部方式表明同一应用数据的除主副本以外的从副本既保存在主数据中心也保存在备数据中心,则上述指定的存储节点同时包括第一类存储节点和第二类存储节点,需要在第一类存储节点和第二类存储节点上均创建该应用的从副本。
在创建从副本时,同样可以在第一类存储节点或第二类存储节点上,随机或按照预设的顺序选择存储节点,并按照已创建的主副本,由主副本所在的存储节点在选择的存储节点上写入该应用数据的副本。
现有的AP双活形态的数据存储方式中,通过专用软件在两个数据中心的存储阵列中写入数据;具体而言,当主数据中心接收到应用发出的数据存储请求后,同时向两个数据中心的存储阵列中写入对应应用数据的副本;并获取该应用数据的副本保存在主数据中心的LUN的物理卷号,将该物理卷号设置为该应用数据保存在备数据中心的LUN的虚拟卷号;由于同一应用数据的副本保存在主数据中心的LUN的物理卷号与保存在备数据中心的LUN的虚拟卷号相同,因此可以识别为同一资源;并通过查询副本路径中是否存在虚拟卷号,确认该应用的主副本(即路径中不存在虚拟卷号的副本为应用数据的主副本),从而实现双活数据的目的。
相对而言,本公开实施方式提供的数据存储方法,预先在双活数据存储系统划分有多个存储池;当通过第一数据中心的访问入口接收到数据存储请求时,查找以第一数据中心为主数据中心的存储池;在该存储池中归属于第一数据中心的存储节点上创建应用数据的主副本;进而通过该主副本,在指定的存储节点上创建应用数据的从副本。该方式与现有的AP双活存储机制不同,通过资源池确保应用数据主副本存储在应用的主数据中心,通过创建副本的存储节点识别同一资源,从而实现双活数据的目的;由于该方式基于通用的存储服务器和开源的分布式存储软件实现,部署成本较低;同时,与存储阵列不同的是,通用的存储服务器和开源的分布式存储软件没有扩展限制,因而本实施方式中的双活数据存储系统具有较强的扩展灵活性,数据存储容量更大。
本公开实施方式还提供另一种数据存储方法,该方法在上述实施方式描述的双活数据存储系统的基础上实现;该实施方式中,以双活数据存储系统中部署有Ceph分布式存储软件为例进行说明;该Ceph软件具有块、文件、对象等多种接口,可运行在通用的存储服务器上,在企业网和运营商都有广泛应用;下面首先对该Ceph软件进行简要描述。
图4所示为该Ceph软件的基本架构示意图;Ceph软件的核心组件包括OSD(ObjectStorage Device,对象存储设备)、Monitor(监控器)、CRUSH(Controlled ReplicationUnder Scalable Hashing,可缩放哈希下的受控复制)算法、Client(客户端)等。
其中,OSD是一个进程,一个存储系统内通常具有多个OSD,一个OSD一般对应一块磁盘或虚拟磁盘;OSD主要用于完成对应磁盘的数据存储和数据维护,如数据复制、数据恢复、数据再均衡;OSD还可以用于通过心跳机制监测其它OSD状况并报告给Monitor。上述Monitor也是一种进程,用于监控存储系统的状态,如监控自身状态、系统内OSD状态、PG(Placement Group,归置组)状态、CRUSH算法状态等;一个存储系统内通常具有多个Monitor,用于完成各自的监控任务。Monitor还保存有Cluster map信息;该Cluster Map中记录了存储系统本身的逻辑状态和系统中数据的存储策略。
上述CRUSH算法是Ceph软件中采用的数据分布算法,可将数据以伪随机的方式根据事先配置的策略分布到存储节点和磁盘上。CRUSH算法可以是一种伪随机分布算法,该算法可以将待存储的数据分配至不同的OSD中保存。在数据分配过程中,如图5所示,首先将File划分为多个Object;多个Object(即待存储的数据)通过HASH算法归属到一个PG中,然后利用CRUSH算法计算该PG存放的OSD,由此,归属于同一个PG的Object存放到该PG对应的目标OSD中。由于Ceph集群通常支持多副本策略,以三副本为例,每个PG通常会对应三个OSD,包含一个主OSD,两个从OSD。三个OSD上存放完全相同的数据。另外,同一个OSD会存放多个PG的数据,不同的PG经过CRUSH计算,可能会归属于同一个目标OSD。
上述Client也是一种进程,可以理解为外部的应用服务器访问数据存储系统的网关设备;应用服务器通过Client与上述Monitor通信,获取该Monitor中的Cluster map信息,通过查询Cluster map信息后得到数据的存储位置,进而根据该存储位置,应用服务器与对应的OSD进行通信,以完成数据的各种操作。
基于上述对Ceph软件的描述,图6所示为本实施方式提供的另一种数据存储方法的流程图;该方法包括如下步骤:
步骤S602,根据用户发出的存储池创建指令,建立存储池并设置每个存储池对应的存储策略;该存储策略包括主数据中心、应用数据的副本总数量、以及存储至主数据中心的第一副本数量。
以创建两个存储池为例,上述存储池创建指令具体可以为Ceph的下述指令:cephosd pool create pool1replicated;ceph osd pool1size 4;ceph osd pool createpool2replicated;ceph osd pool2size 4;通过上述命令,可以在存储系统中创建pool1和pool2两个存储池,并设置了每个存储池中应用数据的副本总数量为四个。
另外,还需要设置每个存储池的主数据中心和存储至主数据中心的第一副本数量;如果想要设置存储池pool1的主数据中心为第一数据中心,则需要使用Ceph中的CRUSH算法;以存储至主数据中心的第一副本数量为两个为例,需要使用CRUSH算法中的chooseleaf命令,首先在第一数据中心中选取两个用于存储副本的存储节点,该存储节点可以为主机;再通过chooseleaf命令在第二数据中心选取两个用于存储副本的存储节点。通常,Ceph默认第一个被选中的存储节点用于存储主副本,上述方式也就保证了主副本存储在应用的主数据中心,同时也对四个副本进行了分配,两个在主数据中心,两个在备数据中心。该过程可以通过下述指令实现:
rule Active-A{
ruleset 1
type replicatied
……
step take DataCenterA
step chooseleaf firstn 2type host
step emit
step take DataCenterB
step chooseleaf firstn-1type host
step emit
}
上述指令设置了一种规则ruleset 1,该规则中首先从第一数据中心(即DataCenterA)选择两个主机,再从第二数据中心(DataCenterB)选择剩余的主机。然后,再通过下述命令将该规则ruleset 1应用在pool1中:ceph osd pool set pool1crush-ruleset 1,即可实现在存储池pool1中存储的应用数据,其主副本在第一数据中心,存储至主数据中心的第一副本数量为两个。
同理,如果想要设置存储池pool2的主数据中心为第二数据中心,则通过下述指定实现:
rule Active-B{
ruleset 2
type replicatied
……
step take DataCenterB
step chooseleaf firstn 2type host
step emit
step take DataCenterA
step chooseleaf firstn-1type host
step emit
}
上述指令设置了一种规则ruleset 2,该规则中首先从第二数据中心(即DataCenterB)选择两个主机,再从第一数据中心(DataCenterA)选择剩余的主机。然后,再通过下述命令将该规则ruleset 2应用在pool2中:ceph osd pool set pool2crush-ruleset 2,即可实现在存储池pool2中存储的应用数据,其主副本在第二数据中心,存储至主数据中心的第一副本数量为两个。
经上述配置后,双活数据存储系统的存储方式可以如图7所示,pool1和pool2中均同时具有归属于第一数据中心的存储节点和归属于第二数据中心的存储节点;其中,存储同一应用数据的四个存储节点划分成LUN1,LUN1中的副本1和副本2存储在第一数据中心的存储节点上,副本3和副本4存储在第二数据中心的存储节点上;副本1是该应用数据的主副本;LUN2中应用数据的副本情况与LUN1类似。存储同一应用数据的四个存储节点划分成LUN3,LUN3中的副本1和副本2存储在第二数据中心的存储节点上,副本3和副本4存储在第一数据中心的存储节点上;副本1是该应用数据的主副本;LUN4中应用数据的副本情况与LUN3类似。
需要说明的是,图7中可以认为一个应用数据的多个存储节点组成一个LUN,然而在实际应用中,如果应用数据较大,一个应用数据的多个存储节点可能被划分成多个LUN,如果应用数据较小,多个应用数据的存储节点可能被划分成一个LUN。
上述以应用数据的副本总数量为四个为例进行说明,该副本总数量还可以为两个、三个、五个等;其中,在两个副本的情况下,主数据中心和备数据中心分别存放一个副本;在三个副本的情况下,主数据中心存放一个副本,备数据中心存放两个副本,也可以主数据中心存放两个副本,备数据中心存放一个副本。
如果应用数据的副本总数量为四个,且主数据中心和备数据中心分别存放两个副本,在任何一个数据中心整体失效后,剩余的数据中心还有2个副本,数据持久性可以得到较好保证。而在副本总数量为两个或三个的情况下,如果某个数据中心整体失效,某些应用数据可能会变成只有单副本,此时为保证较好的数据持久性,可以在数据中心进行副本备份,也可以对数据中心的硬盘进行RAID(Redundant Arrays of Independent Disks,独立磁盘构成的具有冗余能力的阵列)处理,如将硬盘设置为RAID5形式,即分布式奇偶校验的独立磁盘结构,从而保证单硬盘失效情况下的数据持久性。
步骤S604,通过第一数据中心的访问入口接收数据存储请求;
步骤S606,查找以第一数据中心为主数据中心的存储池;该存储池包含有第一类存储节点和第二类存储节点,其中,第一类存储节点归属于第一数据中心,第二类存储节点归属于第二数据中心;
图8所示为将主副本创建在主数据中心时的数据传输示意图;由上述实施方式描述可知,如果数据存储请求从第一数据中心的访问入口接收,则该数据存储请求对应的应用数据的主数据中心即为第一数据中心。通常,应用数据的主数据中心中设置有该应用数据对应应用的Target进程,该Target进程可以理解为该应用的协议接口,具体而言,该Target进程可以基于iSCSI(internet Small Computer System Interface,因特网小型计算机系统接口)协议,与对应应用的服务器中的initiator进程实现通信,Target进程可以为该应用提供数据服务。
通过Target进程接收到应用数据后,首先在第一数据中心中创建主副本,即图8中的副本1,再基于主副本,在第一数据中心其他存储节点上,以及第二数据中心的存储节点上创建从副本,即图8中的副本2、副本3和副本4;此时,如果在第二数据中心创建两个副本,则第一数据中心和第二数据中心间进行两次数据传递即可。
对比而言,图9所示为将主副本创建在备数据中心时的数据传输示意图;如果该应用的主数据中心是第二数据中心,而该应用的Target进程设置在第一数据中心,第一数据中心接收到应用数据后,则需要先将应用数据传输至第二数据中心,再在第二数据中心其他存储节点上,以及第一数据中心的存储节点上创建从副本;此时,如果在第一数据中心创建两个副本,则第一数据中心和第二数据中心间则需要进行三次数据传递,相对于图8所示的情况,图9中出现了数据迂回,多传输了50%的数据,浪费第一数据中心和第二数据中心间的带宽,容易产生较长的时延。
因而上述步骤S606中,需要查找以第一数据中心为主数据中心的存储池,以保证该数据存储请求对应的应用数据的主副本保存在主数据中心。
步骤S608,通过伪随机的方式从第一类存储节点中,选取主副本的存储节点;
该伪随机的方式可以通过上述Ceph中的CRUSH算法实现,但通常在选取主副本的存储节点时,还会考虑主副本的数据量与存储节点的容量,选取主副本的存储节点的容量通常需要与主副本的数据量相匹配,或略大于主副本的数据量。
步骤S610,在选取的存储节点上写入应用数据的主副本。
步骤S612,根据查找到的存储池对应的存储策略确定第二副本数量;该第二副本数量为以第二数据中心为备数据中心对应的副本数量;
存储策略如果仅包含应用数据的副本总数量和存储至主数据中心的第一副本数量,则将副本总数量减去第一副本数量,即可得到存储至备数据中心的第二副本数量;如果存储测量中已经包含第二副本数量,直接提取即可。
步骤S614,通过伪随机的方式从第二类存储节点中,选取第二副本数量的存储节点;
与上述步骤S612类似,该伪随机的方式同样可以通过上述Ceph中的CRUSH算法实现,通常在选取从副本的存储节点时,也会考虑从副本的数据量与存储节点的容量,选取从副本的存储节点的容量通常需要与从副本的数据量相匹配,或略大于从副本的数据量。
步骤S616,通过主副本所在的存储节点,在选取的存储节点上写入应用数据的从副本。
需要说明的是,由于数据的写入过程需要较长的时间,如果在应用数据的主副本写入完成后,才写入应用数据的从副本,则会使两个数据中心之间的数据存在较大的时延;为了避免较大的时延,可以在主副本的写入过程中,即可开始写入应用数据的从副本;从副本的写入过程略慢于主副本的写入过程,通过对主副本当前的写入数据的复制,可以实现对从副本的写入,主副本写入完成后,从副本的写入随即完成。
上述步骤中,默认的是主数据中心仅存储主副本,所有的从副本存储在备数据中心的情况,如果存储池的存储策略中需要部分从副本存储在主数据中心,如上述两个副本存储在主数据中心,两个副本存储在备数据中心的示例,则还需要下述过程才能完成数据的存储:
步骤1,如果存储策略中包括在第一数据中心存储至少一个从副本,通过伪随机的方式从第一类存储节点除主副本所在的存储节点之外的存储节点中,选取存储节点;
通常,如果存储策略中,存储至主数据中心的第一副本数量大于一,则说明该主数据中心中需要存储至少一个除主副本以外的从副本;将存储策略中应用数据的副本总数量减去第一副本数量所得的值,即为主数据中心中保存从副本的数量。
例如,存储策略中,存储至主数据中心的第一副本数量为两个,则在对属于第一数据中心的第一类存储节点中,除了选取主副本对应的存储节点外,还需要另外选取一个存储节点,用于存储一个从副本,该从副本从存储节点的选取方式也需要按照伪随机的方式实现,该伪随机的方式已在上述实施方式中描述,在此不再赘述。
步骤2,通过主副本所在的存储节点,在选取的存储节点上写入应用数据的从副本。
上述数据存储方法,预先在双活数据存储系统划分多个存储池并设置各存储池的存储策略;当通过第一数据中心的访问入口接收到数据存储请求时,查找以第一数据中心为主数据中心的存储池;在该存储池中归属于第一数据中心的存储节点中选取存储节点并创建应用数据的主副本;进而通过该主副本的存储节点,在指定的存储节点上创建应用数据的从副本。该方式基于通用的存储服务器和开源的分布式存储软件实现,部署成本较低,并且没有扩展限制,因而本实施方式中的双活数据存储系统具有较强的扩展灵活性,数据存储容量更大。
上述实施方式提供的双活数据存储系统及对应的数据存储方法,实现了数据双活的目的,并将应用数据的主副本设置在主数据中心,以节约两个数据中心的带宽、降低时延。本实施方式中,为了提高双活数据存储系统的可用性,提供了另一种双活数据存储系统,以使系统发生故障时,保证系统整体可用。
通常,双活数据存储系统可能会发生如下几种故障:故障1,第一数据中心或第二数据中心中的单个存储节点或硬盘故障;故障2,第一数据中心整体故障;故障3,第二数据中心整体故障;故障4,第一数据中心或第二数据中心之间的通信链路故障。
其中,对于故障1,各数值中心内部署的Ceph软件根据本身的机制可以恢复;而对于故障2、故障3和故障4,则需要在第一数据中心和第二数据中心之外引入监控站点(监控站点也可以称为Witness Monitor);如图10所示,该双活数据存储系统在图2所示的系统基础上实现;进一步地,第一数据中心设置有第一监控节点,第二数据中心设置有第二监控节点;上述存储系统中还设置有监控站点,该监控站点通常与第一数据中心和第二数据中心异地设置。第一监控节点、第二监控节点与双活数据存储系统的监控站点通信连接。图10中,第一监控节点作为一个独立的节点,与第一数据中心的管理设备连接;另一种实现方式中,第一监控节点也可以设置在管理设备内部;第二监控节点与第一监控节点类似,在此不再赘述。
为了保证监控的实时性,监控站点分别与第一监控节点、第二监控节点链路可达,并设置链路时延的阈值,例如,链路时延不大于5ms。这样,监控站点与第一监控节点、第二监控节点就组成了双活数据存储系统的监控集群(也可以称为Monitor集群)。为了通过该监控集群,使系统发生故障时保证系统依然可用,该监控集群中可以设置Paxos算法,通过该算法,即使监控集群中部分监控节点发生故障,只要正常运行的监控节点数据超过监控集群中节点总量的一半,即可保证存储系统整体可用。
基于上述Paxos算法,第一数据中心可以设置一个或多个第一监控节点,第二数据中心同一可以设置一个或多个第二监控节点;监控站点中通常设置有一个监控节点;采用该设置方式后,当出现上述故障2时(即第一数据中心整体故障),正常运行的第二数据中心和监控站点的监控节点数量超过了系统中总监控节点数量的一半,故可以保证第二数据中心正常运行。同理,在出现故障3时(即第二数据中心整体故障),第一数据中心也可以正常运行。
对于故障4(即第一数据中心或第二数据中心之间的通信链路故障),Ceph软件中,预设有多个子网,两个数据中心的相同的组件通常部署在同一个子网中,不同的组件可以部署在不同的子网中。为了保证在第一数据中心或第二数据中心之间的通信链路故障时,第一数据中心和第二数据中依然能够通信,可以将第一数据中心的第一监控节点、第二数据中心的第二监控节点与监控站点设置在同一子网中,同一子网中的节点或站点可以属于同一VLAN(Virtual Local Area Network,虚拟局域网)网段、同一VxLAN(VirtualExtensible Local Area Network,可扩展虚拟局域网)网段,也可以属于同一二层子网。
即第一监控节点、第二监控节点和监控站点在同一VLAN中;当管理设备检测到第一数据中心和第二数据中心通信中断时,通过第一监控节点、第二监控节点与监控站点间的通信链路,与第二数据中心建立通信连接。
具体而言,当发生故障4时,第一监控节点、第二监控节点与监控站点可以通过同一VLAN保持通信状态,第一数据中心和第二数据中心可以获知彼此都是正常运行的,只是通信链路发生了故障;该状况下,第一数据中心和第二数据中心均可以正常运行,即正常处理数据的读写任务,只是无法实现两个数据中心的副本同步。当通信链路故障恢复后,数据可以重新完成副本同步的任务。例如,正常情况下,同一应用数据分别在两个数据中心设置两个副本,当发生通信链路故障后,该应用数据只能在主数据中心设置两个副本,无法在备数据中心同步另外两个副本;当通信链路故障恢复后,再将另外两个副本同步至备数据中心。
另外,由于存储相同中引入了监控站点,还需要考虑该监控站点,以及该监控站点分别与第一数据中心、第二数据中心的通信链路的故障情况。具体而言,如果监控站点发生故障,由于正常运行的第一数据中心和第二数据中心的监控节点数量超过了系统中总监控节点数量的一半,因而系统可以正常运行;如果监控站点和第一数据中心之间的通信链路故障,监控站点可以通过第二数据中心获取第一数据中心是否正常运行;同理,如果监控站点和第二数据中心之间的通信链路故障,监控站点可以通过第一数据中心获取第一数据中心是否正常运行,并不影响存储系统的整体的可应用性。
需要说明的是,上述各方法实施方式均采用递进的方式描述,每个实施方式重点说明的都是与其他实施方式的不同之处,各个实施方式之间相同相似的部分互相参见即可。
对应于上述方法实施方式,参见图11所示的一种数据存储装置的结构示意图;该装置设置于双活数据存储系统中的第一数据中心的管理设备;管理设备与第一数据中心的存储节点连接;管理设备还与双活数据存储系统的第二数据中心通信连接;双活数据存储系统中部署有分布式存储软件;该装置包括:
请求接收模块110,用于通过第一数据中心的访问入口接收数据存储请求;
查找模块111,用于查找以第一数据中心为主数据中心的存储池;存储池包含有第一类存储节点和第二类存储节点,其中,第一类存储节点归属于第一数据中心,第二类存储节点归属于第二数据中心;
主副本创建模块112,用于在第一类存储节点上创建数据存储请求对应的应用数据的主副本;
从主副本创建模块113,用于通过主副本所在的存储节点,以及查找到的存储池对应的存储策略,在指定的存储节点上创建应用数据的从副本;指定的存储节点至少包括第二类存储节点。
本公开实施方式提供的数据存储装置,预先在双活数据存储系统划分有多个存储池;当通过第一数据中心的访问入口接收到数据存储请求时,查找以第一数据中心为主数据中心的存储池;在该存储池中归属于第一数据中心的存储节点上创建应用数据的主副本;进而通过该主副本,在指定的存储节点上创建应用数据的从副本。该方式与现有的AP双活存储机制不同,通过资源池确保应用数据主副本存储在应用的主数据中心,通过创建副本的存储节点识别同一资源,从而实现双活数据的目的;由于该方式基于通用的存储服务器和开源的分布式存储软件实现,部署成本较低;同时,与存储阵列不同的是,通用的存储服务器和开源的分布式存储软件没有扩展限制,因而本实施方式中的双活数据存储系统具有较强的扩展灵活性,数据存储容量更大。
进一步地,上述存储池通过下述方式创建:根据用户发出的存储池创建指令,建立存储池并设置每个存储池对应的存储策略;存储策略包括主数据中心、应用数据的副本总数量、以及存储至主数据中心的第一副本数量。
进一步地,上述主副本创建模块,还用于:通过伪随机的方式从第一类存储节点中,选取主副本的存储节点;在选取的存储节点上写入应用数据的主副本。
进一步地,上述从主副本创建模块,还用于:根据查找到的存储池对应的存储策略确定第二副本数量;第二副本数量为以第二数据中心为备数据中心对应的副本数量;通过伪随机的方式从第二类存储节点中,选取第二副本数量的存储节点;通过主副本所在的存储节点,在选取的存储节点上写入应用数据的从副本。
进一步地,上述装置还包括:节点选取模块,用于如果存储策略中包括在第一数据中心存储至少一个从副本,通过伪随机的方式从第一类存储节点除主副本所在的存储节点之外的存储节点中,选取存储节点;从副本写入模块,用于通过主副本所在的存储节点,在选取的存储节点上写入应用数据的从副本。
进一步地,上述第一数据中心还设置有第一监控节点,第一监控节点还与双活数据存储系统的监控站点通信连接;第一数据中心的第一监控节点、第二数据中心的第二监控节点与监控站点处于同一子网;装置还包括:通信连接建立模块,用于当管理设备检测到第一数据中心和第二数据中心通信中断时,通过第一监控节点、第二监控节点与监控站点间的通信链路,与第二数据中心建立通信连接。
本公开实施方式还提供一种双活数据存储系统,该系统包括第一数据中心的管理设备、第二数据中心的管理设备和监控站点;第一数据中心、第二数据中心和监控站点两两之间异地部署,且两两之间通信连接;上述数据存储装置设置于第一数据中心的管理设备。
本实施方式提供了一种与上述方法实施方式相对应的管理设备,图12为该管理设备的结构示意图,如图12所示,该设备包括处理器1201和存储器1200;其中,存储器1200用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述数据存储方法。
图12所示的管理设备还包括总线1202和通信接口1203,处理器1201、通信接口1203和存储器1200通过总线1202连接。该管理设备可以是网络边缘设备。
其中,存储器1200可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。总线1202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1203用于通过网络接口与至少一个用户终端及其它网络单元连接,将封装好的IPv4报文或IPv12报文通过网络接口发送至用户终端。
处理器1201可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1201可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1200,处理器1201读取存储器1200中的信息,结合其硬件完成前述实施方式的方法的步骤。
本发明实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述数据存储方法,具体实现可参见方法实施方式,在此不再赘述。
本发明实施方式所提供的管理设备,其实现原理及产生的技术效果和前述方法实施方式相同,为简要描述,装置实施方式部分未提及之处,可参考前述方法实施方式中相应内容。
在本申请所提供的几个实施方式中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
最后应说明的是:以上所述实施方式,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施方式对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施方式技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种数据存储方法,其特征在于,所述方法应用于双活数据存储系统中的第一数据中心的管理设备;所述管理设备与所述第一数据中心的存储节点连接;所述管理设备还与所述双活数据存储系统的第二数据中心通信连接;所述双活数据存储系统中部署有分布式存储软件;
所述方法包括:
通过所述第一数据中心的访问入口接收数据存储请求;
查找以所述第一数据中心为主数据中心的存储池;所述存储池包含有第一类存储节点和第二类存储节点,其中,所述第一类存储节点归属于所述第一数据中心,所述第二类存储节点归属于所述第二数据中心;
在所述第一类存储节点上创建所述数据存储请求对应的应用数据的主副本;
通过所述主副本所在的存储节点,以及查找到的存储池对应的存储策略,在指定的存储节点上创建所述应用数据的从副本;所述指定的存储节点至少包括所述第二类存储节点;
所述第一数据中心还设置有第一监控节点,所述第一监控节点还与所述双活数据存储系统的监控站点通信连接;所述第一数据中心的第一监控节点、所述第二数据中心的第二监控节点与所述监控站点处于同一子网;所述方法还包括:
当所述管理设备检测到所述第一数据中心和所述第二数据中心通信中断时,通过所述第一监控节点、所述第二监控节点与所述监控站点间的通信链路,与所述第二数据中心建立通信连接。
2.根据权利要求1所述的方法,其特征在于,所述存储池通过下述方式创建:
根据用户发出的存储池创建指令,建立存储池并设置每个所述存储池对应的存储策略;所述存储策略包括主数据中心、应用数据的副本总数量、以及存储至所述主数据中心的第一副本数量。
3.根据权利要求1所述的方法,其特征在于,在所述第一类存储节点上创建所述数据存储请求对应的应用数据的主副本的步骤,包括:
通过伪随机的方式从所述第一类存储节点中,选取所述主副本的存储节点;
在选取的所述存储节点上写入所述应用数据的主副本。
4.根据权利要求1所述的方法,其特征在于,通过所述主副本所在的存储节点,以及查找到的存储池对应的存储策略,在指定的存储节点上创建所述应用数据从副本的步骤,包括:
根据查找到的存储池对应的存储策略确定第二副本数量;所述第二副本数量为以所述第二数据中心为备数据中心对应的副本数量;
通过伪随机的方式从所述第二类存储节点中,选取所述第二副本数量的存储节点;
通过所述主副本所在的存储节点,在选取的存储节点上写入所述应用数据的从副本。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述存储策略中包括在所述第一数据中心存储至少一个从副本,通过伪随机的方式从所述第一类存储节点除所述主副本所在的存储节点之外的存储节点中,选取存储节点;
通过所述主副本所在的存储节点,在选取的存储节点上写入所述应用数据的从副本。
6.一种数据存储装置,其特征在于,所述装置设置于双活数据存储系统中的第一数据中心的管理设备;所述管理设备与所述第一数据中心的存储节点连接;所述管理设备还与所述双活数据存储系统的第二数据中心通信连接;所述双活数据存储系统中部署有分布式存储软件;
所述装置包括:
请求接收模块,用于通过所述第一数据中心的访问入口接收数据存储请求;
查找模块,用于查找以所述第一数据中心为主数据中心的存储池;所述存储池包含有第一类存储节点和第二类存储节点,其中,所述第一类存储节点归属于所述第一数据中心,所述第二类存储节点归属于所述第二数据中心;
主副本创建模块,用于在所述第一类存储节点上创建所述数据存储请求对应的应用数据的主副本;
从主副本创建模块,用于通过所述主副本所在的存储节点,以及查找到的存储池对应的存储策略,在指定的存储节点上创建所述应用数据的从副本;所述指定的存储节点至少包括所述第二类存储节点;
所述第一数据中心还设置有第一监控节点,所述第一监控节点还与所述双活数据存储系统的监控站点通信连接;所述第一数据中心的第一监控节点、所述第二数据中心的第二监控节点与所述监控站点处于同一子网;所述装置还包括:
通信连接建立模块,用于当所述管理设备检测到所述第一数据中心和所述第二数据中心通信中断时,通过所述第一监控节点、所述第二监控节点与所述监控站点间的通信链路,与所述第二数据中心建立通信连接。
7.根据权利要求6所述的装置,其特征在于,所述存储池通过下述方式创建:
根据用户发出的存储池创建指令,建立存储池并设置每个所述存储池对应的存储策略;所述存储策略包括主数据中心、应用数据的副本总数量、以及存储至所述主数据中心的第一副本数量。
8.根据权利要求6所述的装置,其特征在于,所述主副本创建模块,还用于:
通过伪随机的方式从所述第一类存储节点中,选取所述主副本的存储节点;
在选取的所述存储节点上写入所述应用数据的主副本。
9.根据权利要求6所述的装置,其特征在于,所述从主副本创建模块,还用于:
根据查找到的存储池对应的存储策略确定第二副本数量;所述第二副本数量为以所述第二数据中心为备数据中心对应的副本数量;
通过伪随机的方式从所述第二类存储节点中,选取所述第二副本数量的存储节点;
通过所述主副本所在的存储节点,在选取的存储节点上写入所述应用数据的从副本。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
节点选取模块,用于如果所述存储策略中包括在所述第一数据中心存储至少一个从副本,通过伪随机的方式从所述第一类存储节点除所述主副本所在的存储节点之外的存储节点中,选取存储节点;
从副本写入模块,用于通过所述主副本所在的存储节点,在选取的存储节点上写入所述应用数据的从副本。
11.一种双活数据存储系统,其特征在于,所述系统包括第一数据中心的管理设备、第二数据中心的管理设备和监控站点;所述第一数据中心、所述第二数据中心和所述监控站点两两之间异地部署,且两两之间通信连接;
权利要求6-10任一项所述的装置设置于所述第一数据中心的管理设备。
12.一种管理设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至5任一项所述的方法。
13.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910011588.3A CN109828868B (zh) | 2019-01-04 | 2019-01-04 | 数据存储方法、装置、管理设备和双活数据存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910011588.3A CN109828868B (zh) | 2019-01-04 | 2019-01-04 | 数据存储方法、装置、管理设备和双活数据存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109828868A CN109828868A (zh) | 2019-05-31 |
CN109828868B true CN109828868B (zh) | 2023-02-03 |
Family
ID=66860193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910011588.3A Active CN109828868B (zh) | 2019-01-04 | 2019-01-04 | 数据存储方法、装置、管理设备和双活数据存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109828868B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112578992B (zh) * | 2019-09-27 | 2022-07-22 | 西安华为技术有限公司 | 一种数据存储方法和数据存储装置 |
CN111142801B (zh) * | 2019-12-26 | 2021-05-04 | 星辰天合(北京)数据科技有限公司 | 分布式存储系统网络亚健康检测方法及装置 |
CN111414271B (zh) * | 2020-03-17 | 2023-10-13 | 上海爱数信息技术股份有限公司 | 一种基于自适应存储冗余策略的存储方法 |
CN111581221B (zh) * | 2020-03-18 | 2023-09-26 | 宁波送变电建设有限公司永耀科技分公司 | 一种分布式多站融合系统信息冗余存储与重构的方法 |
CN111858191B (zh) * | 2020-06-29 | 2024-02-09 | 广东浪潮大数据研究有限公司 | 一种双活存储控制方法、装置、设备及存储介质 |
CN111813346A (zh) * | 2020-07-23 | 2020-10-23 | 山东超越数控电子股份有限公司 | 基于云平台搭建Ceph分布式存储的方法、系统、设备及介质 |
CN112181736A (zh) * | 2020-09-23 | 2021-01-05 | 星辰天合(北京)数据科技有限公司 | 分布式存储系统及分布式存储系统的配置方法 |
CN111949223B (zh) * | 2020-09-25 | 2022-11-25 | 苏州浪潮智能科技有限公司 | 一种双活卷扩容方法以及相关装置 |
CN113626144B (zh) * | 2021-07-18 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 一种集群创建存储双活卷的方法、装置、设备及可读介质 |
CN114089923A (zh) * | 2021-11-29 | 2022-02-25 | 新华三大数据技术有限公司 | 一种双活存储系统及其数据处理方法 |
CN114422538B (zh) * | 2022-03-28 | 2022-07-12 | 维塔科技(北京)有限公司 | 多云存储系统、多云数据读写方法及电子设备 |
CN116016132A (zh) * | 2022-12-12 | 2023-04-25 | 中国工商银行股份有限公司 | 双活数据中心系统、灾备方法及装置 |
CN115865932B (zh) * | 2023-02-27 | 2023-06-23 | 天翼云科技有限公司 | 流量调度方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001082078A2 (en) * | 2000-04-20 | 2001-11-01 | Ciprico, Inc. | Method and apparatus for maintaining the integrity of configuration data in redundant, fault tolerant network appliances |
CN106844145A (zh) * | 2016-12-29 | 2017-06-13 | 北京奇虎科技有限公司 | 一种服务器硬件故障预警方法和装置 |
CN108768793A (zh) * | 2018-07-11 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种存储双活链路故障测试方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444541B2 (en) * | 2006-06-30 | 2008-10-28 | Seagate Technology Llc | Failover and failback of write cache data in dual active controllers |
US8538926B2 (en) * | 2011-03-08 | 2013-09-17 | Rackspace Us, Inc. | Massively scalable object storage system for storing object replicas |
US20150227601A1 (en) * | 2014-02-13 | 2015-08-13 | Actifio, Inc. | Virtual data backup |
CN106899518B (zh) * | 2017-02-27 | 2022-08-19 | 腾讯科技(深圳)有限公司 | 一种基于互联网数据中心的资源处理方法以及装置 |
US10891069B2 (en) * | 2017-03-27 | 2021-01-12 | Commvault Systems, Inc. | Creating local copies of data stored in online data repositories |
US10362517B2 (en) * | 2017-04-07 | 2019-07-23 | Vapor IO Inc. | Distributed handoff-related processing for wireless networks |
CN108259270A (zh) * | 2018-01-11 | 2018-07-06 | 郑州云海信息技术有限公司 | 一种数据中心统一管理系统设计方法 |
-
2019
- 2019-01-04 CN CN201910011588.3A patent/CN109828868B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001082078A2 (en) * | 2000-04-20 | 2001-11-01 | Ciprico, Inc. | Method and apparatus for maintaining the integrity of configuration data in redundant, fault tolerant network appliances |
CN106844145A (zh) * | 2016-12-29 | 2017-06-13 | 北京奇虎科技有限公司 | 一种服务器硬件故障预警方法和装置 |
CN108768793A (zh) * | 2018-07-11 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种存储双活链路故障测试方法及装置 |
Non-Patent Citations (1)
Title |
---|
多数据中心间异地存储管理平台的设计与实现;潘松杜;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170315(第3期);第I137-278页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109828868A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109828868B (zh) | 数据存储方法、装置、管理设备和双活数据存储系统 | |
CN1554055B (zh) | 高可用性集群虚拟服务器系统 | |
EP3620905B1 (en) | Method and device for identifying osd sub-health, and data storage system | |
EP3101530B1 (en) | Data distribution method, data storage method, related apparatus, and system | |
US9769259B2 (en) | Network storage systems having clustered RAIDs for improved redundancy and load balancing | |
WO2014083598A1 (en) | Hierarchical storage system and file management method | |
JP2017534133A (ja) | 分散ストレージ及びレプリケーションシステム、並びに方法 | |
EP3745269B1 (en) | Hierarchical fault tolerance in system storage | |
US20240248810A1 (en) | Systems and methods for cross-regional back up of distributed databases on a cloud service | |
CN108319618B (zh) | 一种分布式存储系统的数据分布控制方法、系统及装置 | |
CN111431980B (zh) | 分布式存储系统及其路径切换方法 | |
CN110474802B (zh) | 设备切换方法及装置、服务系统 | |
US9917740B2 (en) | Reducing internodal communications in a clustered system | |
CN115826876A (zh) | 数据写入方法、系统、存储硬盘、电子设备及存储介质 | |
CN113849136A (zh) | 一种基于国产平台的自动化fc块存储处理方法和系统 | |
US10747635B1 (en) | Establishing quorums on an object-by-object basis within a management system | |
CN109165122B (zh) | 一种提升基于区块链技术实现的应用系统同城多园区部署灾备能力的方法 | |
US20180241820A1 (en) | Software-defined storage apparatus, and system and storage method thereof | |
CN106027313B (zh) | 网络链路容灾系统及方法 | |
US20160077743A1 (en) | Shared-bandwidth multiple target remote copy | |
US9582384B2 (en) | Method and system for data replication | |
CN117555493B (zh) | 数据处理方法、系统、装置、存储介质及电子设备 | |
US20240184610A1 (en) | Path selection method based on an active-active configuration for a hyperconverged infrastructure storage environment | |
WO2024067051A1 (zh) | 一种多az仲裁系统及方法 | |
CN115016738B (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 |