Virsh vol-clone: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 7: Line 7:


* [[virsh#Commands|virsh]]
* [[virsh#Commands|virsh]]
* [[Linux_Virtualization_Operations#Virtualization_Host_Storage_Operations|Other Virtualized Storage Operations]]


=Overview=
=Overview=
Line 30: Line 31:


The virsh man page does not explicitly require it, but it is probably better to make sure the source volume is not in use while cloning.
The virsh man page does not explicitly require it, but it is probably better to make sure the source volume is not in use while cloning.
{{Warn|Also, consider what you are cloning - some guests may contain software that, once duplicated, by break the state of the cluster. This was the case when an OpenShift node was cloned with etcd and OpenShift node daemons pre-installed. It is always best to clone a neutral template that was specifically prepared for that.}}


  virsh vol-clone --pool ''storage-pool-name'' --prealloc-metadata ''source-volume'' ''target-volume''
  virsh vol-clone --pool ''storage-pool-name'' --prealloc-metadata ''source-volume'' ''target-volume''
Line 39: Line 42:
   
   
  virsh vol-list --pool main-storage-pool
  virsh vol-list --pool main-storage-pool
{{Internal|Linux_Virtualization_Operations#Virtualization_Host_Storage_Operations|Other Virtualized Storage Operations}}

Latest revision as of 02:36, 18 October 2017

External

Internal

Overview

The operation clones the source volume within the same storage pool, It allocates space for the target volume and copies the content across. Various optimizations are applied depending on the source volume format.

virsh vol-clone --pool <storage-pool-name> <source-volume-name> <new-volume-name>

The virsh man page does not explicitly require it, but it is probably better to make sure the source volume is not in use while cloning.

For qcow2 volumes for qcow2 images which don't support full allocation, --prealloc-metadata can be used. --prealloc-metadata preallocates metadata and creates a sparse image file with metadata, resulting in higher performance compared to images with no preallocation and only slightly higher initial disk space usage.

Examples

Cloning a Raw Volume

The virsh man page does not explicitly require it, but it is probably better to make sure the source volume is not in use while cloning.

virsh vol-clone --pool main-storage-pool test-volume test-volume.raw
virsh vol-list --pool main-storage-pool

Cloning a qcow2 Volume

The virsh man page does not explicitly require it, but it is probably better to make sure the source volume is not in use while cloning.


Also, consider what you are cloning - some guests may contain software that, once duplicated, by break the state of the cluster. This was the case when an OpenShift node was cloned with etcd and OpenShift node daemons pre-installed. It is always best to clone a neutral template that was specifically prepared for that.

virsh vol-clone --pool storage-pool-name --prealloc-metadata source-volume target-volume

Example:

virsh vol-clone --pool main-storage-pool --prealloc-metadata template.qcow2 node1.qcow2
Vol node1.qcow2 cloned from template.qcow2

virsh vol-list --pool main-storage-pool