1. 21 12月, 2016 3 次提交
    • J
      storage: Introduce virStorageVolInfoFlags · 0c234889
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1332019
      
      This function will essentially be a wrapper to virStorageVolInfo in order
      to provide a mechanism to have the "physical" size of the volume returned
      instead of the "allocation" size. This will provide similar capabilities to
      the virDomainBlockInfo which can return both allocation and physical of a
      domain storage volume.
      
      NB: Since we're reusing the _virStorageVolInfo and not creating a new
      _virStorageVolInfoFlags structure, we'll need to generate the rpc APIs
      remoteStorageVolGetInfoFlags and remoteDispatchStorageVolGetInfoFlags
      (although both were originally created from gendispatch.pl and then
      just copied into daemon/remote.c and src/remote/remote_driver.c).
      
      The new API will allow the usage of a VIR_STORAGE_VOL_GET_PHYSICAL flag
      and will make the decision to return the physical or allocation value
      into the allocation field.
      
      In order to get that physical value, virStorageBackendUpdateVolTargetInfoFD
      adds logic to fill in physical value matching logic in qemuStorageLimitsRefresh
      used by virDomainBlockInfo when the domain is inactive.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      0c234889
    • J
      conf: Display <physical> in output of voldef · 78661cb1
      John Ferlan 提交于
      Although the virStorageBackendUpdateVolTargetInfo will update the
      target.physical value, there is no way to provide that information
      via the virStorageGetVolInfo API since it only returns the capacity
      and allocation of a volume. So as described in commit id '0282ca45',
      it should be possible to generate an output only <physical> value
      for that purpose.
      
      This patch generates the <physical> value in the volume XML output
      for the sole purpose of being able to view/see the value to allow
      someone to parse the XML in order to obtain the value.
      
      Update the documentation to describe the output only nature.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      78661cb1
    • J
      qemu: Adjust qemuDomainGetBlockInfo data for sparse backed files · b9b1aa63
      John Ferlan 提交于
      According to commit id '0282ca45' the 'physical' value should
      essentially be the last offset of the image or the host physical
      size in bytes of the image container. However, commit id '15fa84ac'
      refactored the GetBlockInfo to use the same returned data as the
      GetStatsBlock API for an active domain. For the 'entry->physical'
      that would end up being the "actual-size" as set through the
      qemuMonitorJSONBlockStatsUpdateCapacityOne (commit '7b11f5e5').
      Digging deeper into QEMU code one finds that actual_size is
      filled in using the same algorithm as GetBlockInfo has used for
      setting the 'allocation' field when the domain is inactive.
      
      The difference in values is seen primarily in sparse raw files
      and other container type files (such as qcow2), which will return
      a smaller value via the stat API for 'st_blocks'. Additionally
      for container files, the 'capacity' field (populated via the
      QEMU "virtual-size" value) may be slightly different (smaller)
      in order to accomodate the overhead for the container. For
      sparse files, the state 'st_size' field is returned.
      
      This patch thus alters the allocation and physical values for
      sparse backed storage files to be more appropriate to the API
      contract. The result for GetBlockInfo is the following:
      
       capacity: logical size in bytes of the image (how much storage
                 the guest will see)
       allocation: host storage in bytes occupied by the image (such
                   as highest allocated extent if there are no holes,
                   similar to 'du')
       physical: host physical size in bytes of the image container
                 (last offset, similar to 'ls')
      
      NB: The GetStatsBlock API allows a different contract for the
      values:
      
       "block.<num>.allocation" - offset of the highest written sector
                                  as unsigned long long.
       "block.<num>.capacity" - logical size in bytes of the block device
                                backing image as unsigned long long.
       "block.<num>.physical" - physical size in bytes of the container
                                of the backing image as unsigned long long.
      b9b1aa63
  2. 20 12月, 2016 9 次提交
  3. 19 12月, 2016 5 次提交
  4. 17 12月, 2016 1 次提交
  5. 16 12月, 2016 9 次提交
  6. 15 12月, 2016 13 次提交