Как правильно делать Migration на Parallels Virtuozzo Containers 4.0 под Linux
Обоснованно на личном опыте.
- Первое правило хорошего админа – делаем Backup.
- Рекомендую. Обновить virtuozzo на обеих серверах.
- Обязательно! Обновить Контейнер и Template для него.
- Чтобы не было мучительно больно делаем Clone для Контейнера (необходимо свободное место на диске исходного сервера).
- Делаем Migration для клона и проверяем всё ли нормально заработало.
- И только потом делаем 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 заменить на имя вашего шаблона.
Сначала проверяем на клоне.
Потом перемещаем боевой сервер.