一种基于CRUSH的数据存储优化方法和装置与流程

文档序号:16133656发布日期:2018-12-01 00:38阅读:234来源:国知局

本发明涉及计算机存储技术领域,尤其涉及一种基于crush的数据存储优化方法和装置。

背景技术

现如今,移动互联网正处于繁荣鼎盛时期,带动了云计算、物联网(iot)、人工智能(ai)等新兴产业的飞速发展,随之而来的是海量非结构化数据的产生,且在呈爆炸式增长。例如当前人们经常访问的购物网站、视频网站、以及即时通讯工具等,后端存储上保存了海量的视频、图片资源以及用户的访问记录日志等等。传统的技术解决方案通常是多台服务器通过san交换网络同时连接fc光纤存储(共享存储型,而非分布式),然后对外提供服务。采用传统的技术方案存在多个弊端,如硬件成本费用过高;维护管理多个品牌的san存储网络存在困难;硬件存储可能存在单点故障;存储i/o存在瓶颈等。因为终端用户的任意操作均涉及到底部存储的i/o操作,当用户数越来越多,并发越来越大时,i/o操作就会成为整个系统架构中最大的性能瓶颈。如何提供较廉价的超大容量存储,并且要支持高性能、高可用、且横向动态扩展的分布式存储系统是当前亟需解决的问题。

ceph文件系统提供了与posix兼容的文件系统服务,基于ceph对象存储集群之上,其内的文件被映射到ceph存储集群内的对象。客户端可以把此文件系统挂载在内核对象或用户空间文件系统上。

ceph本地存储接口为了支持事务,引入了日志(journal)机制。所有的写入操作都需要先记录日志,再写入本地文件系统,然后写pglog。简单来说就是一份数据都需要写两遍,日志和本地文件系统,然而本地文件系统如ext3/ext4/xfs默认也是都是写日志的。这就导致在大规模连续i/o操作的情况下,实际磁盘i/o显示很高,但性能却表现一般。因为有一半的i/o是在写日志操作。另外,ceph在写操作过程中存在io路径冗长的问题,以osd为例,一个i/o需要经过消息队列、osds、filejournal、本地存储接口多个模块才能完成,每个模块之间都涉及到队列和线程切换,部分模块在对io进行处理时还要进行内存拷贝,导致整体性能不高。



技术实现要素:

本发明针对现有的基于ceph分布式存储需频繁记录日志以及crush算法策略导致磁盘i/o利用率较低的缺陷,提供一种基于crush的数据存储优化方法和装置,实现更加均衡地分配数据,从而减少client端在存储对象过程中线程频繁切换以及内存拷贝等操作,从而达到优化i/o操作,大大提升了磁盘写入速度的目的。

一方面,本发明实施例提供一种基于crush的数据存储优化方法,包括以下步骤:

根据数据特征对多个目标数据进行分类存储;

根据所述目标数据所属的类型,调整crush策略;

根据所述目标数据所属的类型,优化写操作映射关系;

根据调整后的crush策略和优化后的写操作映射关系,将多个目标数据存储到相应的磁盘。

在本发明的基于crush的数据存储优化方法中,在根据数据特征对多个目标数据进行分类存储的所述步骤中,如果所述目标数据为对事务有强一致性要求的数据,则将所述目标数据标识为第一类型数据;如果所述目标数据需要记录的日志数据小于预设值,则将所述目标数据标识为第二类型数据;如果所述目标数据不需要写日志,则将所述目标数据标识为第三类型数据。

在本发明的基于crush的数据存储优化方法中,在根据所述目标数据所属的类型,优化写操作映射关系的所述步骤中,如果所述目标数据为第一类型数据,则将写操作记录保存到日志记录中;如果所述目标数据为第二类型数据,则将写操作记录保存到日志延迟写入记录中;如果所述目标数据为第三类型数据,则将写操作记录更新到object上。

在本发明的基于crush的数据存储优化方法中,在根据所述目标数据所属的类型,调整crush策略的所述步骤中,将同一类型的目标数据放到指定区域,并且根据所述目标数据的用途以和重要等级指定副本集个数以及机架位置。

