首页 > 其他分享 >CEPH 常用命令

CEPH 常用命令

时间:2023-04-25 13:12:37浏览次数:36  
标签:ceph scrub -- CEPH pg 常用命令 osd pool

CEPH 常用命令

ceph health detail 查看运行状况详细信息

ceph osd dump 查看osd映射信息

ceph quorum_status --format json-pretty 查看Mon_quorum状态

ceph osd pool ls detail 查看 pool 类型

ceph osd pool ls 查看所有的储存池

rados df 查看pool详细信息

ceph osd pool create <pg数> 创建一个存储池

ceph osd pool get pg_num 查看某个储存池的pg数

ceph osd pool set pg_num <pg_num>

ceph osd pool get pgp_num 查看某个储存池的pgp数

ceph osd pool set pgp_num <pgp_num>

ceph osd pool application enable 指定pool application

ceph-volume lvm list // 与磁盘对应关系 cat /var/lib/ceph/disk.json

rados listomapvals rbd_directory -p volumes | grep -5 289ed8c8e8256 // 查看这个对象里面是哪个虚拟机

ceph tell osd.$i injectargs "--osd_recovery_max_active 3" // 限定 osd 最多同时有多少 pg 做 recover
ceph tell osd.$i injectargs "--osd_recovery_max_single_start 1" // 限定每个 pg 可以启动 recover 操作的最大数
ceph tell osd.$i injectargs "--osd_max_backfills 1" // 限定 osd 允许的最大 backfills 数

ceph daemon osd.116 config show | grep osd_max_backfills // 查看 osd 当前限制的值

// 任何 pg 操作都要停对应 osd 服务

strace -e trace=file /usr/bin/ceph-osd -f --cluster ceph --id 211 --setuser ceph --setgroup ceph 2> pg_error.txt // 手动拉起 osd 并查看是否有 pg 缺失

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-4/ --pgid 4.33 --op remove // 删除 pg

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-4/ --pgid 4.33 --op import --file /root/4.33 // 导入 pg, 导入前需要先删除pg, 导入后记得修改权限 chown ceph:ceph -R /var/lib/ceph/osd/ceph-4/current/4.33_*

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-4/ --pgid 4.33 --op mark-complete // 强制标记 peering 完成&强制让其成为主

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-8/ --type bluestore --pgid 17.es1 --op mark-complete

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-69 --pgid 2.218 --op list // 查询有多少对象

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-2/ --pgid 4.33 --op export --file /root/4.33 // 导出 pg

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-80/ --pgid 2.545 --op export-remove --file /root/2.545.bak // 删除并导出

ceph osd primary-temp 2.6f 5 // 强制 peering

for i in {cat pg_4.txt};do ceph pg $i query|jq .state;done // 查看 单个 pg 状态

ceph pg dump_stuck |grep -v active

ceph osd lost 5 // 将某个 pg 移出集群, 让其他 pg 作为主 pg, 可能会丢失一些数据

查看存储池状态
ceph osd pool stats ssd
查看归置组不响应的pg
ceph pg dump_stuck stale
ceph pg dump_stuck inactive
ceph pg dump_stuck unclean

ceph osd pool rm 删除储存池。注:ceph出于数据安全考虑,rm时需要修改配置文件。

vim ceph.conf

[mon]
mon allow pool delete = true
重启 systemctl restart ceph-mon.target
ceph osd pool rm <pool name> <pool name> --yes-i-really-really-mean-it

“ceph balancer mode”默认为“none”,用ceph balancer mode upmap命令调整为“upmap”。“ceph balancer”功能默认不打开,ceph balancer on/off用来打开/关闭“ceph balancer”功能。

ceph balancer mode upmap // 打开 balancer

自动 scrub

[osd]
; default is 0.5
; scrubbing is allowed when loadavg is lower
; than this value
osd_scrub_load_threshold = 5

; default is 7 days
; increase to 28 days
osd_scrub_max_interval = 2419200

; default is 1 day
; increase to 14 days
osd_scrub_min_interval = 1209600

; default is 7 days
osd_deep_scrub_interval = 2419200

