CN112181736A - 分布式存储系统及分布式存储系统的配置方法 - Google Patents

分布式存储系统及分布式存储系统的配置方法 Download PDF

Info

Publication number
CN112181736A
CN112181736A CN202011012286.7A CN202011012286A CN112181736A CN 112181736 A CN112181736 A CN 112181736A CN 202011012286 A CN202011012286 A CN 202011012286A CN 112181736 A CN112181736 A CN 112181736A
Authority
CN
China
Prior art keywords
data center
homing
distributed
storage
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011012286.7A
Other languages
English (en)
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.)
Xsky Beijing Data Technology Corp ltd
Original Assignee
Xsky Beijing Data Technology Corp 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 Xsky Beijing Data Technology Corp ltd filed Critical Xsky Beijing Data Technology Corp ltd
Priority to CN202011012286.7A priority Critical patent/CN112181736A/zh
Publication of CN112181736A publication Critical patent/CN112181736A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种分布式存储系统及分布式存储系统的配置方法。其中,该系统包括:第一存储池和第二存储池,第一存储池和第二存储池分别由多个归置组组成,归置组为存储池的基本组成单元,归置组包括:主归置组和主归置组对应的从归置组,其中,第一存储池的所有主归置组分布于第一数据中心的对象存储设备上,第一存储池的从归置组分布于第一数据中心和第二数据中心的对象存储设备上,第二数据中心与第一数据中心互为备份;第二存储池的所有主归置组分布于第二数据中心的对象存储设备上,第二存储池的从归置组分布于第一数据中心和第二数据中心的对象存储设备上。本申请解决了目前分布式存储系统缺乏同城双数据中心容灾场景方案的技术问题。

Description

