4
edits
Changes
Created page with "'''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 contain..."
'''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 tolimitations 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)
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 tolimitations 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)