Выпуск CRIU 4.1, системы для сохранения и восстановления состояния процессов в Linux

После шести месяцев разработки опубликован выпуск инструментария CRIU 4.1 (Checkpoint and Restore In Userspace), предназначенного для сохранения и восстановления процессов в пространстве пользователя. Инструментарий позволяет сохранить состояние одного или группы процессов, а затем возобновить работу с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений. Код проекта написан на языке Си и распространяется под лицензией GPLv2. CRIU применяется в таких системах управления контейнерами, как OpenVZ, LXC/LXD и Docker. Необходимые для работы CRIU изменения включены в основной состав ядра Linux.

Из областей применения технологии CRIU отмечается обеспечение перезагрузки ОС без нарушения непрерывности выполнения длительно выполняемых процессов, Live-миграция изолированных контейнеров, ускорение запуска медленных процессов (можно начать работу с состояния, сохранённого после инициализации), проведение обновлений ядра без перезапуска сервисов, периодическое сохранение состояния длительно выполняемых вычислительных задач для возобновления работы в случае аварийного завершения, балансировка нагрузки на узлы в кластерах, дублирование процессов на другую машину (fork на удалённую систему), создание снапшотов пользовательских приложений в процессе работы для их анализа на другой системе или на случай если потребуется отменить дальнейшие действия в программе.

В новом выпуске:

  • Добавлена поддержка архитектуры RISC-V.
  • Добавлена поддержка механизма PIDFD, позволяющего использовать неизменные идентификаторы, привязанные к исходным процессам (обычный PID может быть назначен другому процессу после завершения текущего процесса, ассоциированного с этим PID).
  • Для платформы ARM64 реализована поддержка расширений для аутентификации указателей (PAC Pointer Authentication Code), обеспечивающих проверку адресов возврата при помощи цифровых подписей, которые хранятся в неиспользуемых верхних битах самого указателя.
  • Расширены возможности по сохранению и восстановлению состояния приложений, использующих технологию NVIDIA CUDA.
  • Предоставлена возможность выбора бэкенда блокировки сети на этапе сборки, без необходимости правки кода. Бэкенд может быть изменён через передачу утилите make параметра NETWORK_LOCK_DEFAULT, который допускает значения «NETWORK_LOCK_IPTABLES», «NETWORK_LOCK_NFTABLES» и «NETWORK_LOCK_SKIP».
  • Включена поддержка генерации coredump-файлов для архитектур Aarch64 и ARM.

Источник: opennet.ru

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