一、場景說明:
Ceph的運維過程中,管理者有時候會遇到Ceph的RBD裝置,通過映射的方式給用戶端進行使用,但是過段時間後,在服務端,你想知道到底某個pool的img被哪個用戶端占用着。另外一種情況,比如想删除某個image,但那個image可能被用戶端占用,如果該用戶端出現了異常那麼就會出現無法删除該image的情況。
二、分析過程:
Ceph中有一個watch/notify的機制(粒度是object),它的主要作用是在不同用戶端之間進行消息通知,使得各用戶端之間的狀态能夠保持一緻,而每一個進行watch的用戶端,對于ceph叢集來說都是一個watcher。
<code># rbd info openshift01/openshift01-img01</code>
<code>rbd image </code><code>'openshift01-img01'</code><code>:</code>
<code> </code><code>size 102400 MB </code><code>in</code> <code>25600 objects</code>
<code> </code><code>order 22 (4096 kB objects)</code>
<code> </code><code>block_name_prefix: rbd_data.957f238e1f29</code>
<code> </code><code>format</code><code>: 2</code>
<code> </code><code>features: layering</code>
<code> </code><code>flags:</code>
說明:openshift01為pool的名稱,openshift01-img01為img的名稱。
<code># rados -p openshift01 listwatchers rbd_header.957f238e1f29</code>
<code>watcher=172.16.0.48:0</code><code>/54296760</code> <code>client.51052 cookie=1</code>
說明:由上面輸出結果可以知道,172.16.0.48為被映射的用戶端。
本文轉自 冰凍vs西瓜 51CTO部落格,原文連結:http://blog.51cto.com/molewan/2069609,如需轉載請自行聯系原作者