FreeBSD virtual environment management and repository

2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !

Внимание! Данные страницы описывают CBSD версии 13.0.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

Холодная миграция jail

Команда jcoldmigrate

			% cbsd jcoldmigrate
		
Описание:

cbsd jcoldmigrate выполняет холодную (с отстановкой) миграцию клетки с одной ноды на другую. Параметр node указывает, на какую ноду следует мигрировать клетку. Предварительно, RSA/DSA ключ удаленной ноды должнен быть добавлен через команду cbsd node mode=add, а также, на удаленной ноде должен работать сервис rsyncd cbsdrsync.

По-умолчанию, статус клетки на новой ноде наследуется — если клетка работала, она также будет автоматически запущена на новой ноде. Если клетка не работала — останется в статусе Off. Управлять, какой статус должен быть на удаленной клетке не зависимо от состояния на оригинале, можно через параметр start.

Клетка на первоисточние, после успешного выполнения jcoldmigrate останавливается и переводится в статус Slave. В rc.conf файле клетки на новой ноде остается запись, с какой именно ноды этот jail был мигрирован.

Примечание: миграция происходит в следующие этапы (в процессе выполния, они проходят автоматически и не видны)

  • перенос конфигурационных файлов на удаленную ноду, статус клетки — Slave (cbsd j2prepare)
  • запуск rsync, которая делает полную копию каталога с данными на удаленной ноду (cbsd j2slave)
  • останов клетки (cbsd j2slave)
  • повторный запус rsync, которая должна отработать быстрее первого раза за счет того, меньшее кол-во файлов успело модифицироваться
  • перевод клетки на локальной ноде в статус Slave (cbsd jswmode)
  • перевод клетки на удаленной ноде в статус Master (cbsd rexe + jswmode)
  • если клетка была запущена — запуск клетки на удаленной ноде (cbsd rexe + cbsd jstart)

Пример (выполнить холодную миграцию на ноду netsnap):

			% cbsd jcoldmigrate node=netsnap jname=amp123
		

на сервере netsnap ничего нет:

с сервера cbuilder64 мигрируем клетку amp123 на netsnap:

клетка amp123 на netsnap запущена автоматически: