cephpg源码,ceph 源码
原标题:cephpg源码,ceph 源码
导读:
Ceph性能瓶颈分析与优化一部曲:rados(mix)Ceph性能瓶颈的探讨与优化,尤其针对rados(mix)中的混合硬盘与SSD组合,是个极具挑战且有趣的话题。作者希望通...
Ceph性能瓶颈分析与优化一部曲:rados(mix)
Ceph性能瓶颈的探讨与优化,尤其针对rados(mix)中的混合硬盘与SSD组合,是个极具挑战且有趣的话题。作者希望通过系列分享个人经验,尽管能力有限,但仍希望对读者有所启发。在实际测试中,添加SSD作为wal和db后,性能提升并不显著,因此决定深入分析瓶颈并寻求优化可能。优化过程首先从单OSD分析开始,排除干扰因素。
此外,即使没有争用,这些锁和队列也会产生延迟开销。多年来,社区一直在分析和优化更细粒度的资源管理和快速路径实现以跳过队列,但这类优化的成果正在减少,可扩展性似乎在当前设计架构下达到了瓶颈。
启用OSD缓存:通过启用OSD缓存并调整缓存大小和淘汰策略,可以优化数据读写性能,减少因性能瓶颈导致的数据不一致问题。监控与调优:部署监控工具:使用CephDashboard、Prometheus + Grafana等监控工具,实时监控集群性能指标,如IOPS、延迟、带宽等,及时发现并解决性能瓶颈。
PG的均衡往往伴随着数据的迁移和响应对性能的影响,需要谨慎评估再实施。
均衡PG-小集群ceph的优化办法
以下途径确认调整之后均衡的效果:使用ceph -s查看集群整体情况,以及pg的大致状态;ceph osd df可以查看目前平衡情况的标准差;自实现统计primary pg的脚本,简单的Shell脚本即可(读写负载较重的场景,primary pg分散的不够开,造成某些节点负载过大。)。
通过修改配置文件并执行相关命令来优化网络参数,确保Ceph集群内的数据传输高效且稳定。集群优化配置 FILEstore配置:根据存储需求和性能要求,调整FILESTORE相关配置参数。journal配置:优化journal的配置,如将OSD日志存储在SSD或NVMe设备上,以提高写入性能。
例如,可以增加OSD的数量、调整PG的数量、优化网络配置等。定期维护:定期对Ceph集群进行维护,包括更新软件版本、清理无用数据、检查硬件状态等。确保集群的硬件和软件都处于最佳状态,以减少故障发生的可能性。综上所述,通过重启mon.ceph-Node01节点的mon服务,可以有效解决Ceph集群中出现的慢速操作问题。
ceph df:查看集群的磁盘使用情况。ceph pg stat:查看PG的状态和统计信息。综上所述,Ceph的架构设计通过引入PG和CRUSH算法等机制,实现了数据的高效存储、复制和分布。了解Ceph的架构和实现原理对于高效处理故障、优化存储性能具有重要意义。
优化的关键在于将io回复动作移到kv_sync_thread,以减少磁盘io的切换,从而缩短写入时间。然而,优化过程中还遇到了pg_num调整引发的iohang和osd异常等问题。通过一系列的代码修改和配置调整,性能得到了显著提升,特别是对大写操作的优化效果有限,但对于4k随机写,性能提升显著。
ceph相关命令
1、健康状态检查 命令检查:使用ceph s命令查询集群健康状态,health项显示HEALTH_OK表示正常。使用ceph osd stat命令检查OSD健康状态,确保OSDS、UP、IN数量一致。系统服务状态检查:使用systemctl status命令检查cephmon、cephmgr、cephradosgw、cephosd等服务的状态,确保均为active。
2、在ceph0节点上执行单机部署中的cephadm bootstrap命令,但此时不需要添加--single-host-defaults参数。使用ceph orch host add 节点名 IP地址 --labels _admin命令将其他节点添加到集群中。
3、在对应的节点上,通过命令systemctl stop ceph-osd@{osd-id}.service停止ceph-osd服务。例如,停止osd.0的服务可以使用命令systemctl stop ceph-osd@0.service。从集群中删除OSD:使用命令ceph osd rm {osd-id}从集群中删除OSD。例如,删除osd.0可以使用命令ceph osd rm osd.0。
4、节点关机顺序:先关闭应用节点机/算力机/业务系统,再关闭Ceph存储服务,关闭顺序:mds / rgw -- mgr -- osd -- mon,最后关闭操作系统。
ceph架构解析
1、Ceph的架构设计旨在提供高性能、高可用性和可扩展性的存储解决方案。其核心组件包括客户端(client)、监视器(Monitor)、对象存储守护进程(OSD)以及归置组(PG)等。核心组件解析 File(文件)用户需要存储或访问的文件。
2、Ceph架构原理 Ceph是一个开源的对象存储项目,提供对象、块和文件存储,其中对象存储功能在业内非常受欢迎。Ceph的存储集群一般包括三个部分:Ceph存储集群服务端:核心组件包括Monitor服务、OSD(Object Storage Daemons)服务和Manager服务等。
3、架构:与Ceph类似,去中心化的无中心分布式架构,底层也是对象存储技术。特性:保障数据的最终一致性,写完两个副本后即可Commit,读操作需进行副本对比校验,读效率低。采用一致性哈希算法完成数据分布计算,数据分布不如Ceph均匀。需要借助Proxy节点完成数据访问,访问效率较Ceph差。
4、Ceph 是一个功能全面的统一存储平台,支持对象、块和文件存储,但架构复杂,管理门槛和资源消耗较高。FastDFS 专注于文件管理,功能相对有限,不支持对象存储和云原生场景。HDFS 和 GFS 采用主从架构,对实时性和云环境支持不足。MinIO 的优势:专注对象存储,架构简洁高效。云原生设计适配现代应用。
5、Ceph是专注于提供海量数据存储和可扩展性能的分布式存储系统。它的设计目标是为了满足现代数据中心的需求,如高性能计算、云计算和大规模虚拟化环境等。Ceph提供了一种可靠的方式来存储大量数据,并能以横向扩展的方式支持数十亿个对象的存储和数千个客户端的连接。
6、Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。
分布式存储Ceph中的逻辑结构Pool和PG
分布式存储Ceph中的逻辑结构Pool和PG 在Ceph分布式存储系统中,Pool和PG(PLAcement Group)是其逻辑结构的重要组成部分,它们共同协作以实现高效、可靠的数据存储和管理。Pool(存储池)Pool是Ceph中一些object的逻辑分组,类似于LVM中的Volume Group,可以看作是一个命名空间。
Pool是Ceph中Object的逻辑分组,类似于LVM中的Volume Group或命名空间。Pool由多个PG组成,拥有属性如所有者和访问权限、Object副本数目、PG数目和CRUSH规则集合等。用户可以针对不同Pool设置优化策略,如副本数、数据清洗次数、数据块和Object的大小等。
图谱、视频、音频等多媒体文件。扁平数据存储结构:每个对象都是一个包括元数据、数据和唯一标识ID的完备数据描述,方便应用访问和管理。高可扩展性:通过引入Pool、Place Groups(PGs)、对象这三级逻辑,实现数据的高效管理和扩展。
ceph的均衡可以理解为PG的均衡(PG,OSD上实际的资源消耗者,其将逻辑池划分。写向池里的数据首先映射到的是按照2的幂次方划分的众多PG中的一个,然后PG会根据crush算法对应到OSD上)。
Ceph是一个开源的分布式存储系统,设计来存储大量的数据。它是一个可靠、高性能、可扩展和容易管理的存储解决方案,经常被用于处理大规模的数据存储需求,特别是在云计算环境中。由于其分布式架构,Ceph可以在多台服务器之间分散存储数据,确保数据的可靠性和容错性。
给PVE集群配置Ceph存储并更换国内源,并删除订阅弹窗
1、删除订阅通知弹窗 通过SSH连接到Proxmox机器或通过PVE web界面使用控制台,输入以下命令,然后清除浏览器缓存:安装ntp,ceph集群对时间同步的要求很高。
2、在“硬盘”配置页面中,找到并点击“高级选项”以展开更多配置细节。设置缓存模式:在“高级选项”中,定位到“缓存模式”选项。这里有三种缓存模式可供选择:None:不使用缓存,数据直接写入Ceph集群。Writeback:数据首先被写入缓存,然后在稍后时间写入Ceph集群。
3、机器配置:cpu与内存:建议采用8核CPU和16GB内存以上的配置。这是因为Ceph集群在处理大量数据时需要足够的计算能力和内存资源,以确保系统的稳定性和性能。硬盘要求:数量:至少需要三块硬盘。
4、系统安装步骤通常包括等待安装完成,输入IP地址(例如:ip:8006/)访问系统。接着进行组件集群和Ceph的部署。在访问地址时,企业订阅提示,直接确认即可。接下来进行软件源更换,针对Debian11的PVE0版本,需要替换Debian源,这里提供中科大源和163-Debian源作为替代。
5、主要更新内容 新的Ceph Enterprise存储库:Proxmox虚拟环境完全集成了Ceph Quincy,允许直接从任何集群节点运行和管理Ceph存储,并轻松设置和管理超融合基础设施。在版本0中,所有具有有效订阅的Proxmox客户现在都可以访问推荐用于生产环境的稳定Ceph Enterprise存储库。