第⑫讲:Ceph集群OSD扩缩容中Reblanceing数据的重分布

文章目录

    • 1.Reblanceing数据重分布的概念
    • 2.验证Reblanceing触发的过程
    • 3.Reblanceing细节
    • 4.临时关闭Reblanceing机制

1.Reblanceing数据重分布的概念

当集群中OSD进行扩缩容操作后,会触发一个Reblanceing数据重分布的机制,简单的理解就是将扩缩容前后OSD中的PG在每一个OSD中进行均匀分布,如下图所示:

image-20220404102217707

在扩容前集群有两个OSD节点,这两个OSD中分布着十个PG,扩容后,集群中有三个OSD节点,此时就会触发Reblanceing数据重分布机制,将原有的两个OSD中的一部分PG移动到第三个OSD中,使的每个OSD中的PG数量均衡。

Reblanceing数据重分布移动的是PG并不是Object,Object是存放在PG里的,如果要移动Object,数据量是非常大的,并且Object的数据也非常多,严重影响集群的性能,而PG的数量是有限的,移动PG是最好的方式。

Reblanceing数据重分布机制如何触发:

当集群中有新的OSD加入进来后,会将信息上报给Monitor,Monitor就会从Cluster Map中得知OSD Map发送了变化,只要OSD Map发送了变化,就会触发Reblanceing机制,使OSD中的PG平滑的移动到新的OSD。

在实际生产环境中,如果PG中的数据量非常大,在触发Reblanceing机制时,会对集群的性能有所影响,如果一次性增加很多个OSD节点,那么就意味着会有大量的PG被移动,此时就会对集群的性能产生巨大的影响,因此建议,每次在扩容OSD时,只扩容一个OSD。

2.验证Reblanceing触发的过程

向Ceph存储中写入大量数据,然后扩容一个OSD节点,观察Reblanceing的触发过程。

1)在Ceph存储中写入大量的数据

[root@ceph-node-1 ~]# cd /cephfs_data/
[root@ceph-node-1 cephfs_data]# dd if=/dev/zero of=reblanceing-file.txt bs=1M count=8192

2)新加一个OSD

[root@ceph-node-1 ceph-deploy]# ceph-deploy osd create  ceph-node-2 --data /dev/sdd

3)观察Reblanceing机制的触发过程

[root@ceph-node-1 ~]# ceph -s

image-20220404110841795

视频:

Reblanceing触发过程

3.Reblanceing细节

在触发Reblanceing机制后,PG的迁移是比较慢的,那是因为OSD默认情况下只有一个线程,将线程数适当增加,可以提高迁移的速度,但是也会消耗部分的性能。

[root@ceph-node-1 ceph-deploy]# ceph --admin-daemon /var/run/ceph/ceph-mon.ceph-node-1.asok config show | grep max_backfills"osd_max_backfills": "1",

触发Reblanceing机制后,集群是使用配置的cluster_network进行通信的,在实际环境中,一定要将public_network和cluster_network网络分开,并且cluster_network网络要使用万兆口,可以提高速度。

4.临时关闭Reblanceing机制

在做Reblanceing时,如果集群正面临着业务繁忙,此时再使用Reblanceing就会对集群的性能产生影响,可以临时关闭Reblanceing,当业务量较小时,再开启。

1)关闭Reblanceing

1.关闭Reblanceing
[root@ceph-node-1 ~]# ceph osd set norebalance
norebalance is set
[root@ceph-node-1 ~]# ceph osd set nobackfill
nobackfill is setnobackfill也会做数据填充,也需要关闭2.查看集群的状态
[root@ceph-node-1 ~]# ceph -scluster:id:     a5ec192a-8d13-4624-b253-5b350a616041health: HEALTH_WARNnobackfill,norebalance flag(s) set				#reblanceing处于关闭状态

2)开启Reblanceing

[root@ceph-node-1 ~]# ceph osd unset nobackfill
nobackfill is unset
[root@ceph-node-1 ~]# ceph osd unset norebalance
norebalance is unset

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/817006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Hello算法】 > 第 1 关 > 初识 算法 与 复杂度分析

初识 算法 与 复杂度分析 What are algorithms and data structures ?-什么是算法与数据结构?How to conduct complexity analysis ?-如何进行复杂性分析?时间复杂度空间复杂度 小结Tips: ————————————————————————…

Day101:漏洞发现-漏扫项目篇NucleiYakitGobyAfrogXrayAwvs联动中转被动

目录 特征类-三方Poc调用&模版Poc调用 案例1:单点对某特征点进行安全评估 Goby-综合类 Nuclei-较综合类 Afrog-特征类 Yakit-可特征可综合 案例2:新型对某特征点进行安全评估 综合类-主动漏扫&中转联动&被动联动 案例1:…

移动开发避坑指南——内存泄漏

在日常编写代码时难免会遇到各种各样的问题和坑,这些问题可能会影响我们的开发效率和代码质量,因此我们需要不断总结和学习,以避免这些问题的出现。接下来我们将围绕移动开发中常见问题做出总结,以提高大家的开发质量。本系列文章…

