浅谈kubernetes存储—glusterfs故障排查

410 阅读2分钟

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

  • 故障点:k8s controller manager ➔ heketi

manager发请求 cat controller-manager.log | grep glusterfs

建盘请求为 POST 10.101.102.208 /volumes

heketi给响应 heketi日志 

journalctl -eu heketi --since now -f

  • 故障点:heketi ➔ gluster主机

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

  • 故障点:mount failed

gluster-client 软件依赖不全 rpm —— 补充安装依赖

pv 容量已占满 —— 手动扩容LV,有语雀文档

网络不通 —— 概率低,找网络负责人处理

  • 故障点:mounted,data error

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