; default is 0
osd_scrub_sleep = 0.1

ceph daemon osd.0 config diff // 查询改变后和默认值

osd scrub begin hour = 22 // 默认 0
osd scrub end hour = 6 // 默认 24


1637657515778

ops are blocked 出现只有一个 osd 的情况下,可以尝试最小副本数设置为 1

ceph osd pool set volumes min_size 1
ceph osd pool set vms min_size 1 

ceph 集群异常断电 osd 拉不起来,处理思路

down+peering

1、ceph -s 查看是否有 down+peering 状态的 pg

2、定位是哪个 pgs 有问题 ceph pg dump |grep down+peering

3、查看 pg 所在的 主osd ceph pg XXX query |less

4、到 osd 所在节点查看哪些 pg 缺失,

strace -e trace=file /usr/bin/ceph-osd -f --cluster ceph --id 211 --setuser ceph --setgroup ceph 2> osd.211.log

​ 4.1、根据导出来的文档查看 pg 状态,如果不是 actvie+xxx,就备份,然后一起全部删除。

​ 4.2、如果有 pg 缺失,到其他 osd 上查看是否存在,路径 du -sh /var/lib/ceph/osd-X/cuxxxx, 可以将其他所在 osd 的副本导入缺失的 osd 上

​ 4.3、或者将缺失的 pg 删除 (至少有一个 osd 存在 pgs 才可以删)

incomplete

1、查看哪个 pg 不完整

ceph pg dump_stuck |grep incomplete 

2、找到一个最权威的 pg,不知道的话可以按照最大的来

du -sh /var/lib/ceph/osd-X/cuxxxx

3、停 osd 服务,导出 pg

4、传到对应的 osd 节点

5、登陆对应的 osd 节点 导入

6、 强制标记 peering 完成&强制让其成为主,操作的时候 osd 服务需要停止状态

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-8/ --type bluestore --pgid 17.es1 --op mark-complete   // --type bluestore 不加这个参数,默认是这个,根据 ceph 类型来  --type filestore --type bluestore

7、启服务

48/2881001 unfound (0.002%)

优先使用 ceph pg xxx list_missing 查看哪个对象丢失,ceph-objectstore-tool 工具导数据,实在不行再用这个

1、查看哪些 pg unfound

ceph health detail | grep unfound

2、尝试回退是否成功 (主存在数据才能成功)

ceph pg {pgid} mark_unfound_lost revert

3、如果不能成功就删除(这个对象就丢了)

ceph pg {pgid} mark_unfound_lost delete

批量操作

ceph health detail | grep unfound |egrep -v 'ERR|\/' | awk '{print $2}' | xargs -n1 -i ceph pg {} mark_unfound_lost revert

ceph health detail | grep unfound |egrep -v 'ERR|\/' | awk '{print $2}' | xargs -n1 -i ceph pg {} mark_unfound_lost delete

pg没有及时清理

1639041855765

解决办法

有2个解决方法:
\1. 关闭告警,对磁盘静默检查功能没有影响
在线修改mgr配置

ceph config set mgr mon_warn_pg_not_deep_scrubbed_ratio 0
ceph config set mgr mon_warn_pg_not_scrubbed_ratio 0

或者修改配置文件并重启mgr进程,二选一

vi /etc/ceph/ceph.conf
[global]
mon warn pg not deep scrubbed ratio = 0
mon warn pg_not scrubbed ratio = 0

\2. 统计计算每个周期可以完成scrub/deep scrub的pg个数,预估比例值动态进行调整,集群写入数据量变多也会导致scrub周期被拉长,可能需要多次进行调整或者直接给出一个比较长的周期例如1个月或更长时间执行一次完整检查
mon_warn_pg_not_deep_scrubbed_ratio=0.75(超出scrub时间告警比例)
osd_scrub_min_interval = 86400(当系统负载较低时开始scrub周期默认1天)
osd_scrub_max_interval = 604800(无视系统负载开始scrub周期默认7天)
osd_scrub_load_threshold = 0.5 (存储节点CPU平均负载阈值大于0.5不执行scrub)


