深入理解CEPH
文章平均质量分 93
Ceph,一个可扩展的分布式文件系统,支持文件、块、对象三种存储方式,提供了优秀的性能、可靠性和可伸缩性。
YoungerChina
目前从事存储与计算相关的架构设计和研发管理工作
展开
-
各种存储性能瓶颈如何分析与优化?
分布式存储系统的核心设计思想是去中心化, 去中心化的难点主要在于是主控节点的去中心化,有主控节点的架构比如 HDFS 的架构设计思路是 map-reduce ,化大为小,分而治之,再合并处理,其架构中需要主控节点来协调,只是主控节点的负载都分发到了数据节点,数据节点上则存放着数据副本,每个数据副本又都分布在三个不同的数据节点上,如图 5 所示;随着数字化转型的深入,企业的 IT 系统建设也进一步加快,这一方面带来了数据量的急剧增长,另一方面也提高了数据的访问频率,存储的性能瓶颈的影响也会被进一步放大。原创 2023-09-19 08:59:41 · 2044 阅读 · 0 评论 -
基于鲲鹏平台Ceph深度性能调优
刘亮奇随着 IOT、大数据、移动互联等应用的暴涨,产生的数据也越来越多,整个存储市场总量也逐年增长,预计到 2021 年分布式存储会占到整个存储市场的 50%,到 2027 年,分布式存储会占到整个市场的 70%。Ceph 则是典型的分布式存储软件的代表。杉岩数据作为一家软件定义存储商,软件的发展与硬件的结合密必不可分,与华为共建 ARM 生态是杉岩发展的关键着力点。目前,杉岩数据的对象存储 MOS 和块存储 USP 已完成在鲲鹏平台的适配工作,且可进行商用。原创 2023-08-15 00:15:00 · 949 阅读 · 0 评论 -
Ceph读写性能估算方法
最近在做Ceph性能测试相关工作,在测试初期由于没有得到理想的测试结果,因此对Ceph集群进行了优化,但是一直有个问题萦绕在我的脑海:基于当前硬件配置,这个Ceph集群的极限是多少?原创 2023-08-14 01:30:00 · 543 阅读 · 0 评论 -
Ceph Reef版本 RBD 性能测试:80万写IOPS(10节点、60个NVMe SSD)
Ceph 社区最近冻结了即将发布的 Ceph Reef 版本,今天我们研究一下Ceph Reef 版本在 10 个节点、60 个 NVMe 磁盘的集群上的 RBD 性能。在确保硬件没有问题(NVMe 固件更新)后,Reef 能够保证约71GB/s的性能读取和25GB/s的性能写入(75GB/s 复制速度)。对于小型随机 IO,Reef 提供了大约4.4M 随机读取 IOPS和800K 随机写入 IOPS(2.4M 复制速度)。原创 2023-08-14 01:15:00 · 944 阅读 · 0 评论 -
腾讯:海量小文件场景下CephFS优化之路
本文从实际训练场景出发,首先简单介绍了CephFS相关的基本概念,接着通过现象和源码分析训练过程中读取文件缓存失效的原因,然后给出了相应的解决方案。经过优化后,测试任务的训练速度能提升至原来的3~4倍。最后,通过延伸思考来发散思维,简要介绍了不同场景下AI训练加速的技术。原创 2023-08-13 20:37:19 · 1108 阅读 · 0 评论 -
滴滴Ceph分布式存储系统优化之锁优化
Ceph是国际知名的开源分布式存储系统,在工业界和学术界都有着重要的影响。Ceph的架构和算法设计发表在国际系统领域顶级会议OSDI、SOSP、SC等上。Ceph社区得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是国际云计算领域应用最广泛的开源分布式存储系统,此外,Ceph也广泛应用在文件、对象等存储领域。Ceph在滴滴也支撑了很多关键业务的运行。在Ceph的大规模部署和使用过程中,我们发现了Ceph的一些性能问题。围绕Ceph的性能优化,我们做了很多深入细致的工作。原创 2023-08-13 14:14:31 · 1271 阅读 · 0 评论 -
Ceph分布式存储系统优化分析
本文介绍了Ceph分布式存储系统的发展历史和特点,并从内部优化机制、面向硬件设备和应用场景这3个方面梳理了现有的性能优化方法。作为一个开源的统一存储系统,Ceph提供了高性能、高可扩展性和高可用的块、文件和对象存取功能。Ceph的特点使之被广泛应用于云计算、高性能计算和大数据处理领域。目前,Ceph的性能优化研究工作虽然有一定的进展,但仍有很多问题尚未完全解决。原创 2023-08-13 14:00:27 · 1328 阅读 · 0 评论 -
Ceph性能优化与增强
Ceph是一个非常复杂的存储系统,它具有几种我们可以用来提高性能的方式。幸运的是,Ceph的开箱即用非常好,许多性能设置几乎利用了自动调整和缩放功能。在探索一些性能增强时,了解您的工作负载很重要,这样您就可以选择最适合您的选项。转载 2022-05-28 23:00:46 · 3025 阅读 · 0 评论 -
5种最常见的CEPH失败方案
Ceph是一种广泛使用的存储解决方案,可在整个分布式集群中实现对象级,块级和文件级存储。Ceph是创建不围绕单个故障点进行扩展的高效存储系统的理想选择。但是,如果管理不当,Ceph可能很容易成为失败场景的雷区,这可能是一件难以完全避免的事情。本处,我们将探讨最常见的五种Ceph失败方案。转载 2022-05-28 22:49:04 · 1950 阅读 · 0 评论 -
Ceph如何改善存储性能以及提升存储稳定性
Ceph是一个即让人印象深刻又让人畏惧的开源存储产品。通过本文,用户能确定Ceph是否满足自身的应用需求。在本文中,我们将深入研究Ceph的起源,研究其功能和基础技术,并讨论一些通用的部署方案和优化与性能增强方案。同时本文也提供了一些故障场景以及对应的解决思路。转载 2022-05-28 22:45:31 · 1001 阅读 · 0 评论 -
基于 Ceph 对象存储的实战兵法
Ceph是一个即让人印象深刻又让人畏惧的开源存储产品。通过本文,用户能确定Ceph是否满足自身的应用需求。在本文中,我们将深入研究Ceph的起源,研究其功能和基础技术,并讨论一些通用的部署方案和优化与性能增强方案。同时本文也提供了一些故障场景以及对应的解决思路。转载 2022-05-23 20:25:18 · 371 阅读 · 0 评论 -
存储调研:Ceph分布式文件系统体系结构
---------------------作者:陈晓译文:http://blog.csdn.net/juvxiao/article/details/39495037--------------------- Ceph,一个分布式文件系统,它提供了优秀的性能、可靠性和可伸缩性。Ceph通过用一个伪随机数据分布函数(CRUSH)替代分布表来最大化的分离数据与元数据管理,利用设备上半自治的OSD智能分布数据副本,故障检测和恢复,这些OSD运行专门的本地对象文件系统。动态分布元数据集群提...转载 2022-05-16 00:00:00 · 1078 阅读 · 0 评论 -
Ceph存储引擎BlueStore简析
前文我们创建了一个单节点的Ceph集群,并且创建了2个基于BlueStore的OSD。同时,为了便于学习,这两个OSD分别基于不同的布局,也就是一个OSD是基于3中不同的存储介质(这里是模拟的,并非真的不同介质),另外一个OSD所有内容放在一个裸设备上。什么是BlueStore在老版本的Ceph当中FileStore是默认的对象存储引擎,但FileStore最大的问题是写放大的问题。同时由...原创 2022-04-16 22:40:43 · 1200 阅读 · 0 评论 -
Nautilus新特性: Orchestrator
Orchestrator可以翻译为协调器或编排器,但在本文中为更准确地表达依旧采用Orchestrator。1. Orchestrator是什么?Ceph的Nautilus版本引入了一个新的Orchestrator接口,它提供控制外部部署工具(如ceph-ansible、DeepSea或Rook)的能力。希望在管理员、Ceph和外部部署系统之间提供一个桥梁。为了实现这一点,Or...翻译 2019-08-11 12:36:39 · 1770 阅读 · 0 评论 -
[CentOS]更新repo源到本地
1 本地目录作为repo源将repo源更新到本地可以加速rpm包的安装1. 将包含rpm包的文件夹存在指定目录,(本文中是/opt/centos-repo)2. 创建centos.repo在目录/etc/yum.repo.d/下创建repo配置文件centos.repo[centos]name=centosbaseurl=file:///opt/centos-repogpgcheck=0...原创 2016-07-03 23:23:31 · 8361 阅读 · 0 评论 -
centos7编译Ceph14中g++版本和pthread问题
错误现象:CMake Error at CMakeLists.txt:39 (message): GCC 7+ required due to C++17 requirements-- Configuring incomplete, errors occurred!See also "/opt/ceph/ceph_curse/build/CMakeFiles/CMakeOutpu...原创 2020-03-15 20:20:44 · 3468 阅读 · 0 评论 -
打造高性能高可靠的 Ceph 块存储系统
块存储系统分布式存储有出色的性能,可以扛很多故障,能够轻松扩展,所以我们使用Ceph构建了高性能、高可靠的块存储系统,并使用它支撑公有云和托管云的云主机、云硬盘服务。由于使用分布式块存储系统,避免了复制镜像的过程,所以云主机的创建时间可以缩短到10秒以内,而且云主机还能快速热迁移,方便了运维人员对物理服务器上硬件和软件的维护。用户对于块存储系统最直观的感受来源于云硬盘服务,现在我们的云硬盘的特点是...转载 2016-08-08 22:34:51 · 4136 阅读 · 0 评论 -
Nautilus新特性: CephFS改进
在Ceph Nautilus版本中对CephFS文件系统做了改善。与CEPH的其他部分一样,我们一直在投入大量的开发人员时间来改进可用性和稳定性。以下各节将详细介绍这些工作1. MDS稳定性在过去的两个版本中,MDS稳定性一直是开发人员的主要关注点。我们最近发现的一个问题是,具有非常大缓存(64+GB)的MDS将在某些恢复事件期间挂起。例如,当MDS试图减小其缓存大小以遵守“mds_...翻译 2019-08-11 20:30:41 · 2170 阅读 · 0 评论 -
初始ceph-iscsi-cli
Ceph-iSCSI-Cli会安装一个类似于targetcli的接口,它允许基于一个接口管理多个Ceph/iSCSI网关。Cli基于rbd-target-gw公开的API接口实现,每个节点上都会运行rbd-target-gw守护进程,并且支持Cli接口。 下面是gwcli工具提供的shell接口的示例:/> lso- / ........................原创 2018-03-13 07:34:36 · 3446 阅读 · 0 评论 -
【实践】ceph-deploy install时报No section: 'ceph';
问题No section: 'ceph'问题日志[ceph@node0 cluster]$ ceph-deploy install node0 node1 node2 node3[ceph_deploy.conf][DEBUG ] found configuration file at: /home/ceph/.cephdeploy.conf…[node1][WARNIN] ensuring...原创 2016-07-04 21:10:06 · 7264 阅读 · 0 评论 -
[Ceph分析]Fuse流程分析
本文是对FUSE-2.9.2源码的学习总结。FUSE代码在用户空间和内核空间都有运行,为了突出重点,先简要描述了在基于FUSE的用户空间文件系统中执行write操作的一般流程转载 2017-06-26 19:02:38 · 5742 阅读 · 0 评论 -
【分析】CRUSH数据分布算法介绍
随着大规模分布式存储系统(PB级的数据和成百上千台存储设备)的出现。这些系统必须平衡的分布数据和负载(提高资源利用率),最大化系统的性能,并要处理系统的扩展和硬件失效。ceph设计了CRUSH(一个可扩展的伪随机数据分布算法),用在分布式对象存储系统上,可以有效映射数据对象到存储设备上(不需要中心设备)。因为大型系统的结构式动态变化的,CRUSH能够处理存储设备的添加和移除,并最小化由于存储设备的的添加和移动而导致的数据迁移。转载 2017-09-28 07:51:23 · 1708 阅读 · 0 评论 -
【实践】基于Ceph打造高性能高可靠的分布式块存储系统
分布式存储有出色的性能,可以扛很多故障,能够轻松扩展,所以我们使用Ceph构建了高性能、高可靠的块存储系统,并使用它支撑公有云和托管云的云主机、云硬盘服务。由于使用分布式块存储系统,避免了复制镜像的过程,所以云主机的创建时间可以缩短到10秒以内,而且云主机还能快速热迁移,方便了运维人员对物理服务器上硬件和软件的维护转载 2017-09-28 12:06:50 · 1399 阅读 · 0 评论 -
【分析】Ceph and RBD Mirroring:Luminous
高可用是一个应用程序的关键能力。理想情况下,应用程序本身是支持高可用的。正由于此,RBD mirroring也需要支持高可用。我们可能在任意数量的机器上运行任意数量的守护进程,将有专门的线程来负责如何分布负载和镜像原创 2017-10-01 22:29:54 · 1332 阅读 · 0 评论 -
【分析】RBD Mirroring - 原理、概念、命令
RBD Mirroring - 原理、概念、命令 Ceph采用的是强一致性同步模型,所有副本都必须完成写操作才算一次写入成功,这就导致不能很好地支持跨域部署,因为如果副本在异地,网络延迟就会很大,拖垮整个集群的写性能。因此,Ceph集群很少有跨域部署的,也就缺乏异地容灾。 Mirror通过柯林斯词典翻译”镜子、写照、映照、反射”等含义,在ceph集群语音中,mirro原创 2017-10-01 22:38:32 · 6041 阅读 · 0 评论 -
【分析】CephFS quota的支持
CephFS 允许给系统内的任意目录设置配额,这个配额可以限制目录树中这一点以下的字节数或者文件数。原创 2017-10-05 22:36:32 · 3412 阅读 · 1 评论 -
【分析】Ceph编程实例 接口Librbd(C++) -- 映像创建与数据读写
目前我们有两种路径使用Ceph的块存储: - 利用QEMU/KVM通过librbd与 Ceph 块设备交互,主要为虚拟机提供块存储设备,如下图所示; - 利用kernel module与Host kernel交互,主要为物理机提供块设备支持。Librbd 是Ceph提供的块存储接口的抽象,它提供C/C++、Python等多种接口。对于C++,最主要的两个类就是RBD 和 Image。 RBD 主要...转载 2018-02-26 18:57:52 · 2022 阅读 · 0 评论 -
【分析】通过Ceph RBD实现iSCSI
作者:SebastianHan原文:https://sebastien-han.fr/blog/2017/01/05/Ceph-RBD-and-iSCSI/译者:Younger Liu 这篇文章是一系列关Ceph 特性博客文章的第一篇。我说错了一点,今天将解密一个在Jewel中不被注意到的功能。因此,我们正在讨论一些在新的Ceph版本中已经可用的功能。这个特性并没有真正的名称,它是支持基于RBD的...翻译 2018-03-01 08:03:52 · 5059 阅读 · 0 评论 -
【分析】Ceph源码目录结构分析
来源http://blog.csdn.net/scaleqiao/article/details/511655751简介该代码架构基于版本10.0.5整理,先整理根目录里的代码,再整理出src目录的架构。2代码结构2.1根目录Ceph的根目录下包含了一些文件夹和若干编译、代码格式相关的文件。[admin]:架设Document服务器,包括依赖内容并介绍修改doc的流程。[bin]...原创 2017-06-26 17:39:14 · 4112 阅读 · 0 评论 -
【分析】Ceph文件系统修复机制cephfs-data-scan(3)
ceph-data-scan是通过函数data_scan.main(args)解析并执行用户命令的。data_scan.main(args)的参数检查和解析及其ceph-data-scan init的执行过程;本章节主要介绍cephfs-data-scan scan_extents --force-pool <data pool name>的实现过程原创 2017-08-06 01:38:27 · 1991 阅读 · 0 评论 -
【分析】Ceph文件系统修复机制cephfs-data-scan(2)
前述章节已经介绍过,ceph-data-scan是通过函数data_scan.main(args)解析并执行用户命令的。本章节主要介绍data_scan原创 2017-08-05 14:44:12 · 1784 阅读 · 0 评论 -
【分析】Ceph文件系统修复机制cephfs-data-scan(1)
一般文件系统采用的fsck命令来维护文件系统一致性,但是fsck对cephfs的难度是非常大的,主要原因在于其机制存在根本的区别:1. cephfs修复的是一个rados集群数据而非一块磁盘设备;2. 需要精确的识别数据的所有数据片,及这些数据片所属的inode3. 大量的元数据不可能全部保存到内存中4. 数据丢失原因可能在于(1)系统bug导致;(2)由于RADOS同步的灾难性故障——可能到时大量数据丢失;(3)bit位翻转(bitrot)原创 2017-07-29 18:37:37 · 3028 阅读 · 0 评论 -
【分析】一般文件系统的fsck机制
在使用文件系统作为载体存储文件数据的过程,由于异常掉电或者其他硬件异常错误,总有可能使得文件系统数据不一致,导致文件系统的文件数据无法访问,或者用户访问到不一致的数据,产生更大的损失。因此,为了检查和维护文件系统一致性,绝大部分linux文件系统都提供了fsck工具或类似的工具,便于文件系统存储使用者能够处理和修复文件系统不一致问题。在通用文件系统中,基本都是采用fsck检查和维护文件系统的一致性原创 2017-07-29 18:32:51 · 2822 阅读 · 0 评论 -
【分析】Ceph数据一致性检查 - Scrub调优
除了使用对象多副本,Ceph还通过Scrub 归置组(PG)来保证数据的完整性。在对象存储层,Ceph Scrub类似于fsck。针对每一个归置组(PG),OSD比较主副本和从副本,确保没有对象丢失和错误,捕获 OSD 缺陷和文件系统错误。OSD也能执行Deep Scrub:一般一周一次,通过读取数据和使用校验码来保证数据完整性,可以捕捉那些在轻度清洗过程中未能发现的磁盘上的坏扇区。。原创 2017-07-22 16:17:26 · 4663 阅读 · 0 评论 -
【分析】Ceph数据一致性检查 - Scrub的执行
[Ceph分析]数据一致性检查 - Scrub的调度原创 2017-07-19 20:53:17 · 2703 阅读 · 0 评论 -
【分析】Ceph数据一致性检查 - Scrub的调度
1.1 Scrub的调度解决一个PG何时启动Scrub扫描机制。主要有以下方式:1. 手动立即启动执行扫描2. 在后台设置一定的时间间隔,按照时间间隔的时间启动。默认时间为一天执行一次。3. 设置启动的时间段。一般设定一个系统负载较轻的时间段。 数据结构在类OSDService里有与Scrub有关的数据结构(文件src\osd\OSD.h)private: // -- scrub sched原创 2017-07-15 11:36:35 · 3574 阅读 · 0 评论 -
【分析】Ceph数据一致性检查 - Scrub的介绍
Ceph实现了Scrub机制,采用一种通过后台扫描的方案来解决ceph数据一致性的问题。原创 2017-07-15 11:32:05 · 3336 阅读 · 0 评论 -
【分析】Ceph数据一致性检查 - 端到端的数据校验
何谓端到端的数据校验?是指应用层在写入数据时,在经过每个数据模块时,都计算并增加一个校验和信息,并将这些校验和信息和数据块一起发送至磁盘。磁盘在接收到数据包之后,会重新校验信息,并和接收到的校验信息做对比。如果不一致,就认为在IO路径上发生了错误。同样在数据读取时,应用层在获取数据块和从磁盘读取到校验信息后,也需要再次校验一致性原创 2017-07-15 11:26:55 · 3631 阅读 · 0 评论 -
【分析】Ceph通用模块--线程池
对于计算密集型的业务通常使用线程池进行多线程并发处理,线程池在一定程度上可以有效的提高CPU的利用率,降低无用消耗。Ceph中实现了两种类型的线程池类(本质相同),并实现消息队列处理类。其中线程池类负责具体线程创建,维护和销毁。消息队列处理类则负责队列的管理,包括入队,出队等,消息队列类为一个模板类,保证其处理数据类型的通用性。原创 2017-07-10 23:22:13 · 3038 阅读 · 0 评论 -
【实践】RGW+Ganesha环境部署
目前,Ganesha支持两种方式将Ceph导出为NFS,一种是基于CephFS——Ganesha通过FSAL-CEPH模块连接到CephFS,另一种是基于RGW——Ganesha通过FSAL-RGW模块连接到RGW。原创 2017-06-18 15:58:32 · 5754 阅读 · 0 评论