ceph pg相关运维脚本工具(一)

本文介绍了一套用于Ceph集群调优和维护的脚本集合,包括共同PG检测工具,用于预估设备替换对PG的影响,以及硬盘温度和告警级别的查询脚本,帮助快速检测和定位潜在的硬件问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

  在生产环境中,经常需要对ceph集群进行一些调优,维护,设备替换等操作,为了简化和方便操作,陆续写过一些简单的小脚本工具,现整理出来。

共同PG检测工具
使用场景

  在一个双副本环境中,已经有部分osd离线(down and in)的状态,此时集群部分pg处于单副本状态,此时有另外一些osd设备(硬盘原因,机器原因)需要替换或者离线,预估受影响的pg;或者想查询出某些osd共同承载了哪些pg。

脚本

  在脚本所在目录要查询的osd编号写入warnosdlist中,执行脚本,返回对应的pg编号。

root@mon0:/opt/pgtools# cat warnosdlist
10
15
29
40
66
78
root@mon0:/opt/pgtools# cat check_warnosd_pg 
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import re,os
osd=[]

os.system("""ceph pg dump|grep 2019|grep "]" > pgmap""")
with open ('warnosdlist') as f:
    for i in f:
        osd.append(i.strip())

with open ('pgmap') as pg:
    for p in pg:
        info=p.strip()
        p1="\d+,\d+"
        pa=re.compile(p1)
        oid=pa.findall(info)[0]
        q="\d+"
        qa=re.compile(q)
        s=qa.findall(oid)
        if s[0] in osd and s[1] in osd:
            print p
硬盘温度/告警级别查询
原理

  本质是利用smartctl工具检测硬盘相关的几个参数,直接将命令粘贴到交互界面执行即可。

温度异常检测
root@mon0:~# cat hotdisk.sh 
#!/bin/bash
lsblk | awk '/disk/{print "/dev/"$1}' | while read dev; do echo -n "$dev : "; smartctl -A $dev | grep Tem|grep 190;echo "";done
告警级别
root@mon0:~# cat hddcheck.sh 
#!/bin/bash
lsblk | awk '/disk/{print "/dev/"$1}' | while read dev; do echo -n "$dev : "; smartctl -A $dev | awk '/^ *(5|187|188|197|198)/{if($NF > 0) count++} END {if(count>=4) print "err"; else if(count>=3) print "warning";  else if(count>0) print "some wrong"; else print "ok"}'; done
smartctl相关参数

  网上有更详细的说明信息,感兴趣的可以看一下。根据相关的资料和实际经验,将5,187,188,197,198作为关键检测项,其余的作为参考,作为硬盘的损坏程度。

属性ID属性名称属性含义
1Raw Read Error Rate底层数据读取错误率
2Throughput Performance磁盘读写通量性能
3Spin Up Time主轴起旋时间
4Start/Stop Count启停次数
5Reallocated_Sector_Ct重映射扇区数
10Spin_Retry_Count主轴起旋重试次数
11Calibration_Retry_Count磁盘校准重试次数
12Power_Cycle_Count磁盘通电次数
187Reported Uncorrectable Errors无法校正的错误
188Command Timeout命令超时
194Temperature_Celsius温度
197Current Pending Sector Count当前待映射扇区计数
198Offline Uncorrectable Sector Count脱机无法校正的扇区计数
199UDMA_CRC_Error_Count奇偶校验错误率
200Write_Error_Rate写错误率
241Total_LBAs_Written磁盘自出厂总共写入的的数据,单位是LBAS=512Byte
242Total_LBAs_Read磁盘自出厂总共读取的数据,单位是LBAS=512Byte

(未完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值