mirror of https://github.com/apache/cloudstack.git
kvm: Add better logging when fetching a volume from libvirt
Clearly show if a volume is found and if not, that the pool is being refreshed and the fetch is tried again. Due to my commitb53a9dcc9fthe chance of a volume not being found is slightly bigger, but the performance gain is enormous on larger deployments. This is why we clearly have to log that we are refreshing the pool information when a volume is not found. It could be that a volume is created on host A and a few seconds later host B tries to access the volume. In that case host B's libvirt doesn't know about the volume yet and has to refresh the pool before it does. (cherry picked from commit4ee82f1f40)
This commit is contained in:
parent
da73d735b2
commit
3b65a5928b
|
|
@ -94,21 +94,30 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
|
|||
try {
|
||||
vol = pool.storageVolLookupByName(volName);
|
||||
} catch (LibvirtException e) {
|
||||
s_logger.debug("Can't find volume: " + e.toString());
|
||||
s_logger.debug("Could not find volume " + volName + ": " + e.getMessage());
|
||||
}
|
||||
|
||||
/**
|
||||
* The volume was not found in the storage pool
|
||||
* This can happen when a volume has just been created on a different host and
|
||||
* since then the libvirt storage pool has not been refreshed.
|
||||
*/
|
||||
if (vol == null) {
|
||||
try {
|
||||
s_logger.debug("Refreshing storage pool " + pool.getName());
|
||||
refreshPool(pool);
|
||||
} catch (LibvirtException e) {
|
||||
s_logger.debug("failed to refresh pool: " + e.toString());
|
||||
s_logger.debug("Failed to refresh storage pool: " + e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
vol = pool.storageVolLookupByName(volName);
|
||||
s_logger.debug("Found volume " + volName + " in storage pool " + pool.getName() + " after refreshing the pool");
|
||||
} catch (LibvirtException e) {
|
||||
throw new CloudRuntimeException(e.toString());
|
||||
throw new CloudRuntimeException("Could not find volume " + volName + ": " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
return vol;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue