В openSUSE Leap появится поддержка атомарного обновления системы

Разработчики проекта openSUSE представили транзакционные обновления (Transactional Updates), новую значительную возможность дистрибутива, которая будет предложена в выпуске openSUSE Leap 15, намеченном на 25 мая.

Транзакционные обновления позволяют обновить операционную систему и связанные с ней пакеты в атомарном режиме, без раздельного применения новой версии каждого пакета.

Transactional Updates in openSUSE Leap 15
Transactional Updates in openSUSE Leap 15

Атомарное обновление может устанавливаться на работающей системе не влияя на выполнение текущих задач, но чтобы доставленные в процессе обновления изменения подействовали требуется перезагрузка. В случае сбоя в процессе обновления или при выявлении проблем после завершения обновления все производимые в рамках данной транзакции операции игнорируются и никак не влияют на состояние системы.

Ключевым отличием реализованного в openSUSE Leap метода атомарных обновлений от решений на базе ostree и snap, применяемых в Fedora и Ubuntu, является реализация через функциональность системы хранения — вместо построения отдельных атомарных образов и развёртывания дополнительно инфраструктуры доставки, в openSUSE Leap применяется механизм снапшотов в ФС.

Подобный подход прекрасно сочетается с имеющейся пакетной системой, обеспечивает свойственные для атомарного обновления преимущества и позволяет обойтись без лишних усложнений, таких как переключение между несколькими меняющимися коревыми разделами и жесткое разделение областей ФС только для чтения. Из недостатков метода можно отметить необходимость выполнения перезагрузки и невозможность одновременной работы с разными версиями одного и того же приложения.

Реализация транзакционных обновлений базируется на возможностях файловой системы Btrfs, штатных репозиториях пакетов и привычных инструментах snapper и zypper, во многом напоминая уже доступную систему снапшотов и отката операций установки пакетов в openSUSE. Отличие заключается в том, что ранее доступные системы сохраняли состояние в снапшоте и выполняли обновление в активной системе, а новый метод создаёт снапшот и выполняет обновление в нём, не касаясь работающей системы до подтверждения транзакции. Если обновление произведено успешно, обновлённый снапшот помечается активным и используется по умолчанию после перезагрузки (обновления вступают в силу только после перезагрузки, на случай проблем в загрузочном меню остаётся и прошлый снапшот).

Обновление инициируется при помощи новой утилиты transactional-update. В инсталляторе появилась новая роль Transactional Server, позволяющая развернуть сервер c включенной по умолчанию системой транзакционных обновлений (обновления проверяются ежедневно, в случае их установки с 3:30 до 5 ночи автоматически производится перезагрузка). На существующих системах аналогичный режим можно включить активировав сервисы transactional-update.timer и rebootmgr.service. Параметры работы сервиса можно настроить через файл конфигурации /etc/rebootmgr.conf.

По материалам opennet.ru



Добавить комментарий

Войти с помощью: 
%d такие блоггеры, как: