在生產環境中,經常需要對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...