CN105450734B - 分布式存储ceph的数据分布优化方法 - Google Patents

分布式存储ceph的数据分布优化方法 Download PDF

Info

Publication number
CN105450734B
CN105450734B CN201510755992.3A CN201510755992A CN105450734B CN 105450734 B CN105450734 B CN 105450734B CN 201510755992 A CN201510755992 A CN 201510755992A CN 105450734 B CN105450734 B CN 105450734B
Authority
CN
China
Prior art keywords
local
ceph
osd
crush
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.)
Expired - Fee Related
Application number
CN201510755992.3A
Other languages
English (en)
Other versions
CN105450734A (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.)
Shanghai Eisoo Information Technology Co Ltd
Original Assignee
Shanghai Eisoo Information Technology 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 Shanghai Eisoo Information Technology Co Ltd filed Critical Shanghai Eisoo Information Technology Co Ltd
Priority to CN201510755992.3A priority Critical patent/CN105450734B/zh
Publication of CN105450734A publication Critical patent/CN105450734A/zh
Application granted granted Critical
Publication of CN105450734B publication Critical patent/CN105450734B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种分布式存储CEPH的数据分布优化方法,包括:1)将第一层映射的普通哈希算法替换为一致性哈希算法;2)在第二层映射中,为CRUSH算法添加一个本地化参数,在设定情况下,使得应用和主副本位于同一CEPH节点上。与现有技术相比,本发明具有改善CEPH数据映射存在的问题,提高数据读取的性能等优点。

Description

