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. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

Снапшоты (zfs-only)

Команда jsnapshot

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

Выводит список, создает, удаляет и откатывает файловые снэпшоты для клетки, если нода запущена на файловой системе ZFS и zfsfeat в файле nc.inventory установлена в 1. Через параметр mode указывается, что именно необходимо выполнить. Возможные варианты:

  • list — вывести список снапшотов для указанной клетки
  • create — создать снапшот для указанной клетки
  • destroy — удалить снапшот для указанной клетки
  • destroyall — удалить все снапшоты для указанной клетки
  • clone — клонировать снашпот для указанной клетки
  • rollback — откатить снапшот для указанной клетки

Дополнительные параметры:

  • jname — для какого jail выполняется действие
  • snapname — указать имя снапшота

Следует иметь ввиду, что снапшоты имеют древовидную структуру. Тоесть, если вы создали последовательно снапшоты: 1,2,3,4 и откатились на снапшот 2, то снапшотов 3 и 4 не будет, поскольку по отношению ко времени создания снапшота 2 они были созданы в будущем. Кроме произвольного и уникального имени снапшота, при создании вы можете указать snapname=gettimeofday. В этом случае, система автоматически в качестве имени подставит timestamp от текущего времени. При выводе списка снапшотов, вы можете пользоваться модификаторами для уточнения к какому jail вы хотите увидеть снапшоты, а также кастомизировать выводимые поля через аргумент display=. Пример:

создаем snapshot с именем gromozeka для клетки jail1:

			% cbsd jsnapshot mode=create jname=jail1 snapname=gromozeka
		

создаем snapshot с именем zelepuka для клетки jail1:

			% cbsd jsnapshot mode=create jname=jail1 snapname=zelepuka
		

Запустим jail1, выполним какие-либо модификации, остановим:

			% cbsd jstart jail1
			..
			% cbsd jexec jname=jail1 cp /bin/date /root
			% cbsd jexec jname=jail1 file -s /root/date
			/root/date: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 9.0 (900506), stripped
			% cbsd jstop jail1
			..
		

Откатим jail1 на состояние, когда был создан снапшот zelepuka:

			% cbsd jsnapshot mode=rollback snapname=zelepuka jname=jail1
			% cbsd jstart jail1
			...
			% cbsd jexec jname=jail1 file -s /root/date
			/root/date: ERROR: cannot open `/root/date' (No such file or directory)