Management and Repository for FreeBSD Jails

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

Снапшоты (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)