Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.



Клонирование/резервное копирование/восстановление OpenVZ с использованием vzdump

Рубрика: Виртуализация
Метки: | |
Пятница, 28 ноября 2008 г.
Просмотров: 17422
Подписаться на комментарии по RSS

vzdump это утилита для резервного копирования и восстановления виртуальных машин OpenVZ. В данном руководстве описывается как вы можете проводить процедуру клонирования, резервного копирования и восстановления виртуальных машин с использованием vzdump.

 

1 Предварительные замечания

В данной руководстве я использую два сервера OpenVZ:

  • server1.example.com: IP 192.168.0.100
  • server2.example.com: IP 192.168.0.101

Я запущу виртуальную машину с именем 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 - в этом случае мы можем запустить обе машины (оригинальную на сервере server1.example.com и клонированную на сервере server2.example.com) одновременно.

 

2 Подготавливаем сервера OpenVZ

Для начала нам необходимо установить vzdump и rsync с зависимостями. В Debian выполните следующую команду:

apt-get install vzdump rsync

 

3 Creating A Backup Of A VM

На сервере server1.example.com я хочу создать резервную копию своей виртуальной машины с VEID 102. Просмотрите

man vzdump

для того чтобы узнать как использовать vzdump.

Для резервного копирования всех виртуальных машин на сервере используется приблизительно такая команда:

vzdump --compress --dumpdir /home/backup --stop --all

--compress означает: сжимать dump файл (в результате получим .tgz).

--dumpdir указывает директорию в которой будет размещен дамп. Если вы не указывали dumpdir, по умолчанию в зависимости от дистрибутива будет использоваться /vz/dump или /var/lib/vz/dump.

--stop останавливает виртуальные машины, создает бэкап и запускает их опять.. Ваши виртуальные машины будут недоступны несколько минут если вы используете эту опцию. Более быстрым решенимем будет использовать...

--suspend: данная команда приостанавливает VM; после этого виртуальная машина копируется с использованием rsync в временную директорию. Виртуальная машина возвращается в исходное состояние, причем время её недоступности было практически минимальным по сравнению с остановкой командой --stop. После этого делается дамп с использованием копии виртуальной машины из временной директории.

--all создает дамп все доступный виртуальных машин. Если вам необходимо сделать дамп определенной машины, замените опцию --all на VEID нужной виртуальной машины.

Для создания дампа вашей виртуальной машины 102 в директории /home/backup и остановки виртуальной машины используйте команду:

vzdump --compress --dumpdir /home/backup --stop 102

Для создания дампа в директории по умолчанию:

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#

Тоже самое, но с использованием команды --suspend

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 succesfully
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/

... вы должны увидеть файлы .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:

scp /vz/dump/vzdump-102.tgz root@192.168.0.101:/home

 

4 Восстанавливаем виртуальную машину

На сервере server2.example.com вы можете восттановить ваши виртуальные машины следующей командой...

vzdump --restore /home/vzdump-102.tgz 250

... где 250 это уникальный идентификатор восстановленной виртуальной машины.

Если вы не хотите изменять настройки виртуальной машины (к примеру 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 250 

Постовой

Фонд «Социальные проекты» организует для вас любые виды некоммерческой рекламы

Не опоздайте купить таунхаус в элитном поселке "Березки".

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Комментариев: 2

  1. дмитрий | 2011-05-04 в 14:22:03

    отличный мануал, спасибо.

  2. Кирилл | 2011-11-05 в 21:29:19

    подскажите при попытке сделать dump получаю данную ошибку

    http://shot.photo.qip.ru/101qrVQ.jpg

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)