ceph pg相關運維指令碼工具(一)

2021-09-29 08:54:02 字數 2477 閱讀 3600

在生產環境中,經常需要對ceph集群進行一些調優,維護,裝置替換等操作,為了簡化和方便操作,陸續寫過一些簡單的小指令碼工具,現整理出來。

共同pg檢測工具

使用場景

在乙個雙副本環境中,已經有部分osd離線(down and in)的狀態,此時集群部分pg處於單副本狀態,此時有另外一些osd裝置(硬碟原因,機器原因)需要替換或者離線,預估受影響的pg;或者想查詢出某些osd共同承載了哪些pg。

指令碼在指令碼所在目錄要查詢的osd編號寫入warnosdlist中,執行指令碼,返回對應的pg編號。

root@mon0:/opt/pgtools# cat warnosdlist

1015

2940

6678

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:

))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/'

|while

read dev;

doecho -n "$dev : "

; smartctl -a $dev

|grep tem|

grep 190;

echo"";

done

告警級別
root@mon0:~# cat hddcheck.sh 

#!/bin/bash

lsblk |

awk'/disk/'

|while

read dev;

doecho -n "$dev : "

; smartctl -a $dev

|awk

'/^ *(5|187|188|197|198)/ end '

;done

smartctl相關引數

屬性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

溫度197

current pending sector count

當前待對映扇區計數

198offline uncorrectable sector count

離線無法校正的扇區計數

199udma_crc_error_count

奇偶校驗錯誤率

200write_error_rate

寫錯誤率

241total_lbas_written

磁碟自出廠總共寫入的的資料,單位是lbas=512byte

242total_lbas_read

磁碟自出廠總共讀取的資料,單位是lbas=512byte

(未完)

Linux運維指令碼

20200911 這裡記錄一些平時使用的指令碼,免密登陸什麼的。bin bash f root ssh id rsa.pub ssh keygen t rsa p f root ssh id rsa dev null expect c spawn ssh copy id i root ssh id ...

Cassandra運維工具

轉 一.nodetool命令 cassandranodetool是乙個檢視集群資訊的命令,可以檢視集群統計資訊,節點資訊,資料環資訊,增刪節點,重新整理memtable資料到sstable,合併sstable等 1.nodetool version 用於顯示cassandra當前版本資訊 2.nod...

運維常用shell指令碼

開頭加直譯器 bin bash 語法縮排,開頭用四個空格 多加注釋說明。命名規則 變數名大寫 區域性變數小寫 函式名小寫 名字能夠體現實際作用。預設變數是全域性的,在函式中變數local指定為區域性變數,避免汙染其他作用域。指令碼寫完後一定要先除錯再線上使用。echo random md5sum c...