相应地,本发明还提供一种基于crush的数据存储优化装置,包括:

分类模块,用于根据数据特征对多个目标数据进行分类存储;

调整模块,用于根据所述目标数据所属的类型,调整crush策略;

优化模块,用于根据所述目标数据所属的类型,优化写操作映射关系;

存储模块,用于根据调整后的crush策略和优化后的写操作映射关系,将多个目标数据存储到相应的磁盘。

在本发明的基于crush的数据存储优化装置中,如果所述目标数据为对事务有强一致性要求的数据,则所述分类模块将所述目标数据标识为第一类型数据;如果所述目标数据需要记录的日志数据小于预设值,则所述分类模块将所述目标数据标识为第二类型数据;如果所述目标数据不需要写日志,则所述分类模块将所述目标数据标识为第三类型数据。

在本发明的基于crush的数据存储优化装置中,如果所述目标数据为第一类型数据,则所述优化模块将写操作记录保存到日志记录中;如果所述目标数据为第二类型数据,则所述优化模块将写操作记录保存到日志延迟写入记录中;如果所述目标数据为第三类型数据,则所述优化模块将写操作记录更新到object上。

在本发明的基于crush的数据存储优化装置中,所述调整模块将同一类型的目标数据放到指定区域,并且根据所述目标数据的用途以和重要等级指定副本集个数以及机架位置。

实施本发明实施例,具有如下有益效果:本发明提供的基于crush的数据存储优化方法根据数据特征对多个目标数据进行分类存储;根据所述目标数据所属的类型,调整crush策略,优化写操作映射关系;根据调整后的crush策略和优化后的写操作映射关系,将多个目标数据存储到相应的磁盘;由此,可以实现更加均衡地分配数据,从而减少client端在存储对象过程中线程频繁切换以及内存拷贝等操作,从而达到优化i/o操作,大大提升了磁盘写入速度的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于crush的数据存储优化方法的流程图;

图2是本发明实施例提供的基于crush的数据存储优化装置的原理图;

图3是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

本申请实施例通过提供一种网络连接方法和装置,解决了现有的断网方式操作速度慢,操作步骤繁琐;操作准确率完全依赖人员操作水平;无法使用移动端进行操作的技术问题,实现了对内网业务系统的网络连接控制的自动化,减轻操作人员负担,提高整体效率,适应网络安全的互联网快速准确连接需求。

为了使本技术领域的技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

以下结合附图和实施例对本发明做进一步的解释说明。

在本发明的基于crush的数据存储优化方法的第一实施例中,根据数据存储特征,将对写日志级别要求较低的数据(例如,无事务、原子性要求或应用日志等非关键性数据)可记录少量日志或关闭日志记录功能;另外,改进ceph中crush的算法规则,调整object存放区域,实现更加均衡地分配数据,从而减少client端在存储对象过程中线程频繁切换以及内存拷贝等操作,从而达到优化i/o操作,大大提升了磁盘写入速度。

如图1所示,所述方法包括以下步骤:

步骤s11、根据数据特征对多个目标数据进行分类存储;

步骤s12、根据所述目标数据所属的类型,调整crush策略;

步骤s13、根据所述目标数据所属的类型,优化写操作映射关系;

步骤s14、根据调整后的crush策略和优化后的写操作映射关系,将多个目标数据存储到相应的磁盘。

在步骤s11中,根据ceph保存一个对象的过程,我们可以先在存储的数据特征上进行标识,将不需要写日志的数据(无事务、原子性要求)可以只记录少量日志或关闭日志记录功能。具体地,如果所述目标数据为对事务有强一致性要求的数据,则将所述目标数据标识为第一类型数据;如果所述目标数据需要记录的日志数据小于预设值,则将所述目标数据标识为第二类型数据;如果所述目标数据不需要写日志,则将所述目标数据标识为第三类型数据。

在步骤s12中,将同一类型的目标数据放到指定区域,并且根据所述目标数据的用途以和重要等级指定副本集个数以及机架位置。通过根据数据类型调整crush策略,可以提供数据分配的均衡性。

