ovz backup & checkpointing [message #7280] |
Tue, 10 October 2006 06:03 |
enpx
Messages: 50 Registered: October 2006
|
Member |
|
|
Здраствуйте!
Как правильно выполнять бэкап VE? Вот тут http://forum.openvz.org/index.php?t=msg&goto=1888& предлагают tar & rsync - как-то слишком грубо. После прочтения вот этого http://wiki.openvz.org/Checkpointing_and_live_migration решил сделать так:
[root@m0 ~]# vzctl chkpnt 101 --suspend
Setting up checkpoint...
suspend...
get context...
Checkpointing completed succesfully
[root@m0 ~]# vzctl chkpnt 101 --dump --dumpfile 101.dump
Setting up checkpoint...
join context..
dump...
Can not dump VE: Device or resource busy
unsupported netdevice eth2
Checkpointing failed
[root@m0 ~]# ls -l 101.dump
-rw------- 1 root root 3424 Oct 10 11:36 101.dump
В VE проброшена сетевая карта eth2 с помощью --netdev_add. После ее удаления ничего не изменилось.
Создал новый VE и проделал то же:
[root@m0 ~]# vzctl create 103 --ostemplate centos-4-i386-minimal --config vps.basic
Creating VE private area: /var/lib/vz/private/103
Performing postcreate actions
VE private area was created
[root@m0 ~]# vzctl start 103
Starting VE ...
VE is mounted
Setting CPU units: 1000
VE start in progress...
[root@m0 ~]# vzctl enter 103
entered into VE 103
...
[root@m0 ~]# vzctl chkpnt 103 --suspend
Setting up checkpoint...
suspend...
get context...
Checkpointing completed succesfully
[root@m0 ~]# vzctl chkpnt 103 --dump --dumpfile 103.dump
Setting up checkpoint...
join context..
dump...
Can not dump VE: Invalid argument
page without mapping at 00dd0000@18768
dump_one_vma: funkey page
Checkpointing failed
В чем дело?
|
|
|
|
Re: ovz backup & checkpointing [message #7285 is a reply to message #7284] |
Tue, 10 October 2006 09:04 |
Andrey Mirkin
Messages: 193 Registered: May 2006
|
Senior Member |
|
|
enpx wrote on Tue, 10 October 2006 04:57 | Прочитал http://bugzilla.openvz.org/show_bug.cgi?id=203, сделал как предложено, в результате получил дамп размером 512K:
[root@m0 ~]# vzctl chkpnt 103 --suspend
Setting up checkpoint...
suspend...
get context...
Checkpointing completed succesfully
[root@m0 ~]# vzctl chkpnt 103 --dump --dumpfile 103.dump
Setting up checkpoint...
join context..
dump...
Checkpointing completed succesfully
[root@m0 ~]# du 103.dump
512K 103.dump
Что бы это могло значить?
|
Это значит, что дамп VPS (процессы, их память, другие кернельные структуры и т.д.) занимает 512 Кб. Если в VPS было мало процессов, то это нормально.
В этот дамп не попадает файловая система, ее надо сохранять (например, при помощи tar'а) отдельно.
Andrey Mirkin
|
|
|
|
|
Re: ovz backup & checkpointing [message #7291 is a reply to message #7287] |
Tue, 10 October 2006 09:42 |
enpx
Messages: 50 Registered: October 2006
|
Member |
|
|
Quote: |
Почему грубо? Для бэкапа файловой системы этого достаточно.
|
Мы рискуем получить несогласованный бэкап, в котором одни файлы были прочитаны раньше и попали в бэкап не в таком виде, в каком они были к моменту окончания бэкапа - для файлов СУБД, например, это может быть проблемой. Для LVM я использовал снапшоты, чтобы этого избежать.
Правильно ли я понимаю, что для получить согласованный бэкап можно так:
1. делаем suspend и chkpnt
2. сжимаем var/lib/vz/private/$VEID и откладываем в сторонку вместе с дампом
3. делаем resume
При необходимости восстановить VE из бэкапа мы:
1. делаем resume
2. на место var/lib/vz/private/$VEID переносим то, что отложили
3. делаем vzctl restore $VEID --undump --dumpfile <path>
И работаем с тем что было до бэкапа, верно?
Правильно ли я также понимаю, что VE, внутри которых не происходит интенсивных модификаций ФС (или согласованность не важна) проще бэкапить на ходу с помощью tar/cpio/rsync?
Если внутри VE живет, скажем, PostgreSQL, что будет правильнее: бэкапить его с помощью suspend/chkpnt/copy или бэкапить БД средствами самого PostgreSQL, а все прочее с помощью tar/cpio/rsync?
|
|
|
Re: ovz backup & checkpointing [message #7292 is a reply to message #7291] |
Tue, 10 October 2006 10:14 |
Andrey Mirkin
Messages: 193 Registered: May 2006
|
Senior Member |
|
|
enpx wrote on Tue, 10 October 2006 05:42 |
Правильно ли я понимаю, что для получить согласованный бэкап можно так:
1. делаем suspend и chkpnt
2. сжимаем var/lib/vz/private/$VEID и откладываем в сторонку вместе с дампом
3. делаем resume
|
1а. делаем vzctl chkpnt VEID --suspend
1б. делаем vzctl chkpnt VEID --dump --dumpfile FILE
Впс заморожена, поэтому мы мы можем делать:
2. сжимаем var/lib/vz/private/$VEID и откладываем в сторонку вместе с дампом
3. делаем vzctl chkpnt VEID --resume
Quote: |
При необходимости восстановить VE из бэкапа мы:
1. делаем resume
2. на место var/lib/vz/private/$VEID переносим то, что отложили
3. делаем vzctl restore $VEID --undump --dumpfile <path>
|
1. на место var/lib/vz/private/$VEID переносим то, что отложили
2. делаем vzctl restore $VEID --undump --dumpfile <path>
3. делаем vzctl restore $VEID --resume
Quote: |
И работаем с тем что было до бэкапа, верно?
|
Да, все верно.
Quote: |
Правильно ли я также понимаю, что VE, внутри которых не происходит интенсивных модификаций ФС (или согласованность не важна) проще бэкапить на ходу с помощью tar/cpio/rsync?
|
Тут есть свои плюсы - в этом случае вам не надо будет замораживать или останавливать впс, но есть и минусы - несогласованность данных. Выбирайте что для вас важнее и делайте соответсвующим образом
Quote: |
Если внутри VE живет, скажем, PostgreSQL, что будет правильнее: бэкапить его с помощью suspend/chkpnt/copy или бэкапить БД средствами самого PostgreSQL, а все прочее с помощью tar/cpio/rsync?
|
Мы не проводили таких исследований. Попробуйте сделать двумя способами, а потом расскажите нам о результатах. Ваш опыт может пригодится другим.
Удачи!
Andrey Mirkin
|
|
|
|
|
Re: ovz backup & checkpointing [message #38773 is a reply to message #7280] |
Tue, 26 January 2010 09:21 |
Artemiy117
Messages: 11 Registered: January 2010
|
Junior Member |
|
|
Народ, помогите. Ни одни способом сделать бэкап, описанным тут не дали результатов. Вываливается ошибка:
# vzdump --suspend --dumpdir /home/user/backup 004
INFO: Starting new backup job - vzdump --suspend --dumpdir /home/user/backup 004
Use of uninitialized value $vmtype in concatenation (.) or string at /usr/sbin/vzdump line 1308.
INFO: Starting Backup of VM 004 ()
Use of uninitialized value $dir in -d at /usr/sbin/vzdump line 763.
Use of uninitialized value $dir in concatenation (.) or string at /usr/sbin/vzdump line 763.
ERROR: Backup of VM 004 failed - directory '' does not exist
# vzdump --dumpdir /home/user/backup/vps4 --snapshot 004
INFO: Starting new backup job - vzdump --dumpdir /home/user/backup/vps4 --snapshot 004
Use of uninitialized value $vmtype in concatenation (.) or string at /usr/sbin/vzdump line 1308.
INFO: Starting Backup of VM 004 ()
Use of uninitialized value $dir in -d at /usr/sbin/vzdump line 763.
Use of uninitialized value $dir in concatenation (.) or string at /usr/sbin/vzdump line 763.
ERROR: Backup of VM 004 failed - directory '' does not exist
Ткните пожалуйста, где грабли?
|
|
|