Спустя четыре года после выпуска первой версии 7 марта разработчики проекта CRIU (Checkpoint and Restore In Userspace) представили новый релиз инструментария для сохранения и восстановления процессов в пространстве пользователя для Linux — CRIU 2.0. Разработанный в рамках проекта инструментарий позволяет организовать создание контрольных точек с заморозкой состояния запущенных приложений и последующим восстановлением работы с сохраненной позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений.

Представленная версия включает в себя множество функциональных исправлений, улучшений безопасности и новую функциональность. Полный список изменений доступен на странице сайте проекта, посвященной новой версии CRIU. Наиболее существенные изменения в новой версии:

    Исходный код проекта подготовлен для выделения библиотеки libsockcr и утилиты compel (позволяет выполнять код в адресном пространстве других процессов), о которых будет объявлено позднее;
    Поддержка сохранения состояния процесса непривилегированным пользователем;
    В инструментарий CRIT (CRiu Image Tool) добавлены средства для просмотра дерева процессов (ps), используемых файлов (fds) и информации об маппинге в память (mems);
    Добавлен скрипт «post-setup-namespaces»;
    Реализована возможность задания таймаута для процедуры сохранения дампа (по умолчанию 5 секунд);
    Добавлена возможность переопределения профиля LSM при восстановлении с опциями CLI/RPC;
    Монтирование в режиме «bind» теперь может применяться и для монтирования корня;
    Расширена поддержка внешних файлов, добавлена поддержка внешних TTY;
    Поддержка C/R для новой функциональности в ядре Linux, в том числе пространств имён CGroup, Multi-headed cgroups, заморозки состояния cgroup, Netfilter conntrack, Ghost file и т.п.

Учитывая предыдущий опыт разработки CRIU разработчики приняли решение изменить график выпуска новых версий и процесс разработки в проекте. После выпуска версии 2.0 в репозиторий добавили ветку devel, в которую будут попадать абсолютно все новые изменения. Основная ветка будет считаться стабильной и изменения в нее будут добавлять только при абсолютной уверенности, что эти изменения не вносят никаких деградаций в существующую функциональность. Новые версии будут появляться каждый месяц из стабильной ветки. Дата выхода будет анонсирована чуть позднее.

opennet.ru