分布式存储系统及分布式存储系统的配置方法
技术领域
本申请涉及分布式存储系统性能优化领域,具体而言,涉及一种分布式存储系统及分布式存储系统的配置方法。
背景技术
Ceph是目前应用最广泛的开源分布式存储系统,已得到众多厂商的支持,许多商用的分布式存储都是基于Ceph深度定制。而且Ceph已经成为OpenStack云平台的“标配”的云原生存储系统。
Ceph采用CRUSH算法,数据分布均衡,并行度高。该架构中没有中心节点。客户端是通过一个设备映射关系计算出来其写入数据的位置,这样客户端可以直接与存储节点通信,从而避免中心节点的性能瓶颈。
下面以一个OpenStack连接三副本分布式存储为例来描述一下现有架构IO读写流程:
图1是根据本申请实施例的一种分布式存储系统的写流程的示意图,如图1所示,数据被均衡分布在三个存储节点上,每个IO都会先写主pg,然后由主pg负责将数据同步到其它从pg上,最终完成一次写操作。由于主pg分布在不同节点上,可以提供最大并发访问性能。
图2是根据本申请实施例的一种分布式存储系统的读流程的示意图,如图2所示,Openstack发起的读请求只由主pg处理。因为pg被平均分布在所有osd上,从而可以提供最大读并发性能。
随着泛Openstac云平台技术的逐渐成熟,越来越多企业核心应用逐步迁移到云平台,因此云平台的容灾建设对众多企业都是迫在眉睫的。同城双数据中心的容灾方案被广泛使用,当其中一个数据中心故障,另一个数据中心可以无缝接管业务。那么作为分布式存储在该容灾方案中将面临以下三个问题需要解决:
第一,写操作的性能问题。前文提到为了提供最大并发性能,主pg被平均分布到所有存储节点的osd上面。先写主pg,然后主pg同步数据到所有从pg。
图3是根据本申请实施例的一种同城双数据中心的分布式存储系统的示意图,如图3所示,但是当分布式存储被使用在双数据中心的容灾方案中时,由于数据中心间的物理距离,通常会有一定的网络时延,这个时延通常在往返10ms内,它会极大影响高频小块IO的性能,10ms时会降低一半以上性能,更大时甚至影响业务的正常进行。
第二,读操作的性能问题。图4是根据本申请实施例的一种同城双数据中心的分布式存储系统的示意图,如图4所示,因为DC1中Openstack-1发起的读请求要读所有的主pg,这样当它经由这条5ms的路径读取DC2上的主pg时,就会造成性能的极大下降。
针对上述第一和第二个问题,希望本数据中心的Openstack云平台只通过本地IO路径访问本数据中心内的主pg。
第三,如图5所示,当Openstack云平台应用端发生故障转移,分布式存储的主pg需要能够跟随应用端做相应的pg切主,由于pg的重新分布可能带来数据重构,不希望这个重构操作影响到应用业务性能。
针对目前分布式存储系统缺乏同城双数据中心容灾场景方案的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种分布式存储系统及分布式存储系统的配置方法,以至少解决目前分布式存储系统缺乏同城双数据中心容灾场景方案的技术问题。
根据本申请实施例的一个方面,提供了一种分布式存储系统,包括:第一存储池和第二存储池,第一存储池和第二存储池分别由多个归置组组成,归置组为存储池的基本组成单元,归置组包括:主归置组和主归置组对应的从归置组,其中,第一存储池的所有主归置组分布于第一数据中心的对象存储设备上,第一存储池的从归置组分布于第一数据中心和第二数据中心的对象存储设备上,第二数据中心与第一数据中心互为备份;第二存储池的所有主归置组分布于第二数据中心的对象存储设备上,第二存储池的从归置组分布于第一数据中心和第二数据中心的对象存储设备上。
可选地,第一数据中心和第二数据中心的对象存储设备上分布的归置组的数量相同。
可选地,第一数据中心在存储系统执行读/写操作时,仅访问第一存储池的主归置组;第二数据中心在存储系统执行读/写操作时,仅访问第二存储池的主归置组。
可选地,第一数据中心在存储系统执行写操作时,先将数据写入第一存储池的主归置组,第一存储池的主归置组将数据同步至第一存储池的主归置组对应的从归置组;第二数据中心在存储系统执行写操作时,先将数据写入第二存储池的主归置组,第二存储池的主归置组将数据同步至第二存储池的主归置组对应的从归置组。
可选地,第一数据中心在存储系统执行读操作时,从第一存储池的主归置组读取数据;第二数据中心在存储系统执行读操作时,从第二存储池的主归置组读取数据。
可选地,第一数据中心发生故障时,将第一存储池的所有主归置组分布的位置从第一数据中心的对象存储设备切换至第二数据中心的对象存储设备上;第二数据中心发生故障时,将第二存储池的所有主归置组分布的位置从第二数据中心的对象存储设备切换至第一数据中心的对象存储设备上。
根据本申请实施例的另一方面,还提供了一种分布式存储系统的配置方法该方法应用于以上的分布式存储系统,该方法包括以下步骤:在预设算法中选定第一数据中心,预设算法用于为分布式存储系统的存储池分配归置组;依据指定归置组分布工具从第一数据中心的对象存储设备上分布的归置组中选择主归置组;在预设算法中选定第二数据中心;依据指定归置组分布工具从第二数据中心的对象存储设备上分布的归置组中选择主归置组。
根据本申请实施例的另一方面,还提供了另一种分布式存储系统的配置方法,该方法应用于以上的分布式存储系统,该方法包括以下步骤:确定发生故障的数据中心;在预设算法中选定未发生故障的数据中心,预设算法用于为分布式存储系统的存储池分配归置组;在预设算法中选定发生故障的数据中心。
根据本申请实施例的另一方面,还提供了另一种分布式存储系统的配置方法,该方法应用于以上的分布式存储系统,该方法包括以下步骤:在预设算法中选定第一数据中心,预设算法用于为分布式存储系统的存储池分配归置组;依据指定归置组分布工具从第一数据中心的对象存储设备上分布的归置组中选择主归置组;在预设算法中选定第二数据中心;依据指定归置组分布工具从第二数据中心的对象存储设备上分布的归置组中选择主归置组;依据预设指令将第一数据中心的所有对象存储设备的亲和度设置为零。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的分布式存储系统的配置方法。
根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的分布式存储系统的配置方法。
在本申请实施例中,提供了一种分布式存储系统,包括:第一存储池和第二存储池,第一存储池和第二存储池分别由多个归置组组成,归置组为存储池的基本组成单元,归置组包括:主归置组和主归置组对应的从归置组,其中,第一存储池的所有主归置组分布于第一数据中心的对象存储设备上,第一存储池的从归置组分布于第一数据中心和第二数据中心的对象存储设备上,第二数据中心与第一数据中心互为备份;第二存储池的所有主归置组分布于第二数据中心的对象存储设备上,第二存储池的从归置组分布于第一数据中心和第二数据中心的对象存储设备上,达到了以下两个目的:一是解决单一存储池内主pg分布位置可根据数据中心进行设置,主pg只可分布在某一个数据中心内的所有osd上,从而优化本地Openstack云平台应用的本地读写操作;二是可在存储池粒度,在两个数据中心间进行pg切主操作,同时该操作不会触发数据重平衡,影响上层业务,以配合openstack云平台应用端故障转移的优化使用。从而实现了提高了云计算和分布式存储的高可用性,保证在单个数据中心级别发生故障时,业务连续不中断的技术效果,进而解决了目前分布式存储系统缺乏同城双数据中心容灾场景方案技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种分布式存储系统的写流程的示意图;
图2是根据本申请实施例的一种分布式存储系统的读流程的示意图;
图3是根据本申请实施例的一种同城双数据中心的分布式存储系统的示意图;
图4是根据本申请实施例的一种同城双数据中心的分布式存储系统的示意图;
图5是根据本申请实施例的一种同城双数据中心的分布式存储系统的示意图;
图6是根据本申请实施例的一种分布式存储系统中各个组件之间的逻辑关系的示意图;
图7是根据本申请实施例的一种分布式存储系统的示意图;
图8是根据本申请实施例的一种分布式存储系统的同城双数据中心发生故障的示意图;
图9是根据本申请实施例一种分布式存储系统的配置方法的流程图;
图10是根据本申请实施例的另一种分布式存储系统的配置方法的流程图;
图11是根据本申请实施例的另一种分布式存储系统的配置方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
分布式存储系统:是将数据分散存储在多台独立的廉价服务器上,并将这些分散的存储资源构成一个虚拟的存储设备,来提供数据存储服务。它利用多台存储服务器分担存储负荷,来提供使用于大规模、高并发的业务场景。分布式存储采用可横向扩展的体系结构,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展,解决海量数据存储的性能瓶颈。
RBD:Rados Block Device,云计算块存储对外的接口,对QEMU/KVM等虚拟化提供接口。
OSD:Object Storage Device,是指负责数据落盘的一个进程,副本和EC也通过OSD服务实现。每一个硬盘有一个OSD进程。可以认为一个OSD就代表一块硬盘。
Pool:存储池,来自不同服务器上的OSD放入存储池组成一个虚拟存储设备。简单来说就是应用端直接使用的是pool,pool是由存储的基本单位pg组成,pg分布在磁盘逻辑单元osd上,osd一般是对应一块物理硬盘,osd分布在物理主机host上。
Object:对象,存储池的数据空间被按照一定大小被切分成若干objects。每一个Object都有一个Objectid(oid)。
PG:Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD副本。每个object通过hash算法被放入不同的PG中,通过poolid,hash后的oid,经过算法,每个object都可以得到它对应pgid。
CRUSH:Controlled Replication Under Scalable Hashing,受控复制的分布式hash算法,是用于控制数据分布的一种方法。这种算法使得数据的存储位置都是计算出来的而不是去查询专门的元数据服务器得来的。一句话说明CRUSH的作用就是,根据pgid得到一个OSD列表。
CRUSH RULE:CRUSH规则,CRUSH RULE决定如何从对象桶中分配OSD pg。每个存储池必须要有一条CRUSH rule,不同的存储池可对应不同的CRUSH RULE。
图6是根据本申请实施例的一种分布式存储系统中各个组件之间的逻辑关系的示意图,如图6所示,每个Object会先通过简单的Hash算法归到一个pg中,pgid再作为入参通过CRUSH计算置入到多个OSD中(这里Object可以看作是文件,pg即是一个目录,OSD是一个数据根目录下仅有一级子目录的简易文件系统)。
下面对本申请实施例的技术方案进行详细阐述:
图7是根据本申请实施例的一种分布式存储系统的示意图,如图7所示,该分布式存储系统包括:
第一存储池70和第二存储池72,第一存储池70和第二存储池72分别由多个归置组(pg)组成,归置组为存储池的基本组成单元,归置组包括:主归置组和主归置组对应的从归置组,其中,第一存储池的所有主归置组分布于第一数据中心的对象存储设备(osd)上,第一存储池的从归置组分布于第一数据中心和第二数据中心的对象存储设备上,第二数据中心与第一数据中心互为备份;第二存储池的所有主归置组分布于第二数据中心的对象存储设备上,第二存储池的从归置组分布于第一数据中心和第二数据中心的对象存储设备上。
根据本申请的一个可选的实施例,第一数据中心和第二数据中心的对象存储设备上分布的归置组的数量相同。
在本申请的一些可选的实施例,第一数据中心在存储系统执行读/写操作时,仅访问第一存储池的主归置组;第二数据中心在存储系统执行读/写操作时,仅访问第二存储池的主归置组。
根据本申请的一个可选的实施例,第一数据中心在存储系统执行写操作时,先将数据写入第一存储池的主归置组,第一存储池的主归置组将数据同步至第一存储池的主归置组对应的从归置组;第二数据中心在存储系统执行写操作时,先将数据写入第二存储池的主归置组,第二存储池的主归置组将数据同步至第二存储池的主归置组对应的从归置组。
根据本申请的另一个可选的实施例,第一数据中心在存储系统执行读操作时,从第一存储池的主归置组读取数据;第二数据中心在存储系统执行读操作时,从第二存储池的主归置组读取数据。
在本实施例中,单一存储池中的主pg分布位置按数据中心设置,主pg只可分布在某一个数据中心内的所有osd上。
普通分布式存储集群的pg分布算法主pg是随机均匀分布在所有的osd上的。跨站点分布式存储集群的使用,为了支持本地读,同时减少写时跨数据中心网络通信,需要将主pg固定在对应的业务站点(即本站点的业务IO只读写本地站点上的主pg),同时不影响容量分布和故障切换。
如图7所示,pg在所有osd上均匀分布,同时以存储池为粒度,主pg按数据中心分布。存储池pool1的主pg只分布在数据中心1,Openstack cluster1读写IO只访问pool1上的主pg;存储池pool2的主pg只分布在数据中心2,Openstack cluster2读写IO只访问pool2上的主pg。通过上述实现业务本地读写,减少写时跨数据中心网络数据负载,降低IO时延,达到优化读写性能的目的。
具体实施时,利用ceph crush rule配置可以实现指定主pg功能。
Figure BDA0002697883510000071
Figure BDA0002697883510000081
然后在存储池初始创建后,考虑到可能会出现pg在对应osd上出现不均衡的情况。同一个crush rule的pool对各个pg应用同样的副本选择规则,选择的副本称为原始(raw)结果,之后可以根据一定规则对原始(raw)结果进行调整,比如使用upmap(一种能够实现人为的指定pg分布的工具)对原始(raw)结果进行重映射,用低负载的osd替换过载的osd。在不设置主pg亲和性(选择权重)的情况下,主pg为选出的第一个副本。
主pg亲和性默认不设置,upmap由于容量均衡的需求在创建pool后会默认应用,只要保证upmap在本数据中心替换,不允许跨站点调整,就可以保证最终的主pg调整后依然落在本数据中心。
综上,指定主pg的方式就是在crush rule先take指定的datacenter。
根据本申请的另一个可选的实施例,第一数据中心发生故障时,将第一存储池的所有主归置组分布的位置从第一数据中心的对象存储设备切换至第二数据中心的对象存储设备上;第二数据中心发生故障时,将第二存储池的所有主归置组分布的位置从第二数据中心的对象存储设备切换至第一数据中心的对象存储设备上。
图8是根据本申请实施例的一种分布式存储系统的同城双数据中心发生故障的示意图,如图8所示,
以存储池粒度,在两个数据中心间进行pg快速切主操作,同时该操作不会触发数据重平衡,影响上层业务。
当数据中心2的openstack cluster2出现故障,集群中的应用虚拟机会全部故障迁移到数据中心1中openstack cluster1。此时迁移到openstack cluster1中的这些虚拟机访问存储池pool2中的数据就要从数据中心1跨站点网络访问pool2上位于数据中心2的主pg,从而造成IO访问时延加大,性能下降。反之,当数据中心2的openstack cluster2从故障中恢复后,被故障转移走的应用虚拟机需要回迁到该集群,同样需要存储池的主pg可以回切到数据中心2。
要解决这个问题我们需要一种机制可以把存储池pool2的主pg位置从数据中心2上的osd切换到位于数据中心1的osd上,从而使IO仍旧进行本地读写,减少跨数据中心站点的数据传输,优化性能。并且在进行此种主pg切换时,要求快速完成,不能进行数据重构,避免因数据重平衡产生的数据流量对业务系统的频繁冲击。
之所以在数据切主时不能进行数据重构,是因为如果触发数据重构,数据会在所有osd之间进行迁移,重新平衡数据,对磁盘、网络都会带来额外的负载压力,特别是在业务高峰期,这类不恰当的操作甚至会阻塞正常业务的运行。另外,也需要考虑两个数据中心间的网络,往往是由运营商提供,按数据量收费,大量的不必要的重平衡数据产生会给企业带来难以估量成本浪费。这样的话这种操作就很难真正的用于生产环境,并提供切实可用的容灾演练。
通过调整ceph crush rule中take站点的顺序来实现pg切主。
比如,集群由站点A和站点B及仲裁站点组成;osd分布在站点A和站点B;集群部署完成后,pg主副本在站点A,次副本在站点B,crush rule如下所示,先take datacenter0(代表站点A),后take datacenter1(代表站点B)。
Figure BDA0002697883510000091
如需要切主到站点B,只需要通过代码实现修改该crush rule为如下所示,先takedatacenter1(代表站点B),后take datacenter0(代表站点A)即可。
Figure BDA0002697883510000092
Figure BDA0002697883510000101
由于修改crush rule中take数据中心的顺序,这个操作很轻量,通过集成到产品界面管理中做到了自动化一键切换,可以实现瞬间pg切主。更重要的是这个实现方法不会改变pg分布的原始映射,因此不会触发pg的数据重构。这样也不会产生数据重平衡的流量对业务负载造成冲击。实现了产品特性真正可用于生产环境。
在本申请的另一个可选的实施例中,还可以通过使用亲和性调整的方案同样达到主副本位置切换的目的。
例如,站点A和站点B,每个站点2个副本,存储池为4副本;crush rule里设置了从站点A选2个osd,然后从站点B选2个osd;这样osd1,osd2,osd3,osd4中主osd就分布在站点A。如果需要将主osd切到站点B,将站点A内的所有osd的亲和度设置为0。
命令执行:ceph osd primary-affinity osd.1 0;
命令执行:ceph osd primary-affinity osd.2 0;
那么在crush计算完后,会将osd的主pg顺序调整为:osd3,osd1,osd2,osd.4,这样就完成了切主功能。如果osd3设备故障了,重新计算后为osd.4,osd.1,osd.2。
通过上述方案,达到了以下两个目的:一是解决单一存储池内主pg分布位置可根据数据中心进行设置,主pg只可分布在某一个数据中心内的所有osd上,从而优化本地Openstack云平台应用的本地读写操作;二是可在存储池粒度,在两个数据中心间进行pg切主操作,同时该操作不会触发数据重平衡,影响上层业务,以配合openstack云平台应用端故障转移的优化使用。解决泛openstack、VMware等云计算平台跨站点分布式存储使用的性能问题,性能提高50%以上,使分布式存储真正可以运行在跨站点的容灾生产环境中。
上述方案经过实验室严格模拟验证证明其切实可行,并且已经安装部署、运行于包括金融、教育、交通等多个行业的多个客户的核心项目。通过稳定可靠的在线生产验证,该产品可以有效的为运行在openstack、VMware云计算平台,K8S的容器平台的用户核心业务应用提供高性能容灾生产环境。
图9是根据本申请实施例一种分布式存储系统的配置方法的流程图,如图9所示,该方法应用于以上的分布式存储系统,包括以下步骤:
步骤S902,在预设算法中选定第一数据中心,预设算法用于为分布式存储系统的存储池分配归置组。
需要说明的是,步骤S902中的预设算法为ceph crush rule算法。
步骤S904,依据指定归置组分布工具从第一数据中心的对象存储设备上分布的归置组中选择主归置组。
根据本申请的一个可选的实施例,本步骤中的饿指定归置组分布工具为upmap(一种能够实现指定pg分布的工具)。
步骤S906,在预设算法中选定第二数据中心。
步骤S908,依据指定归置组分布工具从第二数据中心的对象存储设备上分布的归置组中选择主归置组。
步骤S902至步骤S908提供了一种指定分布式存储系统的存储池的主pg的方法。单一存储池中的主pg分布位置按数据中心设置,主pg只可分布在某一个数据中心内的所有osd上。具体实施时,利用ceph crush rule配置可以实现指定主pg功能。
Figure BDA0002697883510000111
Figure BDA0002697883510000121
然后在存储池初始创建后,考虑到可能会出现pg在对应osd上出现不均衡的情况。同一个crush rule的pool对各个pg应用同样的副本选择规则,选择的副本称为原始(raw)结果,之后可以根据一定规则对原始(raw)结果进行调整,比如使用upmap(一种能够实现人为的指定pg分布的工具)对原始(raw)结果进行重映射,用低负载的osd替换过载的osd。在不设置主pg亲和性(选择权重)的情况下,主pg为选出的第一个副本。
主pg亲和性默认不设置,upmap由于容量均衡的需求在创建pool后会默认应用,只要保证upmap在本数据中心替换,不允许跨站点调整,就可以保证最终的主pg调整后依然落在本数据中心。
综上,指定主pg的方式就是在crush rule先take指定的datacenter。
图10是根据本申请实施例的另一种分布式存储系统的配置方法的流程图,如图10所示,该方法应用于以上的分布式存储系统,包括以下步骤:
步骤S1002,确定发生故障的数据中心。
步骤S1004,在预设算法中选定未发生故障的数据中心,预设算法用于为分布式存储系统的存储池分配归置组。
步骤S1006,在预设算法中选定发生故障的数据中心。
步骤S1002至步骤S1006提供了一种以存储池粒度,在两个数据中心间进行pg快速切主操作的方法。参见图8所示实施例,当数据中心2的openstack cluster2出现故障,集群中的应用虚拟机会全部故障迁移到数据中心1中openstack cluster1。此时迁移到openstack cluster1中的这些虚拟机访问存储池pool2中的数据就要从数据中心1跨站点网络访问pool2上位于数据中心2的主pg,从而造成IO访问时延加大,性能下降。反之,当数据中心2的openstack cluster2从故障中恢复后,被故障转移走的应用虚拟机需要回迁到该集群,同样需要存储池的主pg可以回切到数据中心2。
具体实施时,通过调整ceph crush rule中take站点的顺序来实现pg切主。
比如,集群由站点A和站点B及仲裁站点组成;osd分布在站点A和站点B;集群部署完成后,pg主副本在站点A,次副本在站点B,crush rule如下所示,先take datacenter0(代表站点A),后take datacenter1(代表站点B)。
Figure BDA0002697883510000131
如需要切主到站点B,只需要通过代码实现修改该crush rule为如下所示,先takedatacenter1(代表站点B),后take datacenter0(代表站点A)即可。
Figure BDA0002697883510000132
图11是根据本申请实施例的另一种分布式存储系统的配置方法的流程图,如图11所示,该方法应用于以上的分布式存储系统,该方法包括以下步骤:
步骤S1102,在预设算法中选定第一数据中心,预设算法用于为分布式存储系统的存储池分配归置组。
步骤S1104,依据指定归置组分布工具从第一数据中心的对象存储设备上分布的归置组中选择主归置组。
步骤S1106,在预设算法中选定第二数据中心。
步骤S1108,依据指定归置组分布工具从第二数据中心的对象存储设备上分布的归置组中选择主归置组;
步骤S1110,依据预设指令将第一数据中心的所有对象存储设备的亲和度设置为零。
步骤S1102至步骤S1110提供了另一种在两个数据中心间进行pg快速切主操作的方法。通过使用亲和性调整的方案同样达到主副本位置切换的目的。
例如,站点A和站点B,每个站点2个副本,存储池为4副本;crush rule里设置了从站点A选2个osd,然后从站点B选2个osd;这样osd1,osd2,osd3,osd4中主osd就分布在站点A。如果需要将主osd切到站点B,将站点A内的所有osd的亲和度设置为0。
命令执行:ceph osd primary-affinity osd.1 0;
命令执行:ceph osd primary-affinity osd.2 0;
那么在crush计算完后,会将osd的主pg顺序调整为:osd3,osd1,osd2,osd.4,这样就完成了切主功能。如果osd3设备故障了,重新计算后为osd.4,osd.1,osd.2。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的分布式存储系统的配置方法。
非易失性存储介质用于存储执行以下功能的程序:在预设算法中选定第一数据中心,预设算法用于为分布式存储系统的存储池分配归置组;依据指定归置组分布工具从第一数据中心的对象存储设备上分布的归置组中选择主归置组;在预设算法中选定第二数据中心;依据指定归置组分布工具从第二数据中心的对象存储设备上分布的归置组中选择主归置组。或
确定发生故障的数据中心;在预设算法中选定未发生故障的数据中心,预设算法用于为分布式存储系统的存储池分配归置组;在预设算法中选定发生故障的数据中心。
在预设算法中选定第一数据中心,预设算法用于为分布式存储系统的存储池分配归置组;依据指定归置组分布工具从第一数据中心的对象存储设备上分布的归置组中选择主归置组;在预设算法中选定第二数据中心;依据指定归置组分布工具从第二数据中心的对象存储设备上分布的归置组中选择主归置组;依据预设指令将第一数据中心的所有对象存储设备的亲和度设置为零。
本申请实施例还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的分布式存储系统的配置方法。
处理器用于运行执行以下功能的程序:在预设算法中选定第一数据中心,预设算法用于为分布式存储系统的存储池分配归置组;依据指定归置组分布工具从第一数据中心的对象存储设备上分布的归置组中选择主归置组;在预设算法中选定第二数据中心;依据指定归置组分布工具从第二数据中心的对象存储设备上分布的归置组中选择主归置组。或
确定发生故障的数据中心;在预设算法中选定未发生故障的数据中心,预设算法用于为分布式存储系统的存储池分配归置组;在预设算法中选定发生故障的数据中心。
在预设算法中选定第一数据中心,预设算法用于为分布式存储系统的存储池分配归置组;依据指定归置组分布工具从第一数据中心的对象存储设备上分布的归置组中选择主归置组;在预设算法中选定第二数据中心;依据指定归置组分布工具从第二数据中心的对象存储设备上分布的归置组中选择主归置组;依据预设指令将第一数据中心的所有对象存储设备的亲和度设置为零。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,ReXCTHd-Only Memory)、随机存取存储器(RXCTHM,RXCTHndom XCTHccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种分布式存储系统,其特征在于,包括:第一存储池和第二存储池,所述第一存储池和第二存储池分别由多个归置组组成,所述归置组为存储池的基本组成单元,所述归置组包括:主归置组和所述主归置组对应的从归置组,其中,
所述第一存储池的所有主归置组分布于第一数据中心的对象存储设备上,所述第一存储池的从归置组分布于第一数据中心和第二数据中心的对象存储设备上,所述第二数据中心与所述第一数据中心互为备份;
所述第二存储池的所有主归置组分布于所述第二数据中心的对象存储设备上,所述第二存储池的从归置组分布于所述第一数据中心和所述第二数据中心的对象存储设备上。
2.根据权利要求1所述的系统,其特征在于,所述第一数据中心和所述第二数据中心的对象存储设备上分布的所述归置组的数量相同。
3.根据权利要求1所述的系统,其特征在于,
所述第一数据中心在所述存储系统执行读/写操作时,仅访问所述第一存储池的主归置组;
所述第二数据中心在所述存储系统执行读/写操作时,仅访问所述第二存储池的主归置组。
4.根据权利要求3所述的系统,其特征在于,
所述第一数据中心在所述存储系统执行写操作时,先将数据写入所述第一存储池的主归置组,所述第一存储池的主归置组将所述数据同步至所述第一存储池的主归置组对应的从归置组;
所述第二数据中心在所述存储系统执行写操作时,先将数据写入所述第二存储池的主归置组,所述第二存储池的主归置组将所述数据同步至所述第二存储池的主归置组对应的从归置组。
5.根据权利要求3所述的系统,其特征在于,
所述第一数据中心在所述存储系统执行读操作时,从所述第一存储池的主归置组读取数据;
所述第二数据中心在所述存储系统执行读操作时,从所述第二存储池的主归置组读取数据。
6.根据权利要求1所述的系统,其特征在于,
所述第一数据中心发生故障时,将所述第一存储池的所有主归置组分布的位置从所述第一数据中心的对象存储设备切换至所述第二数据中心的对象存储设备上;
所述第二数据中心发生故障时,将所述第二存储池的所有主归置组分布的位置从所述第二数据中心的对象存储设备切换至所述第一数据中心的对象存储设备上。
7.一种分布式存储系统的配置方法,其特征在于,该方法应用于权利要求1至6中任意一项所述的分布式存储系统,该方法包括以下步骤:
在预设算法中选定第一数据中心,所述预设算法用于为所述分布式存储系统的存储池分配归置组;
依据指定归置组分布工具从所述第一数据中心的对象存储设备上分布的归置组中选择主归置组;
在所述预设算法中选定第二数据中心;
依据所述指定归置组分布工具从所述第二数据中心的对象存储设备上分布的归置组中选择主归置组。
8.一种分布式存储系统的配置方法,其特征在于,该方法应用于权利要求1至6中任意一项所述的分布式存储系统,该方法包括以下步骤:
确定发生故障的数据中心;
在预设算法中选定未发生所述故障的数据中心,所述预设算法用于为所述分布式存储系统的存储池分配归置组;
在所述预设算法中选定发生所述故障的数据中心。
9.一种分布式存储系统的配置方法,其特征在于,该方法应用于权利要求1至6中任意一项所述的分布式存储系统,该方法包括以下步骤:
在预设算法中选定第一数据中心,所述预设算法用于为所述分布式存储系统的存储池分配归置组;
依据指定归置组分布工具从所述第一数据中心的对象存储设备上分布的归置组中选择主归置组;
在所述预设算法中选定第二数据中心;
依据所述指定归置组分布工具从所述第二数据中心的对象存储设备上分布的归置组中选择主归置组;
依据预设指令将所述第一数据中心的所有对象存储设备的亲和度设置为零。
10.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求7至9中任意一项所述的分布式存储系统的配置方法。
CN202011012286.7A 2020-09-23 2020-09-23 分布式存储系统及分布式存储系统的配置方法 Pending CN112181736A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011012286.7A CN112181736A (zh) 2020-09-23 2020-09-23 分布式存储系统及分布式存储系统的配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011012286.7A CN112181736A (zh) 2020-09-23 2020-09-23 分布式存储系统及分布式存储系统的配置方法

Publications (1)

Publication Number Publication Date
CN112181736A true CN112181736A (zh) 2021-01-05

Family

ID=73956061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011012286.7A Pending CN112181736A (zh) 2020-09-23 2020-09-23 分布式存储系统及分布式存储系统的配置方法

Country Status (1)

Country Link
CN (1) CN112181736A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817535A (zh) * 2021-02-03 2021-05-18 柏科数据技术(深圳)股份有限公司 一种归置组分配方法、装置以及分布式存储系统
CN113630317A (zh) * 2021-07-28 2021-11-09 星辰天合(北京)数据科技有限公司 一种数据传输方法、装置、非易失性存储介质及电子装置
CN113687798A (zh) * 2021-10-26 2021-11-23 苏州浪潮智能科技有限公司 一种控制数据重构的方法、装置、设备及可读介质
CN113791730A (zh) * 2021-08-16 2021-12-14 济南浪潮数据技术有限公司 基于双存储池的放置组调整方法、系统、装置及存储介质
CN115202589A (zh) * 2022-09-14 2022-10-18 浪潮电子信息产业股份有限公司 放置组成员选择方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140214793A1 (en) * 2013-01-29 2014-07-31 Nec Laboratories America, Inc. Cost-Effective Data Layout Optimization Over Heterogeneous Storage Classes
CN108418858A (zh) * 2018-01-23 2018-08-17 南京邮电大学 一种面向Geo-distributed云存储的数据副本放置方法
CN108958984A (zh) * 2018-08-13 2018-12-07 深圳市证通电子股份有限公司 基于ceph的双活同步在线热备方法
CN109828868A (zh) * 2019-01-04 2019-05-31 新华三技术有限公司成都分公司 数据存储方法、装置、管理设备和双活数据存储系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140214793A1 (en) * 2013-01-29 2014-07-31 Nec Laboratories America, Inc. Cost-Effective Data Layout Optimization Over Heterogeneous Storage Classes
CN108418858A (zh) * 2018-01-23 2018-08-17 南京邮电大学 一种面向Geo-distributed云存储的数据副本放置方法
CN108958984A (zh) * 2018-08-13 2018-12-07 深圳市证通电子股份有限公司 基于ceph的双活同步在线热备方法
CN109828868A (zh) * 2019-01-04 2019-05-31 新华三技术有限公司成都分公司 数据存储方法、装置、管理设备和双活数据存储系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817535A (zh) * 2021-02-03 2021-05-18 柏科数据技术(深圳)股份有限公司 一种归置组分配方法、装置以及分布式存储系统
CN113630317A (zh) * 2021-07-28 2021-11-09 星辰天合(北京)数据科技有限公司 一种数据传输方法、装置、非易失性存储介质及电子装置
CN113630317B (zh) * 2021-07-28 2022-10-11 北京星辰天合科技股份有限公司 一种数据传输方法、装置、非易失性存储介质及电子装置
CN113791730A (zh) * 2021-08-16 2021-12-14 济南浪潮数据技术有限公司 基于双存储池的放置组调整方法、系统、装置及存储介质
CN113791730B (zh) * 2021-08-16 2024-02-20 济南浪潮数据技术有限公司 基于双存储池的放置组调整方法、系统、装置及存储介质
CN113687798A (zh) * 2021-10-26 2021-11-23 苏州浪潮智能科技有限公司 一种控制数据重构的方法、装置、设备及可读介质
CN115202589A (zh) * 2022-09-14 2022-10-18 浪潮电子信息产业股份有限公司 放置组成员选择方法、装置、设备及可读存储介质
CN115202589B (zh) * 2022-09-14 2023-02-24 浪潮电子信息产业股份有限公司 放置组成员选择方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
US11789831B2 (en) Directing operations to synchronously replicated storage systems
US11803492B2 (en) System resource management using time-independent scheduling
CN112181736A (zh) 分布式存储系统及分布式存储系统的配置方法
US20190384535A1 (en) Enhanced soft fence of devices
AU2017387062B2 (en) Data storage system with redundant internal networks
US11137940B2 (en) Storage system and control method thereof
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
US8639898B2 (en) Storage apparatus and data copy method
US10454810B1 (en) Managing host definitions across a plurality of storage systems
KR20170110708A (ko) 자원 배치 최적화를 위한 기회적 자원 이주
AU2017387063A1 (en) Data storage system with multiple durability levels
CN105027068A (zh) 在存储系统中执行复制
US11579790B1 (en) Servicing input/output (‘I/O’) operations during data migration
CN103946846A (zh) 使用虚拟驱动作为用于raid组的热备用
US9854037B2 (en) Identifying workload and sizing of buffers for the purpose of volume replication
JP2019191951A (ja) 情報処理システム及びボリューム割当て方法
US11733874B2 (en) Managing replication journal in a distributed replication system
US20230004464A1 (en) Snapshot commitment in a distributed system
US10719265B1 (en) Centralized, quorum-aware handling of device reservation requests in a storage system
WO2015145680A1 (ja) 管理計算機、及び計算機システム
JP2019124983A (ja) ストレージシステム及び記憶制御方法
US11704042B2 (en) Dynamically adaptive technique for reference snapshot selection
US11861205B2 (en) Distributed storage system and volume migration method
CN111400098B (zh) 一种副本管理方法、装置、电子设备及存储介质
Dell

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100094 101, floors 1-5, building 7, courtyard 3, fengxiu Middle Road, Haidian District, Beijing

Applicant after: Beijing Xingchen Tianhe Technology Co.,Ltd.

Address before: 100097 room 806-1, block B, zone 2, Jinyuan times shopping center, indigo factory, Haidian District, Beijing

Applicant before: XSKY BEIJING DATA TECHNOLOGY Corp.,Ltd.