ceph-cursh规则实战及PGS unknown 问题处理

2023-11-02

问题描述:

[root@ceph-mon01 ~]# ceph -s

  cluster:

    id:     92d4f66b-94a6-4c40-8941-734f3c44eb4f

    health: HEALTH_ERR

            1 filesystem is offline

            1 filesystem is online with fewer MDS than max_mds

            1 pools have many more objects per pg than average

            Reduced data availability: 256 pgs inactive

  services:

    mon: 3 daemons, quorum ceph-mon01,ceph-mon03,ceph-mon02 (age 5d)

    mgr: ceph-mon03(active, since 5d), standbys: ceph-mon02, ceph-mon01

    mds: cephfs:0

    osd: 9 osds: 9 up (since 43h), 9 in (since 43h); 224 remapped pgs

    rgw: 1 daemon active (ceph-mon01)

  task status:

  data:

    pools:   9 pools, 480 pgs

    objects: 34.60k objects, 8.5 GiB

    usage:   128 GiB used, 142 GiB / 270 GiB avail

               172995/103797 objects misplaced (166.667%)

             256 unknown

             224 active+clean+remapped

解决过程

ceph health detail

...

PG_AVAILABILITY Reduced data availability: 1024 pgs inactive

    pg 4.3c8 is stuck inactive for 246794.767182, current state unknown, last acting []

    pg 4.3ca is stuck inactive for 246794.767182, current state unknown, last acting []

1、检查 osd tree  (本处有,datacenter0, default 两个pg副本入口点)

[root@ceph-mon01 ~]# ceph osd tree

ID  CLASS WEIGHT  TYPE NAME                   STATUS REWEIGHT PRI-AFF

 -9       0.26367 datacenter datacenter0                             

-10       0.26367     room room0                                     

-11       0.08789         rack rack0                                 

 -3       0.08789             host ceph-osd01                        

  0   hdd 0.02930                 osd.0           up  1.00000 1.00000

  1   hdd 0.02930                 osd.1           up  1.00000 1.00000

  7   hdd 0.02930                 osd.7           up  1.00000 1.00000

-12       0.08789         rack rack1                                 

 -1             0 root default                                   

