Строим Бастилию в XigmaNAS

Apr 30, 2023 23:36

Я несколько дней экспериментировал над расширением bastille, ср предыдущий пост Экскурсия в Бастилию и, надо признаться, ощущение у меня смешанное. Но ставить все же будем.

Ставить можно через расширение OneButton Installer



или напрямую из командной строки (оффорум требует регистрации)
(а) с работой поверх обычных папок
mkdir -p -m 0750 /mnt/Data/extensions/bastille
cd /mnt/Data/extensions/bastille
fetch --no-verify-peer https://raw.githubusercontent.com/JRGTH/xigmanas-bastille-extension/master/bastille-init && chmod +x bastille-init && ./bastille-init && echo "=> Done!"

From [Extensions > Bastille > Maintenance] check the ZFS support box and click Save.

Собственно выше - краткое описание, которого должно хватить. Ниже - моё, вероятно, излишне подробное и обильно комментированное.

(б) с работой поверх создаваемых в процесе инсталляции датасетов
zfs create -p -o atime=off -o compress=lz4 Data/extensions/bastille
cd /mnt/Data/extensions/bastille
fetch --no-verify-peer https://raw.githubusercontent.com/JRGTH/xigmanas-bastille-extension/master/bastille-init && chmod +x bastille-init && ./bastille-init && echo "=> Done!"

From [Extensions > Bastille > Configuration] set the following parameters:
bastille_zfs_enable "YES"
bastille_zfs_zpool "Data/extensions"
bastille_zfs_prefix "bastille"

From [Extensions > Bastille > Maintenance] check the ZFS support box and click Save.

Так, первый же вопрос - нужна ли вся эта zfs поддержка? Я, понятно, потестил и так и так. И должен сказать, что без этой встроенной поддержки zfs - проще. Ладно что при инсталляции возникает пучок датасетов - кушать не просят.
[из истории моего пула - какие именно датасеты]2023-04-27.22:34:15 zfs create -o compress=lz4 -o atime=off -o mountpoint=/mnt/TT/Ext/bastille/cache TT/Ext/bastille/cache
2023-04-27.22:34:16 zfs create -o compress=lz4 -o atime=off -o mountpoint=/mnt/TT/Ext/bastille/cache/13.1-RELEASE TT/Ext/bastille/cache/13.1-RELEASE
2023-04-27.22:34:16 zfs create -o compress=lz4 -o atime=off -o mountpoint=/mnt/TT/Ext/bastille/jails TT/Ext/bastille/jails
2023-04-27.22:34:17 zfs create -o compress=lz4 -o atime=off -o mountpoint=/mnt/TT/Ext/bastille/logs TT/Ext/bastille/logs
2023-04-27.22:34:18 zfs create -o compress=lz4 -o atime=off -o mountpoint=/mnt/TT/Ext/bastille/templates TT/Ext/bastille/templates
2023-04-27.22:34:19 zfs create -o compress=lz4 -o atime=off -o mountpoint=/mnt/TT/Ext/bastille/releases TT/Ext/bastille/releases
2023-04-27.22:34:19 zfs create -o compress=lz4 -o atime=off -o mountpoint=/mnt/TT/Ext/bastille/releases/13.1-RELEASE TT/Ext/bastille/releases/13.1-RELEASE


Ладно что каждый новый jail - это еще пара датасетов. Зато достаточно красиво сделано клонирование системных файлов при создании клетки.
[Spoiler (click to open)]2023-04-28.00:24:04 zfs create -o compress=lz4 -o atime=off TT/Ext/bastille/jails/test
2023-04-28.00:24:04 zfs snapshot TT/Ext/bastille/releases/13.1-RELEASE@bastille-2023-04-28-002404
2023-04-28.00:25:22 zfs send -R TT/Ext/bastille/releases/13.1-RELEASE@bastille-2023-04-28-002404
2023-04-28.00:25:23 zfs receive TT/Ext/bastille/jails/test/root
2023-04-28.00:25:24 zfs set compress=lz4 atime=off mountpoint=none TT/Ext/bastille/jails/test/root
2023-04-28.00:25:24 zfs inherit mountpoint TT/Ext/bastille/jails/test/root


Неприятно, что при удалении клеток иногда эти датасеты не удаляются - ср
[Spoiler (click to open)]
largenas: ~# bastille destroy plexpass
Jail running.
See 'bastille stop plexpass'.
largenas: ~# bastille stop plexpass
[plexpass]:
plexpass: removed

largenas: ~# bastille destroy plexpass
Deleting Jail: plexpass.
cannot unmount '/mnt/TT/Ext/bastille/jails/plexpass/root': pool or dataset is busy
cannot unmount '/mnt/TT/Ext/bastille/jails/plexpass': pool or dataset is busy
rm: /mnt/TT/Ext/bastille/jails/plexpass/root: Device busy
rm: /mnt/TT/Ext/bastille/jails/plexpass: Device busy
Note: jail console logs archived.
/mnt/TT/Ext/bastille/logs/plexpass_console.log-2023-04-30


Так что решил без дополнительных zfs фишек. Тем более, что создать те датасеты, что мне нужны я сам могу, ручками. И даже сделал это под bastille.
zfs create -o compression=off -o dedup=off -o sync=standard -o atime=off -o aclinherit=restricted -o aclmode=discard -o utf8only=on TT/Ext/bastille
(правда, разработчик советует компрессию включить -o compress=lz4 - ну разница невелика)

Итак (по желанию) создаем либо папку либо датасет bastille - здесь я указал свои имена - и ставим
cd /mnt/TT/Ext/bastille
fetch --no-verify-peer https://raw.githubusercontent.com/JRGTH/xigmanas-bastille-extension/master/bastille-init && chmod +x bastille-init && ./bastille-init && echo "=> Done!"

Видим


Идем в вебгуй, перезагружаем экран - а меню расширений появляется Bastille


Если меню расширений у вас нет - убираем гадкую галочку здесь и перегружаем NAS


Дальше конфигурируем bastille из вебгуя


Если вы, как и я, обойдетесь без дополнительных zfs фишек - давим на ссылку во второй строке. Если хотите zfs фишки - идем сначала в 1 строку и задаем два параметра
bastille_zfs_enable - "YES"
bastille_zfs_zpool - "TT/Ext" (как у меня) или "Data/extensions" (как у разработчика расширения) - в общем имя пула и путь к тому месту, где у вас лежит bastille. Без всяких /mnt
Тут есть небольшая хитрость - как сохранить введенное? Оказывается, надо нажать зеленую галку в этой строке.

В любом случае мы жмем Please click here then push "Save" button.
И попадаем сюда


Нам ПОСЛЕДНИЙ РАЗ предлагают возможность установить zfs фичи. При отказе это можно будет сделать только полной переустановкой расширения.
Но мы просто проверяем что все правильно - и жмем Save
Картинка меняется


Если перейти в соседнюю (любую) вкладку расширения и вернуться обратно - она изменится еще раз, приняв финальный вид - без строки о выборе zfs

Конфигурирование расширения закончено - но нам надо закачать коды операционной системы для сборки наших клеток


Я советую как на рисунке. Выбрать тот релиз, на котором собрана ваша версия (можно смотреть на домашней странице вебгуя)
В нем базовый релиз и обязательно - lib32. Порты - не обязательно. Но пусть будут. Исходники понадобятся вам вряд ли. Надо будет - загрузите потом.

Следующим постом запустим и сконфигурируем клетку.

xigmanas, jail, nas

Previous post Next post
Up