1. 在使用librbd的過程當中,發現一個若是ceph集羣異常librbd函數不返回的問題,對librbd的源碼進行跟蹤,發現了rados接口中的rados_mon_op_timeout(how many seconds to wait for a response from the monitor before returning an error from a rados operation. 0 means no limit.)和rados_osd_op_timeout(how many seconds to wait for a response from osds before returning an error from a rados operation. 0 means no limit.)兩個參數,兩個參數默認爲0。因而乎,在使用rados接口的時候,設置參數rados.Rados.conf_set("rados_osd_op_timeout", 10),接口後續就能夠拋Timeout異常,就能夠正常處理了。若是但願整個集羣生效就把參數寫在ceph.conf裏。函數
2. 想起來再說接口