Hi Cephers,
I'm using ceph0.94 and libvirt1.2.14.  Normally, I can show the storage pool is 
active using virsh pool-list. But when I refresh it, it will be inactive while 
some of rbd volumes are being deleted.

From the processing of refreshing storage pool,
storagePoolRefresh 
           |
           |---> virStorageBackendRBDRefreshPool 
                                                  |
                                                  |---> 
volStorageBackendRBDRefreshVolInfo

static int volStorageBackendRBDRefreshVolInfo(virStorageVolDefPtr vol, 
                                                                                
 virStoragePoolObjPtr pool, 
                                                                                
 virStorageBackendRBDStatePtr ptr)
{
       r = rbd_open(ptr->ioctx, vol->name, &image, NULL); 
       if (r < 0) { 
           VIR_DEBUG("failed to open RBD image '%s', check if it was still 
exist in its pool",\ 
                             vol->name); 
            virReportSystemError(-r, _("failed to open the RBD image '%s'"), 
                          vol->name); 
        
            return ret; 
       }
}

If vol->name has been deleted by rbd, libvirt won't open it when refreshing 
storage pool, it will set pool->active = 0. So the storage pool will be 
inactive, it will result in VMs can't be created any more. 

Is it a bug? Any way to avoid it?
Thanks



Ray Shi
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to