本期課堂由諧雲研發工程師章一硯作為講師,進行「kubernetes存儲—glusterfs故障排查」的内容分享。
諧雲課堂 | 淺談kubernetes存儲—glusterfs故障排查
01 glusterfs部署架構
sc Storage Class
kubectl get sc | grep gluster
查詢Storage Class Name
kubectl get sc default -o yaml
查詢Storage Class Content
heketi cluster_id、server port
确認 cluster id
heketi-cli --user admin --secret admin@123 cluster list
确認 server port (一般不會錯)cat /etc/heketi/heketi.json | grep port
heketi setup glusterd
cat /etc/heketi/topology.json | grep devices -A1(指定存儲盤)
cat /etc/heketi/topology.json | grep hostnames -A 5(确認glusterfs主機的IP)
glusterd clutser alive
gluster pool list
确認各節點的glusterd程序存活
heketi reload
cat /etc/heketi/heketi.json | grep _loglevel -A 5(設定 heketi 日志等級)
journalctl -eu heketi --since now -f(監控 heketi 日志)重載 /etc/heketi/heketi.json
systemctl daemon-reload && systemctl restart heketi
重載 /etc/heketi/topology.jsonheketi-cli --user admin --secret admin@123 topology load --json=/etc/heketi/topology.json
02 狀況
狀況:pv pending
manager發請求 cat controller-manager.log | grep glusterfs
建盤請求為 POST 10.101.102.208 /volumes
heketi給響應 heketi日志
journalctl -eu heketi --since now -f
ssh 劃分 LV 失敗?heketi日志
gluster 建盤失敗?heketi-cli響應手動嘗試建盤,觀察是否成功、觀察heketi日志heketi-cli --user admin --secret admin@123 volume create --size=1 --gluster-volume-options='user.heketi.arbiter true'手動建盤失敗,某個少見的坑點heketi-cli 響應 Error: log size 4085 blocks too small, minimum size is 4608 blocks
--gluster-volume-options='user.heketi.arbiter true,user.heketi.average-file-size 1'
狀況:pv mounted but error
gluster-client 軟體依賴不全 rpm —— 補充安裝依賴
pv 容量已占滿 —— 手動擴容LV,有語雀文檔
網絡不通 —— 機率低,找網絡負責人處理
gluster 資料維護,建議更新至L3
常用的現場勘查指令
kubectl get pv pvc-40be97b1-a0d8-43b7-94c0-1001bf30c0b4 -o yaml | grep path
gluster volume status vol_1e08f914aa923bf3238eda0e8991f539
gluster volume heal vol_1e08f914aa923bf3238eda0e8991f539 info