[libvirt] [PATCH v6 0/7] storage:dir: ploop volumes support

Olga Krishtal okrishtal at virtuozzo.com
Mon Apr 11 16:16:18 UTC 2016




This series of patches introduces the support of ploop volumes
in storage pools (dir, fs, etc).
Ploop volume is a disk loopback block device consists of root.hds
(it is the image file) and DiskDescriptor.xml:
https://openvz.org/Ploop/format. Due to this fact it can't be treated
as file or any other volume type, moreover, in order to successfully
manipulate with such volume, ploop tools should be installed.

All callbacks except  the wipeVol are supported. 
First patch introduces ploop volume type. This is a directory
with two files inside. The name of the directory is the name of the volume.
Patch 2 deals with creating an empty volume and cloning the existing one.
Clone is done via simle cp operation. If any of this operation fails -
directory will be deleted.
Patch 3 deletes recursively ploop directory. 
Patch 4 uses ploop tool to resize volume.
Patch 6 adapts all refreshing functions to work with ploop. To get
information the directory is checked. The volume is treated as the
ploops one only if it contains ploop files. Every time the pool
is refreshed DiskDescriptor.xml is restored. This is necessary, because
the content of the volume may have changed.
Upload and download (patch 7) can't be done if the volume contains snapshots.

v6: 
- There is no DiskDescriptor.xml restoring during the refresh pool operation.
This operation is moved to storage driver.
- fixed issue with regenerating xml for ploop volume with the snapshots.

v5:
- added ploop volume type
- there is no change in opening volume functions. Now reopening takes place is
the volume is ploops one.
- restore DiskDescriptor.xml every refresh pool
- all information, except format is taken from header
- forbidden upload and download ops for volume with snapshots
- there is no separate function for deleting the volume
- fixed identation and leaks
v4:
- fixed identation issues.
- in case of .uploadVol, DiskDescriptor.xml is restored.
- added check of ploops'accessibility

v3:
- no VIR_STORAGE_VOL_PLOOP type any more
- adapted all patches according to previous change
- fixed comments 

v2:
- fixed memory leak
- chenged the return value of all helper functions to 0/-1.
Now check for success is smth like that: vir****Ploop() < 0
- fixed some identation issues.




More information about the libvir-list mailing list