[libvirt] [PATCH 0/5] Fix issues with activating pool with invalid source

John Ferlan jferlan at redhat.com
Mon Dec 7 20:47:53 UTC 2015


These patches resolve issues with 'FS', 'NFS', and 'LOGICAL' pools where
if the pool source device didn't match the reality what was running on
the host there were inconsistent results.

For the file pools, a pool would be declared 'active' after restart even 
though a start would fail because the check code only cared that the device 
the pool was using was mounted.  Patches 3 alters the check to not only
make sure the device is mounted, but that the source for the device matches 
the source used to start the pool.

For the logical pool, a pool could be both started and declared 'active'
on restart as long as the "pool->def->source.name" was a valid volume
group on the host even though the pool's source device(s) didn't match
the same volume group. Usually the pool build process takes care of
ensuring not only that the source device exists, but matching the
device(s) to the volume group name create (via vgcreate). The reality
is pool startup never checked that the volume group name being used
by the pool matched the reality of the volume group on the host. Patch
5 will now ensure not only startup matches the name and device list,
but that restart setting 'active' would do the same.

John Ferlan (5):
  storage: Create helper to generate FS pool source value
  storage: Refactor virStorageBackendFileSystemGetPoolSource
  storage: Check FS pool source during
    virStorageBackendFileSystemIsMounted
  storage: Create helper for virStorageBackendLogicalFindPoolSources
  storage: Add helper to compare logical pool def against pvs output

 src/storage/storage_backend_fs.c      |  73 ++++++++++++-----
 src/storage/storage_backend_logical.c | 148 +++++++++++++++++++++++++++++-----
 2 files changed, 182 insertions(+), 39 deletions(-)

-- 
2.5.0




More information about the libvir-list mailing list