В прошлом посте я описал реализацию схемы разворачивания Jails описаную в haddbook с поправкой на использование ZFS, в этом посте я разовью тему и покажу какие преимущества при этом мы получаем.
Для управления созданием и удалением снапшотов ставим утилиту zfsnap:
По любому на следующий день вы должы наблюдать следующий результат выполнения комманды
Создадим снимок файловой системы .mroot_
Останавливаем джайлы:
Настраиваем резервное копирование
Для него будем использовать механизм ZFS снапшотов.Для управления созданием и удалением снапшотов ставим утилиту zfsnap:
# pkg install zfsnap
параметры работы утилиты задаются в конфигурационном файле /etc/periodic.conf
daily_zfsnap_enable="YES"
#daily_zfsnap_fs="zroot/jails/oldsite"
daily_zfsnap_recursive_fs="zroot/jails"
daily_zfsnap_ttl=1m
daily_zfsnap_delete_enable="YES"
- строчка, относящаяся к zfsnap, включает его выполнение раз в день
- строчка задает список каталогов через пробел для которых делаются снапшоты
- строчка задает список каталогов для рекурсивного создания снапшотов (будут созданы для всех вложенных файловых систем, избавляет от необходимости настраивать каждую индивидуально).
- строка задает время хранения снапшота.
- строка говорит, что необходимо удалять старые.
periodic daily
, но помните что выполнятся все системные скрипты, обычно выполняемые в ночное время или просто подождать до утра.По любому на следующий день вы должы наблюдать следующий результат выполнения комманды
zfs list -t snapshot
Стратегия обновления
Моя стратегия обновления отличается от предложенной в руководстве и базируется на использовании приемов работы с ZFS.Создадим снимок файловой системы .mroot_
zfs snapshot zroot/jails/.mroot@update
на базе снимка создадим клон файловой системы:
zfs clone zroot/jails/.mroot@update zroot/jails/.mroot_
Делаем zroot/jails/.mroot_ основной системой:
zfs promote zroot/jails/.mroot_
В /ets/fstab раскомментируем и редактируем строку:
/jails/.skel /jails/.mroot_/s nullfs rw,noauto 0 0
Монтируем:
mount /jails/.mroot_/s
Делаем chroot:
chroot /jails/.mroot_
обновляем систему:
freebsd-update fetch install
При необходимости обновляем софт, установленный в шаблоне, кстати обращаю внимание что шаблонов может быть много с типовыми конфигурациями виртуалок, для обновления монтируем нужный.Останавливаем джайлы:
service jail2 stop
Отмонтируем файловые системы клеток:
umount /jails/jlroots/test/s
umount /jails/jlroots/test
Удаляем старый rootfs шаблон:
zfs destroy zroot/jails/.mroot
Переименовываем новый:
zfs rename zroot/jails/.mroot_ zroot/jails/.mroot
Монтируем файловые системы и запускаем:
mount /jails/jlroots/test
mount /jails/jlroots/test/s
service jail2 start
Клетка обновлена и работает. Но мы, все равно наблюдаем наличие значительного количества рутинных операций, в следующий раз мы попробуем их автоматизировать.
Комментариев нет:
Отправить комментарий