2,253
edits
Changes
Automated import of articles
== NAME ==
<p style="margin-left:11%; margin-top: 1em">ploop −
ploop device management utility</p>
== SYNOPSYS ==
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p style="margin-top: 1em"><b>ploop init</b></p></td>
<td width="72%">
<p style="margin-top: 1em"><b>-s</b> <i>size</i>
[<b>-f </b><i>format</i>]
[<b>-v </b><i>version</i>]
[<b>-t </b><i>fstype</i>]
[<b>-b </b><i>blocksize</i>]
[<b>-B </b><i>fsblocksize</i>] <i>delta_file</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p style="margin-top: 1em"><b>ploop mount</b></p></td>
<td width="72%">
<p style="margin-top: 1em">[<b>-r</b>] [<b>-F</b>]
[<b>-f </b><i>format</i>]
[<b>-b </b><i>blocksize</i>]
[<b>-d </b><i>device</i>]
[<b>-m </b><i>mount_point</i>]
[<b>-o </b><i>mount_options</i>]
[<b>-t </b><i>fstype</i>] <i>base_delta</i> [<i>...
top_delta</i>]</p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p style="margin-top: 1em"><b>ploop mount</b></p></td>
<td width="72%">
<p style="margin-top: 1em">[<b>-r</b>] [<b>-F</b>]
[<b>-d </b><i>device</i>]
[<b>-m </b><i>mount_point</i>]
[<b>-o </b><i>mount_options</i>]
[<b>-t </b><i>fstype</i>] [<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td></tr>
</table>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p style="margin-top: 1em"><b>ploop umount</b></p></td>
<td width="69%">
<p style="margin-top: 1em">{ <b>-d</b> <i>device</i> |
<b>-m</b> <i>mount_point</i> | <i>DiskDescriptor.xml</i> |
<i>image_file</i> }</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p style="margin-top: 1em"><b>ploop resize</b></p></td>
<td width="69%">
<p style="margin-top: 1em"><b>-s</b> <i>size
DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p style="margin-top: 1em"><b>ploop convert</b></p></td>
<td width="69%">
<p style="margin-top: 1em">{ <b>-f</b> <i>format</i> |
<b>-v</b> <i>version</i> } <i>DiskDescriptor.xml</i></p></td></tr>
</table>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<p style="margin-top: 1em"><b>ploop snapshot</b></p><td width="34%"></td>
<td width="43%">
<p style="margin-top: 1em">[<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td>
<td width="23%">
</td></tr>
</table>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-merge</b></p> </td>
<td width="43%">
<p style="margin-top: 1em">[<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td>
<td width="14%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-switch</b></p> </td>
<td width="43%">
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td>
<td width="14%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-delete</b></p> </td>
<td width="43%">
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td>
<td width="14%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-list</b></p> </td>
<td width="43%"></td>
<td width="14%">
</td></tr>
</table>
<p style="margin-left:11%;">[<b>-H</b>]
[<b>-u </b><i>uuid</i>]
[<b>-o </b><i>field</i>[,<i>field</i>...]]
<i>DiskDescriptor.xml</i></p>
== DESCRIPTION ==
<p style="margin-left:11%; margin-top: 1em">ploop is a
kernel block device, similar to the traditional loop device
(which is controlled by <b>losetup</b>(8)) but with more
features added, such as dynamic disk space allocation,
stackable images, online resize, snapshotting, and live
migration helper (write tracker). This manual page describes
the ploop user space tool which is used to perform various
operations related to ploop devices and images.</p>
<p style="margin-left:11%; margin-top: 1em">Note that this
ploop tool is not aware of container entities. Commands that
have <b>DiskDescriptor.xml</b> as an argument work with an
XML file that contains meta-information about a particular
ploop device configuration: device characteristics (block
size etc.), storage information (names and formats of images
used for the device), snapshot information, etc. If a
particular command can be used both with and without the
DiskDescriptor.xml argument, it is strongly advised to use
the form with DiskDescriptor.xml.</p>
=== BASIC COMMANDS ===
==== init ====
<p style="margin-left:11%; margin-top: 1em">Create and
initalize a ploop image file and a corresponding
<b>DiskDescriptor.xml</b> file.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p style="margin-top: 1em"><b>ploop init</b></p></td>
<td width="2%"></td>
<td width="72%">
<p style="margin-top: 1em"><b>-s</b> <i>size</i>
[<b>-f </b><i>format</i>]
[<b>-v </b><i>version</i>]
[<b>-t </b><i>fstype</i>]
[<b>-b </b><i>blocksize</i>]
[<b>-B </b><i>fsblocksize</i>] <i>delta_file</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><b>-s</b> <i>size</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>Image size. If no suffix is specified, the <i>size</i>
is in sector units (one sector is 512 bytes). One can
specify optional <b>K</b>, <b>M</b>, <b>G</b> or <b>T</b>
suffix to set the size in kilo-, mega-, giga- or
terabytes.</p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><b>-f</b> <i>format</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>Image format. See <b>IMAGE FORMATS</b> below.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><b>-v</b> <i>version</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>Image version, can be <b>1</b> or <b>2</b>. Default is
<b>2</b>, if supported by the kernel.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><b>-t</b> <i>fstype</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>File system type. If this parameter is specified, a
partition, a filesystem, and a balloon file will be created
inside the image. Currently supported types are <b>ext3</b>
and <b>ext4</b>. Using <b>ext3</b> is not recommended.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-b</b> <i>blocksize</i></p>
<p style="margin-left:28%;">Device block size, in 512 byte
sectors. Default block size is 2048 sectors, or 1
megabyte.</p>
<p style="margin-left:11%;"><b>-B</b>
<i>fsblocksize</i></p>
<p style="margin-left:28%;">Filesystem block size, in
bytes. Default is 4096 bytes.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><i>delta_file</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>Path to a non-existent image file to be created.</p></td></tr>
</table>
==== mount ====
<p style="margin-left:11%; margin-top: 1em">Assemble a
ploop device from one or more delta images, start it, and
optionally mount the file system residing on the device.</p>
<p style="margin-left:11%; margin-top: 1em">Two forms of
this command are provided. The first one accepts a list of
delta images to be used for assembling the ploop device,
while the second one is using information from a
DiskDescriptor.xml file. Please note that not all mount
options are applicable to both forms.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p style="margin-top: 1em"><b>ploop mount</b></p></td>
<td width="1%"></td>
<td width="71%">
<p style="margin-top: 1em">[<b>-r</b>] [<b>-F</b>]
[<b>-f </b><i>format</i>]
[<b>-b </b><i>blocksize</i>]
[<b>-d </b><i>device</i>]
[<b>-m </b><i>mount_point</i>]
[<b>-o </b><i>mount_options</i>]
[<b>-t </b><i>fstype</i>] <i>base_delta</i> [<i>...
top_delta</i>]</p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p><b>ploop mount</b></p></td>
<td width="1%"></td>
<td width="71%">
<p>[<b>-r</b>] [<b>-F</b>] [<b>-d </b><i>device</i>]
[<b>-m </b><i>mount_point</i>]
[<b>-o </b><i>mount_options</i>]
[<b>-t </b><i>fstype</i>] [<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p><b>-r</b></p></td>
<td width="1%"></td>
<td width="71%">
<p>Mount as read-only.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p><b>-F</b></p></td>
<td width="1%"></td>
<td width="71%">
<p>Run <b>fsck</b>(8) on inner filesystem before mounting
it. This option is ignored if <b>-m</b> is not used.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p><b>-f</b> <i>format</i></p></td>
<td width="1%"></td>
<td width="71%">
<p>Image format. Ignored if DiskDescriptor.xml is
specified. Otherwise, one need to specify <b>raw</b> as an
argument, if raw image format is used.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-b</b> <i>blocksize</i></p>
<p style="margin-left:29%;">Device block size, in 512 byte
sectors. Ignored if DiskDescriptor.xml is specified.
Otherwise, required for raw images.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="14%">
<p><b>-d</b> <i>device</i></p></td>
<td width="4%"></td>
<td width="71%">
<p>Ploop device to use, e.g.i, <b>/dev/ploop0</b>. If not
specified, the first unused ploop device will be used.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-m</b>
<i>mount_point</i></p>
<p style="margin-left:29%;">If this option is specified,
ploop goes on to mount the file system to directory denoted
by <i>mount_point</i>.</p>
<p style="margin-left:11%;"><b>-o</b>
<i>mount_options</i></p>
<p style="margin-left:29%;">Any additional mount options,
comma-separated. Used if <b>-m</b> is set.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="14%">
<p><b>-t</b> <i>fstype</i></p></td>
<td width="4%"></td>
<td width="71%">
<p>File system type used for mounting. Used if <b>-m</b> is
set. The default is <b>ext4</b>.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-u</b> <i>uuid</i> |
<b>base</b></p>
<p style="margin-left:29%;">GUID of the image from the
DiskDescriptor.xml to be mounted. By default, top GUID is
used. The special ’<b>base</b>’ value can be
used to mount the base (lower-level) image.</p>
<p style="margin-left:11%;"><i>base_delta</i> [...
<i>top_delta</i>]</p>
<p style="margin-left:29%;">List of image files to mount,
with the first one being the base delta and the last one
being the top delta (i.e. the one that will be writable
unless <b>-r</b> is specified).</p>
<p style="margin-left:11%;"><i>DiskDescriptor.xml</i></p>
<p style="margin-left:29%;">Path to the DiskDescriptor.xml
file with information about images.</p>
==== umount ====
<p style="margin-left:11%; margin-top: 1em">Unmount a ploop
device. Since a mounted ploop device consists of an image
(or multiple images), a device, and a file system mounted to
a directory, one can refer to any of the above entities to
specify what to unmount. The recommended way is to use
DiskDescriptor.xml.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="18%">
<p style="margin-top: 1em"><b>ploop umount</b></p></td>
<td width="2%"></td>
<td width="69%">
<p style="margin-top: 1em">{ <b>-d</b> <i>device</i> |
<b>-m</b> <i>mount_point</i> | <i>DiskDescriptor.xml</i> |
<i>image_file</i> }</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="18%">
<p><b>-d</b> <i>device</i></p></td>
<td width="2%"></td>
<td width="69%">
<p>Ploop device, e.g., <b>/dev/ploop0</b>. If not
specified, the first unused ploop device will be used.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-m</b>
<i>mount_point</i></p>
<p style="margin-left:31%;">Mount point of a ploop device
to unmount.</p>
<p style="margin-left:11%;"><i>DiskDescriptor.xml</i></p>
<p style="margin-left:31%;">Path to the DiskDescriptor.xml
file with information about images.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><i>image_file</i></p></td>
<td width="5%"></td>
<td width="44%">
<p>Path to a mounted image file.</p></td>
<td width="25%">
</td></tr>
</table>
==== resize ====
<p style="margin-left:11%; margin-top: 1em">Resize a ploop
image. Online resize is supported, and the tool can either
grow or shrink the ploop image and the underlying file
system.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="18%">
<p style="margin-top: 1em"><b>ploop resize</b></p></td>
<td width="2%"></td>
<td width="69%">
<p style="margin-top: 1em"><b>-s</b> <i>size
DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="18%">
<p><b>-s</b> <i>size</i></p></td>
<td width="2%"></td>
<td width="69%">
<p>Image size. If no suffix is specified, <i>size</i> is in
sector units (one sector is 512 bytes). One can specify
optional <b>K</b>, <b>M</b>, <b>G</b> or <b>T</b> suffix to
set the size in kilo-, mega-, giga- or terabytes.</p></td></tr>
</table>
<p style="margin-left:11%;"><i>DiskDescriptor.xml</i></p>
<p style="margin-left:31%;">Path to the DiskDescriptor.xml
file with information about images.</p>
==== convert ====
<p style="margin-left:11%; margin-top: 1em">Convert ploop
image format or version.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p style="margin-top: 1em"><b>ploop convert</b></p></td>
<td width="1%"></td>
<td width="68%">
<p style="margin-top: 1em">{ <b>-f</b> <i>format</i> |
<b>-v</b> <i>version</i> } <i>DiskDescriptor.xml</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p><b>-f</b> <i>format</i></p></td>
<td width="1%"></td>
<td width="68%">
<p>Image format. See <b>IMAGE FORMATS</b> below.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p><b>-v</b> <i>version</i></p></td>
<td width="1%"></td>
<td width="68%">
<p>Image version, can be <b>1</b> or <b>2</b>. Only offline
image version conversion is supported.</p></td></tr>
</table>
==== snapshot ====
<p style="margin-left:11%; margin-top: 1em">Create a ploop
snapshot.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p style="margin-top: 1em"><b>ploop snapshot</b></p></td>
<td width="2%"></td>
<td width="66%">
<p style="margin-top: 1em">[<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p><b>-u</b> <i>uuid</i></p></td>
<td width="2%"></td>
<td width="66%">
<p>Specify a <i>uuid</i> for a new snapshot. If option is
not given, uuid is generated automatically. To generate uuid
manually, one can use the <b>uuidgen</b>(1) utility. Note
that UUID must be enclosed in curly brackets.</p></td></tr>
</table>
==== snapshot-merge ====
<p style="margin-left:11%; margin-top: 1em">Merge a
snapshot with its parent.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="31%">
<p style="margin-top: 1em"><b>ploop snapshot-merge</b></p> </td>
<td width="1%"></td>
<td width="57%">
<p style="margin-top: 1em">[<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="31%">
<p><b>-u</b> <i>uuid</i></p></td>
<td width="1%"></td>
<td width="57%">
<p>Specify a snapshot <i>uuid</i> to merge. If this option
is not specified, the top delta will be used.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="31%">
<p><b>-A</b></p></td>
<td width="1%"></td>
<td width="57%">
<p>Merge all snapshots down to base delta. If some
snapshots have more than a single child, they will be
impossible to merge.</p></td></tr>
</table>
==== snapshot-switch ====
<p style="margin-left:11%; margin-top: 1em">Switch to the
specified snapshot. This operation can only be performed
while ploop is not running (i.e. is unmounted). The current
top delta image will be removed.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-switch</b></p> </td>
<td width="2%"></td>
<td width="55%">
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p><b>-u</b> <i>uuid</i></p></td>
<td width="2%"></td>
<td width="55%">
<p>Specify a snapshot <i>uuid</i> to switch to.</p></td></tr>
</table>
==== snapshot-delete ====
<p style="margin-left:11%; margin-top: 1em">Delete the
specifed snapshot. This operation can only be performed if
the specified snapshot is not active. In case snapshot
doesn’t have any children, it will simply be removed.
In case snapshot has a single child, it will be merged to
that child. Deleting a snapshot that has multiple children
is currently not supported (but can be performed manually in
an iterative fashion).</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-delete</b></p> </td>
<td width="2%"></td>
<td width="55%">
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p><b>-u</b> <i>uuid</i></p></td>
<td width="2%"></td>
<td width="55%">
<p>Specify a snapshot <i>uuid</i> to be deleted.</p></td></tr>
</table>
==== snapshot-list ====
<p style="margin-left:11%; margin-top: 1em">List available
snapshots.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="29%">
<p style="margin-top: 1em"><b>ploop snapshot-list</b></p> </td>
<td width="2%"></td>
<td width="58%">
<p style="margin-top: 1em">[<b>-H</b>]
[<b>-u </b><i>uuid</i>]
[<b>-o </b><i>field</i>[,<i>field</i>...]]
<i>DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="29%">
<p><b>-H</b>, <b>--no-header</b></p></td>
<td width="2%"></td>
<td width="58%">
<p>Suppress displaying the header row. Usable for
scripts.</p> </td></tr>
</table>
<p style="margin-left:11%;"><b>-u</b>, <b>--uuid</b>,
<b>--id</b> <i>uuid</i></p>
<p style="margin-left:42%;">Filter the output to a
specified <i>uuid</i>.</p>
<p style="margin-left:11%;"><b>-o</b>, <b>--output</b>
<i>field</i>[,<i>field</i>...]</p>
<p style="margin-left:42%;">Display only the specified
<i>field</i>s. Possible fields are: <br>
• <b>uuid</b> - snapshot’s UUID; <br>
• <b>parent_uuid</b> - snapshot’s parent UUID;
<br>
• <b>current</b> - if this snapshot is the current one;
<br>
• <b>fname</b> - snapshot image file name.</p>
=== ADVANCED COMMANDS ===
==== shapshot ====
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p style="margin-top: 1em"><b>ploop snapshot</b></p></td>
<td width="2%"></td>
<td width="66%">
<p style="margin-top: 1em">[<b>-F</b>]
[<b>-d </b><i>device</i>] <i>image_file</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p><b>-F</b></p></td>
<td width="2%"></td>
<td width="66%">
<p>Freeze filesystem before making a snapshot. If the
option is not given, the file system will not be frozen and
snapshot will have an inconsistent file system. If you need
a quick snapshot, do not use this option. Journal will be
replayed when you mount the snapshot.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p><b>-d</b> <i>device</i></p></td>
<td width="2%"></td>
<td width="66%">
<p>Ploop device, e.g., <b>/dev/ploop0</b>.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p><i>image_file</i></p></td>
<td width="2%"></td>
<td width="66%">
<p>Path to a file to write a new snapshot to. If this file
already exists, <b>ploop snapshot</b> will exit with an
error.</p> </td></tr>
</table>
== IMAGE FORMATS ==
<p style="margin-left:11%; margin-top: 1em">The following
image formats are currently supported.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">
<p style="margin-top: 1em"><b>raw</b></p></td>
<td width="7%"></td>
<td width="78%">
<p style="margin-top: 1em">Raw format, with 1:1 mapping
between the image file and the ploop device.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>ploop1</b>, <b>expanded</b></p>
<p style="margin-left:22%;">Expanded format. The image will
grow according to the needs of the underlying file system.
This format is the default. Names
’<b>ploop1</b>’ and
’<b>expanded</b>’ are aliases.</p>
<p style="margin-left:11%;"><b>preallocated</b></p>
<p style="margin-left:22%;">This is the same as
’<b>ploop1</b>’ or
’<b>expanded</b>’, the only difference is all
the file blocks are allocated during creation.</p>
== SEE ALSO ==
<p style="margin-left:11%; margin-top: 1em">[[Man/vzctl.8|<b>vzctl</b>(8)]].</p>
<p style="margin-left:11%; margin-top: 1em">ploop −
ploop device management utility</p>
== SYNOPSYS ==
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p style="margin-top: 1em"><b>ploop init</b></p></td>
<td width="72%">
<p style="margin-top: 1em"><b>-s</b> <i>size</i>
[<b>-f </b><i>format</i>]
[<b>-v </b><i>version</i>]
[<b>-t </b><i>fstype</i>]
[<b>-b </b><i>blocksize</i>]
[<b>-B </b><i>fsblocksize</i>] <i>delta_file</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p style="margin-top: 1em"><b>ploop mount</b></p></td>
<td width="72%">
<p style="margin-top: 1em">[<b>-r</b>] [<b>-F</b>]
[<b>-f </b><i>format</i>]
[<b>-b </b><i>blocksize</i>]
[<b>-d </b><i>device</i>]
[<b>-m </b><i>mount_point</i>]
[<b>-o </b><i>mount_options</i>]
[<b>-t </b><i>fstype</i>] <i>base_delta</i> [<i>...
top_delta</i>]</p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p style="margin-top: 1em"><b>ploop mount</b></p></td>
<td width="72%">
<p style="margin-top: 1em">[<b>-r</b>] [<b>-F</b>]
[<b>-d </b><i>device</i>]
[<b>-m </b><i>mount_point</i>]
[<b>-o </b><i>mount_options</i>]
[<b>-t </b><i>fstype</i>] [<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td></tr>
</table>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p style="margin-top: 1em"><b>ploop umount</b></p></td>
<td width="69%">
<p style="margin-top: 1em">{ <b>-d</b> <i>device</i> |
<b>-m</b> <i>mount_point</i> | <i>DiskDescriptor.xml</i> |
<i>image_file</i> }</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p style="margin-top: 1em"><b>ploop resize</b></p></td>
<td width="69%">
<p style="margin-top: 1em"><b>-s</b> <i>size
DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p style="margin-top: 1em"><b>ploop convert</b></p></td>
<td width="69%">
<p style="margin-top: 1em">{ <b>-f</b> <i>format</i> |
<b>-v</b> <i>version</i> } <i>DiskDescriptor.xml</i></p></td></tr>
</table>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<p style="margin-top: 1em"><b>ploop snapshot</b></p><td width="34%"></td>
<td width="43%">
<p style="margin-top: 1em">[<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td>
<td width="23%">
</td></tr>
</table>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-merge</b></p> </td>
<td width="43%">
<p style="margin-top: 1em">[<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td>
<td width="14%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-switch</b></p> </td>
<td width="43%">
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td>
<td width="14%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-delete</b></p> </td>
<td width="43%">
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td>
<td width="14%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-list</b></p> </td>
<td width="43%"></td>
<td width="14%">
</td></tr>
</table>
<p style="margin-left:11%;">[<b>-H</b>]
[<b>-u </b><i>uuid</i>]
[<b>-o </b><i>field</i>[,<i>field</i>...]]
<i>DiskDescriptor.xml</i></p>
== DESCRIPTION ==
<p style="margin-left:11%; margin-top: 1em">ploop is a
kernel block device, similar to the traditional loop device
(which is controlled by <b>losetup</b>(8)) but with more
features added, such as dynamic disk space allocation,
stackable images, online resize, snapshotting, and live
migration helper (write tracker). This manual page describes
the ploop user space tool which is used to perform various
operations related to ploop devices and images.</p>
<p style="margin-left:11%; margin-top: 1em">Note that this
ploop tool is not aware of container entities. Commands that
have <b>DiskDescriptor.xml</b> as an argument work with an
XML file that contains meta-information about a particular
ploop device configuration: device characteristics (block
size etc.), storage information (names and formats of images
used for the device), snapshot information, etc. If a
particular command can be used both with and without the
DiskDescriptor.xml argument, it is strongly advised to use
the form with DiskDescriptor.xml.</p>
=== BASIC COMMANDS ===
==== init ====
<p style="margin-left:11%; margin-top: 1em">Create and
initalize a ploop image file and a corresponding
<b>DiskDescriptor.xml</b> file.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p style="margin-top: 1em"><b>ploop init</b></p></td>
<td width="2%"></td>
<td width="72%">
<p style="margin-top: 1em"><b>-s</b> <i>size</i>
[<b>-f </b><i>format</i>]
[<b>-v </b><i>version</i>]
[<b>-t </b><i>fstype</i>]
[<b>-b </b><i>blocksize</i>]
[<b>-B </b><i>fsblocksize</i>] <i>delta_file</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><b>-s</b> <i>size</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>Image size. If no suffix is specified, the <i>size</i>
is in sector units (one sector is 512 bytes). One can
specify optional <b>K</b>, <b>M</b>, <b>G</b> or <b>T</b>
suffix to set the size in kilo-, mega-, giga- or
terabytes.</p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><b>-f</b> <i>format</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>Image format. See <b>IMAGE FORMATS</b> below.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><b>-v</b> <i>version</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>Image version, can be <b>1</b> or <b>2</b>. Default is
<b>2</b>, if supported by the kernel.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><b>-t</b> <i>fstype</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>File system type. If this parameter is specified, a
partition, a filesystem, and a balloon file will be created
inside the image. Currently supported types are <b>ext3</b>
and <b>ext4</b>. Using <b>ext3</b> is not recommended.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-b</b> <i>blocksize</i></p>
<p style="margin-left:28%;">Device block size, in 512 byte
sectors. Default block size is 2048 sectors, or 1
megabyte.</p>
<p style="margin-left:11%;"><b>-B</b>
<i>fsblocksize</i></p>
<p style="margin-left:28%;">Filesystem block size, in
bytes. Default is 4096 bytes.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><i>delta_file</i></p></td>
<td width="2%"></td>
<td width="72%">
<p>Path to a non-existent image file to be created.</p></td></tr>
</table>
==== mount ====
<p style="margin-left:11%; margin-top: 1em">Assemble a
ploop device from one or more delta images, start it, and
optionally mount the file system residing on the device.</p>
<p style="margin-left:11%; margin-top: 1em">Two forms of
this command are provided. The first one accepts a list of
delta images to be used for assembling the ploop device,
while the second one is using information from a
DiskDescriptor.xml file. Please note that not all mount
options are applicable to both forms.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p style="margin-top: 1em"><b>ploop mount</b></p></td>
<td width="1%"></td>
<td width="71%">
<p style="margin-top: 1em">[<b>-r</b>] [<b>-F</b>]
[<b>-f </b><i>format</i>]
[<b>-b </b><i>blocksize</i>]
[<b>-d </b><i>device</i>]
[<b>-m </b><i>mount_point</i>]
[<b>-o </b><i>mount_options</i>]
[<b>-t </b><i>fstype</i>] <i>base_delta</i> [<i>...
top_delta</i>]</p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p><b>ploop mount</b></p></td>
<td width="1%"></td>
<td width="71%">
<p>[<b>-r</b>] [<b>-F</b>] [<b>-d </b><i>device</i>]
[<b>-m </b><i>mount_point</i>]
[<b>-o </b><i>mount_options</i>]
[<b>-t </b><i>fstype</i>] [<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p><b>-r</b></p></td>
<td width="1%"></td>
<td width="71%">
<p>Mount as read-only.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p><b>-F</b></p></td>
<td width="1%"></td>
<td width="71%">
<p>Run <b>fsck</b>(8) on inner filesystem before mounting
it. This option is ignored if <b>-m</b> is not used.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="17%">
<p><b>-f</b> <i>format</i></p></td>
<td width="1%"></td>
<td width="71%">
<p>Image format. Ignored if DiskDescriptor.xml is
specified. Otherwise, one need to specify <b>raw</b> as an
argument, if raw image format is used.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-b</b> <i>blocksize</i></p>
<p style="margin-left:29%;">Device block size, in 512 byte
sectors. Ignored if DiskDescriptor.xml is specified.
Otherwise, required for raw images.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="14%">
<p><b>-d</b> <i>device</i></p></td>
<td width="4%"></td>
<td width="71%">
<p>Ploop device to use, e.g.i, <b>/dev/ploop0</b>. If not
specified, the first unused ploop device will be used.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-m</b>
<i>mount_point</i></p>
<p style="margin-left:29%;">If this option is specified,
ploop goes on to mount the file system to directory denoted
by <i>mount_point</i>.</p>
<p style="margin-left:11%;"><b>-o</b>
<i>mount_options</i></p>
<p style="margin-left:29%;">Any additional mount options,
comma-separated. Used if <b>-m</b> is set.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="14%">
<p><b>-t</b> <i>fstype</i></p></td>
<td width="4%"></td>
<td width="71%">
<p>File system type used for mounting. Used if <b>-m</b> is
set. The default is <b>ext4</b>.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-u</b> <i>uuid</i> |
<b>base</b></p>
<p style="margin-left:29%;">GUID of the image from the
DiskDescriptor.xml to be mounted. By default, top GUID is
used. The special ’<b>base</b>’ value can be
used to mount the base (lower-level) image.</p>
<p style="margin-left:11%;"><i>base_delta</i> [...
<i>top_delta</i>]</p>
<p style="margin-left:29%;">List of image files to mount,
with the first one being the base delta and the last one
being the top delta (i.e. the one that will be writable
unless <b>-r</b> is specified).</p>
<p style="margin-left:11%;"><i>DiskDescriptor.xml</i></p>
<p style="margin-left:29%;">Path to the DiskDescriptor.xml
file with information about images.</p>
==== umount ====
<p style="margin-left:11%; margin-top: 1em">Unmount a ploop
device. Since a mounted ploop device consists of an image
(or multiple images), a device, and a file system mounted to
a directory, one can refer to any of the above entities to
specify what to unmount. The recommended way is to use
DiskDescriptor.xml.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="18%">
<p style="margin-top: 1em"><b>ploop umount</b></p></td>
<td width="2%"></td>
<td width="69%">
<p style="margin-top: 1em">{ <b>-d</b> <i>device</i> |
<b>-m</b> <i>mount_point</i> | <i>DiskDescriptor.xml</i> |
<i>image_file</i> }</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="18%">
<p><b>-d</b> <i>device</i></p></td>
<td width="2%"></td>
<td width="69%">
<p>Ploop device, e.g., <b>/dev/ploop0</b>. If not
specified, the first unused ploop device will be used.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>-m</b>
<i>mount_point</i></p>
<p style="margin-left:31%;">Mount point of a ploop device
to unmount.</p>
<p style="margin-left:11%;"><i>DiskDescriptor.xml</i></p>
<p style="margin-left:31%;">Path to the DiskDescriptor.xml
file with information about images.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="15%">
<p><i>image_file</i></p></td>
<td width="5%"></td>
<td width="44%">
<p>Path to a mounted image file.</p></td>
<td width="25%">
</td></tr>
</table>
==== resize ====
<p style="margin-left:11%; margin-top: 1em">Resize a ploop
image. Online resize is supported, and the tool can either
grow or shrink the ploop image and the underlying file
system.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="18%">
<p style="margin-top: 1em"><b>ploop resize</b></p></td>
<td width="2%"></td>
<td width="69%">
<p style="margin-top: 1em"><b>-s</b> <i>size
DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="18%">
<p><b>-s</b> <i>size</i></p></td>
<td width="2%"></td>
<td width="69%">
<p>Image size. If no suffix is specified, <i>size</i> is in
sector units (one sector is 512 bytes). One can specify
optional <b>K</b>, <b>M</b>, <b>G</b> or <b>T</b> suffix to
set the size in kilo-, mega-, giga- or terabytes.</p></td></tr>
</table>
<p style="margin-left:11%;"><i>DiskDescriptor.xml</i></p>
<p style="margin-left:31%;">Path to the DiskDescriptor.xml
file with information about images.</p>
==== convert ====
<p style="margin-left:11%; margin-top: 1em">Convert ploop
image format or version.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p style="margin-top: 1em"><b>ploop convert</b></p></td>
<td width="1%"></td>
<td width="68%">
<p style="margin-top: 1em">{ <b>-f</b> <i>format</i> |
<b>-v</b> <i>version</i> } <i>DiskDescriptor.xml</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p><b>-f</b> <i>format</i></p></td>
<td width="1%"></td>
<td width="68%">
<p>Image format. See <b>IMAGE FORMATS</b> below.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="20%">
<p><b>-v</b> <i>version</i></p></td>
<td width="1%"></td>
<td width="68%">
<p>Image version, can be <b>1</b> or <b>2</b>. Only offline
image version conversion is supported.</p></td></tr>
</table>
==== snapshot ====
<p style="margin-left:11%; margin-top: 1em">Create a ploop
snapshot.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p style="margin-top: 1em"><b>ploop snapshot</b></p></td>
<td width="2%"></td>
<td width="66%">
<p style="margin-top: 1em">[<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p><b>-u</b> <i>uuid</i></p></td>
<td width="2%"></td>
<td width="66%">
<p>Specify a <i>uuid</i> for a new snapshot. If option is
not given, uuid is generated automatically. To generate uuid
manually, one can use the <b>uuidgen</b>(1) utility. Note
that UUID must be enclosed in curly brackets.</p></td></tr>
</table>
==== snapshot-merge ====
<p style="margin-left:11%; margin-top: 1em">Merge a
snapshot with its parent.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="31%">
<p style="margin-top: 1em"><b>ploop snapshot-merge</b></p> </td>
<td width="1%"></td>
<td width="57%">
<p style="margin-top: 1em">[<b>-u </b><i>uuid</i>]
<i>DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="31%">
<p><b>-u</b> <i>uuid</i></p></td>
<td width="1%"></td>
<td width="57%">
<p>Specify a snapshot <i>uuid</i> to merge. If this option
is not specified, the top delta will be used.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="31%">
<p><b>-A</b></p></td>
<td width="1%"></td>
<td width="57%">
<p>Merge all snapshots down to base delta. If some
snapshots have more than a single child, they will be
impossible to merge.</p></td></tr>
</table>
==== snapshot-switch ====
<p style="margin-left:11%; margin-top: 1em">Switch to the
specified snapshot. This operation can only be performed
while ploop is not running (i.e. is unmounted). The current
top delta image will be removed.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-switch</b></p> </td>
<td width="2%"></td>
<td width="55%">
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p><b>-u</b> <i>uuid</i></p></td>
<td width="2%"></td>
<td width="55%">
<p>Specify a snapshot <i>uuid</i> to switch to.</p></td></tr>
</table>
==== snapshot-delete ====
<p style="margin-left:11%; margin-top: 1em">Delete the
specifed snapshot. This operation can only be performed if
the specified snapshot is not active. In case snapshot
doesn’t have any children, it will simply be removed.
In case snapshot has a single child, it will be merged to
that child. Deleting a snapshot that has multiple children
is currently not supported (but can be performed manually in
an iterative fashion).</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p style="margin-top: 1em"><b>ploop snapshot-delete</b></p> </td>
<td width="2%"></td>
<td width="55%">
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="32%">
<p><b>-u</b> <i>uuid</i></p></td>
<td width="2%"></td>
<td width="55%">
<p>Specify a snapshot <i>uuid</i> to be deleted.</p></td></tr>
</table>
==== snapshot-list ====
<p style="margin-left:11%; margin-top: 1em">List available
snapshots.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="29%">
<p style="margin-top: 1em"><b>ploop snapshot-list</b></p> </td>
<td width="2%"></td>
<td width="58%">
<p style="margin-top: 1em">[<b>-H</b>]
[<b>-u </b><i>uuid</i>]
[<b>-o </b><i>field</i>[,<i>field</i>...]]
<i>DiskDescriptor.xml</i></p> </td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="29%">
<p><b>-H</b>, <b>--no-header</b></p></td>
<td width="2%"></td>
<td width="58%">
<p>Suppress displaying the header row. Usable for
scripts.</p> </td></tr>
</table>
<p style="margin-left:11%;"><b>-u</b>, <b>--uuid</b>,
<b>--id</b> <i>uuid</i></p>
<p style="margin-left:42%;">Filter the output to a
specified <i>uuid</i>.</p>
<p style="margin-left:11%;"><b>-o</b>, <b>--output</b>
<i>field</i>[,<i>field</i>...]</p>
<p style="margin-left:42%;">Display only the specified
<i>field</i>s. Possible fields are: <br>
• <b>uuid</b> - snapshot’s UUID; <br>
• <b>parent_uuid</b> - snapshot’s parent UUID;
<br>
• <b>current</b> - if this snapshot is the current one;
<br>
• <b>fname</b> - snapshot image file name.</p>
=== ADVANCED COMMANDS ===
==== shapshot ====
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p style="margin-top: 1em"><b>ploop snapshot</b></p></td>
<td width="2%"></td>
<td width="66%">
<p style="margin-top: 1em">[<b>-F</b>]
[<b>-d </b><i>device</i>] <i>image_file</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p><b>-F</b></p></td>
<td width="2%"></td>
<td width="66%">
<p>Freeze filesystem before making a snapshot. If the
option is not given, the file system will not be frozen and
snapshot will have an inconsistent file system. If you need
a quick snapshot, do not use this option. Journal will be
replayed when you mount the snapshot.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p><b>-d</b> <i>device</i></p></td>
<td width="2%"></td>
<td width="66%">
<p>Ploop device, e.g., <b>/dev/ploop0</b>.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="21%">
<p><i>image_file</i></p></td>
<td width="2%"></td>
<td width="66%">
<p>Path to a file to write a new snapshot to. If this file
already exists, <b>ploop snapshot</b> will exit with an
error.</p> </td></tr>
</table>
== IMAGE FORMATS ==
<p style="margin-left:11%; margin-top: 1em">The following
image formats are currently supported.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">
<p style="margin-top: 1em"><b>raw</b></p></td>
<td width="7%"></td>
<td width="78%">
<p style="margin-top: 1em">Raw format, with 1:1 mapping
between the image file and the ploop device.</p></td></tr>
</table>
<p style="margin-left:11%;"><b>ploop1</b>, <b>expanded</b></p>
<p style="margin-left:22%;">Expanded format. The image will
grow according to the needs of the underlying file system.
This format is the default. Names
’<b>ploop1</b>’ and
’<b>expanded</b>’ are aliases.</p>
<p style="margin-left:11%;"><b>preallocated</b></p>
<p style="margin-left:22%;">This is the same as
’<b>ploop1</b>’ or
’<b>expanded</b>’, the only difference is all
the file blocks are allocated during creation.</p>
== SEE ALSO ==
<p style="margin-left:11%; margin-top: 1em">[[Man/vzctl.8|<b>vzctl</b>(8)]].</p>