修改这个配置项,再重启osd,会自动加加入集群
vi /etc/ceph/ceph.conf
osd crush update on start = true

标签:ceph,scrub,--,CEPH,pg,常用命令,osd,pool
From: https://www.cnblogs.com/xuning-xuning/p/17352290.html

相关文章

  • Ceph读写流程
    Ceph读写流程概述Ceph的读写流程是由OSD和PG共同完成的,对于OSD而言,OSD的主要任务是进行消息的接收分发,最终将消息存到队列op_wq中。接下来交由ShardedThreadPool线程池中的线程来处理读写,线程会将请求从op_wq中取出,做如下操作。在ReplicatedPG类中进行一系列的合法性检查。对于读......
  • RHEL8常用命令-Linux就该这么学2
       首先介绍系统内核和Shell终端的关系与作用,然后介绍Bash解释器的4大优势并学习Linux命令的执行方法。经验丰富的运维人员能够通过合理地组合命令,来更精准地满足工作需求,还可以尽可能地降低系统资源消耗。   本章选出常用的数十个Linux命令,它们与系统工作......
  • Virsh常用命令-v4-20210308_123613
    Virsh常用命令企业云平台产品中心共享知识库Exportedon03/08/2021TableofContentsVirsh是基于libvirt写的一个命令行工具,用来通过Virsh来对虚拟机的生命周期进行管理,以下是常用的一些Virsh命令:1、查看在运行的虚拟机virshlist2、查看创建的所有虚拟机virshlist--all3、启......
  • Ceph性能测试总结
    Ceph性能测试总结测试目的:通过对ceph集群块接口常见性能指标进行简单测试,达到以下几个目的:了解当前集群配置方案对硬件性能的利用情况;验证集群性能计算公式的正确性;识别集群性能瓶颈点;为后续性能优化提供部分参考;测试指标:块接口IOPS,带宽,时延硬盘性能一般使用以下几个......
  • ceph满盘导致业务停止后的终极补救措施
    ceph满盘导致业务停止后的终极补救措施现象:磁盘满,osd异常此时ceph集群停止业务,且不能执行rbdrmglance/*****命令删除任何文件。解决办法:方法一:调高ceph的满盘比例,比如原值0.95为满盘,现在修改为0.98修改所有ceph节点/etc/ceph/ceph.conf添加monosdfullratio=0.98monosd......
  • linux 常用命令
    kali的常用命令1.常用命令passwd修改密码passwdroot修改root用户密码date显示系统日期sudo后面加命令就可以调用管理权限apt-getupdate更新软件列表这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,......
  • docker 常用命令
    docker常用命令dockerps 查看当前运行中的容器dockerimages 查看镜像列表dockerrmcontainer-id 删除指定id的容器dockerstop/startcontainer-id 停止/启动指定id的容器dockerrmiimage-id 删除指定id的镜像dockervolumels 查看volume列表dockernetwork......
  • Ceph_osd_应急权重调整方案
    目录1.问题背景2.操作影响3.适用版本4.操作范围5.操作周期6.操作步骤6.1查看当前osd数据状态6.2计算需要调整的osd权重6.3调整权重7.回退步骤1.问题背景集群pg数量规划不合理,导致在集群存入大量的数据之后,osd上的数据分布不均衡,部分osd的存储百分比接近或超......
  • 详解Python当中的pip常用命令
    相信对于大多数熟悉Python的人来说,一定都听说并且使用过pip这个工具,但是对它的了解可能还不一定是非常的透彻,今天小编就来为大家介绍10个使用pip的小技巧,相信对大家以后管理和使用Python当中的标准库会有帮助。安装当然在Python3.4版本之后以及Python2.7.9版本之后,官网的安装......
  • ceph慢请求处理
    故障现象虚机重启后黑屏,无任何报错提示故障处理1、查询ceph状态发现异常并且有慢请求2、查看日志发现有大量慢请求3、查询集群延迟最高的osd,发现为28、57、34、39、494、查询osd的信息,发现主机都是mon03节点5、集群打标签6、将慢请求的osd停止服务7、集群停止慢请求8、虚机重启后......