Как правильно делать Migration на Parallels Virtuozzo Containers 4.0 под Linux

Обоснованно на личном опыте.

  1. Первое правило хорошего админа – делаем Backup.
  2. Рекомендую. Обновить virtuozzo на обеих серверах.
  3. Обязательно! Обновить Контейнер и Template для него.
  4. Чтобы не было мучительно больно делаем Clone для Контейнера (необходимо свободное место на диске исходного сервера).
  5. Делаем Migration для клона и проверяем всё ли нормально заработало.
  6. И только потом делаем Migration для самого контейнера.

Так бывает, что некоторые системные файл в контейнере становятся недоступными. Нету этих файлов и в бакапах. Зато есть в Template.

Новый формат шаблонов под Linux который появился в четвёртой версии Виртуозы: EZ Templates (Дока) подразумевает, что common пакеты будут представлены во всех производных контейнерах в виде ссылки на файлы из Шаблона.

Файлы эти хранятся в виде кеша в папке /vz/template/cache/

Только вот Migration необходимые файлы из Шаблона не переместит. Как пишут в форуме на http://forum.parallels.com/ это какой-то неведомый баг в самом Migration который тянется ещё из бох знает какой версии и так быть не должно. Но оно так.

Как результат наша перемещённая WM наполнена битыми ссылками и кучей нерабочих сервисов. Не помогает ни обновление самого контейнера, ни обновление Шаблонов. Не получилось у меня починить такую VM и другими способами. Дело в том, что такие «волшебные файлы» удалить не получиться.

Немного из результата выполнения команды ls -la /etc/apache2/mods-available/
.
.
ls: cannot access /etc/apache2/mods-available/negotiation.load: No such file or directory
ls: cannot access /etc/apache2/mods-available/dir.load: No such file or director
total 32
drwxr-xr-x 2 root root 4096 2009-11-14 13:56 .
drwxr-xr-x 7 root root 1404 2010-01-28 14:13 ..
.
.
?????????? ? ? ? ? ? deflate.conf
?????????? ? ? ? ? ? deflate.load
-rw-r--r-- 1 root root 122 2008-10-01 18:32 dir.conf
?????????? ? ? ? ? ? dir.load
-rw-r--r-- 1 root root 604 2008-10-01 18:32 disk_cache.conf

Решение проблемы с рассинхронизации шаблонов

Перед перемещением контейнера (можно и после но время простоя увеличиться) надо синхронизировать Шаблоны контейнеров.
На стороне виртуозы с которой переносим контейнер, выполняем:

# rsync -avz -e ssh /vz/template/debian DESTANETION_IP:/vz/template

  • пути заменить на свои
  • DESTANETION_IP – заменить на адрес второго сервера

На второй виртуозе выполняем:
# vzpkg update cache debian-4.0-x86_64
debian-4.0-x86_64 заменить на имя вашего шаблона.

Сначала проверяем на клоне.
Потом перемещаем боевой сервер.