Clone/Back Up/Restore OpenVZ VMs With vzdump | HowtoForge - Lin...
23-02-2009 23:49
Clone/Back Up/Restore OpenVZ VMs With vzdump
Version 1.0
Author: Falko Timme <ft [at] falkotimme [dot] com>
Last edited 11/20/2008
vzdump is a backup and restore utility for OpenVZ VMs. This tutorial shows how you can use it to clone/back
up/restore virtual machines with vzdump.
I do not issue any guarantee that this will work for you!
1 Preliminary Note
I'm using two OpenVZ servers in this tutorial:
[Link]: IP [Link]
[Link]: IP [Link]
(Both are using Debian Etch and are set up according to this tutorial: Installing And Using OpenVZ On Debian
Etch - but it works with any other distribution as well.)
I'm running a virtual machine with the hostname [Link], the IP address [Link] and the
VEID 102 on [Link], and I want to back up that machine and restore it on
[Link].
We can restore it on [Link] with no changes (e.g. same IP address and hostname), but in that
case we must stop the VM on [Link] because otherwise the IP address and hostname would
conflict; the second possibility is to restore it on [Link], but change some parameters like the
IP address and hostname with the vzctl set command - in this case we can run both VMs (the original one on
[Link] and the clone on [Link]) at the same time. This is a great method to
clone VMs.
2 Preparing The OpenVZ Servers
First we must install vzdump and rsync which is a dependency. On Debian, the command is as follows:
server1/server2:
apt-get install vzdump rsync
3 Creating A Backup Of A VM
(This chapter is for server1 only!)
On [Link], I want to create a backup of my VM with the VEID 102. Take a look at
man vzdump
to learn how to use vzdump.
To back up all VMs on your server, you'd use something like
vzdump --compress --dumpdir /home/backup --stop --all
--compress means: compress the dump file (results in a .tgz).
--dumpdir specifies the directory in which you want to store the dump. If you don't specify a dumpdir, it
defaults to /vz/dump or /var/lib/vz/dump (depends on your distribution).
[Link] 5
Clone/Back Up/Restore OpenVZ VMs With vzdump | HowtoForge - Lin... 23-02-2009 23:49
--stop stops the VM, creates the backup, and starts it again afterwards. Your VM can be down a few minutes if
you use --stop. A faster solution would be to use...
--suspend: it suspends the VM; the VM is then copied via rsync to a temporary directory. The VM gets resumed
right afterwards so that it's down only a few seconds, and then the dump is created using the copy in the
temporary directory. I recommend to use this one if you can't afford long downtimes.
You can as well leave out --stop and --suspend and dump a running VM. In most cases this makes no
problem, but it is possible that the dump is inconsistent, so be warned!
--all creates a dump of all available VMs. If you want to dump only a specific VM, replace --all with the VEID
of the VM.
To create a dump of our VM 102 in /home/backup and stop the VM during the backup, use
vzdump --compress --dumpdir /home/backup --stop 102
To create a dump in the default directory (/vz/dump or /var/lib/vz/dump), use
vzdump --compress --stop 102
The output could look as follows:
server1:/vz/dump# vzdump --compress --stop 102
INFO: starting backup for VPS 102 (/var/lib/vz/private/102)
INFO: starting first sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp9009
INFO: stopping vps
Stopping container ...
Container was stopped
Container is unmounted
INFO: final sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp9009
INFO: restarting vps
Starting container ...
Container is mounted
Adding IP address(es): [Link]
Setting CPU units: 1000
Configure meminfo: 65536
Set hostname: [Link]
File [Link] was modified
Container start in progress...
INFO: vps is online again after 15 seconds
INFO: Creating archive '/var/lib/vz/dump/[Link]' (/var/lib/vz/dump/tmp9009/102)
Total bytes written: 340428800 (325MiB, 11MiB/s)
INFO: backup for VPS 102 finished successful (1.37 minutes)
server1:/vz/dump#
[Link] 6
Clone/Back Up/Restore OpenVZ VMs With vzdump | HowtoForge - Lin... 23-02-2009 23:49
To not stop, but suspend the VM, use
vzdump --compress --suspend 102
This is a sample output:
server1:~# vzdump --compress --suspend 102
INFO: starting backup for VPS 102 (/var/lib/vz/private/102)
INFO: starting first sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp10842
INFO: suspend vps
Setting up checkpoint...
suspend...
get context...
Checkpointing completed succesfully
INFO: final sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp10842
INFO: resume vps
Resuming...
INFO: vps is online again after 4 seconds
INFO: Creating archive '/var/lib/vz/dump/[Link]' (/var/lib/vz/dump/tmp10842/102)
Total bytes written: 340428800 (325MiB, 24MiB/s)
INFO: backup for VPS 102 finished successful (1.57 minutes)
server1:~#
After the backup, take a look at the dump directory...
ls -l /vz/dump/
... and you should see a .tgz file:
server1:~# ls -l /vz/dump/
total 147864
-rw-r--r-- 1 root root 1170 2008-11-20 17:40 [Link]
-rw-r--r-- 1 root root 151249685 2008-11-20 17:40 [Link]
server1:~#
You can now copy the dump to the other OpenVZ server, e.g. with scp (this copies /vz/dump/[Link]
to the /home directory on [Link]):
scp /vz/dump/[Link] root@[Link]:/home
4 Restoring A VM
(This chapter is for server2 only!)
On [Link], you can now restore the VM as follows...
vzdump --restore /home/[Link] 250
... where 250 is the new VEID of the restored VM - you can use any VEID that is unused on
[Link] - you could even use 102 again if it is unused on [Link].
If you don't want to modify the settings of the VM (e.g. IP address, hostname), you can start it now, but please
make sure that the original VM is stopped on [Link] because otherwise the IP addresses conflict:
vzctl start 250
If you want to run both VMs (the original one and the clone) at the same time, you must change the IP address and
hostname of the clone before you start it.
[Link] 7
Clone/Back Up/Restore OpenVZ VMs With vzdump | HowtoForge - Lin... 23-02-2009 23:49
To set a new hostname, run sonething like this:
vzctl set 250 --hostname [Link] --save
To set a new IP address, we must first delete the original one...
vzctl set 250 --ipdel [Link] --save
... and then set a new one:
vzctl set 250 --ipadd [Link] --save
Afterwards we can start the clone:
vzctl start 250
5 Links
OpenVZ: [Link]
Copyright © 2008 Falko Timme
All Rights Reserved.
add comment | view as pdf | print |
Related Tutorials
Installing And Using OpenVZ On Ubuntu 8.10
Installing And Using OpenVZ On Ubuntu 8.04 LTS Server
Installing And Using OpenVZ On CentOS 5.2
Installing And Using OpenVZ On Fedora 9
Installing And Using OpenVZ On Debian Etch
Please do not use the comment function to ask for help! If you need help, please use our forum.
Comments will be published after administrator approval.
Sponsored Links: Request a Novell/Microsoft migration Request a Novell/Microsoft migration workshop Request a
Novell/Microsoft migration workshop and kit
Howtos | Mini-Howtos | Forums | News | Search | Contribute | Subscription
Site Map/RSS Feeds | Advertise | Contact | Disclaimer | Imprint
Copyright © 2009 HowtoForge - Linux Howtos and Tutorials
All Rights Reserved.
[Link] 8