След шест месеца разработка е публикувано изданието на инструментария CRIU 4.1 (Checkpoint and Restore In Userspace), предназначен за запазване и възстановяване на процеси в пространството на потребителя. Инструментариумът позволява запазване на състоянието на един или група процеси и след това подновяване на работата от запазената позиция, в това число след перезареждане на системата или на друг сървър без прекъсване на вече установените мрежови връзки. Кодът на проекта е написан на езика C и се разпространява под лиценз GPLv2. CRIU се прилага в системи за управление на контейнери като OpenVZ, LXC/LXD и Docker. Необходимите за работа изменения на CRIU са включени в основния състав на ядрото на Linux.
От областите на приложение на технологията CRIU се откроява осигуряването на рестартиране на ОС без нарушаване на непрекъснатостта на изпълнение на дълготрайни процеси, живо мигриране на изолирани контейнери, ускоряване на стартиране на бавни процеси (може да се започне работа от състоянието, запазено след инициализация), извършване на обновления на ядрото без рестартиране на услуги, периодично запазване на състоянието на дълготрайни изчислителни задачи за възобновяване на работа в случай на аварийно завършване, балансировка на натоварването на възлите в клъстери, дублиране на процеси на друга машина (fork на отдалечена система), създаване на моментни снимки на потребителски приложения по време на работа за тяхния анализ на друга система или в случай, че е необходимо да се отмени по-нататъшни действия в програмата.
В новото издание:
- Добавена е поддръжка на архитектурата RISC-V.
- Добавена е поддръжка на механизма PIDFD, позволяваща използването на неизменяеми идентификатори, свързани с оригиналните процеси (обикновен PID може да бъде назначен на друг процес след завършването на текущия процес, асоцииран с този PID).
- За платформата ARM64 е реализирана поддръжка на разширения за автентикация на указатели (PAC Pointer Authentication Code), осигуряващи проверка на адресите на връщане с помощта на цифрови подписи, които се съхраняват в неизползваните горни битове на самия указател.
- Разширени са възможностите за запазване и възстановяване на състоянието на приложения, използващи технологията NVIDIA CUDA.
- Предоставена възможност за избор на бекенд за блокиране на мрежата по време на изграждането, без необходимост от корекция на кода. Бекендът може да бъде променен чрез предаване на параметъра NETWORK_LOCK_DEFAULT на утилитата make, който поддържа стойности „NETWORK_LOCK_IPTABLES“, „NETWORK_LOCK_NFTABLES“ и „NETWORK_LOCK_SKIP“.
- Включена е поддръжка за генериране на coredump файлове за архитектури Aarch64 и ARM.
Източник: opennet.ru
