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

Команда jclone

			% cbsd jclone
		
			% cbsd jrclone
		

Описание:

Выполняет клонирование jail в новый. В качестве обязательных аргументов, указывается источник/оригинал клетки через old,новое имя через аргумент new и FQDN (hostname) через host_hostname. В качестве необязательного — новые ip адреса через ip4_addr (если IP несколько, адреса указываются через запятую без пробелов)

Внимание: Если вы используете ZFS-based систему, CBSD будет использовать ZFS клонирование по-умолчанию!

ZFS клонирование - это мгновенная операция независимо от объемов (спасибо Copy-on-write), но накладывает некоторые ограничения - вы будете записимы от наличия родительского снапшота.

Если вы попробуете удалить родительское окружение,, CBSD автоматически выполнит команду zfs promote

Вы можете контроллировать это поведение через аргумент clone_method=. Либо можете выставить его глобально через rclone.conf и bclone.conf, переопределив настройку с 'auto' на 'rsync':

		% echo 'clone_method="rsync"' > ~cbsd/etc/rclone.conf
		% echo 'clone_method="rsync"' > ~cbsd/etc/bclone.conf
		

Кастомный метод клонирования данных jail

Вы можете создать собственный метод клонирования данных через выполняемый скрипт(ы) в каталоге $workdir/jail-system/$jname/clone-local.d.

Например, создав к каталоге $workdir/jail-system/$jname/clone-local.d/ скрипт с именем myclone.sh и содержимым вида:

			#!/bin/sh
			echo "My custom clone for: $jname -> $newjname
			echo "${data} -> ${newdata}"
			/bin/cp -Ra ${data} ${newdata}
		

Вы заставите CBSD выполнять ваш скрипт в качестве метода клонирования данных

Внимание: Этот скрипт должен завершаться с кодом 0 в случае успеха!

Обратите внимание, что в скрипте доступны стандартные переменные CBSD variables, в дополнение к которым экспортируется переменные: $newjname, $newdata

Зачем это нужно: если в качестве storage вы используете NAS или NFS и имеете на нее доступ, вы можете выполнить клонирование данных средствами NAS или непосредственно на сервере NFS, что значительно увеличит скорость клонирования и уменьшит ненужный трафик. См. Issue #373

Пример: клонирование клетки jail2 в jail3 со сменой имени хоста host_hostname и ip адреса ip4_addr:

			% cbsd jclone old=jail2 new=jail3 host_hostname=jail3.my.domain ip4_addr=10.0.0.22/24