Дата публикации:Fri, 14 Nov 2025 09:17:43 +0300
После шести месяцев разработки опубликован выпуск инструментария CRIU 4.2 (Checkpoint and Restore In Userspace), предназначенного для сохранения и восстановления процессов в пространстве пользователя. Инструментарий позволяет сохранить состояние одного или группы процессов, а затем возобновить работу с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений. Код проекта написан на языке Си и распространяется под лицензией GPLv2. CRIU применяется в таких системах управления контейнерами, как OpenVZ, LXC/LXD и Docker. Необходимые для работы CRIU изменения включены в основной состав ядра Linux.
Из областей применения технологии CRIU отмечается обеспечение перезагрузки ОС без нарушения непрерывности выполнения длительно выполняемых процессов, Live-миграция изолированных контейнеров, ускорение запуска медленных процессов (можно начать работу с состояния, сохранённого после инициализации), проведение обновлений ядра без перезапуска сервисов, периодическое сохранение состояния длительно выполняемых вычислительных задач для возобновления работы в случае аварийного завершения, балансировка нагрузки на узлы в кластерах, дублирование процессов на другую машину (fork на удалённую систему), создание снапшотов пользовательских приложений в процессе работы для их анализа на другой системе или на случай если потребуется отменить дальнейшие действия в программе.
В новом выпуске:
- В плагине amdgpu реализована возможность распараллеливания восстановления состояния процессов, использующих GPU. Добавлена опция "--allow-uprobes", позволяющая работать с процессами, которые используют vma (Virtual Memory Area) при трассировке процессов через механизм uprobe. В библиотеке libcriu добавлена возможность задания файла конфигурации RPC для runtime контейнеров, использующих данную библиотеку, таких как crun. Например, реализованная возможность может быть полезной для установки опций, таких как "--tcp-established", через файл /etc/criu/runc.conf для Kubernetes. Решены проблемы с компиляцией на ARM64-системах с Си-библиотекой musl. Устранено целочисленное переполнение в функции pagemap_len(). Решены проблемы с использованием getsockopt-опций SO_PASSCRED и SO_PASSSEC на системах с ядром Linux 6.16.
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64248