Ceph—报错锦集(mgr2、pgs、mgr依赖缺失等)

2023-11-16

报错锦集

1. 执行./do_cmake.sh时的报错提示

CMake Error at cmake/modules/BuildBoost.cmake:270 (_add_library):
  Cannot find source file:

    xxHash/xxhash.c

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
  .hpp .hxx .in .txx

image-20210617135433203
解决方案:
克隆的时候xxhash文件没有克隆上原因,重新克隆即可。

2. ./do_cmake.sh 的note

Note: do_cmake.sh now defaults to creating a debug build of ceph that can be up to 5x slower with some workloads. Please pass “-DCMAKE_BUILD_TYPE=RelWithDebInfo” to do_cmake.sh to create a non-debug release.)

do_cmake.sh现在默认情况下创建的ceph调试版本在某些工作负载下的运行速度可能会慢5倍。请将“ -DCMAKE_BUILD_TYPE = RelWithDebInfo”传递给do_cmake.sh以创建非调试版本。

image-20210617135433203

  1. 1:ng : not found
    image-20210617211638668

解决方案:可以试一试

https://tracker.ceph.com/issues/36373

3. 导入一些链接库

cp /usr/local/lib/librados.so.2 /usr/lib/

image-20210618111001771

cd /usr/local/lib/python3/dist-packages/ 

cp * /usr/lib/python3/dist-packages/

apt-get install librbd-dev

image-20210618111001771

4. No module named ‘ceph’(mgr依赖错误)

错误描述:
image-20210621092321721
解决方案:

apt-get install ceph

5. mgr依赖缺失:/lib/x86_64-linux-gnu/librbd.so.1

错误提示:

root@node1:/lib/x86_64-linux-gnu# ceph health detail
HEALTH_WARN 2 mgr modules have failed dependencies
[WRN] MGR_MODULE_DEPENDENCY: 2 mgr modules have failed dependencies
    Module 'rbd_support' has failed dependency: /lib/x86_64-linux-gnu/librbd.so.1: undefined symbol: _ZN19TokenBucketThrottleC1EPN4ceph6common11CephContextERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmmP9SafeTimerPSt5mutex
    Module 'telemetry' has failed dependency: /lib/x86_64-linux-gnu/librbd.so.1: undefined symbol: _ZN19TokenBucketThrottleC1EPN4ceph6common11CephContextERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmmP9SafeTimerPSt5mutex

查看所有librbd,so,1,可以看到Clone的目录下存在/home/ceph-gitee/ceph/build/lib/librbd.so.1,usr/lib下的文件属于缺失文件,只需将ceph目录下的文件拷贝到usr/lib下即可(记得保存副本哦)

root@node1:/lib/x86_64-linux-gnu# find / -name librbd.so.1
/home/ceph-gitee/ceph/build/lib/librbd.so.1
/usr/lib/x86_64-linux-gnu/librbd.so.1
/usr/lib/librbd.so.1
/snap/lxd/20789/lib/x86_64-linux-gnu/librbd.so.1
/snap/lxd/20806/lib/x86_64-linux-gnu/librbd.so.

解决:

root@node1:/lib/x86_64-linux-gnu# cp /home/ceph-gitee/ceph/build/lib/librbd.so.1 .

6. pgs错误:1 pg undersized

错误描述:

root@node1:/var/lib/ceph/osd# ceph health detail
HEALTH_WARN 4 mgr modules have failed dependencies; Degraded data redundancy: 1 pg undersized
[WRN] MGR_MODULE_DEPENDENCY: 4 mgr modules have failed dependencies
    Module 'orchestrator' has failed dependency: No module named 'ceph'
    Module 'rbd_support' has failed dependency: librbd.so.1: cannot open shared object file: No such file or directory
    Module 'telemetry' has failed dependency: librbd.so.1: cannot open shared object file: No such file or directory
    Module 'volumes' has failed dependency: No module named 'ceph'
[WRN] PG_DEGRADED: Degraded data redundancy: 1 pg undersized
    pg 1.0 is stuck undersized for 34m, current state active+undersized+remapped, last acting [1,0]

解决:

The install shipped with a default CRUSH rule which had as the default failure domain:replicated_rule``host

$ ceph osd crush rule dump replicated_rule    
{
    "rule_id": 0,
    "rule_name": "replicated_rule",
    "ruleset": 0,
    "type": 1,
    "min_size": 1,
    "max_size": 10,
    "steps": [
        {
            "op": "take",
            "item": -1,
            "item_name": "default"
        },
        {
            "op": "chooseleaf_firstn",
            "num": 0,
            "type": "host"
        },
        {
            "op": "emit"
        }
    ]
}