03-进程-网络命令-软件安装-SSH免密登录

软件安装-网络命令-SSH免密登录 一 软件安装 1 在线安装 命令: yum 作用:yum会从指定的服务器自动下载rpm包并且进行安装,优点是可以自动处理依赖关系,并且一次安装所有的软件包。 配置yum的镜像源 yum源有个统一的下载服务…

剖析 SPI 在 Spring 中的应用

一、概述 SPI(Service Provider Interface),是Java内置的一种服务提供发现机制,可以用来提高框架的扩展性,主要用于框架的开发中,比如Dubbo,不同框架中实现略有差异,但核心机制相同…

精确号码比例放通算法的设计与实现

精确号码比例放通算法的设计与实现 引言背景问题定义算法设计1. 数据结构2. 算法流程3. 伪代码4. C语言实现 结论参考文献 引言 随着通信技术的飞速发展,呼叫中心和电信运营商面临着日益增长的呼叫管理需求。在某些情况下,为了确保服务质量或者遵守特定…

方案分享 | 嵌入式指纹方案

随着智能设备的持续发展,指纹识别技术成为了现在智能终端市场和移动支付市场中占有率最高的生物识别技术。凭借高识别率、短耗时等优势,被广泛地运用在智能门锁、智能手机、智能家居等设备上。 我们推荐的品牌早已在2015年进入指纹识别应用领域&#xff…

[dvwa] sql injection

sql injection 0x01 low sql语句没有过滤 经典注入,通过逻辑or为真相当于select * from users where true,99换成1也成 用union select 对齐列数,查看数据库信息 1’ union select 1,2# order by探测对齐列数更方便 1’ or 11 order b…

05.MySQL索引事务

1. 索引 1.1 概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。 可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现 1.2 作用 数据库中的表、数据、索引之间的关系,类似于书架上的…

Spring AI 应用 - 智能记者

参考实现: https://github.com/mshumer/ai-journalist 上面是通过 Claude 配合 SERP 搜索 API,使用 Python 语言实现的,本文通过 GitHub Copilot 辅助改为了基于 Spring AI 的 Java 版本,本文使用的 OpenAI。 AIJournalist 实现…

Tomcat源码解析——源码环境搭建

一、源码下载 在进行源码阅读前,先下载源码包,这样便于做笔记和debug。 我所用的版本是Tomcat7.0.68, Tomcat7.0.68下载地址:Index of /dist/tomcat/tomcat-7/v7.0.68/src 所有Tomcat的源码包下载地址:Index of /dist/…

第6章:6.4.2 案例二:爬取成语网站数据 (MATLAB入门课程)

讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 本案例用到的网址为:成语大全列表成语大全列表https…

NSA发布《在数据支柱中推进零信任成熟度》报告

4月9日,美国国家安全局(NSA)发布了题为《在数据支柱中推进零信任成熟度》的报告,旨在于数据安全层面提供指导,以增强数据整体安全性并保护静态和传输中的数据。(如下图) 一、主要内容 报告中的建议侧重于将…

企业电子招标采购系统源码之从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…

ChatGPT在线网页版

ChatGPT镜像 今天在知乎看到一个问题:“平民不参与内测的话没有账号还有机会使用ChatGPT吗?” 从去年GPT大火到现在,关于GPT的消息铺天盖地,真要有心想要去用,途径很多,别的不说,国内GPT的镜像…

Linux:Redis7.2.4的源码包部署(2)

本章使用的是centos9进行部署 1.获取rpm安装包 Index of /releases/ (redis.io)https://download.redis.io/releases/这个网站有历史的版本,我这里使用的是最新版7.2.4进行安装 点击即可进行下载 方进Linux中,如果你的Linux中可以直接使用wget去下载 2…

SQLite、MySQL 和 PostgreSQL 数据库速度比较(本文阐述时间很早比较,不具有最新参考性)(二十五)

返回:SQLite—系列文章目录 上一篇:用于 SQLite 的异步 I/O 模块(二十四) 下一篇:SQLite—系列文章目录 注意:本文档非常非常旧。它描述了速度比较 SQLite、MySQL 和 PostgreSQL 的古老版本。 这里…

系统架构最佳实践 -- 供应链系统架构

供应链系统是现代企业管理中不可或缺的一部分,它涉及到从原材料采购到产品销售的整个生产流程。一个高效的供应链系统可以帮助企业实现成本控制、库存优化和客户满意度提升等目标。在本文中,我们将讨论供应链系统的设计与实践。 一、供应链系统设计 业务…

如何用 Python 批量循环读取 Excel ?

在使用 Python 批量处理 Excel 时经常需要批量读取数据,常见的方式是结合glob模块,可以实现将当前文件夹下的所有csv批量读取,并且合并到一个大的DataFrame中 df_list [] for file in glob.glob("*.csv"):df_list.append(pd.read…

解决动态规划问题

文章目录 动态规划的定义动态规划的核心思想青蛙跳阶问题解法一:暴力递归解法二:带备忘录的递归解法(自顶向下)解法三:动态规划(自底向上) 动态规划的解题套路什么样的问题考虑使用动态规划&…