X-Git-Url: https://git.proxmox.com/?p=pve-docs.git;a=blobdiff_plain;f=vzdump.adoc;h=2939cbed8936d83303dedfb0b0eb4e16f8e35658;hp=fc4246807b900fc5dd51aaa1ead6ab81b867a9a7;hb=2957ef8041443af97feb6ff29dffbdee2b333fd2;hpb=871e1fd656b4cd674532ce4e9e1c87e5f8d8545f diff --git a/vzdump.adoc b/vzdump.adoc index fc42468..2939cbe 100644 --- a/vzdump.adoc +++ b/vzdump.adoc @@ -25,45 +25,82 @@ Backup and Restore include::attributes.txt[] endif::manvolnum[] -'vzdump' is a utility to make consistent snapshots of running virtual -machines (VMs). It basically creates an archive of the VM private -area, which also includes the VM configuration files. 'vzdump' -currently supports LXC containers and QemuServer VMs. +'vzdump' is a utility to make consistent backups of running guest +systems. It basically creates an archive of the guest private area, +which also includes the guest configuration files. 'vzdump' currently +supports LXC containers and QemuServer VMs. There are several ways to +provide consistency (option `mode`), depending on the guest type. -There are several ways to provide consistency (option `mode`): +.Backup `mode` for VMs: `stop` mode:: -Stop the VM during backup. This results in a very long downtime. +This first performns a clean shutdown of the VM to make sure it is +stopped. It then starts the VM in suspended mode and uses the qemu +backup feature to dump all data. If the VM was running, we start +(resume) it immediately after starting the qemu backup task. This +keeps the downtime as low as possible. `suspend` mode:: -For containers, this mode uses rsync to copy the VM data to a temporary -location (see option `--tmpdir`). Then the VM is suspended and a second -rsync copies changed files. After that, the VM is started (resumed) -again. This results in minimal downtime, but needs additional space -to hold the VM copy. - -For QemuServer, this mode will suspend the VM, start -a live backup, and resume the VM. +This mode does not really make sense for qemu. Please use snapshot +mode instead. `snapshot` mode:: -For containers, this mode uses the snapshotting facilities of the -underlying storage. A snapshot will be made of the container volume, -and the snapshot content will be archived in a tar file. - -For QemuServer, this mode will do a live backup similar to the -`suspend` mode, but without suspending/resuming the VM. +This mode simply starts a qemu live backup task. If the guest agent +is enabled (`agent: 1`) and running, it calls 'guest-fsfreeze-freeze' +and 'guest-fsfreeze-thaw' to improve consistency. A technical overview of the Proxmox VE live backup for QemuServer can be found online -https://git.proxmox.com/?p=pve-qemu-kvm.git;a=blob;f=backup.txt[here], +https://git.proxmox.com/?p=pve-qemu-kvm.git;a=blob;f=backup.txt[here]. + +NOTE: Qemu backup provides snapshots on any storage type. It does +not require that the underlying storage supports snapshots. + + +.Backup `mode` for Containers: + +`stop` mode:: + +Stop the container for the duration of the backup. This potentially results in +a very long downtime. + +`suspend` mode:: + +This mode uses rsync to copy the container data to a temporary +location (see option `--tmpdir`). Then the container is suspended and a second +rsync copies changed files. After that, the container is started (resumed) +again. This results in minimal downtime, but needs additional space +to hold the container copy. ++ +When the container is on a local filesystem and the target storage of the backup +is an NFS server, you should set `--tmpdir` to reside on a local filesystem too, +as this will result in a many fold performance improvement. +Use of a local `tmpdir` is also required if you want to backup a local container +using ACLs in suspend mode if the backup storage is an NFS server. + +`snapshot` mode:: + +This mode uses the snapshotting facilities of the underlying +storage. First, the container will be suspended to ensure data consistency. +A temporary snapshot of the container's volumes will be made and the +snapshot content will be archived in a tar file. Finally, the temporary +snapshot is deleted again. + +NOTE: `snapshot` mode requires that all backed up volumes are on a storage that +supports snapshots. Using the `backup=no` mountpoint option individual volumes +can be excluded from the backup (and thus this requirement). + +NOTE: bind and device mountpoints are skipped during backup operations, like +volume mountpoints with the backup option disabled. + Backup File Names ----------------- -Newer versions of vzdump encode the virtual machine type and the +Newer versions of vzdump encode the guest type and the backup time into the filename, for example vzdump-lxc-105-2009_10_09-11_04_43.tar @@ -87,20 +124,29 @@ For details see the corresponding manual pages. Configuration ------------- -Global configuration is stored in '/etc/vzdump.conf'. - - tmpdir: DIR - dumpdir: DIR - storage: STORAGE_ID - mode: snapshot|suspend|stop - bwlimit: KBPS - ionize: PRI - lockwait: MINUTES - stopwait: MINUTES - size: MB - maxfiles: N - script: FILENAME - exclude-path: PATHLIST +Global configuration is stored in '/etc/vzdump.conf'. The file uses a +simple colon separated key/value format. Each line has the following +format: + + OPTION: value + +Blank lines in the file are ignored, and lines starting with a '#' +character are treated as comments and are also ignored. Values from +this file are used as default, and can be overwritten on the command +line. + +We currently support the following options: + +include::vzdump.conf.5-opts.adoc[] + + +.Example 'vzdump.conf' Configuration +---- +tmpdir: /mnt/fast_local_disk +storage: my_backup_storage +mode: snapshot +bwlimit: 10000 +---- Hook Scripts ------------ @@ -113,29 +159,30 @@ directory ('vzdump-hook-script.pl'). File Exclusions --------------- -First, this option is only available for container backups. 'vzdump' -skips the following files with option `--stdexcludes` +NOTE: this option is only available for container backups. + +'vzdump' skips the following files by default (disable with the option +`--stdexcludes 0`) - /var/log/?* /tmp/?* /var/tmp/?* /var/run/?*pid -Or you can manually specify exclude paths, for example: +You can also manually specify (additional) exclude paths, for example: # vzdump 777 --exclude-path /tmp/ --exclude-path '/var/foo*' (only excludes tmp directories) Configuration files are also stored inside the backup archive -(`/etc/vzdump/`), and will be correctly restored. +(in `./etc/vzdump/`) and will be correctly restored. Examples -------- -Simply dump VM 777 - no snapshot, just archive the VM private area and +Simply dump guest 777 - no snapshot, just archive the guest private area and configuration files to the default dump directory (usually -'/var/liv//vz/dump/'). +'/var/lib/vz/dump/'). # vzdump 777 @@ -143,27 +190,27 @@ Use rsync and suspend/resume to create a snapshot (minimal downtime). # vzdump 777 --mode suspend -Backup all VMs and send notification mails to root and admin. +Backup all guest systems and send notification mails to root and admin. # vzdump --all --mode suspend --mailto root --mailto admin -Use snapshot mode (no downtime). +Use snapshot mode (no downtime) and non-default dump directory. # vzdump 777 --dumpdir /mnt/backup --mode snapshot -Backup more than one VM (selectively) +Backup more than one guest (selectively) # vzdump 101 102 103 --mailto root -Backup all VMs excluding VM 101 and 102 +Backup all guests excluding 101 and 102 # vzdump --mode suspend --exclude 101,102 -Restore a container to a new VM 600 +Restore a container to a new CT 600 # pct restore 600 /mnt/backup/vzdump-lxc-777.tar -Restore a Qemu/KVM machine to VM 601 +Restore a QemuServer VM to VM 601 # qmrestore /mnt/backup/vzdump-qemu-888.vma 601