先找出了与pg1相关的池

$ ceph osd pool ls
device_health_metrics

$ ceph pg ls-by-pool device_health_metrics
PG   OBJECTS  DEGRADED  ...  STATE
1.0        0         0  ...  active+undersized+remapped

并确认pg正在使用默认规则:‎

$ ceph osd pool get device_health_metrics crush_rule
crush_rule: replicated_rule

‎而不是修改默认的CRUSH规则,我选择‎‎创建一个新的复制规则‎‎,但这次指定(又名)‎‎类型‎‎(‎‎文档:CRUSH地图类型和存储桶‎‎),也假设默认CRUSH根:‎osd``device``default

# osd crush rule create-replicated <name> <root> <type> [<class>]
$ ceph osd crush rule create-replicated replicated_rule_osd default osd

$ ceph osd crush rule dump replicated_rule_osd
{
    "rule_id": 1,
    "rule_name": "replicated_rule_osd",
    "ruleset": 1,
    "type": 1,
    "min_size": 1,
    "max_size": 10,
    "steps": [
        {
            "op": "take",
            "item": -1,
            "item_name": "default"
        },
        {
            "op": "choose_firstn",
            "num": 0,
            "type": "osd"
        },
        {
            "op": "emit"
        }
    ]
}

然后将新规则分配给现有池‎:

$ ceph osd pool set device_health_metrics crush_rule replicated_rule_osd
set pool 1 crush_rule to replicated_rule_osd

$ ceph osd pool get device_health_metrics crush_rule
crush_rule: replicated_rule_osd

‎最后确认pg状态:‎

$ ceph pg ls-by-pool device_health_metrics
PG   OBJECTS  DEGRADED  ...  STATE
1.0        0         0  ...  active+clean

7. 删除OSD节点的问题

要想缩减集群尺寸或替换硬件,可在运行时删除 OSD 。在 Ceph 里,一个 OSD 通常是一台主机上的一个 ceph-osd 守护进程、它运行在一个硬盘之上。如果一台主机上有多个数据盘,你得挨个删除其对应 ceph-osd 。通常,操作前应该检查集群容量,看是否快达到上限了,确保删除 OSD 后不会使集群达到 near full 比率。

注意: 删除 OSD 时不要让集群达到 full ratio 值,删除 OSD 可能导致集群达到或超过 full ratio 值。

把 OSD 踢出集群,删除 OSD 前,它通常是 upin 的,要先把它踢出集群,以使 Ceph 启动重新均衡、把数据拷贝到其他 OSD 。

ceph osd out {osd-num}

观察数据迁移

一旦把 OSD 踢出( out )集群, Ceph 就会开始重新均衡集群、把归置组迁出将删除的 OSD 。你可以用 ceph 工具观察此过程。

ceph -w

你会看到归置组状态从 active+clean 变为 active, some degraded objects 、迁移完成后最终回到 active+clean 状态。( Ctrl-c 中止)

注意:

​ 有时候,(通常是只有几台主机的“小”集群,比如小型测试集群)拿出( out )某个 OSD 可能会使 CRUSH 进入临界状态,这时某些 PG 一直卡在 active+remapped 状态。如果遇到了这种情况,你应该把此 OSD 标记为 in ,用这个命令:

ceph osd in {osd-num}

​ 等回到最初的状态后,把它的权重设置为 0 ,而不是标记为 out ,用此命令:

ceph osd crush reweight osd.{osd-num} 0

​ 执行后,你可以观察数据迁移过程,应该可以正常结束。把某一 OSD 标记为 out 和权重改为 0 的区别在于,前者,包含此 OSD 的桶、其权重没变;而后一种情况下,桶的权重变了(降低了此 OSD 的权重)。某些情况下, reweight 命令更适合“小”集群。

停止 OSD

把 OSD 踢出集群后,它可能仍在运行,就是说其状态为 upout 。删除前要先停止 OSD 进程。

ssh {osd-host}
sudo /etc/init.d/ceph stop osd.{osd-num}

停止 OSD 后,状态变为 down

删除 OSD

