ceph pg相關運維腳本工具(一)

概述

  在生產環境中,經常需要對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 屬性名稱 屬性含義
1 Raw Read Error Rate 底層數據讀取錯誤率
2 Throughput Performance 磁盤讀寫通量性能
3 Spin Up Time 主軸起旋時間
4 Start/Stop Count 啓停次數
5 Reallocated_Sector_Ct 重映射扇區數
10 Spin_Retry_Count 主軸起旋重試次數
11 Calibration_Retry_Count 磁盤校準重試次數
12 Power_Cycle_Count 磁盤通電次數
187 Reported Uncorrectable Errors 無法校正的錯誤
188 Command Timeout 命令超時
194 Temperature_Celsius 溫度
197 Current Pending Sector Count 當前待映射扇區計數
198 Offline Uncorrectable Sector Count 脫機無法校正的扇區計數
199 UDMA_CRC_Error_Count 奇偶校驗錯誤率
200 Write_Error_Rate 寫錯誤率
241 Total_LBAs_Written 磁盤自出廠總共寫入的的數據,單位是LBAS=512Byte
242 Total_LBAs_Read 磁盤自出廠總共讀取的數據,單位是LBAS=512Byte

(未完)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章