2、查看crushmap 信息(查看直到只有一个cruwh rules , id 0 , 副本入口点为:default

[root@ceph-mon01 ~]# ceph osd getcrushmap -o test.bin

33

[root@ceph-mon01 ~]# crushtool -d test.bin -o test.txt

[root@ceph-mon01 ~]# cat test.txt

# begin crush map

tunable choose_local_tries 0

tunable choose_local_fallback_tries 0

…..

# rules

rule replicated_rule {

        id 0

        type replicated

        min_size 1

        max_size 10

        step take default

        step chooseleaf firstn 0 type host

        step emit

}

3、查看现有pool

[root@ceph-mon01 ~]# ceph osd pool ls

.rgw.root

default.rgw.control

default.rgw.meta

default.rgw.log

default.rgw.buckets.index

default.rgw.buckets.non-ec

default.rgw.buckets.data

cephfs_data

cephfs_metadata

4、查看现有pool使用的crush_rule规划(本示例查看以,使用的是 crush_rule 0 的规划,)

[root@ceph-mon01 ~]# ceph osd dump |grep crush_rule

pool 1 '.rgw.root' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode warn last_change 47 flags hashpspool stripe_width 0 application rgw

pool 2 'default.rgw.control' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode warn last_change 49 flags hashpspool stripe_width 0 application rgw

pool 3 'default.rgw.meta' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode warn last_change 51 flags hashpspool stripe_width 0 application rgw

5、修改 crushmap 信息

对于比较熟的 crush 配置比较熟悉的老手推荐使用, 线上业务集群慎用。

5.1 导出crush map

把 ceph 的二进制格式的 crush map 导出并转换为文本格式

# 把二进制格式的crush map导出到test.bin文件中

ceph osd getcrushmap -o test.bin

​# 用 crushtool 工具把 test.bin 里的二进制数据转换成文本形式保存到 test.txt 文档里。

crushtool -d test.bin -o test.txt

5.2 修改test.txt

# 1、将take default改成take datacenter0,修改权重,

rule replicated_rule {

    id 0

    type replicated

    min_size 1

    max_size 10

    step take default

    step chooseleaf firstn 0 type host

    step emit

}

rule datacenter_rule {                       # 规则集的命名,创建pool时可以指定rule集

    id 1                               # id设置为1

    type replicated                # 定义pool类型为replicated(还有esurecode模式)

    min_size 1                     # pool中最小指定的副本数量不能小1

    max_size 10                    # pool中最大指定的副本数量不能大于10

    step take datacenter0          # 定义pg查找副本的入口点

    step chooseleaf firstn 0 type host  # 深度优先、隔离默认为host,设置为host

    step emit                      # 结束

}

# end crush map

5.3 把重新写的 ceph crush 导入 ceph 集群

# 把 test1 转换成二进制形式

crushtool -c test.txt -o new.bin

# 把 test2 导入集群

ceph osd setcrushmap -i new.bin

5.4 修改现有存储池的crush_rule

重新导入集群后,需要把之前存在过的pool池的crush_rule都修一下,否则集群会出现unknown状态有无法达到activee+clean状态

ceph osd pool set cephfs_data crush_rule datacenter_rule

ceph osd pool set cephfs_metadata crush_rule datacenter_rule

5.5 查看集群状态

ceph osd dump  |grep crush_rule # 发现使用的crush_rule的id变为1

pool 8 'cephfs_data' replicated size 3 min_size 2 crush_rule 1 object_hash rjenkins pg_num 128 pgp_num 128 autoscale_mode warn last_change 180 flags hashpspool stripe_width 0 application cephfs

pool 9 'cephfs_metadata' replicated size 3 min_size 2 crush_rule 1 object_hash rjenkins pg_num 128 pgp_num 128 autoscale_mode warn last_change 183 flags hashpspool stripe_width 0 pg_autoscale_bias 4 pg_num_min 16 recovery_priority 5 application cephfs

5.6、查看pool的使用的crush_rule名称

[root@ceph-mon01 ceph-ceph-mon01]# ceph osd pool ls

.rgw.root

default.rgw.control

default.rgw.meta

default.rgw.log

default.rgw.buckets.index

default.rgw.buckets.non-ec

default.rgw.buckets.data

cephfs_data

cephfs_metadata

[root@ceph-mon01 ceph-ceph-mon01]# ceph osd pool get default.rgw.log crush_rule

crush_rule: replicated_rule

[root@ceph-mon01 ceph-ceph-mon01]# ceph osd pool get cephfs_data crush_rule

crush_rule: datacenter_rule

  pgs:     53.333% pgs unknown  问题消除

[root@ceph-mon01 ~]# ceph -s

  cluster:

    id:     92d4f66b-94a6-4c40-8941-734f3c44eb4f

    health: HEALTH_ERR

            1 filesystem is offline

            1 filesystem is online with fewer MDS than max_mds

            1 pools have many more objects per pg than average

  services:

    mon: 3 daemons, quorum ceph-mon01,ceph-mon03,ceph-mon02 (age 5d)

    mgr: ceph-mon03(active, since 5d), standbys: ceph-mon02, ceph-mon01

    mds: cephfs:0

    osd: 9 osds: 9 up (since 45h), 9 in (since 45h); 224 remapped pgs

    rgw: 1 daemon active (ceph-mon01)

  task status:

  data:

    pools:   9 pools, 480 pgs

    objects: 34.60k objects, 8.5 GiB

    usage:   128 GiB used, 142 GiB / 270 GiB avail

    pgs:     172995/103797 objects misplaced (166.667%)

             256 active+clean

             224 active+clean+remapped

    recovery: 2.0 MiB/s, 7 objects/s

[root@ceph-mon01 ceph-ceph-mon01]#

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ceph-cursh规则实战及PGS unknown 问题处理 的相关文章

  • 5. 在 Proxmox VE 配置Ceph

    Pool 用于存储虚拟机的img xff0c 如果需要实现虚拟机的HA xff0c 那么虚拟机必须创建在Ceph上 xff0c 通过Ceph的多副本来实现故障恢复 CephFS 在PVE中主要用于共享文件 xff0c 如iso文件等 创建O
  • ceph 17版本:使用cephadm部署单节点集群

    ceph 17版本 xff1a 使用cephadm部署17 2版本的单节点集群 文章目录 前言一 环境版本信息二 基础环境部署1 服务器准备2 配置DNS3 安装时间服务4 关闭防火墙5 安装docker服务5 安装lvm服务 二 ceph
  • ceph (cephadm)集群部署

    ceph 集群部署 cephadm 方法1 xff1a ansible ceph ansible使用Ansible部署和管理Ceph集群 xff08 1 xff09 ceph ansible被广泛部署 xff08 2 xff09 ceph
  • 【测试】 FIO:ceph/磁盘IO测试工具 fio(iodepth深度)

    目录 随看随用 NAS文件系统测试 块系统测试 FIO用法 FIO介绍 FIO 工具常用参数 xff1a FIO结果说明 I O 的重放 xff08 39 录 39 下实际工况的IO xff0c 用fio 39 重放 39 xff09 fi
  • Ceph OSD扩容与缩容

    在企业生产环境中 xff0c 随着时间的迁移数据会存在磁盘空间不足 xff0c 或者机器节点故障等情况 OSD又是实际存储数据 xff0c 所以扩容和缩容OSD就很有必要性 随着我们数据量的增长 xff0c 后期可能我们需要对osd进行扩容
  • CentOS 7部署 Ceph分布式存储架构

    一 概述 随着OpenStack日渐成为开源云计算的标准软件栈 Ceph也已经成为OpenStack的首选后端存储 Ceph是一种为优秀的性能 可靠性和可扩展性而设计的统一的 分布式文件系统 ceph官方文档 http docs ceph
  • ceph学习(故障恢复)——mon全部故障,从osd中恢复集群

    在生产环境中 ceph集群要求最少配置3个MON 一般情况下很少出现3个MON同时挂掉的情况 但是也不排除出现这种情况的可能 如果集群中的所有MON都损坏了 是不是集群数据就丢失了呢 能不能恢复集群 当然是可以的 ceph中国的一位开发者写
  • 【Ceph】1 pools have many more objects per pg than average

    公司 Ceph 集群从 v12 升级到 v14 后 今天某个 CephFS 的集群收到一个 HEALTH WARN 的告警 具体的 Warning 的信息为 1 pools have many more objects per pg tha
  • Ceph:ceph修复osd为down的情况

    ceph修复osd为down的情况 今天巡检发现ceph集群有一个osds Down了 通过dashboard 查看 ceph修复osd为down的情况 点击查看详情 可以看到是哪个节点Osds Down 了 通过命令查看Osds状态 查看
  • PG概述及OSD对PG状态的影响

    前言 随着分布式存储的广泛应用 目前对PG的关注越来越多 本文基于ONStor分布式存储系统简要介绍一下PG的状态变化 重点说明OSD对PG状态的影响 一 Ceph分布式存储概述 Ceph是一个统一的分布式存储系统 设计初衷是提供较好的性能
  • Ceph主要概念

    目录 1 整体架构介绍 1 1 总体介绍 1 2 整体架构 2 集群管理 2 1 Monitor 2 2 心跳管理 3 数据读写 3 1 OSD 3 2 读写流程 3 3 POOL和PG 3 4 CRUSH算法 3 4 1 Straw算法
  • Ceph 存储池命令 以及 数据压缩

    文章目录 一 存储池操作 1 1 常用命令 1 2 删除存储池 1 3 存储池配额 1 4 存储池可用参数 二 存储池快照 2 1 创建快照 2 2 验证快照 2 3 回滚快照 2 4 删除快照 三 数据压缩 3 1 启用压缩并指定压缩算法
  • Linux centos 卸载 ceph

    在CentOS上卸载Ceph的操作步骤 1 停止Ceph集群 首先 你需要停止Ceph集群中的所有服务 在每个节点上运行以下命令来停止所有服务 systemctl stop ceph target 2 卸载Ceph软件包 在每个节点上 使用
  • Ceph集群中指定OSD 创建 pool

    导读 如何利用crush来对不同数据指定不同设备的osd存储 这边我是用虚拟机演示 所以都是hdd 这边假设osd0 2 4为ssd设备 osd 1 3 5为sata设备 背景 在我们的ceph集群中 可能不只有sata盘或者ssd盘 有些
  • BlueStore 架构及原理分析

    BlueStore 架构及原理分析 Ceph 底层存储引擎经过了数次变迁 目前最常用的是 BlueStore 在 Jewel 版本中引入 用来取代 FileStore 与 FileStore 相比 Bluesore 越过本地文件系统 直接操
  • 删除 Ceph 集群里的某个节点的全部OSD (2 of 3)

    前言 如果你的ceph集群的数据只存在在该节点的所有OSD上 删除该节点的OSD会导致数据丢失 如果集群配置了冗余replication或者EC 需要做pg 修复 出于数据安全考虑 请一定 一定 一定 备份好你要删除的OSD上的数据 这里一
  • ceph分布式存储集群部署及应用

    分布式文件系统 Distributed File System 分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上 而是通过计算机网络与节点相连 分布式文件系统的设计基于C S模式 常用分布式文件系统 Lustre Ha
  • rdb map出錯rbd sysfs write failed

    創建了一個rbd鏡像 rbd create size 4096 docker test 然後 在Ceph client端將該rbd鏡像映射為本地設備時出錯 rbd map docker test name client admin rbd
  • Ceph入门到精通-Macvlan网络模式

    Docker中的Macvlan网络模式提供了一种将容器直接连接到宿主机网络的方式 使得容器可以拥有自己的MAC地址和与宿主机网络的直接连接 以下是使用Macvlan网络模式的一般步骤 创建Macvlan网络 docker network c
  • Ceph:每个 OSD PG 太多

    我使用推荐值配置了 Ceph 使用文档中的公式 我有 3 个 OSD 我的配置 我已将其放在监视器节点和所有 3 个 OSD 上 包括以下内容 osd pool default size 2 osd pool default min siz

随机推荐

  • 4G发展成果丰硕 加速布局迎接5G到来

    4G取得显著成效 近五年 我国移动通信取得飞跃式发展 在4G标准 技术 市场 应用等各个方面都取得显著成效 回顾我国移动通信网络技术发展 已经走过了第一代模拟技术 1G 第二代数字技术 2G 和第三代宽带数字技术 3G 目前正处在第四代移动
  • python中compare_python中sort()方法的cmp参数

    python基础编程 里有讲到一段高级排序 如果希望元素能按照特定的方式进行排序 而不是sort函数默认的方式 即根据python的默认排序规则按升序排列元素 第5章内对此进行讲解 那么可以通过compare x y 的形式自定义比较函数
  • node简易命令行开发

    一 在学习的过程中 好奇npm run build 到底做了什么 打包 build对应的命令行为 cross env NODE ENV dev vue cli service build 1 修改环境变量NODE ENV为dev 2 执行v
  • python xlrd 2.0.1版本不支持.xlsx格式

    python xlrd库的新版本2 0 1版本移除了对 xlsx格式的支持 只支持 xls格式 报错信息如下 File Library Frameworks Python framework Versions 3 7 lib python3
  • jest单元测试-基础

    jest单元测试 基础 一 认识前端自动化 随着前端的发展 前端设计的领域已经越来越多 也越来越复杂 这就对我们前端工程化能力 提出了更高的要求 好的前端工程化一般包括三个大的方面 前端自动化测试 前提条件 高质量的代码设计 高质量的代码实
  • 常量与指针间的转换 warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

    最近重新学习C语言 在指针数组处遇到了点问题 代码如下 include
  • UNCTF2022-公开赛-MISC-部分WriteUp

    1 magic word 西南科技大学 magic word docx后缀改成zip 然后解压 打开 word document xml 复制这一段 必须向上图那样复制 不然末尾一段零宽字符会没复制上 零宽网站 https www mzy0
  • JavaScript 数据类型——八种数据类型总结

    JavaScript 目前包含八种数据类型 其中可以分成两大类 基本数据类型 原始值 Number 数值 包含NaN String 字符串 Boolean 布尔值 Undefined 未定义 未初始化 Null 空对象 Symbol 独一无
  • 远程桌面的端口设置和原理探究

    在上一篇文章外网远程控制局域网内主机 路由器端口转发设置 文章中我提到了远程连接的基本原理 本文来验证一下 并且看看怎么来修改远程连接的默认端口 首先 在被控机上开启 允许远程连接 那么内部远程控制程序就监听了3389端口 主控端发起远程连
  • HashMap浅析

    1 HashMap概述 HashMap是基于哈希表的Map接口的非同步实现 此实现提供所有可选的映射操作 并允许使用null值和null键 此类不保证映射的顺序 特别是它不保证该顺序恒久不变 2 HashMap的数据结构 在java编程语言
  • 测试工具学习——Robot Framework

    Robot Framework作为框架平台 可以加载各种Library 通过测试套件 资源文件集成起来 然后可以针对被测试细听进行不同角度的测试 Windows 一 使用主要流程 创建工程和测试套 File gt New Project N
  • vue 路由跳转 外部链接

    1 vuejs 是单页面应用 应用内的跳转 可以用router link标签 跳转demo
  • 微服务Dubbo和SpringCloud架构设计、优劣 势⽐较

    本 主要围绕微服务的技术选型 通讯协议 服务依赖模式 开始模式 运 模式等 来综合 较 Dubbo和Spring Cloud 这2种开发框架 架构师可以根据公司的技术实 并结合项 的特点来选择某个 合适的微服务架构平台 以此稳妥地实施项 的
  • 解决webstorm中ts自动编译

    解决webstorm中ts自动编译 我们可以首先写一段ts代码 然后在终端执行tsc helloworld ts来编译为js代码 下面运行代码 使用node helloworld js来运行 但是当我们改变ts内容时 js内容不会对应改变
  • python中的科学计数法表示

    在python中如何使用科学计数法对我们想要定义的变量进行赋值呢 请看以下代码 coding utf 8 author 15025 time 2021 8 2 14 43 software PyCharm Description Scien
  • Linux开发工具之项目自动化构建工具-make/Makefile

    make是一条命令 makefile是一个文件 两个搭配使用 完成项目自动化构建 makefile带来的好处就是自动化编译 一旦写好 只需要一个make命令 整个工程完全自动编 译 极大的提高了软件开发的效率 下面来看一个实例 在Makef
  • mysql 优化之索引视图和索引为何未调用

    如何判断语句运行速度的快慢呢 执行计划 在mysql中我们可以通过explain显示了mysql如何使用索引来处理select语句以及连接表 可以帮助选择更好的索引和写出更优化的查询语句 我们在查询mysql语句时经常会出现查询速度极其缓慢
  • 如何实现响应式(自适应)网页

    响应式网页 什么是响应式布局 为什么会造成布局混乱 META标签 相对度量 FLEX布局 宽高设置 媒体查询 替换元素 响应式框架 什么是响应式布局 响应式网页 Responsive Web RW 又称自适应网页 是一种网页设计布局 可以根
  • IP地址相关知识点

    IP地址 IP地址 网络部分 主机部分 32位 网络部分用来确定终端是不是在同一个网段 主机部分用来确定终端的容量大小 这个网段可容纳多少台 同一个部门主机应该确保其在一个网段 主机数量应该在你的主机容量的范围内 IP地址分为5类 A B
  • ceph-cursh规则实战及PGS unknown 问题处理

    问题描述 root ceph mon01 ceph s cluster id 92d4f66b 94a6 4c40 8941 734f3c44eb4f health HEALTH ERR 1 filesystem is offline 1