数据存储方法和设备技术

技术编号:18458430 阅读:33 留言:0更新日期:2018-07-18 12:33
本申请公开了一种数据存储方法和设备。该数据存储方法包括:将待存储数据划分到N个对象中,其中,N为正整数;将N个对象分配到M个归置组中,其中,M为小于N的正整数;对于M个归置组中的任意一个归置组,基于存储映射表确定与该归置组对应的至少三个对象存储设备,其中,存储映射表中包含归置组与对象存储设备之间的映射关系,并且基于伪随机数据分布算法将该归置组中包含的各个对象存储到与该归置组对应的相应对象存储设备中。本申请实施例的数据存储方法和设备,能够提高Ceph分布式数据存储系统中的数据存储效率,有效实现数据在Ceph分布式数据存储系统中的高速读写。

Data storage methods and devices

The application discloses a data storage method and device. The data storage method includes: dividing the stored data into N objects, in which N is a positive integer, and N objects are assigned to a M reset group, in which M is a positive integer less than N; for any one in the M reset group, at least three object stores corresponding to the set are determined based on the storage mapping table. In the device, the storage mapping table contains the mapping relationship between the reset group and the object storage device, and stores the objects contained in the set to the corresponding object storage device corresponding to the set based on the pseudo random data distribution algorithm. The data storage method and equipment of the application example can improve the data storage efficiency in the Ceph distributed data storage system and effectively realize the high speed reading and writing of the data in the Ceph distributed data storage system.