在步骤s13中,如果所述目标数据为第一类型数据,则将写操作记录保存到日志记录中;如果所述目标数据为第二类型数据,则将写操作记录保存到日志延迟写入记录中;如果所述目标数据为第三类型数据,则将写操作记录更新到object上。具体地,对事务有强一致性要求的第一类型数据(例如,交易流水类数据),按ceph保存对象的默认映射流程file->filejournal->object->pg->osd->disk完成存储;对只需记录少量日志的数据的第二类型数据(例如,用户某些操作记录等数据),允许filejournal写入延迟且不影响返回结果,则按file->delaywritefilejournal->object->pg->osd->disk映射关系完成存储;对不需要写日志的数据(无事务、原子性要求)的第三类型数据(如非关键性应用程序日志),可关闭日志记录功能,不需要将写操作记录保存到osd的journal上,直接按file->object->pg->osd->disk的映射关系完成对象存储。

在步骤s14中,通过上面调整后的crush策略和优化后的写操作映射关系,将目标数据写入与其类型对应的磁盘。

图2为本发明的基于crush的数据存储优化装置的第一实施例的功能框图,如图2所示,在本实施例中,基于crush的数据存储优化装置200包括:

分类模块110,用于根据数据特征对多个目标数据进行分类存储;

调整模块120,用于根据所述目标数据所属的类型,调整crush策略;

优化模块130,用于根据所述目标数据所属的类型,优化写操作映射关系;

存储模块140,用于根据调整后的crush策略和优化后的写操作映射关系,将多个目标数据存储到相应的磁盘。

具体地,如果所述目标数据为对事务有强一致性要求的数据,则所述分类模块将所述目标数据标识为第一类型数据;如果所述目标数据需要记录的日志数据小于预设值,则所述分类模块将所述目标数据标识为第二类型数据;如果所述目标数据不需要写日志,则所述分类模块将所述目标数据标识为第三类型数据。

具体地,如果所述目标数据为第一类型数据,则所述优化模块将写操作记录保存到日志记录中;如果所述目标数据为第二类型数据,则所述优化模块将写操作记录保存到日志延迟写入记录中;如果所述目标数据为第三类型数据,则所述优化模块将写操作记录更新到object上。

具体地,所述调整模块将同一类型的目标数据放到指定区域,并且根据所述目标数据的用途以和重要等级指定副本集个数以及机架位置。

在本发明的基于crush的数据存储优化装置的第一实施例中,根据数据存储特征,将对写日志级别要求较低的数据(例如,无事务、原子性要求或应用日志等非关键性数据)可记录少量日志或关闭日志记录功能;另外,改进ceph中crush的算法规则,调整object存放区域,实现更加均衡地分配数据,从而减少client端在存储对象过程中线程频繁切换以及内存拷贝等操作,从而达到优化i/o操作,大大提升了磁盘写入速度。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

参见图3,图3为本发明实施例提供的一种电子设备的结构示意图,所述电子设备300,可以包括:

处理器310、存储器320、通信接口330和总线340;

所述处理器310、所述存储器320和所述通信接口330通过所述总线340连接并完成相互间的通信;

所述存储器320存储可执行程序代码;

所述处理器310通过读取所述存储器320中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行一种网络连接方法;其中,一种网络连接方法,包括以下步骤:

根据数据特征对多个目标数据进行分类存储;

根据所述目标数据所属的类型,调整crush策略;

根据所述目标数据所属的类型,优化写操作映射关系;

根据调整后的crush策略和优化后的写操作映射关系,将多个目标数据存储到相应的磁盘。

可以看出,采用本发明实施例提供的技术方案,可以减少client端在存储对象过程中线程频繁切换以及内存拷贝等操作,从而达到优化i/o操作,大大提升了磁盘写入速度的目的。

本发明实施例还提供了一种存储介质,其中,该存储介质用于存储应用程序,所述应用程序用于在运行时执行本发明实施例所述的一种基于crush的数据存储优化方法。

本发明实施例还提供了一种应用程序,其中,该应用程序用于在运行时执行本发明实施例所述的一种基于crush的数据存储优化方法。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,其中,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1