[Users] [TRD] prl_disk_tool for Virtuozzo 7

Maxim Perevedentsev mperevedentsev at virtuozzo.com
Mon Nov 2 02:15:25 PST 2015


*1. Feature*
*
*prl_disk_tool for Virtuozzo 7

*2. Description
*
the package prl-disk-tool (binary /usr/sbin/prl_disk_tool)
is used to manage virtual machine and container disk images
can perform the following operations:

 1. /resize//--size ...: /Resize image (in-place)
 2. /resize --size ... --resize_partition /: Resize image and last
    partition to fit (copying)
 3. /resize --info /: Display resize estimates (current size, minimum
    size, minimum size w/o resizing last partition) - *VM only*
 4. /compact /: Compact image to occupy less space on host disk. (in-place)
 5. /compact --info /: Display compact estimates (block count,
    allocated, used) - *VM only*
 6. /merge /: Merge internal snapshots of image (in-place) - *VM only*
 7. /merge --external /: Merge external snapshot of image (in-place) -
    *VM only*
 8. /convert [--plain | --expanding] /: Convert image between plain and
    expanding modes (copying) - *VM only*

prl_disk_tool uses libguestfs, qemu-img to work.

The user has to install additional packages to use part of functionality:

prl-disk-tool resize --info (last partition: btrfs) -> btrfs-progs >= 
4.2 (already in repo)
prl-disk-tool resize {--info,--resize_partition} (last partition: ntfs) 
-> libguestfs-winsupport (already in repo)
prl-disk-tool compact {--info,} (exists partition with ntfs) -> 
libguestfs-winsupport

prl_disk_tool locks an image passed as argument by flock(). So only 
multiple reads (compact|resize --info) OR a single write (others) are 
allowed.

FS-aware functions (resize --resize_partition|--info, compact [--info]) 
work for ext2/ext3/ext4/ntfs/btrfs/xfs.

prl_disk_tool uses qemu-img to perform fs-unaware operations. It is more 
powerful than qemu-img due to fs-aware operations performed with 
libguestfs. The main purpose of prl_disk_tool is to automate some 
frequent operations.

*3. Products

*Virtuozzo 7 beta2

Packages:*
*

  * prl-disk-tool >= 7.0.5
  * libguestfs >= 1.28.1-1.18
  * btrfs-progs >= 4.2 (optional)
  * libguestfs-winsupport >= 7.2.1 (optional)
  * libguestfs-xfs (in dependencies)
  * qemu-img >= 1.5.3-86

*4. Testing

*Need to test the following cases:

  * All functions work for qcow2 images.
  * Functions not tagged as *VM only *work for ploop images.
  * FS-aware functions (resize --resize_partition|--info, compact
    [--info]) work for ext2/ext3/ext4/ntfs/btrfs/xfs.

*5. Known issues
*

  * /resize --resize_partition /should be implemented in-place (due to
    limitations of qcow2, only for expanding)
  * all modifying operations have --dry-run option to not modify an
    image. The image is still opened for write, and exclusive lock is
    acquired.
  * only listed filesystems are supported
  * virt-resize, used by /resize --resize_partition, /leaves an empty
    block of ~3M at the end of image.
  * /convert --plain /fallocate()s space inaccurately (due to
    unawareness of qcow2 internal structures).
  * /resize [expand] /after/convert --plain /does not force allocation
    of new (bigger) chunk of space (we do not keep image type
    (plain/expanding) for now - so it is impossible to determine whether
    we should allocate space outside of /convert /operation)

-- 
С уважением, Максим Переведенцев
Your sincerely, Maxim Perevedentsev




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvz.org/pipermail/users/attachments/20151102/a697a226/attachment.html>


More information about the Users mailing list