Ручной импорт виртуальных машин
Возможны следующие варианты импортирования виртуальных машин средствами панели управления:
- импорт из сервера с VMmanager OVZ;
- импорт из сервера со сторонней панелью управления.
Импорт удалённых машин из сервера с VMmanager OVZ
Алгоритм импорта контейнера:
Для переноса контейнера нужны два сервера с установленными и настроенными для корректной работы VMmanager OVZ. На сервер с панелью-приёмником положите публичный ключ сервера-источника. Для этого На сервере источнике выполните команды:
ssh-keygen -t rsa ssh-copy-id -i /root/.ssh/id_rsa.pub root@<IP-адрес сервера>
BASHПояснения<IP-адрес сервера> — адрес сервера-приёмникаСоздайте в базе VMmanager запись о контейнере. Для этого перейдите в панель-приёмник под учётной записью root-пользователя и выполните API-запрос:
https:/ip:1500/vemgr?admdown=off&chratein=1000&chrateout=1000&comments=&cpu=1&cpufreq=1000&domain=domain.com&func=vm.create&hdd=4000&hostnode=1&ip=xxx.xx.xx.x&layout=ploop&mem=512&name=example&numfile=16536&numproc=5000&ostemplate=template&password=*&swapratio=0&user_id=yy&vmnote
BASHПоясненияВ качестве значений параметров запроса укажите значения импортируемого контейнера:
chratein и chrateout — ограничения по входящему и исходящему трафику соответственно.
cpu — количество процессоров.
cpufreq — частота процессора.
domain — доменное имя контейнера.
hdd — объём жёсткого диска.
hostnode — идентификатор узла кластера, на котором будет находиться контейнер.
ip — IP-адрес контейнера.
layout — файловая система контейнера.
mem — объём оперативной памяти.
numfile — ограничение на файловые дескрипторы.
numproc — ограничение на количество процессов.
ostemplate — шаблон операционной системы.
password — пароль.
swapratio — соотношение Swap/Ram.
user_id — идентификатор пользователя, которому будет принадлежать контейнер.
- После запуска запроса в браузере появится окно для подтверждения. В этом окне в конце запроса добавьте &out=xml и нажмите OK. В результате будет создан фиктивный контейнер, который на самом деле не существует на жёстком диске.
- Остановите контейнер на сервер-источнике.
Перенесите конфигурационный файл контейнера. По умолчанию они содержатся в директории /etc/vz/conf. Для переноса выполните на сервере-источнике команду:
rsync -avz /etc/vz/conf/<id.conf> root@<IP-адрес узла кластера>:/etc/vz/conf/<id.conf>
BASHПояснения<IP-адрес узла кластера> — адрес узла кластера, на который будет импортироваться контейнер.
<id.conf> — идентификатор фиктивного контейнера в панели управления (можно посмотреть в интерфейсе).Перенесите контейнер. Для переноса выполните на сервере-источнике команду:
rsync -avz /var/lib/vz/private/<id-old>/ root@<IP-адрес узла кластера>:/var/lib/vz/private/<id>
BASHПояснения<IP-адрес узла кластера> — адрес узла кластера, на который будет импортироваться контейнер.
<id-old> — идентификатор контейнера на сервере-источнике.
<id> — идентификатор фиктивного контейнера.- Измените IP-адрес на сетевом интерфейсе контейнера.
Импорт контейнеров из сервера со сторонней панелью управления
2 варианта импорта контейнеров из серверов со сторонними панелями управления:
- установить VMmanager OVZ локально на сервер-источник;
- установить VMmanager OVZ на отдельный сервер, а сервер-источник подключить в качестве узла кластера.
Алгоритм импорта контейнера:
- Установите VMmanager OVZ локально либо на отдельный сервер.
- Деактивируйте стороннюю панель управления либо деинсталлируйте её.
- Создайте в Vmmanager OVZ объекты:
- Узлы кластера. Подключите все серверы, с которых нужно выполнить импорт.
- Пользователь. Чтобы сделать его владельцем импортируемых виртуальных машин. Иначе для каждого контейнера будет создан свой пользователь.
- Сети. В модуле управления IP-адресами или в IPmanager создайте сети, соответствующие IP-адресам импортируемых контейнеров. Тип сетей — "public".
Запустите импорт локальных контейнеров на узле-приёмнике. При импорте происходит смена идентификаторов контейнеров (CTID):
/usr/local/mgr5/sbin/mgrctl -m vemgr import.local user=user_id elid=CTID hostnode=id|all
BASHПоясненияПараметры функции import.local:
- user [не обязателен] — идентификатор существующего пользователя, который будет являться владельцем всех импортированных контейнеров. Если не задан, то для каждого импортируемого контейнера будет создан свой пользователь. Идентификатор пользователя можно посмотреть в списке пользователей;
- elid [не обязателен] — идентификатор контейнера (CTID). Если задан, будет импортирован только один контейнер. Если не задан — импортируются все контейнеры;
- hostnode [не обязателен] — идентификатор узла кластера (можно посмотреть в списке узлов кластера), с которого необходимо импортировать контейнеры, либо all, если необходимо произвести импорт со всех узлов кластера. Если параметр не указан, то контейнеры импортируются только с локального узла кластера.
Вывод команды должен быть пуст. Также убедитесь в отсутствии ошибок в логе импорта. Результат команды должен быть пуст:
grep "WARNING Skip" /usr/local/mgr5/var/vemgr.log
BASH