CN109799954A - 实现ceph集群缓存的方法和osd - Google Patents
实现ceph集群缓存的方法和osd Download PDFInfo
- Publication number
- CN109799954A CN109799954A CN201811555479.XA CN201811555479A CN109799954A CN 109799954 A CN109799954 A CN 109799954A CN 201811555479 A CN201811555479 A CN 201811555479A CN 109799954 A CN109799954 A CN 109799954A
- Authority
- CN
- China
- Prior art keywords
- osd
- target
- caching
- ceph
- osdx
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种实现CEPH集群缓存的方法和OSD,其中OSD包括与其对应设置的第一缓存;当CEPH集群执行目标OSD的对象的写操作时,先将对象下放至目标第一缓存,再由目标第一缓存将对象写入目标OSD;当CEPH集群执行目标OSD的对象的读操作时,先将目标OSD中的对象读入目标第一缓存,再由目标第一缓存将对象反馈给存储池。基于本发明OSD的CEPH,不仅可以支持EC(Erasure Code)纠删码编码,而且比分层缓存的CEPH的IO性能更佳。
Description
技术领域
本发明涉及计算机领域,特别涉及一种实现CEPH集群缓存的方法和OSD。
背景技术
图1为传统的CEPH集群的结构示意图,其中DATA为输入CEPH的用户数据或者CEPH反馈给用户的数据,第二层是pool存储池,在pool中一个用户数据被抽象为一个pg(placement group),一个pg包括多个存储池对象obj,CEPH通CRUSH算法将存储池对象obj映射至不同的OSD,OSD可视为硬盘Disk的逻辑盘。
传统的CEPH集群没有缓存功能,使得CEPH的IO性能较差。图2为CEPH集群的分层缓存结构示意图,分层缓存基于SSD提出,可以为CEPH客户端提供更好的IO性能,同时分层缓存是SSD(Solid State Disk)在CEPH集群中最广泛的应用。
分级缓存需创建一个由高速而昂贵存储设备SSD组成的第一pool存储池、以及一个相对低速/廉价设备组成的第二pool存储池(与图1中的pool类似)、作为经济存储层,第一pool作为第二pool的缓存层。
客户端与第一pool接口,CEPH分级代理决定何时把第一pool内的存储池对象obj刷回第二pool和后端存储层OSD;第二pool和后端存储层OSD对客户端来说是完全透明的。
分层缓存提高了CEPH集群的IO性能,但也限制了CEPH集群功能,例如第二pool不支持EC(Erasure Code)纠删码编码,而EC广泛用于分布式系统的数据冗余和数据恢复。
发明内容
有鉴于此,本发明提供一种实现CEPH集群缓存的方法和OSD,以解决CEPH集群既需提高IO性能又需兼容EC的问题。
本发明提供一种CEPH集群的OSD,该OSD包括与其对应设置的第一缓存;
当CEPH集群执行目标OSD的对象的写操作时,先将对象下放至目标第一缓存,再由目标第一缓存将对象写入目标OSD;
当CEPH集群执行目标OSD的对象的读操作时,先将目标OSD中的对象读入目标第一缓存,再由目标第一缓存将对象反馈给存储池。
本发明还提供一种实现CEPH集群缓存的方法,包括:
步骤11:将第一存储装置的不同部分分别设置为第一cache分区、第二元数据db分区和第三日志wal分区;
步骤12:将第二存储装置中的硬盘x划分为元数据分区sdx1和用户数据分区sdx2,其中x代表硬盘符号;
步骤13:将第一cache分区和sdx2一起注册到缓存区,生成与sdx2绑定的在第一存储装置中的第一缓存区x;
步骤14:将硬盘x创建为OSDx。
本发明通过对OSD对应设置第一缓存,与图1相比,可以提供更好的IO性能。同时与图2相比,基于本申请OSD的CEPH,不仅可以支持EC(ErasureCode)纠删码编码,且其IO性能比图2的分层缓存还可以进一步提高。
附图说明
图1为传统CEPH的结构图;
图2为现有技术中采用分层缓存的CEPH的结构图;
图3为本发明的CEPH的结构图;
图4为本发明实现CEPH集群缓存的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图3所示,本发明提供一种CEPH集群的OSD,与图1的不同之处在于,本发明的OSD包括与其对应设置的第一缓存。
例如,当CEPH集群只有一个OSD,则该OSD对应一个第一缓存。
当CEPH集群包括多个OSD,例如OSD-1、OSD-2…OSD-m,m为大于2的自然数,则OSD-1对应第一缓存-1,OSD-2对应第一缓存-2……OSD-m对应第一缓存-m。
第一缓存的用途在于:
(1)当CEPH集群执行目标OSD的对象的写操作时,先将对象下放至目标第一缓存,再由目标第一缓存将对象写入目标OSD。
当CEPH集群包括多个OSD时,CEPH先确定该存储池对象obj对应的目标OSD,然后将存储池对象obj下放至目标第一缓存,再由目标第一缓存将存储池对象写入目标OSD。
假设目标OSD为OSD-n,则目标第一缓存为第一缓存-n,n为CEPH中的OSD的序号。
(2)当CEPH集群执行目标OSD的对象的读操作时,先将目标OSD中的对象读入目标第一缓存,再由目标第一缓存将对象反馈给存储池。
当CEPH集群包括多个OSD时,且该读操作的对象位于目标OSD,则先将目标OSD中的对象读入目标第一缓存,再由目标第一缓存将OSD对象反馈给存储池。
假设目标OSD为OSD-d,则目标第一缓存为第一缓存-d,d为CEPH中的OSD的序号。
本发明通过对OSD对应设置第一缓存,与图1相比,可以提供更好的IO性能。同时与图2相比,基于本申请OSD的CEPH,不仅可以支持EC(ErasureCode)纠删码编码,且其IO性能比图2的分层缓存提升了约30%。
图3中的第一缓存优选设置SSD上或其他IO性能较好的硬盘上,同时一个SSD可以设置N个第一缓存,N≥1,即一个SSD可以对应多个OSD,提高SSD的利用率。
作为第一缓存的SSD可以采用磨损均衡算法控制其所有第一缓存的写操作,或者CEPH通过磨损均衡算法控制集群中所有第一缓存的写操作。通过算法使得SSD各个区域的写操作均衡,除了尽可能发挥SSD的性能外,也可以最大程度保护并延长SSD的使用寿命。
需要说明的是,其他均衡缓存操作的算法也同样适用本申请。
当第一缓存执行目标OSD的对象obj的写操作时,如果对象obj所属的pg放置组中的所有对象均已写入目标OSD,则目标第一缓存向存储池(以及其他上层)反馈写入成功的消息。在异常掉电的情况下,这样的设置可以确保数据安全。
基于图3的技术构思,本发明还提出了一种实现CEPH集群缓存的方法,如图4所示,包括:
步骤11(S11):将第一存储装置的不同部分分别设置为第一cache分区、第二元数据db分区和第三日志wal分区;
根据实际需求,将第一存储装置对应的硬盘分区时,先划分一块区域用于cache,后面区域分区后用于配置元数据db和OSD的日志。
例如,执行sgdisk-n 1:0:+80G/dev/sdb,创建了80G的第一cache分区,分区名为/dev/sdb1,其大小一般通过cache算法计算获取;
执行sgdisk-n 2:0:+5G/dev/sdb,创建了5G的第二元数据db分区,分区名为/dev/sdb2;
执行sgdisk-n 3:0:+2G/dev/sdb,创建了2G的第三日志wal分区用于预写日志wal,分区名为/dev/sdb3。
步骤12(S12):将第二存储装置中的硬盘x划分为元数据分区sdx1和用户数据分区sdx2,其中x代表硬盘符号;
步骤12将后端的硬盘进行分区,把硬盘x前一部分的容量划分出来用于存储CEPH存储设备的元数据,再把传统硬盘的其余空间分为另一个分区,用于存储用户数据。
例如,执行sgdisk-n 1:0:+100M/dev/sdx,用于创建了100M的元数据分区,分区名为/dev/sdx1;
执行sgdisk-n 2:0:0–t 2/dev/sdx,将硬盘x其余空间用于缓存的后端,分区名为/dev/sdx2。
步骤13(S13):将第一cache分区和sdx2一起注册到缓存区,生成与sdx2绑定的在第一存储装置中的第一缓存x;
将第一存储装置的第一cache分区(/dev/sdb1)和第二存储装置的用户数据分区(/dev/sdx2)一起注册到缓存区,这样就将第一存储装置绑定到第二存储装置了。
例如,执行以下命令:
make-cache-B/dev/sdx2-C/dev/sdb1
echo/dev/sdk2>/sys/fs/cache/register
echo/dev/sdb1>/sys/fs/cache/register
绑定后会在系统中生成一个cache片区:第一缓存x(cacheX),X为0、1、2…,逐步迭加。
步骤14(S14):将硬盘x创建为OSDx。
其中步骤14包括:
步骤141:生成OSDx的编号;
具体包括:用uuidgen生成OSDx的UUID号;生成OSDx密钥,执行ceph-authtool--gen-print-key;使用上述的UUID号和OSDx密钥生成OSDx的编号。
步骤142:使用OSDx的编号创建OSDx的元数据目录x;
具体执行:mkdir/var/lib/ceph/osd/ceph-$ID。
步骤143:格式化sdx1,并将sdx1挂载到元数据目录x;
具体执行:mkfs.xfs/dev/sdx1
mount/dev/sdk1/var/lib/ceph/osd/ceph-$ID
步骤144:配置OSDx的块存储block、元数据db和日志wal;
具体执行:ln-s/dev/cacheX block;
ln-s/dev/sdb2block.db;
ln-s/dev/sdb3block.wal
步骤145:激活OSDx。
具体包括:A.将OSDx密钥写入OSDx的密钥文件;
B.设置OSDx元数据目录权限:chown-R ceph:ceph
/var/lib/ceph/osd/ceph-$ID;
C.使能并启动OSDx:systemctl enable ceph-osd@$ID
systemctl start ceph-osd@$ID
图4中的第一存储装置为SSD或其他IO性能较佳的硬盘。
SSD可以采用磨损均衡算法控制不同的第一缓存x的写操作。
在步骤14之后还包括:
步骤15:当CEPH集群执行目标OSD的对象的写操作时,先将对象下放至目标OSD对应的目标第一缓存,再由目标第一缓存将对象写入目标OSD。
目标OSD为CEPH确定的该对象的逻辑存储位置。
步骤15还可以包括:
当目标第一缓存执行目标OSD的对象的写操作时,如果对象所属的pg放置组中的所有对象均已写入目标OSD,则目标第一缓存向存储池反馈写入成功的信息。
或者步骤14之后还包括:
步骤16:当CEPH集群执行目标OSD的对象的读操作时,先将目标OSD中的对象读入目标第一缓存,再由目标第一缓存将对象反馈给存储池。
以上所述仅为本发明的较佳实施例而已,并不用以限定本发明的包含范围,凡在本发明技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种CEPH集群的OSD,其特征在于,所述OSD包括与其对应设置的第一缓存;
当CEPH集群执行目标OSD的对象的写操作时,先将所述对象下放至目标第一缓存,再由所述目标第一缓存将所述对象写入目标OSD;
当CEPH集群执行目标OSD的对象的读操作时,先将目标OSD中的所述对象读入目标第一缓存,再由所述目标第一缓存将所述对象反馈给存储池。
2.根据权利要求1所述的OSD,其特征在于,所述第一缓存位于SSD,所述SSD包括N个所述第一缓存,N≥1。
3.根据权利要求2所述的OSD,其特征在于,所述SSD采用磨损均衡算法控制所述N个所述第一缓存的写操作。
4.根据权利要求1所述的OSD,其特征在于,所述OSD还包括:当所述目标第一缓存执行目标OSD的对象的写操作时,如果所述对象所属的pg放置组中的所有对象均已写入所述目标OSD,则所述目标第一缓存向所述存储池反馈写入成功的消息。
5.一种实现CEPH集群缓存的方法,其特征在于,包括:
步骤11:将第一存储装置的不同部分分别设置为第一cache分区、第二元数据db分区和第三日志wal分区;
步骤12:将第二存储装置中的硬盘x划分为元数据分区sdx1和用户数据分区sdx2,其中x代表硬盘符号;
步骤13:将所述第一cache分区和sdx2一起注册到缓存区,生成与所述sdx2绑定的在所述第一存储装置中的第一缓存区x;
步骤14:将所述硬盘x创建为OSDx。
6.根据权利要求5所述的方法,其特征在于,所述步骤14包括:
步骤141:生成OSDx的编号;
步骤142:使用所述OSDx的编号创建OSDx的元数据目录x;
步骤143:格式化所述sdx1,并将所述sdx1挂载到所述元数据目录x;
步骤144:配置OSDx的块存储block、元数据db和日志wal;
步骤145:激活所述OSDx。
7.根据权利要求5所述的方法,其特征在于,所述第一存储装置为SSD。
8.根据权利要求7所述的方法,其特征在于,所述SSD采用磨损均衡算法控制不同的所述第一缓存x的写操作。
9.根据权利要求5所述的方法,其特征在于,所述步骤14之后还包括:
步骤15:当CEPH集群执行目标OSD的对象的写操作时,先将所述对象下放至目标OSD对应的目标第一缓存,再由所述目标第一缓存将所述对象写入所述目标OSD。
10.根据权利要求5所述的方法,其特征在于,所述步骤14之后还包括:
步骤16:当CEPH集群执行目标OSD的对象的读操作时,先将目标OSD中的所述对象读入目标第一缓存,再由所述目标第一缓存将所述对象反馈给存储池。
11.根据权利要求9所述的方法,其特征在于,所述步骤15还包括:
当所述目标第一缓存执行目标OSD的对象的写操作时,如果所述对象所属的pg放置组中的所有对象均已写入所述目标OSD,则所述目标第一缓存向所述存储池反馈写入成功的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811555479.XA CN109799954B (zh) | 2018-12-19 | 2018-12-19 | 实现ceph集群缓存的方法和osd |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811555479.XA CN109799954B (zh) | 2018-12-19 | 2018-12-19 | 实现ceph集群缓存的方法和osd |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109799954A true CN109799954A (zh) | 2019-05-24 |
CN109799954B CN109799954B (zh) | 2022-02-22 |
Family
ID=66557211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811555479.XA Active CN109799954B (zh) | 2018-12-19 | 2018-12-19 | 实现ceph集群缓存的方法和osd |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109799954B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142795A (zh) * | 2019-12-20 | 2020-05-12 | 浪潮电子信息产业股份有限公司 | 分布式存储系统写操作的控制方法、控制装置、控制设备 |
CN111930713A (zh) * | 2020-09-21 | 2020-11-13 | 柏科数据技术(深圳)股份有限公司 | Ceph放置组的分配方法、装置、服务器及存储介质 |
CN113031857A (zh) * | 2021-01-30 | 2021-06-25 | 柏科数据技术(深圳)股份有限公司 | 数据写入方法、装置、服务器及存储介质 |
CN114780043A (zh) * | 2022-05-09 | 2022-07-22 | 北京星辰天合科技股份有限公司 | 基于多层缓存的数据处理方法及装置、电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991118A (zh) * | 2017-02-17 | 2017-07-28 | 深圳市中博睿存信息技术有限公司 | 基于ceph纠删除容错的读取文件方法及装置 |
CN108628765A (zh) * | 2018-04-13 | 2018-10-09 | 新华三技术有限公司 | 开源分布式存储软件Ceph中Cache实现方法和装置 |
-
2018
- 2018-12-19 CN CN201811555479.XA patent/CN109799954B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991118A (zh) * | 2017-02-17 | 2017-07-28 | 深圳市中博睿存信息技术有限公司 | 基于ceph纠删除容错的读取文件方法及装置 |
CN108628765A (zh) * | 2018-04-13 | 2018-10-09 | 新华三技术有限公司 | 开源分布式存储软件Ceph中Cache实现方法和装置 |
Non-Patent Citations (2)
Title |
---|
郭建楠: "https://mp.weixin.qq.com/s/LKCrBK-FfJ1BDqaIcNhGfQ?", 《在CEPH中用对FLASHCACHE了吗?(一)》 * |
郭建楠: "https://mp.weixin.qq.com/s/OuylijsUxV_dbQhoMGMUtA", 《在CEPH中用对FLASHCACHE了吗?(二)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142795A (zh) * | 2019-12-20 | 2020-05-12 | 浪潮电子信息产业股份有限公司 | 分布式存储系统写操作的控制方法、控制装置、控制设备 |
CN111930713A (zh) * | 2020-09-21 | 2020-11-13 | 柏科数据技术(深圳)股份有限公司 | Ceph放置组的分配方法、装置、服务器及存储介质 |
CN111930713B (zh) * | 2020-09-21 | 2021-02-02 | 柏科数据技术(深圳)股份有限公司 | Ceph放置组的分配方法、装置、服务器及存储介质 |
CN113031857A (zh) * | 2021-01-30 | 2021-06-25 | 柏科数据技术(深圳)股份有限公司 | 数据写入方法、装置、服务器及存储介质 |
CN114780043A (zh) * | 2022-05-09 | 2022-07-22 | 北京星辰天合科技股份有限公司 | 基于多层缓存的数据处理方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109799954B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109799954A (zh) | 实现ceph集群缓存的方法和osd | |
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
US8135907B2 (en) | Method and system for managing wear-level aware file systems | |
US6985995B2 (en) | Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data | |
US8095728B2 (en) | Method and system for power aware I/O scheduling | |
CN107798130B (zh) | 一种分布式存储快照的方法 | |
US7584229B2 (en) | Method and system for priority-based allocation in a storage pool | |
US20160217040A1 (en) | Raid parity stripe reconstruction | |
CN110383251B (zh) | 存储系统、计算机可读记录介质、系统的控制方法 | |
US20020059539A1 (en) | Hybrid data storage and reconstruction system and method for a data storage device | |
US8291186B2 (en) | Volume record data set optimization apparatus and method | |
WO1999010893A2 (en) | Object reconstruction on object oriented data storage device | |
US10564865B2 (en) | Lockless parity management in a distributed data storage system | |
US20080104204A1 (en) | Method and apparatus for power-managing storage devices in a storage pool | |
US7882420B2 (en) | Method and system for data replication | |
US20120260035A1 (en) | Zero rebuild extensions for raid | |
CN104778018A (zh) | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 | |
CN111857540B (zh) | 数据存取方法、装置和计算机程序产品 | |
US20200341874A1 (en) | Handling of offline storage disk | |
CN109992204A (zh) | 数据存储方法及装置 | |
WO2017052571A1 (en) | Adaptive storage reclamation | |
CN101398822B (zh) | 利用虚拟文件系统技术实现动态扩展网络存储空间的方法 | |
Mao et al. | A new parity-based migration method to expand raid-5 | |
CN109246198A (zh) | 一种基于分布式存储集群的云主机启动控制方法和系统 | |
CN101477446B (zh) | 磁盘阵列系统及其降级或重建状态下的逻辑资源处理方法 |
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: 518057 Shenzhen Software Park, No. 9, 501, 502, Science and Technology Middle Road, Nanshan District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Innovation Technology Co., Ltd. Address before: 518057 Shenzhen Software Park, No. 9, 501, 502, Science and Technology Middle Road, Nanshan District, Shenzhen City, Guangdong Province Applicant before: UIT Storage Technology (Shenzhen) Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |