CN111917823A - 一种基于分布式存储Ceph的数据重构方法与装置 - Google Patents

一种基于分布式存储Ceph的数据重构方法与装置 Download PDF

Info

Publication number
CN111917823A
CN111917823A CN202010554840.8A CN202010554840A CN111917823A CN 111917823 A CN111917823 A CN 111917823A CN 202010554840 A CN202010554840 A CN 202010554840A CN 111917823 A CN111917823 A CN 111917823A
Authority
CN
China
Prior art keywords
reconstruction
data
bandwidth
ceph
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010554840.8A
Other languages
English (en)
Other versions
CN111917823B (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.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies 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 Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN202010554840.8A priority Critical patent/CN111917823B/zh
Publication of CN111917823A publication Critical patent/CN111917823A/zh
Application granted granted Critical
Publication of CN111917823B publication Critical patent/CN111917823B/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/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]
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability 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]
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于分布式存储Ceph的数据重构方法与装置,其中方法包括:根据Ceph集群中当前数据重构的任务量调整第一参数,使得每个重构数据均处于“重构中”;根据用户所期望达到的平均重构带宽调整第二参数,使得Ceph集群的实时重构带宽满足用户需求;在数据重构过程中,根据当前剩余的重构数据量与重构数据总量的比例对第二参数进行动态调整,直至重构过程结束。通过采用与分布式存储Ceph数据重构过程的动态特征相适应的动态调参方法来对数据重构过程进行控制,可保证重构带宽以及对上层业务影响程度之间的平衡;而且在动态调整参数时以用户预期为导向,更容易满足用户的预期。

Description

