]>
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 exit ( 0 ) if $upid eq 'OK' ;
33 my $status = PVE
:: Tools
:: upid_read_status
( $upid );
34 exit ( $status eq 'OK' ?
0 : - 1 );
37 push @ARGV, 'help' if ! scalar ( @ARGV );
39 PVE
:: CLIHandler
:: handle_simple_cmd
( $cmddef, \
@ARGV, undef , $0 );
47 vzdump - backup utility for virtual machine
55 vzdump is an utility to make consistent snapshots of running virtual
56 machines (VMs). It basically creates an archive of the VM private area,
57 which also includes the VM configuration files. vzdump currently
58 supports OpenVZ and QemuServer VMs.
60 There are several ways to provide consistency (option C<mode>):
66 Stop the VM during backup. This results in a very long downtime.
70 For OpenVZ, this mode uses rsync to copy the VM to a temporary
71 location (see option --tmpdir). Then the VM is suspended and a second
72 rsync copies changed files. After that, the VM is started (resume)
73 again. This results in a minimal downtime, but needs additional space
76 For QemuServer, this mode work like C<stop> mode, but uses
77 suspend/resume instead of stop/start.
79 =item C<snapshot> mode
81 This mode uses LVM2 snapshots. There is no downtime, but snapshot mode
82 needs LVM2 and some free space on the corresponding volume group to
83 create the LVM snapshot.
87 =head1 BACKUP FILE NAMES
89 Newer version of vzdump encodes the virtual machine type and the
90 backup time into the filename, for example
92 vzdump-openvz-105-2009_10_09-11_04_43.tar
94 That way it is possible to store several backup into the same
95 directory. The parameter C<maxfiles> can be used to specify the maximal
96 number of backups to keep.
100 The resulting archive files can be restored with the following programs.
104 =item vzrestore: OpenVZ restore utility
106 =item qmrestore: QemuServer restore utility
110 For details see the corresponding manual pages.
114 Global configuration is stored in /etc/vzdump.conf.
119 mode: snapshot|suspend|stop
127 exclude-path: PATHLIST
131 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>).
133 =head1 EXCLUSIONS (OpenVZ only)
135 vzdump skips the following files wit option --stdexcludes
142 You can manually specify exclude paths, for example:
144 # vzdump 777 --exclude-path C</tmp/.+> --exclude-path C</var/tmp/.+>
146 (only excludes tmp directories)
148 Configuration files are also stored inside the backup archive (/etc/vzdump), and will be correctly restored.
152 VZDump does not save ACLs.
156 Simply dump VM 777 - no snapshot, just archive the VM private area and configuration files to the default dump directory (usually /vz/dump/).
160 Use rsync and suspend/resume to create an snapshot (minimal downtime).
162 # vzdump 777 --mode suspend
164 Backup all VMs and send notification mails to root and admin.
166 # vzdump --all --mode suspend --mailto root --mailto admin
168 Use LVM2 to create snapshots (no downtime).
170 # vzdump 777 --dumpdir /mnt/backup --mode snapshot
172 Backup more than one VM (selectively)
174 # vzdump 101 102 103 --mailto root
176 Backup all VMs excluding VM 101 and 102
178 # vzdump --mode suspend --exclude 101,102
180 Restore an OpenVZ machine to VM 600
182 # vzrestore /mnt/backup/vzdump-openvz-777.tar 600
184 Restore an Qemu/KVM machine to VM 601
186 # qmrestore /mnt/backup/vzdump-qemu-888.vma 601
188 Clone an existing container 101 to container 300 using pipes
190 # vzdump 101 --stdout|vzrestore - 300
194 vzrestore(1) qmrestore(1)
196 =include pve_copyright