【技术实现步骤摘要】
数据存储方法和设备
本申请涉及计算机领域,尤其涉及一种数据存储方法和设备。
技术介绍
随着大数据时代的到来,传统的集中式数据存储系统已经无法满足大规模数据存储的需求。为了满足大规模数据存储的需求,确保数据存储的可靠性和安全性,出现了分布式数据存储系统。Ceph是一种开源的分布式数据存储系统,能够将数据分散存储在通过多个存储节点,即,多台存储服务器上,实现数据的分布式存储,提高数据存储系统的可靠性、可用性和存取效率。在实际应用中,Ceph分布式数据存储系统通过三级映射,实现数据的分布式存储。首先,将需要存储的文件数据(File)划分为若干个数据大小一致的对象数据(Object),实现File到Object的映射;然后,通过哈希算法将任一个Object分配到一个归置组(PlacementGroup,PG)中,实现Object到PG的映射;最后,通过伪随机数据分布算法(ControlledReplicationUnderScalableHashing,CRUSH)将任一个PG中包含的Object存储到对象存储集群中不同的对象存储设备(ObjectStorageDevice,OSD)中,实现PG到OSD的映射。但是,由于Ceph分布式数据存储系统需要在数据存储过程中进行哈希运算、实现数据的映射存储,因此数据的存储效率较低,无法满足高速读写的需求。
技术实现思路
鉴于此,本申请实施例提供一种数据存储方法和设备,以提高Ceph分布式数据存储系统的数据存储效率。根据本申请实施例的一种数据存储方法,应用于Ceph分布式数据存储系统,并且包括:将待存储数据划分到N个对象中,其中,N为正整数;将N个对象分配到M个归置组中,其中,M为小于N的正整数;对于M个归置组中的任意一个归置组,基于存储映射表确定与该归置组对应的至少三个对象存储设备,其中,存储映射表中包含归置组与对象存储设备之间的映射关系,并且基于伪随机数据分布算法,将该归置组中包含的各个对象存储到与该归置组对应的相应对象存储设备中。根据本申请实施例的一种数据存储设备,应用于Ceph分布式数据存储系统,并且包括:划分单元,被配置用于将待存储数据划分到N个对象中,其中,N为正整数;分配单元,被配置用于将N个对象分配到M个归置组中,其中,M为小于N的正整数;存储单元,被配置用于对于M个归置组中的任意一个归置组,基于存储映射表确定与该归置组对应的至少三个对象存储设备,其中,存储映射表中包含归置组与对象存储设备之间的映射关系,并且基于伪随机数据分布算法,将该归置组中包含的各个对象存储到与该归置组对应的相应对象存储设备中。根据本申请实施例的数据存储方法和系统,在将待存储数据划分为N个对象并将N个对象分配到M个归置组中之后,通过预先确定的存储映射表直接查找到与任意一个归置组对应的至少三个对象存储设备,进而通过伪随机数据分布算法将任意一个归置组中包含的对象存储到与该归置组对应的相应对象存储设备中,可以提高Ceph分布式数据存储系统中的数据存储效率,有效实现数据在Ceph分布式数据存储系统中的高速读写。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为根据本申请实施例的一种数据存储方法的流程示意图;图2为根据本申请实施例的Ceph分布式数据存储系统的系统启动的过程示意图;图3为根据本申请实施例的Ceph分布式数据存储系统的设定存储节点的过程示意图;图4为根据本申请实施例的Ceph分布式数据存储系统的数据存储的过程示意图;图5为根据本申请实施例的Ceph分布式数据存储系统的对象存储设备的故障修复的过程示意图;图6为根据本申请实施例的Ceph分布式数据存储系统的存储节点的故障修复的过程示意图;图7为根据本申请实施例的数据存储设备的结构示意图。具体实施方式在实际应用中,Ceph分布式数据存储系统主要包括客户端、元数据服务器、对象存储集群、以及监视器(Monitor,以下简称CephMon)四部分,其中:客户端表示当前数据用户所在的存储节点;元数据服务器用来缓存和同步描述数据属性的信息(例如,数据的存储位置、历史数据、记录文件等);对象存储集群包含多个用于数据存储的存储节点,监视器用来对整个Ceph分布式数据存储系统执行监控功能。在Ceph分布式数据存储系统存储数据的过程中,为待存储文件(File)分配一个索引节点号(InodeNumber,INO),该INO是该File的唯一标识符;当待存储File的数据量较大时,需要将该File划分到统一大小的一系列Object中进行存储。这里,最后一个Object的大小可以不同于前面的Object。在Ceph大规模存储集群中,Object的数目较多,每个Object包含的数据量较小,如果通过遍历寻址的读写方式对Object进行存储,会严重影响数据存储速率。同时,如果将Object通过某种固定映射的哈希算法映射到OSD上存储,当这个OSD损坏时Object无法自动迁移至其他空闲OSD上,从而造成数据丢失。因此,通常将数据量较大的Object分配到若干个PG中。通过INO与对象号(ObjectNumber,ONO)能够确定任意一个Object的对象标识码(ObjectIndentification,OID)。对于任意一个Object,使用静态哈希HASH函数对OID做HASH确定该Object的哈希值,用该哈希值与PG的数目进行取模运算确定该Object对应的PG的PG标识码(PGID),进而实现该Object到PG的映射。PG是一个Object的概念容器,也是一个逻辑概念,在Ceph分布式数据存储系统中是虚拟存在,用于对Object的存储进行组织和位置映射。一个PG负责组织若干个Object,但是一个Object只能被映射到一个PG中,即PG与Object之间是“一对多”映射。合理设置PG的数量能够确保数据分布的均匀性。Ceph分布式数据存储系统通过伪随机数据分布算法(CRUSH)确定任意一个PG对应的OSD,进而将该PG中的Object存储到该PG中的相应OSD中,实现PG到OSD的映射。一个OSD上会承载大量的PG,即PG与OSD之间是“多对多”映射。通过CRUSH算法,既能避免存储节点单点故障时的数据丢失,又能避免依赖元数据进行存储,有效提高了数据存储效率。但是,由于Ceph分布式数据存储系统需要在数据存储过程中进行哈希运算以及哈希值与PG数目之间的取模运算,导致数据存储效率较低,无法满足高速读写的需求。为了实现本申请的目的,本申请实施例提供一种数据存储方法和设备,在将待存储数据划分为N个Object并将N个Object分配到M个PG中之后,通过预先确定的存储映射表直接查找与任意一个PG对应的至少三个OSD,进而通过CRUSH算法将任意一个PG中包含的各个Object存储到与该PG对应的相应OSD中,从而可以提高Ceph分布式数据存储系统中的数据存储效率,有效实现数据在Ceph分布式数据存储系统中的高速读写。下面结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不本文档来自技高网...

