stoney conductor: VM Backup: Difference between revisions
Jump to navigation
Jump to search
(→Retain) |
|||
| Line 11: | Line 11: | ||
== Snapshot == | == Snapshot == | ||
# Create a snapshot with state: | # Create a snapshot with state: | ||
#* Save the state of VM <code>vm-001</code> to the file <code>vm-001.state</code>: <syntaxhighlight lang="bash">virsh save vm-001 vm-001.stat</syntaxhighlight> | #* Save the state of VM <code>vm-001</code> to the file <code>vm-001.state</code> (This file can either be created on a RAM-Disk or directly in the retain location. This example however saves the file to a RAM-Disk): <syntaxhighlight lang="bash">virsh save vm-001 /path/to/ram-disk/vm-001.stat</syntaxhighlight> | ||
#* After this command, the VMs CPU and memory state is represented by the file <code>vm-001.state</code> and the VM <code>vm-001</code> is shut down. | #* After this command, the VMs CPU and memory state is represented by the file <code>/path/to/ram-disk/vm-001.state</code> and the VM <code>vm-001</code> is shut down. | ||
# Move the disk image <code>/path/to/images/vm-001.qcow2</code> to the retain location: <syntaxhighlight lang="bash">mv /path/to/images/vm-001.qcow2 /path/to/retain/vm-001.qcow2</syntaxhighlight> | # Move the disk image <code>/path/to/images/vm-001.qcow2</code> to the retain location: <syntaxhighlight lang="bash">mv /path/to/images/vm-001.qcow2 /path/to/retain/vm-001.qcow2</syntaxhighlight> | ||
#* '''Please note:''' The retain directory (<code>/path/to/retain/</code>) '''has to be''' on the same partition as the images directory (<code>/path/to/images/</code>). This will make the <code>mv</code> operation very fast (only renaming the inode). So the downtime (remember the VM <code>vm-001</code> is shut down) is as short as possible. | #* '''Please note:''' The retain directory (<code>/path/to/retain/</code>) '''has to be''' on the same partition as the images directory (<code>/path/to/images/</code>). This will make the <code>mv</code> operation very fast (only renaming the inode). So the downtime (remember the VM <code>vm-001</code> is shut down) is as short as possible. | ||
# Create the new (empty) disk image with the old as backing store file: < | # Create the new (empty) disk image with the old as backing store file: <syntaxhighlight lang="bash">qemu-img create -f qcow2 -b /path/to/retain/vm-001.qcow2 /path/to/images/vm-001.qcow2</syntaxhighlight> | ||
# | # Set correct ownership and permission to the newly created image: | ||
# | #* <syntaxhighlight lang="bash">chown root:vm-storage /path/to/images/vm-001.qcow2</syntaxhighlight> | ||
# | #* <syntaxhighlight lang="bash">chmod 660 /path/to/images/vm-001.qcow2</syntaxhighlight> | ||
# | # Restore the VMs <code>vm-001</code> from its saved state: <syntaxhighlight lang="bash">virsh restore /path/to/ram-disk/vm-001.state</syntaxhighlight> | ||
#* '''Please note:''' After this operation we have a consistent backup for the VM <code>vm-001</code>: | |||
#** The file <code>/path/to/ram-disk/vm-001.state</code> contains the CPU and memory state of VM <code>vm-001</code> at time T<sub>1</sub> | |||
#** The file <code>/path/to/retain/vm-001.qcow2</code> contains the disk state of VM <code>vm-001</code> at time T<sub>1</sub> | |||
== Merge == | == Merge == | ||
Revision as of 13:59, 22 October 2013
Overview
This page describes how the VMs and VM-Templates are backed-up inside the stoney cloud.
Basic idea
The main idea to backup a VM or a VM-Template is, to divide the task into three subtasks:
- Snapshot: Save the machines state (CPU, Memory and Disk)
- Merge: Merge the Disk-Snapshot with the live-image
- Retain: Export the snapshot files
A more detailed and technical description for these three sub-processes can be found in the following sub-chapters.
Snapshot
- Create a snapshot with state:
- Save the state of VM
vm-001to the filevm-001.state(This file can either be created on a RAM-Disk or directly in the retain location. This example however saves the file to a RAM-Disk):virsh save vm-001 /path/to/ram-disk/vm-001.stat
- After this command, the VMs CPU and memory state is represented by the file
/path/to/ram-disk/vm-001.stateand the VMvm-001is shut down.
- Save the state of VM
- Move the disk image
/path/to/images/vm-001.qcow2to the retain location:mv /path/to/images/vm-001.qcow2 /path/to/retain/vm-001.qcow2
- Please note: The retain directory (
/path/to/retain/) has to be on the same partition as the images directory (/path/to/images/). This will make themvoperation very fast (only renaming the inode). So the downtime (remember the VMvm-001is shut down) is as short as possible.
- Please note: The retain directory (
- Create the new (empty) disk image with the old as backing store file:
qemu-img create -f qcow2 -b /path/to/retain/vm-001.qcow2 /path/to/images/vm-001.qcow2
- Set correct ownership and permission to the newly created image:
chown root:vm-storage /path/to/images/vm-001.qcow2
chmod 660 /path/to/images/vm-001.qcow2
- Restore the VMs
vm-001from its saved state:virsh restore /path/to/ram-disk/vm-001.state
- Please note: After this operation we have a consistent backup for the VM
vm-001:- The file
/path/to/ram-disk/vm-001.statecontains the CPU and memory state of VMvm-001at time T1 - The file
/path/to/retain/vm-001.qcow2contains the disk state of VMvm-001at time T1
- The file
- Please note: After this operation we have a consistent backup for the VM
Merge
- Merge the disk images my-vm.qcow2 and my-vm-snap.qcow2 to a single image:
virsh qemu-monitor-command my-vm --hmp "block_stream drive-virtio-disk0".
Retain
- Move the files to the backup location:
- Move the old disk image to the backup location and add the date as suffix to not overwrite older backups:
mv my-vm-backup.qcow2 /path/to/backup/my-vm-backup.qcow2.date - Move the state file to the backup location and add the date as suffix to not overwrite older backups:
mv my-vm.state /path/to/backup/my-vm.state.date
- Move the old disk image to the backup location and add the date as suffix to not overwrite older backups: