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