此步骤依次把一个 OSD 移出集群 CRUSH 图、删除认证密钥、删除 OSD 图条目、删除 ceph.conf 条目。如果主机有多个硬盘,每个硬盘对应的 OSD 都得重复此步骤。

  1. 删除 CRUSH 图的对应 OSD 条目,它就不再接收数据了。你也可以反编译 CRUSH 图、删除 device 列表条目、删除对应的 host 桶条目或删除 host 桶(如果它在 CRUSH 图里,而且你想删除主机),重编译 CRUSH 图并应用它。详情参见删除 OSD

    ceph osd crush remove {name}
    
  2. 删除 OSD 认证密钥:

    ceph auth del osd.{osd-num}
    

    ceph-{osd-num} 路径里的 ceph 值是 $cluster-$id ,如果集群名字不是 ceph ,这里要更改。

  3. 删除 OSD

    ceph osd rm {osd-num}
    #for example
    ceph osd rm 1
    
  4. 登录到保存 ceph.conf 主拷贝的主机

    ssh {admin-host}
    cd /etc/ceph
    vim ceph.conf
    
  5. ceph.conf 配置文件里删除对应条目

    [osd.1]
            host = {hostname}
    
  6. 从保存 ceph.conf 主拷贝的主机,把更新过的 ceph.conf 拷贝到集群其他主机的 /etc/ceph 目录下

删除osd对应的vg

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

Ceph—报错锦集(mgr2、pgs、mgr依赖缺失等) 的相关文章

  • Windows虚拟机通过libvirt使用CEPH RBD

    kvm虚拟机通过 libvirt 挂在 ceph rbd作为数据盘 一 首先确定我们的ceph环境是HEALTH OK span class token punctuation span root 64 cephmon ceph span
  • Ceph OSD为DOWN时修复

    本文所使用Ceph版本为luminous 不同版本删除OSD基本操作相同 xff09 xff0c 当出现Ceph OSD为down的情况时 xff0c 可以通过以下方法解决 xff08 假设ceph admin节点OSD 1 Down xf
  • ceph集群维护常用操作

    文章目录 通过套接字进行单机管理集群启停移除节点ceph配置文件存储池分类副本池IO纠删码池IO PG与PGPPG数量计算PG常见状态存储池管理创建存储池查看存储池删除存储池存储池配额 存储池可用参数存储池快照 通过套接字进行单机管理 可以
  • ceph的一些优化

    最近一直在忙着搞Ceph存储的优化和测试 xff0c 看了各种资料 xff0c 但是好像没有一篇文章把其中的方法论交代清楚 xff0c 所以呢想在这里进行一下总结 xff0c 很多内容并不是我原创 xff0c 只是做一个总结 如果其中有任何
  • 分布式存储Ceph中的逻辑结构Pool和PG

    Ceph中的逻辑对象有Object Pool PG 本文简单介绍相关的概念以及之间的关系 PG状态变化过程等 1 Ceph集群中的逻辑结构 1 1 Object Object是Ceph的最小存储单元 大小可以自己定义通常为2M或4M 每个O
  • Ceph:ceph修复osd为down的情况

    ceph修复osd为down的情况 今天巡检发现ceph集群有一个osds Down了 通过dashboard 查看 ceph修复osd为down的情况 点击查看详情 可以看到是哪个节点Osds Down 了 通过命令查看Osds状态 查看
  • ceph pg和pgp的区别

    一 前言 首先来一段英文关于PG和PGP区别的解释 PG Placement Group PGP Placement Group for Placement purpose pg num number of placement groups
  • Learning Ceph

    Author 海峰 http weibo com 344736086 参考章宇兄的开源项目学习ABC的方法来对ceph进行简单的学习与分析 下面是分析过程中画的图片
  • Ceph17 安装部署

    一 系统资源初始化 ceph可以实现的存储方式 块存储 提供像普通硬盘一样的存储 为使用者提供 硬盘 文件系统存储 类似于 NFS 的共享方式 为使用者提供共享文件夹 对象存储 像百度云盘一样 需要使用单独的客户端 ceph 还是一个分布式
  • 利用 RDMA 技术加速 Ceph 存储解决方案

    利用 RDMA 技术加速 Ceph 存储解决方案 晓兵XB 云原生云 2023 04 29 20 37 发表于四川 首发链接 利用 RDMA 技术加速 Ceph 存储解决方案 在本文中 我们首先回顾了 Ceph 4K I O 工作负载中遇到
  • ceph-deploy命令应用

    记录 336 场景 在CentOS 7 9操作系统上 使用ceph deploy创建ceph集群 部署集群的mon mgr mds osd rgw等组件 版本 操作系统 CentOS 7 9 ceph版本 ceph 13 2 10 名词 c
  • ceph分布式文件存储性能调优

    ceph分布式文件存储性能调优 一 硬件调优 二 BIOS配置 三 网络配置 四 OS配置 五 硬盘调度算法 六 软件层面 七 ceph参数调优 一 硬件调优 1 NVMe SSD 调优 目的 为减少数据跨片开销 方法 将NVMe SSD与
  • 分布式存储Ceph介绍及搭建

    一 存储的类型 1 单机存储设备 DAS 直接附加存储 是直接接到计算机的主板总线上去的存储 IDE SATA SCSI SAS USB 接口的磁盘 所谓接口就是一种存储设备驱动下的磁盘设备 提供块级别的存储 NAS 网络附加存储 是通过网
  • ceph环境清理

    第一步 在 root ceph 目录下执行 第一个节点 ceph deploy purge ceph01 ceph02 ceph03 ceph04 ceph deploy purgedata ceph01 ceph02 ceph03 cep
  • ceph集群部署

    一 ceph特点高性能 1 摒弃了传统的集中式存储元数据寻址的方案 采用CRUSH算法 数据分布均衡 并行度高 2 考虑了容灾域的隔离 能够实现各类负载的副本放置规则 例如跨机房 机架 感知等 3 能够支持上千个存储节点的规模 支持TB到P
  • Loongnix单机部署Ceph(LoongArch架构、Ceph N版、手动部署MON、OSD、MGR、Dashboard服务)

    基础环境信息 CPU 龙芯3C5000L 2 内存 128G 硬盘 系统盘 一块512G的NVME的SSD 数据盘 三块16T的HDD 操作系统版本 Loongnix 8 4 Ceph版本 Ceph 14 2 21 Nautilus Cep
  • Ceph入门到精通-Macvlan网络模式

    Docker中的Macvlan网络模式提供了一种将容器直接连接到宿主机网络的方式 使得容器可以拥有自己的MAC地址和与宿主机网络的直接连接 以下是使用Macvlan网络模式的一般步骤 创建Macvlan网络 docker network c
  • Ceph 4 slow ops, oldest one blocked for 638 sec, mon.cephnode01 has slow ops

    因为实验用的是虚拟机的关系 晚上一般会挂起 第二天早上都能看到 4 slow ops oldest one blocked for 638 sec mon cephnode01 has slow ops的报错 虽然不影响使用 但看着有点难受
  • Ceph入门到精通- smartctl -l error检查硬盘指标

    smartctl l error 是一个 Linux 命令 用于查看磁盘驱动器的 SMART Self Monitoring Analysis and Reporting Technology 错误日志 SMART 是一种技术 能够监测硬盘
  • Ceph入门到精通-smartctl 查看硬盘参数

    smartctl 参数含义 Model Family Toshiba s Enterprise Capacity HDD Device Model TOSHIBA MG08ACss Serial Number sssssss LU WWN

