[Users] Backing up ploop-based containers
Dmitry Kopytov
kopytov at webzilla.com
Sat Jun 29 09:25:38 EDT 2013
On Fri, Mar 22, 2013 at 10:35:26AM +0400, Andrew Vagin wrote:
> Below you can find my example:
>
> A list of ploop files before backing up.
> # ls -l /vz/private/3333/root.hdd/
> drwx------ 4 root root 4096 Oct 8 06:52 cache-private
> drwxr-xr-x 2 root root 4096 Oct 8 06:51 cache-root
> -rw-r--r-- 1 root root 827 Mar 22 09:57 DiskDescriptor.xml
> -rw------- 1 root root 0 Oct 8 06:51 DiskDescriptor.xml.lck
> -rw------- 1 root root 10738466816 Mar 22 09:57 root.hds
> drwx------ 2 root root 4096 Mar 22 09:57 root.hds.mnt
> drwxr-xr-x 3 root root 4096 Oct 8 06:52 templates
>
> Create a snapshot:
> # vzctl snapshot 3333
> Creating snapshot {58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59}
> Creating delta /vz/private/3333/root.hdd/root.hds.{fb865531-cf3d-4d24-ba02-78d93a9659eb} bs=2048 size=20971520 sectors
>
> # ls -l /vz/private/3333/root.hdd/
> total 10502168
> drwx------ 4 root root 4096 Oct 8 06:52 cache-private
> drwxr-xr-x 2 root root 4096 Oct 8 06:51 cache-root
> -rw-r--r-- 1 root root 1168 Mar 22 10:01 DiskDescriptor.xml
> -rw------- 1 root root 0 Oct 8 06:51 DiskDescriptor.xml.lck
> -rw------- 1 root root 10738466816 Mar 22 09:57 root.hds
> -rw------- 1 root root 9437184 Mar 22 10:01 root.hds.{fb865531-cf3d-4d24-ba02-78d93a9659eb}
> drwx------ 2 root root 4096 Mar 22 09:57 root.hds.mnt
> drwxr-xr-x 3 root root 4096 Oct 8 06:52 templates
>
> Now you can see a new file
> root.hds.{fb865531-cf3d-4d24-ba02-78d93a9659eb}. It's a new delta,
> where the ploop saves all new blocks. This file should be skipped
> during back up. root.hds will not be changed and it contains all
> blocks before snapshot.
>
> Create a reserve copy
> # tar -pczf /vz/backup.tar.gz -C /vz/private/3333 . --exclude='root.hds.{fb865531-cf3d-4d24-ba02-78d93a9659eb}'
Hi Andrew!
It seems that "vzctl snapshot-switch" now needs a delta file to be exist
(but why?). If a delta skipped during back up then you will have this
error:
> Restore from the reserve copy
> # tar -xzf /vz/backup.tar.gz -C /vz/private/3333 .
> # vzctl snapshot-switch 3333 --id '{58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59}'
Switching to snapshot {58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59}
Storing /vz/private/3333/Snapshots.xml.tmp
Opening delta /vz/private/3333/root.hdd/root.hdd.{fb865531-cf3d-4d24-ba02-78d93a9659eb}
Error in open_delta_simple (delta_read.c:127): open /vz/private/3333/root.hdd/root.hdd.{fb865531-cf3d-4d24-ba02-78d93a9659eb}: No such file or directory
Failed to switch to snapshot {58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59}
So a container will fail to mount and start...
As a workaround it is possible to put any other delta file there. For
example:
# vzctl snapshot 3334
Creating snapshot {e3483596-a2b8-47d0-a8d9-29e04e2c86fe}
Storing /vz/private/3334/Snapshots.xml.tmp
Setting up checkpoint...
suspend...
get context...
Checkpointing completed successfully
Storing /vz/private/3334/root.hdd/DiskDescriptor.xml.tmp
Creating delta /vz/private/3334/root.hdd/root.hdd.{6adaf97d-b511-47c7-9902-0a58c41d8f0c} bs=2048 size=104857600 sectors v1
Creating snapshot dev=/dev/ploop12530 img=/vz/private/3334/root.hdd/root.hdd.{6adaf97d-b511-47c7-9902-0a58c41d8f0c}
ploop snapshot {e3483596-a2b8-47d0-a8d9-29e04e2c86fe} has been successfully created
Setting up checkpoint...
join context..
dump...
Checkpointing completed successfully
Resuming...
Snapshot {e3483596-a2b8-47d0-a8d9-29e04e2c86fe} has been successfully created
# cp /vz/private/3334/root.hdd/root.hdd.{6adaf97d-b511-47c7-9902-0a58c41d8f0c} /vz/private/3333/root.hdd/root.hdd.{fb865531-cf3d-4d24-ba02-78d93a9659eb}
# vzctl snapshot-delete 3334 --id e3483596-a2b8-47d0-a8d9-29e04e2c86fe
Now you can switch a restored container.
# vzctl snapshot-switch 3333 --id 58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59
Switching to snapshot {58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59}
Storing /vz/private/3333/Snapshots.xml.tmp
Opening delta /vz/private/3333/root.hdd/root.hdd.{fb865531-cf3d-4d24-ba02-78d93a9659eb}
Storing /vz/private/3333/root.hdd/DiskDescriptor.xml.tmp
Creating delta /vz/private/3333/root.hdd/root.hdd.{0f6a3e7b-b2a1-433b-93f8-c58854e27d61} bs=2048 size=104857600 sectors v1
Removing /vz/private/3333/root.hdd/root.hdd.{fb865531-cf3d-4d24-ba02-78d93a9659eb}
ploop snapshot has been successfully switched
Container has been successfully switched to another snapshot
And delete a delta:
# vzctl snapshot-delete 3333 --id '58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59'
Deleting snapshot {58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59}
Storing /vz/private/3333/Snapshots.xml.tmp
Opening delta /vz/private/3333/root.hdd/root.hdd.{0f6a3e7b-b2a1-433b-93f8-c58854e27d61}
Opening delta /vz/private/3333/root.hdd/root.hdd
Storing /vz/private/3333/root.hdd/DiskDescriptor.xml
Removing /vz/private/3333/root.hdd/root.hdd.{0f6a3e7b-b2a1-433b-93f8-c58854e27d61}
ploop snapshot {58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59} has been successfully merged
Snapshot {58b51034-0bd9-4d5f-b6d5-7f5fdde8ad59} has been successfully deleted
--
Dmitry Kopytov, Fozzy System Administrator
kopytov at webzilla.com | http://www.webzilla.com/ | http://fozzy.com/
More information about the Users
mailing list