分布式存储CEPH的数据分布优化方法
技术领域
本发明涉及计算机存储技术领域,尤其是涉及一种分布式存储CEPH的数据分布优化方法。
背景技术
随着信息技术的发展,全球数据呈爆炸式增长。集中式存储服务器,无法满足系统高可靠,可扩展性等要求,而且会是性能热点。分布式存储很好的解决了这些问题。CEPH是开源的分布式存储系统,也能够同时提供块、文件和对象接口服务,其底层是一个对象存储系统RADOS。与其他分布式文件系统相比,CEPH的数据分布算法是其一大亮点。传统的数据映射,都是通过元数据去查询具体位置,因此元数据查询将成为性能热点。CEPH应用两级数据映射算法,使得数据映射无需进行元数据查询,只需在客户端计算,即可得出数据存储的具体位置。CEPH数据分布算法的第一层映射是将对象映射至PG(Placement Group),采用的是传统的哈希算法。第二层映射是运用CRUSH算法将PG映射至若干个OSD(Object StorageDevice),一般来说一个磁盘对应一个OSD。CEPH采用副本机制来确保数据的高可用,CRUSH算法会为各PG计算出副本个数个OSD,其中第一个OSD是存储主副本的,其他OSD存储普通副本。CEPH采用的是ROWA(Read-One-Write-All),Write操作必须写入所有副本,所有的Read操作都从主副本读取。不同对象的主副本可能分散在不同机器上。
当PG数量增加时,由于第一层映射采用的是传统的哈希算法,对象到PG的映射会大量更改,从而造成底层的数据迁移。使用API读取数据时,由于对象的主副本分散在各机器上,在读取的过程中需要在集群内跨机器读取。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种分布式存储CEPH的数据分布优化方法,改善CEPH数据映射存在的问题,提高数据读取的性能。
本发明的目的可以通过以下技术方案来实现:
一种分布式存储CEPH的数据分布优化方法,其特征在于,包括:
1)将第一层映射的普通哈希算法替换为一致性哈希算法;
2)在第二层映射中,为CRUSH算法添加一个本地化参数,在设定情况下,使得应用和主副本位于同一CEPH节点上。
所述的一致性哈希算法采用哈希环的形式,当PG数目增加时,对象的映射结果变化较传统哈希算法少。
所述的步骤2)具体为:
201)添加两条CEPH命令,用于设置本地化参数local的数值;
202)为Crush算法的crush_do_rule函数添加本地化参数local;
203)当新建一个对象时,若local为True,先判断写入该对象客户端是否位于CEPH集群,若位于集群的某一节点A,则local=local&True;反之local=local&False;
204)若local为True,再判断CRUSH rule中是否包含节点A所管理的OSD,若rule中包含节点A所管理的OSD,则local=local&False;反之local=local&False;
205)若local为False,crush_do_rule函数不做任何改变,若local为True,在crush_do_rule中,先选节点A中的OSD,再选择其他副本所在的OSD。
所述的两条CEPH命令分别为:
ceph osd crush set local,表示local的值为True;
ceph osd crush unset local,表示local的值为False。
所述的步骤202)中local为True时,使得主副本在本节点上。
所述的步骤206)中,根据CEPH的规则,第一个OSD即为主OSD。
与现有技术相比,本发明具有以下优点:
1、当CEPH集群的PG数量增多时,相较于现有算法,映射关系改变的对象变少。也就意味着,在CEPH底层,数据的迁移量变小,有利于节省网络开销。在上层应用压力较大时,节省该部分开销能提高CEPH的读写性能。
2、当客户端位于集群某个节点A上时,优化后的CRUSH算法,会将对象的主副本都选取在节点A的OSD上。一般来说,同一对象的读取和写入都会在同一客户端进行。由于CEPH采用的是ROWA,读取对象时都会从主副本读取,因此客户端在读取对象时,在本节点读取即可,无需跨越集群网络在其他节点读取。从而有利用提高系统的读性能。
附图说明
图1为对象到PG普通哈希映射示意图;
图2为对象到PG一致性哈希示意图;
图3为CEPH对象存储以及对象读取路径示意图;
图4为PG增加为4时CEPH对象存储及读取路径示意图;
图5为优化后CEPH对象存储以及对象读取路径示意图;
图6为PG增加为4时优化后CEPH对象存储及读取路径示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
本发明对CEPH的两级数据分布方法,主要做了以下优化。
1、将第一层映射的普通哈希算法,替换为一致性哈希算法。传统的哈希算法,当PG数目增加时,所有的数据需重新计算映射结果,数据的映射结果会产生较大变化。一致性哈希算法采用哈希环的形式,当PG数目增加时,对象的映射结果变化较传统哈希算法少。现有的第一层映射示意图如图1所示。当增加一个PG时,对象4、5、6都会映射到新的PG。替换成一致性哈希算法后,只有对象5的映射PG改变了,如图2。
2、在第二层映射中,为CRUSH算法添加一个本地化参数,使得在特定情况下,对象的主副本离应用最“近”。这里的“近”,意思是使得应用和主副本位于同一CEPH节点上。具体步骤如下:
2.1添加两条CEPH命令
ceph osd crush set local
ceph osd crush unset local
set local后,表示local的值为True;unset表示local的值为False。
2.2为Crush算法的crush_do_rule函数添加一个参数local。当local为True时,使得主副本在本节点上。
2.3当新建一个对象时,若local为True,先判断写入该对象客户端是否位于CEPH集群。若位于集群的某一节点A,则local=local&True;反之local=local&False。
2.4若local为True,再判断CRUSH rule中是否包含节点A所管理的OSD。若rule中包含节点A所管理的OSD,则local=local&False;反之local=local&False。
2.6若local为False,crush_do_rule函数不做任何改变。若local为True,在crush_do_rule中,先选节点A中的OSD,再选择其他副本所在的OSD。根据CEPH的规则,第一个OSD即为主OSD。
实施方式举例
共有三个节点A、B、C用来搭建CEPH集群,每个节点一共包含两块磁盘。系统整体框图如图3所示。
1、修改CEPH两级数据分布算法后,搭建好CEPH集群。
2、调用ceph osd crush set local命令,设置本地化参数。
3、新建池testpool以及rbd镜像testimage。
4、池testpool中是三副本,crush rule为在三个节点上各选一个OSD。在节点A,用tgt将testpool/testimage挂载出去。在tgt中,使用了CEPH块设备的API,即tgt为CEPH的客户端。
5、用另一台机器T上安装tgt initiator,连接机器A上的tgt。此时机器T上将多出一个iSCSI磁盘,假设其为/dev/sdc。对/dev/sdc进行数据读写。
机器T在对/dev/sdc进行读写时,经过转换,相当于在CEPH底层写入了一系列对象。假设testpool一共有3个PG。在传统数据映射算法下,各PG的映射情况为PG1映射到osd[0,3,4],PG2映射到osd[3,5,1],PG3映射到osd[5,0,2]。以对象1~6为例,对象到PG的映射关系如图1,其在磁盘中的存储情况以及tgt读取数据的路径如图3所示。其中填充的对象表示该对象是主副本,其他对象为从副本。当PG数量变化时,根据现有数据映射算法,假设新增了PG4,映射为osd[1,4,2],其对象在磁盘的存储情况以及tgt读取数据的路径如图4,其中粗线条框的对象表示较图3中变化的对象。优化后的数据映射算法,PG到osd的映射将发生如下变化,PG1映射到osd[0,3,4],PG2映射到osd[1,3,5],PG3映射到[0,2,5],PG4映射到[1,4,2]。当PG数为3时,对象在磁盘中的存储情况以及tgt读取数据的路径如图5所示。当PG数增加为4时,如图6所示。