【技术保护点】
1.一种数据存储方法,其特征在于,该数据存储方法应用于Ceph分布式数据存储系统,并且包括:将待存储数据划分到N个对象中,其中,N为正整数;将所述N个对象分配到M个归置组中,其中,M为小于N的正整数;对于所述M个归置组中的任意一个归置组,基于存储映射表确定与所述归置组对应的至少三个对象存储设备,其中,所述存储映射表中包含归置组与对象存储设备之间的映射关系,并且基于伪随机数据分布算法,将所述归置组中包含的各个对象存储到与所述归置组对应的相应对象存储设备中。

【技术特征摘要】
1.一种数据存储方法,其特征在于,该数据存储方法应用于Ceph分布式数据存储系统,并且包括:将待存储数据划分到N个对象中,其中,N为正整数;将所述N个对象分配到M个归置组中,其中,M为小于N的正整数;对于所述M个归置组中的任意一个归置组,基于存储映射表确定与所述归置组对应的至少三个对象存储设备,其中,所述存储映射表中包含归置组与对象存储设备之间的映射关系,并且基于伪随机数据分布算法,将所述归置组中包含的各个对象存储到与所述归置组对应的相应对象存储设备中。2.如权利要求1所述的数据存储方法,其特征在于,还包括:从内存中读取各个对象存储设备的哈希值;对于所述M个归置组中的任意一个归置组,建立所述归置组的归置组标识码与至少三个对象存储设备的哈希值之间的映射关系,将所述映射关系存储在所述存储映射表中。3.如权利要求2所述的数据存储方法,其特征在于,还包括:从系统文件夹中调取预设数目的存储节点的设备信息,其中,所述预设数目的存储节点中的任意一个存储节点包含至少三个对象存储设备;对于所述预设数目的存储节点中的任意一个存储节点,基于所述存储节点的设备信息,计算所述存储节点中的各个对象存储设备的哈希值;将所述预设数目的存储节点中的各个对象存储设备的哈希值存储在所述内存中。4.如权利要求3所述的数据存储方法,其特征在于,还包括:在节点扫描脚本中设定所述预设数目的存储节点的设备信息;通过解析所述节点扫描脚本,将所述预设数目的存储节点的设备信息存储在所述系统文件夹中。5.如权利要求4所述的数据存储方法,其特征在于,还包括:当存储有对象的任意一个对象存储设备发生故障时,计算该对象存储设备所在的存储节点中的各个对象存储设备的更新哈希值;根据所述存储节点中的各个对象存储设备的更新哈希值,确定所述存储节点中的空闲对象存储设备;以及将发生故障的对象存储设备中存储的对象存储到所述空闲对象存储设备中。6.如权利要求3所述的数据存储方法,其特征在于,还包括:当存储有归置组的任意一个存储节点发生故障时,在所述节点扫描脚本中增加空闲存储节点;以及基于所述伪随机数据分布算法,将发生故障的存储节点中存储的归置组存储到所述空闲存储节点中。7.一种数据存储设备,其特征在于,该数据存储设备应用于Ceph分布式数据存储系统,并且包括:划分单元,被配置用于将待存...

【专利技术属性】
技术研发人员:付永振靳晓嘉魏春来汤云峰王靖付旭轮单雷光
申请(专利权)人:中国移动通信集团河北有限公司中国移动通信集团公司
类型:发明
国别省市:河北,13

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1