本文講述了ceph-fuse客戶端問題排查基本流程:)ios
ceph -s
是否有osd掛掉,是否有pg非activebash
ps -ef |grep ceph-fuse
ceph-fuse進程不存在
需查看日誌看什麼緣由,log文件默認爲 /var/log/ceph/ceph-client.${user_id}.log網絡
ceph-fuse進程存在,可是訪問卡
ceph-fuse客戶端的unix socket文件爲:session
/var/run/ceph/ceph-client.${user_id}.asok
其中${user_id} 通常爲admin,能夠經過查看ceph-fuse進程獲取,或經過查看ceph.conf得到socket
1. 檢查下該客戶端與mds的鏈接session是否正常:spa
ceph daemon /var/run/ceph/ceph-client.${user_id}.asok mds_sessions
若是mds session 的state不是open,經過netstat -anp 查看下客戶端到mds的網絡鏈接是否存在,狀態是否正常,並根據狀況決定是否往網絡方向進行進一步檢查unix
2. 訪問卡住,說明客戶端有正在進行中的請求,該請求多是發往mds,也有多是發往osd,經過以下命令查看:日誌
ceph daemon /var/run/ceph/ceph-client.${id}.asok mds_requests
ceph daemon /var/run/ceph/ceph-client.${id}.asok objecter_requests
ceph daemon /var/run/ceph/ceph-mds.${id}.asok ops
經過該命令能夠查看卡住的op卡住哪一個階段,好比 [ initiated ]、[ failed to wrlock, waiting ]、[ failed to xlock, waiting ]等階段code
ceph daemon /var/run/ceph/ceph-osd.${osd_id}.asok dump_ops_in_flight
經過該命令能夠查看卡住的op卡住哪一個階段,能夠經過iostat查看該osd的磁盤的ioutil是否高,來肯定磁盤是否繁忙進程
專一筆者公衆號,閱讀更多幹貨文章:)