Claims (5)

1.一种分布式存储CEPH的数据分布优化方法,其特征在于,包括:
1)将第一层映射的普通哈希算法替换为一致性哈希算法;
2)在第二层映射中,为CRUSH算法添加一个本地化参数,在设定情况下,使得应用和主副本位于同一CEPH节点上;
所述的步骤2)具体为:
201)添加两条CEPH命令,用于设置本地化参数local的数值;
202)为Crush算法的crush_do_rule函数添加本地化参数local;
203)当新建一个对象时,若local为True,先判断写入该对象客户端是否位于CEPH集群,若位于集群的某一节点A,则local=local&True;反之local=local&False;
204)若local为True,再判断CRUSH rule中是否包含节点A所管理的OSD,若rule中包含节点A所管理的OSD,则local=local&False;反之local=local&False;
205)若local为False,crush_do_rule函数不做任何改变,若local为True,在crush_do_rule中,先选节点A中的OSD,再选择其他副本所在的OSD。
2.根据权利要求1所述的一种分布式存储CEPH的数据分布优化方法,其特征在于,所述的一致性哈希算法采用哈希环的形式,当PG数目增加时,对象的映射结果变化较传统哈希算法少。
3.根据权利要求1所述的一种分布式存储CEPH的数据分布优化方法,其特征在于,所述的两条CEPH命令分别为:
ceph osd crush set local,表示local的值为True;
ceph osd crush unset local,表示local的值为False。
4.根据权利要求1所述的一种分布式存储CEPH的数据分布优化方法,其特征在于,所述的步骤202)中local为True时,使得主副本在本节点上。
5.根据权利要求1所述的一种分布式存储CEPH的数据分布优化方法,其特征在于,所述的步骤204)中,根据CEPH的规则,第一个OSD即为主OSD。
CN201510755992.3A 2015-11-09 2015-11-09 分布式存储ceph的数据分布优化方法 Expired - Fee Related CN105450734B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510755992.3A CN105450734B (zh) 2015-11-09 2015-11-09 分布式存储ceph的数据分布优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510755992.3A CN105450734B (zh) 2015-11-09 2015-11-09 分布式存储ceph的数据分布优化方法

Publications (2)

Publication Number Publication Date
CN105450734A CN105450734A (zh) 2016-03-30
CN105450734B true CN105450734B (zh) 2019-01-25

Family

ID=55560500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510755992.3A Expired - Fee Related CN105450734B (zh) 2015-11-09 2015-11-09 分布式存储ceph的数据分布优化方法

Country Status (1)

Country Link
CN (1) CN105450734B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783834B (zh) 2016-08-30 2021-05-07 伊姆西公司 用于处理数据的方法和系统
CN108287660B (zh) * 2017-01-09 2021-07-09 中国移动通信集团河北有限公司 数据存储方法和设备
CN107046563B (zh) * 2017-01-19 2019-01-25 无锡华云数据技术服务有限公司 一种分布式高效云盘的实现方法、系统及云平台
US10389518B2 (en) 2017-01-27 2019-08-20 Entit Software Llc Blockchain hash value recomputation
CN106951559B (zh) * 2017-03-31 2020-08-25 联想(北京)有限公司 分布式文件系统中数据恢复方法及电子设备
CN107179929B (zh) * 2017-05-15 2020-02-07 苏州浪潮智能科技有限公司 一种write_same函数的优化实现方法及装置
CN107506437A (zh) * 2017-08-23 2017-12-22 郑州云海信息技术有限公司 一种基于crushmap结构的OSD选取方法及装置
CN108920100B (zh) * 2018-06-25 2021-06-15 重庆邮电大学 基于Ceph的读写模型优化和异构副本组合方法
CN109460325A (zh) * 2018-10-19 2019-03-12 南京机敏软件科技有限公司 Ceph集群磁盘故障恢复方法及计算机、恢复系统
CN110955733A (zh) * 2020-01-02 2020-04-03 北京同有飞骥科技股份有限公司 分布式系统的数据均衡方法及系统
CN113992760B (zh) * 2021-10-22 2024-03-01 北京百度网讯科技有限公司 回源流量的调度方法、装置、设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778255A (zh) * 2014-02-25 2014-05-07 深圳市中博科创信息技术有限公司 一种分布式文件系统及其数据分布方法
CN103905540A (zh) * 2014-03-25 2014-07-02 浪潮电子信息产业股份有限公司 基于两级哈希的对象存储数据分布机制
WO2015127647A1 (zh) * 2014-02-28 2015-09-03 运软网络科技(上海)有限公司 一种基于Ceph的分布式机制的存储虚拟化管理器及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778255A (zh) * 2014-02-25 2014-05-07 深圳市中博科创信息技术有限公司 一种分布式文件系统及其数据分布方法
WO2015127647A1 (zh) * 2014-02-28 2015-09-03 运软网络科技(上海)有限公司 一种基于Ceph的分布式机制的存储虚拟化管理器及系统
CN103905540A (zh) * 2014-03-25 2014-07-02 浪潮电子信息产业股份有限公司 基于两级哈希的对象存储数据分布机制

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ceph对象文件系统添加任务迁移特性的研究;郑传建;《硕士学位论文》;20150430;第24-33页

Also Published As

Publication number Publication date
CN105450734A (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN105450734B (zh) 分布式存储ceph的数据分布优化方法
JP5411250B2 (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
CN104615606B (zh) 一种Hadoop分布式文件系统及其管理方法
WO2016101283A1 (zh) 一种数据处理方法装置及系统
US20210216210A1 (en) Optimized migration of data between file systems of a storage array
CN105027069A (zh) 卷区域的重复数据删除
US10108635B2 (en) Deduplication method and deduplication system using data association information
JP6262874B2 (ja) データベース実現方法
US9892121B2 (en) Methods and systems to identify and use event patterns of application workflows for data management
US11010082B2 (en) Mechanisms for performing accurate space accounting for volume families
CN106446159B (zh) 一种存储文件的方法、第一虚拟机及名称节点
CN103180835B (zh) 用于扩展无共享系统的装置和方法
US9696919B1 (en) Source/copy reference tracking with block pointer sets
TWI531901B (zh) 群組表資料沖除技術
CN103793475B (zh) 一种分布式文件系统数据迁移的方法
JP6288596B2 (ja) データ処理方法および装置
CN110147203A (zh) 一种文件管理方法、装置、电子设备及存储介质
CN107291876A (zh) 一种分布式数据管理方法
CN108369588A (zh) 数据库级别自动存储管理
WO2012101983A1 (ja) ストレージシステム
US11789622B2 (en) Method, device and computer program product for storage management
US8495112B2 (en) Distributed file hierarchy management in a clustered redirect-on-write file system
CN105630702A (zh) 一种逻辑卷创建方法与系统
JP2010198528A (ja) ストレージシステム
JP6119327B2 (ja) 重複データ管理装置、データ転送制御装置、データ転送制御システム、重複データ管理方法、データ転送制御方法、および、コンピュータ・プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190125

Termination date: 20191109