一种基于分布式存储Ceph的数据重构方法与装置
技术领域
本发明属于分布式存储技术领域,更具体地,涉及一种基于分布式存储Ceph的数据重构方法与装置。
背景技术
Ceph是一款统一的开源分布式存储系统,由于其统一存储,支持对外提供块存储、文件存储、对象存储服务,同时具备高可用、高可扩展性、高性能的特性,因此在各领域都有广泛的使用。
在分布式存储系统Ceph中,硬盘故障是一种常见问题。为了保证数据安全,当发生硬盘故障后,分布式存储系统会依据算法对故障硬盘上的数据进行数据重构及转储。数据重构过程的时间越长,分布式存储系统发生二次故障或多次故障的概率就越高,相应丢数据的风险也越大,所以理论上数据重构速度越快越好。但数据重构过程会占用分布式存储系统中其它工作硬盘的读写带宽,进而对正常业务造成影响;理论上重构带宽越大,相应的对正常业务的影响也越大。鉴于上述因素,目前很多应用场景对数据重构在重构速度以及重构过程对业务的影响程度都有相应约束要求,故而该问题是分布式存储系统可靠性和稳定性研究中的一个重要问题。
分布式存储系统Ceph通常提供参数配置的方式对其数据重构过程进行控制,目前业界多采用固定参数配置的方式来控制Ceph的数据重构过程,即重构前完成参数配置,且该配置参数将作用于整个重构过程。然而,由于Ceph的数据重构是一个动态过程,若采用固定参数配置的方式,很难保证所配置的固定参数对整个重构过程的各个阶段都合理,故很难实现保证高重构带宽的同时,还保证对正常业务的低影响,即难以达到最理想的平均重构带宽以及整个数据重构过程对上层业务的平均影响程度。因此如何依据Ceph数据重构过程的动态特点,设计有效的动态调参算法,是本领域技术人员亟待解决的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于分布式存储Ceph的数据重构方法与装置,其目的在于利用与分布式存储Ceph数据重构过程的动态特征相适应的动态调参方法,来对Ceph的数据重构过程进行控制,由此解决固定参数配置难以在保证高重构带宽的同时保证对正常业务的低影响的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于分布式存储Ceph的数据重构方法,包括:
根据Ceph集群中当前数据重构的任务量调整第一参数,使得每个重构数据均处于“重构中”的状态;
根据用户所期望达到的平均重构带宽调整第二参数,使得Ceph集群的实时重构带宽满足用户需求;
在数据重构过程中,根据当前剩余的重构数据量与重构数据总量的比例不断对第二参数进行动态调整,直至重构过程结束;
其中,所述第一参数用于限定数据重构任务执行的并发数,所述第二参数用于限定两次数据重构任务处理之间的时间间隔。
优选地,所述根据Ceph集群中当前数据重构的任务量调整第一参数,使得每个重构数据均处于“重构中”的状态,具体为:
通过Ceph提供的底层指令实时监控Ceph集群中各重构数据是否都处于“重构中”的状态;如果存在重构数据未处于“重构中”的状态,则将Ceph集群所配置的第一参数逐次增加1并继续监控,直至每个重构数据均处于“重构中”的状态。
优选地,所述根据用户所期望达到的平均重构带宽调整第二参数,使得Ceph集群的实时重构带宽满足用户需求,具体为:
通过Ceph提供的底层指令监控Ceph集群的实时重构带宽是否满足用户需求;如果实时重构带宽不满足用户需求,则采用折半查找法对Ceph集群所配置的第二参数进行调整,直至所述实时重构带宽满足用户需求。
优选地,所述实时重构带宽满足用户需求具体为:
FLOOR_BW≤REAL_BW≤UPPER_BW;
其中,REAL_BW为实时重构带宽,UPPER_BW为重构刚开始时的最高重构带宽,FLOOR_BW为重构刚开始时的最低重构带宽,且UPPER_BW和FLOOR_BW按照以下公式赋值:
UPPER_BW=UPPER_FACTOR*BW;
FLOOR_BW=FLOOR_FACTOR*BW;
其中,UPPER_FACTOR为重构带宽上限因子,FLOOR_FACTOR为重构带宽下限因子,BW为用户所期望达到的平均重构带宽。
优选地,每次对第二参数进行动态调整之后,所述方法还包括:
通过Ceph提供的底层指令监控数据重构过程是否结束;
如果数据重构结束,则记录本次数据重构的结束时间FINISH_TIME,并根据本次数据重构的开始时间START_TIME和结束时间FINISH_TIME,计算本次数据重构的平均速度REAL_AVERAGE;
根据本次数据重构的平均速度REAL_AVERAGE,对最高重构带宽UPPER_BW和最低重构带宽FLOOR_BW进行修正,以备下次数据重构时使用;
其中,REAL_AVERAGE=TOTAL_CAPACITY/(FINISH_TIME–START_TIME),TOTAL_CAPACITY为本次数据重构的数据所占空间大小。
优选地,所述最高重构带宽UPPER_BW和所述最低重构带宽FLOOR_BW的修正公式具体为:
UPPER_BW’=UPPER_BW*(REAL_AVERAGE/BW)
FLOOR_BW’=FLOOR_BW*(REAL_AVERAGE/BW)
其中,UPPER_BW’为修正后的最高重构带宽,FLOOR_BW’为修正后的最低重构带宽。
优选地,所述根据当前剩余的重构数据量与重构数据总量的比例不断对第二参数进行动态调整,具体为:
通过Ceph提供的底层指令实时监控当前剩余的重构数据量RES,进而根据当前剩余的重构数据量RES和重构数据总量SUM计算此时应该设置的第二参数取值SLEEP,并将当前的第二参数取值调整为SLEEP的取值;
其中,SLEEP=(RES/SUM)*MAX_SLEEP,MAX_SLEEP为根据用户所期望达到的平均重构带宽调整后的第二参数取值。
优选地,在所述根据Ceph集群中当前数据重构的任务量调整第一参数之前,所述方法还包括:
以配置文件的形式接收用户设定的期望参数;
通过Ceph提供的底层指令实时监控Ceph集群是否发生数据重构;
如果发生数据重构,则初始化本次数据重构所需的相关参数。
优选地,所述用户设定的期望参数包括:用户所期望达到的平均重构带宽、重构数据量感知粒度、重构数据量变化感知粒度、数据单元计数方式以及第二参数控制粒度中的一项或者多项;
所述本次数据重构所需的相关参数包括:本次数据重构的开始时间、重构数据总量、重构数据所占的总存储空间、重构刚开始时的最高重构带宽以及重构刚开始时的最低重构带宽中的一项或者多项。
按照本发明的另一方面,提供了一种基于分布式存储Ceph的数据重构装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的基于分布式存储Ceph的数据重构方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明采用了一种与分布式存储Ceph数据重构过程的动态特征相适应的动态调参方法来对Ceph的数据重构过程进行控制,具体是在数据重构过程中对数据重构进程进行实时动态监控,进而根据监控结果动态调整相应的参数配置,直到重构过程结束,以此来保证重构带宽以及整个数据重构过程对上层业务影响程度之间的平衡;而且在动态调整参数时以用户预期为导向,更容易满足用户的预期。
附图说明
图1是本发明实施例提供的一种基于分布式存储Ceph的数据重构方法流程图;
图2是本发明实施例提供的一种基于分布式存储Ceph的数据重构算法的执行流程图;
图3是本发明实施例提供的一种基于分布式存储Ceph的数据重构系统与Ceph集群的交互关系图;
图4是本发明实施例提供的一种基于分布式存储Ceph的数据重构装置的架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1
为了对本发明提供的数据重构方法有更直观地了解,本发明实施例首先对所述数据重构方法的设计原理和整体思想进行介绍。
分布式存储Ceph一般通过多个参数来对其数据重构过程进行控制,例如osd_max_backfills参数、osd_recovery_sleep参数、osd_recovery_op_priority参数、osd_client_op_priority参数等。本发明经多次试验研究发现,对数据重构过程起主要作用的有两个参数,分别为osd_max_backfills(即文中提到的第一参数)和osd_recovery_sleep(即文中提到的第二参数),而其他参数的作用比较小。因此,本发明主要通过动态调整所述第一参数osd_max_backfills和所述第二参数osd_recovery_sleep来对数据重构过程进行有效控制。
所述第一参数osd_max_backfills用于限定数据重构任务执行的并发数,通过调大该参数能有效提高数据重构过程的重构带宽。但是,由于调大并发数会占用大量硬盘资源,因此调大该参数除了能提高重构带宽外,也会加重对客户端正常业务的影响程度。
所述第二参数osd_recovery_sleep用于限定硬盘上两次数据重构任务处理之间的时间间隔。调大该参数会在一定程度上降低数据重构带宽,但也会降低硬盘因处理数据重构任务而对正常业务产生的影响。
对于分布式存储Ceph的一次数据重构过程来说,恢复前期重构数据量较大,因此重构过程对整个存储系统产生的压力较大;此时影响重构带宽的主要是第一参数osd_max_backfills,因此为了保证重构带宽,此时需要设定较大的第一参数osd_max_backfills;同时,为了尽量降低数据重构对正常业务的影响程度,此时需要设定较大的第二参数osd_recovery_sleep来降低重构过程对整个存储系统所带来的压力。恢复后期重构数据量变小,存储系统所需执行的数据重构任务也变少,因此重构过程对整个存储系统的压力也变小;此时影响重构带宽的主要参数将不再是第一参数osd_max_backfills,而是变成了第二参数osd_recovery_sleep,若仍采用之前设定的较大的第二参数osd_recovery_sleep,将极大降低重构瞬时带宽;因此为保证重构带宽,此时需要降低第二参数osd_recovery_sleep的取值。
目前通常采用固定参数配置的方式来对Ceph的数据重构过程进行控制,即重构前完成参数配置,且该配置参数将作用于整个重构过程。显然该方式与Ceph的数据重构过程特点不符,无法达到最理想的平均重构带宽以及对整个数据重构过程对上层业务的平均影响程度。因此需要设计一种符合Ceph数据重构过程特点的动态调参方法。
为了解决该问题,本发明提供了一种与分布式存储Ceph数据重构过程的动态特征相适应的动态调参方法来对Ceph的数据重构过程进行控制。该方法的总体思想是:实时监控Ceph的数据重构过程,一旦发生数据重构,将依据当前数据重构的任务量设定一个较大的第一参数osd_max_backfills,使所有重构任务都处于执行状态;同时依据用户所期望的平均重构带宽,设定一个较为合理的第二参数osd_recovery_sleep,尽量在满足用户带宽需求的前提下尽可能降低重构过程对整个存储系统所带来的压力。随后会对整个数据重构过程进行动态监控,依据当前剩余的重构数据量与重构数据总量的比例不断调低第二参数osd_recovery_sleep,以此来保证重构带宽以及对上层业务的影响程度,直到重构过程结束。
总体而言,本发明构思的以上技术方案与现有技术相比,具有如下有益效果:
现有技术在使用时,需反复测试才能确定一个较为合理的固定配置参数,操作步骤复杂且时间长,而且可能达不到预期效果。本发明提出的方法用户只需定义初始参数即可,方便配置,数据重构过程中会动态调整相应参数配置,且由于算法以用户预期为导向,更容易满足用户的预期。
通过在同样配置环境上进行测试发现,采用固定参数配置所能实现的最好的重构性能是:平均重构带宽1TiB/h,业务IOPS(Input/Output Operations Per Second)性能平均下降20%左右;而采用本发明提出的动态配置参数实现的重构性能是:平均重构带宽1.2TiB/h,业务IOPS性能平均下降8%左右。因此本发明提出的方法具有更优的数据重构性能。具体的数据重构过程将在实施例2中展开介绍。
实施例2
基于实施例中的设计原理和思想,本发明实施例提供了一种基于分布式存储Ceph的数据重构方法,可依据Ceph数据重构过程的动态特点进行动态调参,以保证重构带宽和对上层业务的影响程度之间的平衡。
本方法可以用户预期为导向,因此这里首先以配置文件的形式接收用户设定的期望参数,主要是用户所期望达到的平均重构带宽;然后通过Ceph提供的底层指令实时监控Ceph集群是否发生数据重构;如果发生数据重构,则初始化本次数据重构所需的相关参数,例如本次数据重构的开始时间、重构数据总量、重构刚开始时的最高重构带宽以及最低重构带宽等。完成参数的初始化后,开始按照本发明实施例提供的方法进行数据重构,具体参考图1,主要包括以下步骤:
步骤101,根据Ceph集群中当前数据重构的任务量调整第一参数,使得每个重构数据均处于“重构中”的状态。
如实施例1中所述,所述第一参数用于限定数据重构任务执行的并发数。数据重构前期影响重构带宽的主要是第一参数,因此为了保证大的重构带宽需要设定一个较大的第一参数。具体过程如下:通过Ceph提供的底层指令实时监控Ceph集群中各重构数据是否都处于“重构中”的状态;如果存在重构数据未处于“重构中”的状态,则将Ceph集群所配置的第一参数逐次增加1并继续监控,直至每个重构数据均处于“重构中”的状态,此时得到的第一参数即为满足要求的较大参数。
步骤102,根据用户所期望达到的平均重构带宽调整第二参数,使得Ceph集群的实时重构带宽满足用户需求。
如实施例1中所述,所述第二参数用于限定两次数据重构任务处理之间的时间间隔。数据重构前期重构数据量较大,重构过程对整个存储系统产生的压力较大;因此为了尽量降低数据重构对正常业务的影响程度,此时需要设定一个较大的第二参数来降低重构过程对整个存储系统所带来的压力。具体过程如下:通过Ceph提供的底层指令监控Ceph集群的实时重构带宽是否满足用户需求;如果实时重构带宽不满足用户需求,则可在(0,1)区间范围内采用折半查找法对Ceph集群所配置的第二参数进行调整,直至所述实时重构带宽满足用户需求。其中,实时重构带宽满足用户需求具体为:
FLOOR_BW≤REAL_BW≤UPPER_BW;
REAL_BW为实时重构带宽,UPPER_BW为重构刚开始时的最高重构带宽,FLOOR_BW为重构刚开始时的最低重构带宽,且UPPER_BW和FLOOR_BW在进行参数初始化时按照以下公式赋值:
UPPER_BW=UPPER_FACTOR*BW;
FLOOR_BW=FLOOR_FACTOR*BW;
UPPER_FACTOR为重构带宽上限因子,FLOOR_FACTOR为重构带宽下限因子,BW为用户所期望达到的平均重构带宽。其中,UPPER_FACTOR和FLOOR_FACTOR均大于1,本实施例中可将UPEER_FACTOR的初始值设为1.3,FLOOR_FACTOR的初始值设为1.1,每次重构过程结束后可进行动态调整。
步骤103,在数据重构过程中,根据当前剩余的重构数据量与重构数据总量的比例不断对第二参数进行动态调整,直至重构过程结束。
如实施例1中所述,随着数据重构过程的进行,后期重构数据量逐渐变小,重构过程对整个存储系统的压力也变小;此时影响重构带宽的主要参数变成了第二参数,因此为保证重构带宽需要降低第二参数的取值。具体过程如下:通过Ceph提供的底层指令实时监控当前剩余的重构数据量RES,进而根据当前剩余的重构数据量RES和重构数据总量SUM计算此时应该设置的第二参数取值SLEEP,并将当前的第二参数取值调整为SLEEP的取值;剩余的重构数据量越少,第二参数越小。其中,SLEEP=(RES/SUM)*MAX_SLEEP,MAX_SLEEP为根据用户所期望达到的平均重构带宽调整后的第二参数取值,即步骤102中设置的第二参数取值。
进一步地,每次对第二参数进行动态调整之后,所述方法还包括:
通过Ceph提供的底层指令监控数据重构过程是否结束;如果数据重构结束,则记录本次数据重构的结束时间FINISH_TIME,并根据本次数据重构的开始时间START_TIME和结束时间FINISH_TIME,计算本次数据重构的平均速度REAL_AVERAGE;然后根据本次数据重构的平均速度REAL_AVERAGE,对最高重构带宽UPPER_BW和最低重构带宽FLOOR_BW进行修正,以备下次数据重构时使用。
其中,REAL_AVERAGE=TOTAL_CAPACITY/(FINISH_TIME–START_TIME),TOTAL_CAPACITY为本次数据重构的数据所占存储空间的大小。所述最高重构带宽UPPER_BW和所述最低重构带宽FLOOR_BW的具体修正公式如下:
UPPER_BW’=UPPER_BW*(REAL_AVERAGE/BW)
FLOOR_BW’=FLOOR_BW*(REAL_AVERAGE/BW)
其中,UPPER_BW’为修正后的最高重构带宽,FLOOR_BW’为修正后的最低重构带宽。下次数据重构时,则将最高重构带宽的值初始化为UPPER_BW’,将最低重构带宽的值初始化为FLOOR_BW’。
综上所述,本发明实施例提供的上述数据重构方法具有以下有益效果:
采用与分布式存储Ceph数据重构过程的动态特征相适应的动态调参方法来对Ceph的数据重构过程进行控制,一旦发生数据重构先设定一个较大的第一参数和第二参数,尽量在满足用户带宽需求的前提下降低重构过程对整个存储系统所带来的压力;随后依据当前剩余的重构数据量与重构数据总量的比例不断调低第二参数,以此来保证重构带宽以及对上层业务的影响程度,直到重构过程结束。在设置整参数时以用户预期为导向,更容易满足用户的预期。
实施例3
在上述实施例2提供的一种基于分布式存储Ceph的数据重构方法基础上,本发明实施例进一步对该方法对应的完整算法流程进行介绍,如图2所示,具体包括以下步骤:
步骤201,以配置文件的形式接收用户设定的期望参数,包括用户所期望达到的平均重构带宽BW、重构数据量感知粒度S、重构数据量变化感知粒度N1、数据单元计数方式UNIT以及第二参数控制粒度N2中的一项或者多项。
用户所期望达到的平均重构带宽BW的取值范围为(0,∞),由用户根据硬件环境以及业务需求进行配置,本发明实施例默认值为1.2TiB/h。
重构数据量感知粒度S用来指导算法标定重构数据总量的单位,其取值为“MiB”、“GiB”或“TiB”,本发明实施例中默认为“GiB”。
重构数据量变化感知粒度N1,表示算法在重构过程中所感知的重构数据量的变化幅度为1/10^N1,其取值范围为(0,∞)的正整数,本发明实施例中默认取值为1。
数据单元计数方式UNIT用来指导算法所感知的重构数据集的单位,其取值为“PG”或“Object”。
第二参数控制粒度N2表示算法所设定的第二参数的值统一保留小数点后N2位,其取值范围为(0,∞)的正整数,本发明实施例中默认取值为2。
上述设定的默认取值均依据实验环境的硬件配置,在实际使用时,需要用户依据自己的硬件环境进行调整和适配,并不唯一限定。用户完成相应配置后,则进入步骤202;若用户不进行相应配置,则算法会取默认值进行默认配置,然后进入步骤202。
步骤202,通过Ceph提供的底层指令实时监控Ceph集群是否发生数据重构。如果发生数据重构则进入步骤203;如果未发生数据重构则等待预设周期之后,继续监控是否发生数据重构,即继续步骤202。
步骤203,初始化本次数据重构所需的相关参数,包括本次数据重构的开始时间START_TIME、重构数据总量SUM、重构数据所占的总存储空间大小TOTAL_CAPACITY、重构刚开始时的最高重构带宽UPPER_BW和重构刚开始时的最低重构带宽FLOOR_BW中的一项或多项。
本次数据重构的重构数据总量SUM(通常为数据单元总量)的赋值如下:若步骤201中用户将数据单元计数方式UNIT设定为“PG”,则查询Ceph集群当前重构的PG总数并赋值给SUM;若步骤201中用户将数据单元计数方式UNIT设定为“Object”,则查询Ceph集群当前重构的Object总数并赋值给SUM。
本次数据重构的重构数据所占的总存储空间大小TOTAL_CAPACITY,通过查询Ceph集群可以获得该值,其单位与步骤201中用户设定的重构数据量感知粒度S保持一致,且取整。
重构刚开始时的最高重构带宽UPPER_BW和最低重构带宽FLOOR_BW按如下计算公式赋值:
UPPER_BW=UPPER_FACTOR*BW
FLOOR_BW=FLOOR_FACTOR*BW
其中,UPEER_FACTOR的初始值为1.3,FLOOR_FACTOR的初始值为1.1,在每次重构过程结束后可进行动态调整。
完成上述这些参数的初始化后,则进入步骤204。
步骤204,通过Ceph提供的底层指令实时监控Ceph集群中各重构数据是否都处于“重构中”的状态。如果存在重构数据未处于“重构中”的状态,则进入步骤205;如果都处于“重构中”的状态,则进入步骤206,
步骤205,将Ceph集群所配置的第一参数增加1,并返回步骤204继续监控,直至每个重构数据均处于“重构中”的状态,完成第一参数设置。
步骤206,通过Ceph提供的底层指令监控Ceph集群的实时重构带宽REAL_BW是否满足用户需求,即是否满足FLOOR_BW≤REAL_BW≤UPPER_BW。
如果实时重构带宽满足用户需求,则直接进入步骤207;如果不满足用户需求,则在(0,1)区间范围内采用折半查找法对Ceph集群所配置的第二参数进行调整,直至所述实时重构带宽满足用户需求,然后进入步骤207。其中,在调整过程中第二参数的取值均保留小数点后N2位。
步骤207,将此时配置的第二参数取值记为MAX_SLEEP,完成第二参数设置,然后进入步骤208。
步骤208,通过Ceph提供的底层指令实时监控当前剩余的重构数据量RES,并按SLEEP=(RES/SUM)*MAX_SLEEP计算当前应该设置的第二参数值SLEEP,计算结果保留N2位小数。计算完成后进入步骤209。
步骤209,将Ceph集群的第二参数设定为步骤208中SLEEP的取值,并进入步骤210。
步骤210,通过Ceph提供的底层指令实时监控本次数据重构过程是否结束;若结束,则记录本次数据重构的结束时间FINISH_TIME,然后进入步骤211,否则进入步骤208。
步骤211,计算本次数据重构的平均速度REAL_AVERAGE,结果保留整数;其中,计算公式如下:
REAL_AVERAGE=TOTAL_CAPACITY/(FINISH_TIME-START_TIME;
计算完成后,进入步骤212。
步骤212,根据本次数据重构的平均速度REAL_AVERAGE对最高重构带宽UPPER_BW和最低重构带宽FLOOR_BW进行修正,得到修正后的UPPER_BW’和FLOOR_BW’,结果保留小数点后2位。其中,修正公式如下:
UPPER_BW’=UPPER_BW*(REAL_AVERAGE/BW)
FLOOR_BW’=FLOOR_BW*(REAL_AVERAGE/BW);
修正完成后,等待预设周期进入步骤202,继续监控是否发生数据重构。
实施例4
在上述实施例1-实施例3提供的数据重构方法基础上,本发明实施例进一步提供了一种基于分布式存储Ceph的数据重构系统,可用于实现实施例1-实施例3中的数据重构方法。
如图3所示,Ceph集群的核心组件包括多个对象存储设备(Object StorageDevice,简写为OSD)和多个监视器(Monitor,简写为MON)。
所述OSD的主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查等,并将一些变化情况上报给MON。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD。Ceph OSD的架构实现一般由物理磁盘驱动器、Linux文件系统和Ceph OSD服务组成。
所述MON负责监视Ceph集群,并维护Ceph集群的健康状态,同时维护着Ceph集群中的各种Map图,比如OSD Map、Monitor Map、PG Map和CRUSH Map,这些Map统称为ClusterMap。Cluster Map是关键数据结构,管理集群中的所有成员、关系、属性等信息以及数据的分发,比如当用户需要存储数据到Ceph集群时,OSD需要先通过MON获取最新的Map图,然后根据Map图等计算出数据最终存储的位置。
进一步参考图3,本发明实施例提供的所述数据重构系统工作在Ceph集群之外,是一个独立模块,用来对Ceph集群的数据重构过程进行监控,并对其数据重构过程中的参数进行动态调整。所述数据重构系统包括Ceph数据重构过程监控模块和重构参数动态调整模块。
所述Ceph数据重构过程监控模块通过Ceph提供的原生接口进行状态查询,即可实现对Ceph数据重构过程的实时监控,进而判断数据重构是否开始、是否结束、重构数据是否处于“重构中”的状态等等;具体实现过程可参考实施例1-实施例3中的方法介绍,在此不做赘述。
所述重构参数动态调整模块用于根据所述Ceph数据重构过程监控模块通的监控结果,对所述第一参数和所述第二参数进行动态调整,具体按照实施例1-实施例3中的方法来实现调整,在此不做赘述。
进一步地,所述重构参数动态调整模块还可包括第一参数设置模块、第二参数设置模块和第二参数动态调整模块。
所述第一参数设置模块用于根据Ceph集群中当前数据重构的任务量调整第一参数,使得每个重构数据均处于“重构中”的状态;所述第二参数设置模块用于根据用户所期望达到的平均重构带宽调整第二参数,使得Ceph集群的实时重构带宽满足用户需求;所述第二参数动态调整模块用于根据当前剩余的重构数据量与重构数据总量的比例不断对第二参数进行动态调整,直至重构过程结束。具体调整过程可按照实施例1-实施例3中的方法来实现调整,在此不做赘述
实施例5
在上述实施例1-实施例3提供的基于分布式存储Ceph的数据重构方法的基础上,本发明还提供了一种可用于实现上述方法的基于分布式存储Ceph的数据重构装置,如图4所示,是本发明实施例的装置架构示意图。本实施例的基于分布式存储Ceph的数据重构装置包括一个或多个处理器21以及存储器22。其中,图4中以一个处理器21为例。
所述处理器21和所述存储器22可以通过总线或者其他方式连接,图4中以通过总线连接为例。
所述存储器22作为一种基于分布式存储Ceph的数据重构方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1-实施例3中的基于分布式存储Ceph的数据重构方法。所述处理器21通过运行存储在所述存储器22中的非易失性软件程序、指令以及模块,从而执行基于分布式存储Ceph的数据重构装置的各种功能应用以及数据处理,即实现实施例1-实施例3的基于分布式存储Ceph的数据重构方法。
所述存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,所述存储器22可选包括相对于所述处理器21远程设置的存储器,这些远程存储器可以通过网络连接至所述处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1-实施例3中的基于分布式存储Ceph的数据重构方法,例如,执行以上描述的图1和图2所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于分布式存储Ceph的数据重构方法,其特征在于,包括:
根据Ceph集群中当前数据重构的任务量调整第一参数,使得每个重构数据均处于“重构中”的状态;
根据用户所期望达到的平均重构带宽调整第二参数,使得Ceph集群的实时重构带宽满足用户需求;
在数据重构过程中,根据当前剩余的重构数据量与重构数据总量的比例不断对第二参数进行动态调整,直至重构过程结束;
其中,所述第一参数用于限定数据重构任务执行的并发数,所述第二参数用于限定两次数据重构任务处理之间的时间间隔。
2.如权利要求1所述的基于分布式存储Ceph的数据重构方法,其特征在于,所述根据Ceph集群中当前数据重构的任务量调整第一参数,使得每个重构数据均处于“重构中”的状态,具体为:
通过Ceph提供的底层指令实时监控Ceph集群中各重构数据是否都处于“重构中”的状态;如果存在重构数据未处于“重构中”的状态,则将Ceph集群所配置的第一参数逐次增加1并继续监控,直至每个重构数据均处于“重构中”的状态。
3.如权利要求1所述的基于分布式存储Ceph的数据重构方法,其特征在于,所述根据用户所期望达到的平均重构带宽调整第二参数,使得Ceph集群的实时重构带宽满足用户需求,具体为:
通过Ceph提供的底层指令监控Ceph集群的实时重构带宽是否满足用户需求;如果实时重构带宽不满足用户需求,则采用折半查找法对Ceph集群所配置的第二参数进行调整,直至所述实时重构带宽满足用户需求。
4.如权利要求3所述的基于分布式存储Ceph的数据重构方法,其特征在于,所述实时重构带宽满足用户需求具体为:
FLOOR_BW≤REAL_BW≤UPPER_BW;
其中,REAL_BW为实时重构带宽,UPPER_BW为重构刚开始时的最高重构带宽,FLOOR_BW为重构刚开始时的最低重构带宽,且UPPER_BW和FLOOR_BW按照以下公式赋值:
UPPER_BW=UPPER_FACTOR*BW;
FLOOR_BW=FLOOR_FACTOR*BW;
其中,UPPER_FACTOR为重构带宽上限因子,FLOOR_FACTOR为重构带宽下限因子,BW为用户所期望达到的平均重构带宽。
5.如权利要求4所述的基于分布式存储Ceph的数据重构方法,其特征在于,每次对第二参数进行动态调整之后,所述方法还包括:
通过Ceph提供的底层指令监控数据重构过程是否结束;
如果数据重构结束,则记录本次数据重构的结束时间FINISH_TIME,并根据本次数据重构的开始时间START_TIME和结束时间FINISH_TIME,计算本次数据重构的平均速度REAL_AVERAGE;
根据本次数据重构的平均速度REAL_AVERAGE,对最高重构带宽UPPER_BW和最低重构带宽FLOOR_BW进行修正,以备下次数据重构时使用;
其中,REAL_AVERAGE=TOTAL_CAPACITY/(FINISH_TIME–START_TIME),TOTAL_CAPACITY为本次数据重构的数据所占空间大小。
6.如权利要求5所述的基于分布式存储Ceph的数据重构方法,其特征在于,所述最高重构带宽UPPER_BW和所述最低重构带宽FLOOR_BW的修正公式具体为:
UPPER_BW’=UPPER_BW*(REAL_AVERAGE/BW)
FLOOR_BW’=FLOOR_BW*(REAL_AVERAGE/BW)
其中,UPPER_BW’为修正后的最高重构带宽,FLOOR_BW’为修正后的最低重构带宽。
7.如权利要求1所述的基于分布式存储Ceph的数据重构方法,其特征在于,所述根据当前剩余的重构数据量与重构数据总量的比例不断对第二参数进行动态调整,具体为:
通过Ceph提供的底层指令实时监控当前剩余的重构数据量RES,进而根据当前剩余的重构数据量RES和重构数据总量SUM计算此时应该设置的第二参数取值SLEEP,并将当前的第二参数取值调整为SLEEP的取值;
其中,SLEEP=(RES/SUM)*MAX_SLEEP,MAX_SLEEP为根据用户所期望达到的平均重构带宽调整后的第二参数取值。
8.如权利要求1-7任一所述的基于分布式存储Ceph的数据重构方法,其特征在于,在所述根据Ceph集群中当前数据重构的任务量调整第一参数之前,所述方法还包括:
以配置文件的形式接收用户设定的期望参数;
通过Ceph提供的底层指令实时监控Ceph集群是否发生数据重构;
如果发生数据重构,则初始化本次数据重构所需的相关参数。
9.如权利要求8所述的基于分布式存储Ceph的数据重构方法,其特征在于,所述用户设定的期望参数包括:用户所期望达到的平均重构带宽、重构数据量感知粒度、重构数据量变化感知粒度、数据单元计数方式以及第二参数控制粒度中的一项或者多项;
所述本次数据重构所需的相关参数包括:本次数据重构的开始时间、重构数据总量、重构数据所占的总存储空间、重构刚开始时的最高重构带宽以及重构刚开始时的最低重构带宽中的一项或者多项。
10.一种基于分布式存储Ceph的数据重构装置,其特征在于,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成权利要求1-9任一所述的基于分布式存储Ceph的数据重构方法。
CN202010554840.8A 2020-06-17 2020-06-17 一种基于分布式存储Ceph的数据重构方法与装置 Active CN111917823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010554840.8A CN111917823B (zh) 2020-06-17 2020-06-17 一种基于分布式存储Ceph的数据重构方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010554840.8A CN111917823B (zh) 2020-06-17 2020-06-17 一种基于分布式存储Ceph的数据重构方法与装置

Publications (2)

Publication Number Publication Date
CN111917823A true CN111917823A (zh) 2020-11-10
CN111917823B CN111917823B (zh) 2022-02-18

Family

ID=73237724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010554840.8A Active CN111917823B (zh) 2020-06-17 2020-06-17 一种基于分布式存储Ceph的数据重构方法与装置

Country Status (1)

Country Link
CN (1) CN111917823B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231137A (zh) * 2020-12-14 2021-01-15 广东睿江云计算股份有限公司 一种分布式存储数据的重平衡方法及其系统
CN115150415A (zh) * 2022-06-30 2022-10-04 联想(北京)有限公司 一种控制方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160335166A1 (en) * 2015-05-14 2016-11-17 Cisco Technology, Inc. Smart storage recovery in a distributed storage system
US20160349993A1 (en) * 2015-05-29 2016-12-01 Cisco Technology, Inc. Data-driven ceph performance optimizations
CN107544862A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 一种基于纠删码的存储数据重构方法和装置、存储节点
CN110417677A (zh) * 2019-07-29 2019-11-05 北京易捷思达科技发展有限公司 一种基于Ceph分布式存储Osd端数据Recovery的QoS控制方法
CN110515724A (zh) * 2019-08-13 2019-11-29 新华三大数据技术有限公司 资源配置方法、装置、监视器及机器可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160335166A1 (en) * 2015-05-14 2016-11-17 Cisco Technology, Inc. Smart storage recovery in a distributed storage system
US20160349993A1 (en) * 2015-05-29 2016-12-01 Cisco Technology, Inc. Data-driven ceph performance optimizations
CN107544862A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 一种基于纠删码的存储数据重构方法和装置、存储节点
CN110417677A (zh) * 2019-07-29 2019-11-05 北京易捷思达科技发展有限公司 一种基于Ceph分布式存储Osd端数据Recovery的QoS控制方法
CN110515724A (zh) * 2019-08-13 2019-11-29 新华三大数据技术有限公司 资源配置方法、装置、监视器及机器可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231137A (zh) * 2020-12-14 2021-01-15 广东睿江云计算股份有限公司 一种分布式存储数据的重平衡方法及其系统
CN112231137B (zh) * 2020-12-14 2021-03-30 广东睿江云计算股份有限公司 一种分布式存储数据的重平衡方法及其系统
CN115150415A (zh) * 2022-06-30 2022-10-04 联想(北京)有限公司 一种控制方法、装置、电子设备及存储介质
CN115150415B (zh) * 2022-06-30 2024-04-19 联想(北京)有限公司 一种控制方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111917823B (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
CN110781006B (zh) 负载均衡方法、装置、节点及计算机可读存储介质
CN111522636B (zh) 应用容器的调整方法、调整系统、计算机可读介质及终端设备
CN111917823B (zh) 一种基于分布式存储Ceph的数据重构方法与装置
KR101287448B1 (ko) 퍼지 제어 기반 가상 머신 스케일링 시스템 및 방법
EP3367251A1 (en) Storage system and solid state hard disk
US10929065B2 (en) Method, device and computer program product for coordinating access operations
CN109117306A (zh) 一种基于对象读写时延调整数据恢复速度的方法及装置
CN110636122A (zh) 分布式存储方法、服务器、系统、电子设备以及存储介质
CN111694515A (zh) 一种基于ZNS固态硬盘的zone写分发方法及系统
CN108494788A (zh) 数据的传输方法、数据传输装置及计算机可读存储介质
WO2019170011A1 (zh) 任务分配方法及装置、分布式存储系统
CN115396377B (zh) 对象存储的服务质量优化方法、装置、设备及存储介质
CN111142788A (zh) 一种数据迁移方法、装置和计算机可读存储介质
CN112667527A (zh) 一种确保客户端数据采集准确性的方法及客户端
CN110297743B (zh) 一种负载测试方法、装置和存储介质
US10642817B2 (en) Index table update method, and device
US20220300323A1 (en) Job Scheduling Method and Job Scheduling Apparatus
CN112015326B (zh) 集群数据处理方法、装置、设备及存储介质
US20230035761A1 (en) Method, apparatus, device, and medium for creating thick-provisioned volume
CN106502842B (zh) 数据恢复方法及系统
US20180129425A1 (en) Data management system and method for processing distributed data
CN112416813A (zh) 固态硬盘磨损均衡方法、装置、计算机设备及存储介质
US10289316B2 (en) Storage management device, performance adjustment method, and computer-readable recording medium
CN109582460B (zh) 一种Redis内存数据的淘汰方法和装置
CN117119058B (zh) Ceph分布式存储集群中存储节点优化方法及相关设备

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