Now that you have the big picture, assuming you already know how to administer you ZFS pools, how can you clone your domU? This way: the first thing you have to do is shutting down your domU:
# virsh shutdown your-domain
Now you can copy your domain disk files or snapshot the corresponding ZFS volumes with a command such as:
# zfs snapshot your-fs@snap-name
# zfs clone your-fs@snap-name your/clone/name
If your just using files, then:
# cp your-domain-disk-file your-new-domain-disk-file
The next thing you've got to do is dumping and editing your source domain configuration:
# virsh dumpxml your-domain > your-domain.xml
# cp your-domain.xml your-new-domain.xml
Now, before importing this file, you've got to apply some modifications. Since Sun xVM identifies domains by means of a name and an uuid: then, you've got to edit the domain definition file to change the name and remove the already-used uuid. A new uuid will be generated for you as soon as Sun xVM wil import the domain definition. So, open the file:
# vi your-new-domain.xml
First, change the name you'll find in the <name/> element and then remove the entire <uuid/> element. The last modification you must apply is having the new domain point to the new file or ZFS volume you copied or cloned earlier. An example of a disk definition is the following excerpt from a domain configuration:
<disk type='file' device='disk'>
Just change the file attribute of the <source/> element and the job is done.
Last thing you've got to do is importing the new domain definition:
# virsh define your-new-domain.xml
Done! Now you can boot your new domain.
A last word of warning: chances are your just-cloned system shouldn't be running aside the old one without proper configuration. Double check your virtualized OS configuration for parameters such as:
- network configuration (hostname, DNS, static IP addresses, etc.)
- network service which may clash
Enjoy your virtualized server environment.