]>
git.proxmox.com Git - pve-manager.git/blob - bin/vzdump
6 use PVE
:: RPCEnvironment
;
10 use Data
:: Dumper
; # fixme: remove
12 use base
qw(PVE::CLIHandler) ;
14 $ENV { 'PATH' } = '/sbin:/bin:/usr/sbin:/usr/bin' ;
18 die "please run as root \n " if $> != 0 ;
20 PVE
:: INotify
:: inotify_init
();
22 my $rpcenv = PVE
:: RPCEnvironment-
> init ( 'cli' );
24 $rpcenv -> init_request ();
25 $rpcenv -> set_language ( $ENV { LANG
});
26 $rpcenv -> set_user ( 'root @pam ' );
29 my $cmddef = [ 'PVE::API2::VZDump' , 'vzdump' , 'vmid' , undef ,
32 my $status = PVE
:: Tools
:: upid_read_status
( $upid );
33 exit ( $status eq 'OK' ?
0 : - 1 );
36 push @ARGV, 'help' if ! scalar ( @ARGV );
38 PVE
:: CLIHandler
:: handle_simple_cmd
( $cmddef, \
@ARGV, undef , $0 );
46 vzdump - backup utility for virtual machine
54 vzdump is an utility to make consistent snapshots of running virtual
55 machines (VMs). It basically creates a tar archive of the VM private area,
56 which also includes the VM configuration files. vzdump currently
57 supports OpenVZ and QemuServer VMs.
59 There are several ways to provide consistency (option C<mode>):
65 Stop the VM during backup. This results in a very long downtime.
69 For OpenVZ, this mode uses rsync to copy the VM to a temporary
70 location (see option --tmpdir). Then the VM is suspended and a second
71 rsync copies changed files. After that, the VM is started (resume)
72 again. This results in a minimal downtime, but needs additional space
75 For QemuServer, this mode work like C<stop> mode, but uses
76 suspend/resume instead of stop/start.
78 =item C<snapshot> mode
80 This mode uses LVM2 snapshots. There is no downtime, but snapshot mode
81 needs LVM2 and some free space on the corresponding volume group to
82 create the LVM snapshot.
86 =head1 BACKUP FILE NAMES
88 Newer version of vzdump encodes the virtual machine type and the
89 backup time into the filename, for example
91 vzdump-openvz-105-2009_10_09-11_04_43.tar
93 That way it is possible to store several backup into the same
94 directory. The parameter C<maxfiles> can be used to specify the maximal
95 number of backups to keep.
99 The resulting tar files can be restored with the following programs.
103 =item vzrestore: OpenVZ restore utility
105 =item qmrestore: QemuServer restore utility
109 For details see the corresponding manual pages.
113 Global configuration is stored in /etc/vzdump.conf.
118 mode: snapshot|suspend|stop
126 exclude-path: PATHLIST
130 You can specify a hook script with option C<--script>. This script is called at various phases of the backup process, with parameters accordingly set. You can find an example in the documentation directory (C<vzdump-hook-script.pl>).
132 =head1 EXCLUSIONS (OpenVZ only)
134 vzdump skips the following files wit option --stdexcludes
141 You can manually specify exclude paths, for example:
143 # vzdump 777 --exclude-path C</tmp/.+> --exclude-path C</var/tmp/.+>
145 (only excludes tmp directories)
147 Configuration files are also stored inside the backup archive (/etc/vzdump), and will be correctly restored.
151 VZDump does not save ACLs.
155 Simply dump VM 777 - no snapshot, just archive the VM private area and configuration files to the default dump directory (usually /vz/dump/).
159 Use rsync and suspend/resume to create an snapshot (minimal downtime).
161 # vzdump 777 --mode suspend
163 Backup all VMs and send notification mails to root and admin.
165 # vzdump --all --mode suspend --mailto root --mailto admin
167 Use LVM2 to create snapshots (no downtime).
169 # vzdump 777 --dumpdir /mnt/backup --mode snapshot
171 Backup more than one VM (selectively)
173 # vzdump 101 102 103 --mailto root
175 Backup all VMs excluding VM 101 and 102
177 # vzdump --mode suspend --exclude 101,102
179 Restore an OpenVZ machine to VM 600
181 # vzrestore /mnt/backup/vzdump-openvz-777.tar 600
183 Restore an Qemu/KVM machine to VM 601
185 # qmrestore /mnt/backup/vzdump-qemu-888.tar 601
187 Clone an existing container 101 to container 300 using pipes
189 # vzdump 101 --stdout|vzrestore - 300
193 vzrestore(1) qmrestore(1)
195 =include pve_copyright