OpenVZ · 4 min read · Jan 07, 2026
Клонирование/Резервное копирование/Восстановление ВМ OpenVZ с помощью vzdump
Клонирование/Резервное копирование/Восстановление ВМ OpenVZ с помощью vzdump
Версия 1.0
Автор: Фалко Тимме
vzdump — это утилита для резервного копирования и восстановления ВМ OpenVZ. Этот учебник показывает, как вы можете использовать ее для клонирования, резервного копирования и восстановления виртуальных машин с помощью vzdump.
Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
Я использую два сервера OpenVZ в этом учебнике:
- server1.example.com: IP 192.168.0.100
- server2.example.com: IP 192.168.0.101
(Оба используют Debian Etch и настроены в соответствии с этим учебником: Установка и использование OpenVZ на Debian Etch - но это также работает с любой другой дистрибуцией.)
Я запускаю виртуальную машину с именем хоста test.example.com, IP-адресом 192.168.0.102 и VEID 102 на server1.example.com, и я хочу сделать резервную копию этой машины и восстановить ее на server2.example.com.
Мы можем восстановить ее на server2.example.com без изменений (например, с тем же IP-адресом и именем хоста), но в этом случае мы должны остановить ВМ на server1.example.com, потому что в противном случае IP-адрес и имя хоста будут конфликтовать; второй вариант - восстановить ее на server2.example.com, но изменить некоторые параметры, такие как IP-адрес и имя хоста с помощью команды vzctl set - в этом случае мы можем запустить обе ВМ (оригинальную на server1.example.com и клон на server2.example.com) одновременно. Это отличный метод для клонирования ВМ.
2 Подготовка серверов OpenVZ
Сначала мы должны установить vzdump и rsync, который является зависимостью. На Debian команда выглядит следующим образом:
server1/server2:
apt-get install vzdump rsync 3 Создание резервной копии ВМ
(Эта глава только для server1!)
На server1.example.com я хочу создать резервную копию моей ВМ с VEID 102. Посмотрите на
man vzdumpчтобы узнать, как использовать vzdump.
Чтобы сделать резервную копию всех ВМ на вашем сервере, вы можете использовать что-то вроде
vzdump --compress --dumpdir /home/backup --stop --all–compress означает: сжать файл дампа (в результате получится a.tgz).
–dumpdir указывает каталог, в котором вы хотите сохранить дамп. Если вы не укажете dumpdir, по умолчанию используется /vz/dump или /var/lib/vz/dump (в зависимости от вашей дистрибуции).
–stop останавливает ВМ, создает резервную копию и затем снова запускает ее. Ваша ВМ может быть отключена на несколько минут, если вы используете –stop. Более быстрое решение - использовать…
–suspend: она приостанавливает ВМ; ВМ затем копируется с помощью rsync в временный каталог. ВМ возобновляется сразу после этого, так что она отключена только на несколько секунд, а затем дамп создается с использованием копии во временном каталоге. Я рекомендую использовать этот вариант, если вы не можете позволить себе длительные простои.
Вы также можете опустить –stop и –suspend и сделать дамп работающей ВМ. В большинстве случаев это не вызывает проблем, но возможно, что дамп будет непоследовательным, так что будьте осторожны!
–all создает дамп всех доступных ВМ. Если вы хотите сделать дамп только конкретной ВМ, замените –all на VEID ВМ.
Чтобы создать дамп нашей ВМ 102 в /home/backup и остановить ВМ во время резервного копирования, используйте
vzdump --compress --dumpdir /home/backup --stop 102Чтобы создать дамп в каталоге по умолчанию (/vz/dump или /var/lib/vz/dump), используйте
vzdump --compress --stop 102Вывод может выглядеть следующим образом:
server1:/vz/dump# vzdump –compress –stop 102
INFO: starting backup for VPS 102 (/var/lib/vz/private/102)
INFO: starting first sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp9009
INFO: stopping vps
Stopping container …
Container was stopped
Container is unmounted
INFO: final sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp9009
INFO: restarting vps
Starting container …
Container is mounted
Adding IP address(es): 192.168.0.102
Setting CPU units: 1000
Configure meminfo: 65536
Set hostname: test.example.com
File resolv.conf was modified
Container start in progress…
INFO: vps is online again after 15 seconds
INFO: Creating archive ‘/var/lib/vz/dump/vzdump-102.tgz’ (/var/lib/vz/dump/tmp9009/102)
Total bytes written: 340428800 (325MiB, 11MiB/s)
INFO: backup for VPS 102 finished successful (1.37 minutes)
server1:/vz/dump#
Чтобы не останавливать, а приостановить ВМ, используйте
vzdump --compress --suspend 102Это пример вывода:
server1:~# vzdump –compress –suspend 102
INFO: starting backup for VPS 102 (/var/lib/vz/private/102)
INFO: starting first sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp10842
INFO: suspend vps
Setting up checkpoint…
suspend…
get context…
Checkpointing completed successfully
INFO: final sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp10842
INFO: resume vps
Resuming…
INFO: vps is online again after 4 seconds
INFO: Creating archive ‘/var/lib/vz/dump/vzdump-102.tgz’ (/var/lib/vz/dump/tmp10842/102)
Total bytes written: 340428800 (325MiB, 24MiB/s)
INFO: backup for VPS 102 finished successful (1.57 minutes)
server1:~#
После резервного копирования посмотрите в каталог дампов…
ls -l /vz/dump/… и вы должны увидеть файл a.tgz:
server1:~# ls -l /vz/dump/
total 147864
-rw-r–r– 1 root root 1170 2008-11-20 17:40 vzdump-102.log
-rw-r–r– 1 root root 151249685 2008-11-20 17:40 vzdump-102.tgz
server1:~#
Теперь вы можете скопировать дамп на другой сервер OpenVZ, например, с помощью scp (это копирует /vz/dump/vzdump-102.tgz в каталог /home на server2.example.com):
scp /vz/dump/vzdump-102.tgz [email protected]:/home 4 Восстановление ВМ
(Эта глава только для server2!)
На server2.example.com вы теперь можете восстановить ВМ следующим образом…
vzdump --restore /home/vzdump-102.tgz 250… где 250 - это новый VEID восстановленной ВМ - вы можете использовать любой VEID, который не используется на server2.example.com - вы даже можете снова использовать 102, если он не используется на server2.example.com.
Если вы не хотите изменять настройки ВМ (например, IP-адрес, имя хоста), вы можете запустить ее сейчас, но, пожалуйста, убедитесь, что оригинальная ВМ остановлена на server1.example.com, потому что в противном случае IP-адреса будут конфликтовать:
vzctl start 250Если вы хотите запустить обе ВМ (оригинальную и клон) одновременно, вы должны изменить IP-адрес и имя хоста клона перед его запуском.
Чтобы установить новое имя хоста, выполните что-то вроде этого:
vzctl set 250 --hostname test2.example.com --saveЧтобы установить новый IP-адрес, сначала мы должны удалить оригинальный…
vzctl set 250 --ipdel 192.168.0.102 --save… а затем установить новый:
vzctl set 250 --ipadd 192.168.0.250 --save После этого мы можем запустить клон:
vzctl start 2505 Ссылки
- OpenVZ: http://wiki.openvz.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.