пятница, 1 января 2016 г.

ZFS Boot Environments интегрирован в загрузочное меню FreeBSD

ZFS Boot Environments menu to the loader menu
ZFS BE меню выбора BE
ZFS Boot Environments menu to the loader menu
ZFS BE загрузчик, основное меню
Новый год начинается с хороших новостей, наконец завершена интеграция, в меню загрузчика, возможностей ZFS по созданию окружений загрузки (Boot Environments, BE).
Напомню как это работает, благодаря возможности ZFS создавать снапшоты, мгновенно и практически без накладных расходов (место они всё же занимают). Можно создать, в любой момент, снапшот загрузочной файловой системы (чаще всего youpool/ROOT/bename). клонировать его и повысить (promoting) его до обычной файловой системы, а в дальнейшем выбрать новую файловую систему в качестве загрузочной.
В Opensolaris утилиты для работы данного функционала начали появляться ещё в 2008 году, так же поддержка была интегрирована в grub. В PC-BSD® аналогичный функционал был реализован с версии 10.0 благодаря использованию функционала grub. Весной 2012 года было начато портирование beadm во FreeBSD, после этого она стала доступна в портах и позволяет легко управлять BE из командной строки.
root@des:~ # beadm list
BE             Active Mountpoint  Space Created
init           -      -            4.4G 2014-09-05 03:05
first          -      -            2.1M 2014-09-05 05:19
...
pre293017      -      -            2.7M 2016-01-01 02:54
r293017        NR     /           35.8G 2016-01-01 05:07

Но до вчерашнего дня, поддержки данного функционала не было в загрузчике и выбрать из какого BE загружаться, можно было только в уже работающей системе. Что немного снижало полезность данного функционала. Процесс интеграции был начат ещё летом, даже двумя независимыми проектами, один в рамках GSoC, другой в рамках reviews.freebsd.org, отчасти этим наверное вызвано, что изменение не было интегрировано ещё летом (так как GSoC заканчивался к осени). Но за прошедшее время разработчики успели улучшить функционал, и теперь он работает очень хорошо, так список BE строится автоматически и не ограничен по количеству BE и длине названий.
В итоге, мы имеем отличную возможность создавать BE с помощью sysutils/beadm, а так же выбирать любой из существующих BE как заранее, так и в момент загрузки системы (в uefi boot menu вроде до сих пор не доступно). Это позволяет:
  • Откатится, в случае неудачного обновления (создавайте BE в самый последний момент, ибо все изменения после его создания и активации не будут автоматически доступны в новом BE, после перезагрузки)
  • Иметь несколько версий/модификаций системы с общим домашним или другими каталогами (находящимися вне BE.
  • лёгкую интеграцию с sysutils/beadm
Хороший доклад на тему возможностей BE был сделан как раз в этом году в рамках EuroBSDcon 2015, Snapshots, Replication, and Boot-Environments by Kris Moore.

UPD:  интеграция меню загрузчика, для UEFI идёт полным ходом, за процессом можно наблюдать и участвовать D4797

Комментариев нет:

Отправить комментарий