随机推荐

  • Maven第5篇:手把手教你搭建私服

    Maven第5篇 手把手教你搭建私服 环境 maven3 6 1 开发工具idea jdk1 8 本篇内容 私服介绍 windows中安装nexus私服 linux中安装nexus私服 nexus私服中各种仓库详解 配置本地Maven从ne
  • GCP application performance management lab

    最后更新2022 03 19 这是这节最后一个实验了 加油 照例先enable service 然后下载repository 再build一下 再开一个cloud shell 点一下头部标识中的 下载另一个用于debug的repositor
  • 揭开golang中defer的坑

    揭开golang中defer的坑 defer执行顺序 后进先出 是个栈 函数在执行最后的RET返回指令前 会先检查是否存在defer语句 如果有从栈中依次取出 匿名返回值在return执行时被声明然后给他赋值 所以并不会返回在defer中修
  • arduino uno r3 机械臂

    1 硬件 arduino uno r3 改进板 sg90舵机 180度 x 4 JoyStick Shield PS2游戏摇杆扩展板 或者按键 遥杆模块 3D打印件 M3螺丝螺母 10mm 15mm 25mm 以及M2螺丝螺母 2 接线 开
  • 恒流源电路简介

    一 NPN三极管恒流源 如上图 假设D1 D2正向导通压降Vf为0 7V 那么三极管Q1基级电压Ub 2Vf 1 4V 假设三极管Q1基级和发射级之间压降Ube为0 7V 那么Q1发射级的电压Ue则为Ub Ube 1 4 0 7 0 7V
  • 02:STM32--EXTI外部中断

    目录 一 中断 1 简历 2 AFIO 3 EXTI 编辑 4 NVIC基本结构 5 使用步骤 二 中断的应用 A 对外式红外传感计数器 1 连接图 编辑 2 函数介绍 3 硬件介绍 4 计数代码 B 旋转编码计数器 1 连接图 2 硬件介
  • selenium被反爬出现空白页

    第一种方法 参考 Selenium Webdriver被检测识别出来的应对方案 第二种方法 browser execute cdp cmd Page addScriptToEvaluateOnNewDocument source Objec
  • linux gdb使用

    gdb 是由 GNU 软件系统社区提供的调试器 可以监控程序执行的每一个细节 包括变量的值 函数的调用过程 内存中数据 线程的调度等 从而发现隐藏的错误或者低效的代码作用 q cpp include
  • SQL注入简介和注入方法教学

    文章目录 SQL注入原理 SQL注入危害 SQL注入判断 SQL注入的分类 按参数类型分类 按数据库返回结果分类 按注入点位置分类 按参数类型分类 数字型 字符型 搜索型 按数据库返回结果分类 回显注入 报错注入 盲注 按注入点位置分类 G
  • DCDC升压boost电路输出电压问题

    boost输出电压 在稳定后 Vo Vin 1 d 该式子表明 输出电压唯一由占空比和输入电压决定 也就是说 在开环情况下 Vo不受负载大小的影响 但是实际体验是 Vo的稳定需要通过负反馈调节 这是什么原因造成的呢 其实造成上述现象的原因
  • 赠书啦

    随着 ChatGPT 面世并迅速风靡全球 AI 又一次进入寻常百姓家 而 ChatGPT 的一个重要支持正是自然语言处理中的大规模语言模型 GPT 由于自然语言是人类最方便 最重要的交流方式 是描述知识 传承文化的重要工具 因此对自然语言处
  • CodeSmith 使用教程(9): Progress对象

    使用Progress对象可以为CodeSmith生成代码的过程显示一个进度条 这对于生成比较费时的模板操作是非常有用的 如果你使用Visual Studio 可以在状态栏中显示一进度条 使用进度条的方法是通过CodeTemplate对象的P
  • 软件测试开发学习——第六天

    静态白盒测试 检查设计和代码 静态白盒测试 在不执行软件的条件下有条理地仔细审查软件设计 体系结构和代码 从而找出软件的缺陷的过程 有时称为结构化分析 进行白盒测试的首要原因是尽早发现软件缺陷 以找出动态黑盒测试难以发现或隔离的软件缺陷 白
  • elasticsearch7.17.3实现按terms传入内容排序,类似mysql中order by filed()的排序方式

    现有一个需求 需要在elasticsearch中实现用terms筛选内容 并且按terms传入的内容顺序排列 类型于mysql中order by filed 的排序方式 具体实现如下 目录 一 需求 二 整体思路 三 es查询语句 四 ja
  • (Hibernate学习篇)Web 项目搭建Hibernate框架

    第一步 Web项目搭建Hibnate框架 myeclipse集成hibernate框架 如图 第二 选择Hibernate版本 DB 驱动 myeclipse database Expler中创建 myeclipse 默认的版本是hiber
  • matlab中求特征值的eig函数说明

    matlab中求特征值的eig函数说明 1 基本用法 e eig A 返回一个列向量 其中包含方阵 A 的特征值 示例 V D eig A 返回特征值的对角矩阵 D 和矩阵 V 其列是对应的右特征向量 使得 AV VD 示例 V D W e
  • IPSEC VPN知识点总结

    具体的实验 使用IPSEC VPN实现隧道通信 使用IPSEC VPN在有防火墙和NAT地址转换的场景下实现隧道通信 DS VPN实验 目录 1 什么是数据认证 有什么作用 有哪些实现的技术手段 2 什么是身份认证 有什么作用 有哪些实现的
  • iOS 设置项目的version和build号

    设置项目的version和build号 Version 1 0 1 Build 1 0 1 1 Version是显示对外的版本号 itunesconect和Appstore用户可以看到 对应O C中获取version的值 NSBundle
  • Servlet 中 session 的创建、销毁及监听

    1 session 和 cookie 关于session和cookie详细的内在机制和区别 请另行查阅资料 可参看 Session机制详解 当客户端首次请求session对象时候 服务器会为其创建一个session 并计算出具有唯一性的se
  • Ceph—报错锦集(mgr2、pgs、mgr依赖缺失等)

    Ceph 手动部署Ceph报错锦集 mgr2 pgs mgr依赖缺失等 报错锦集 1 执行 do cmake sh时的报错提示 2 do cmake sh 的note 3 导入一些链接库 4 No module named ceph mgr