Отчет о развитии CRIU

На LWN опубликовали рекап выступления Pavel Emelyanov из Parallels на "2013 Kernel Summit", - "Checkpoint/restart in user space".

Сначала Павел рассказал об истории CRIU. Затем, он попросил разработчиков новых фич ядра всегда добавлять механизм получения текущего состояния (приведя пример с таймерами, которые можно создавать и уничтожать, но нельзя получить текущее состояние, почему ему пришлось дорабатывать эту функциональность), и попросил не увлекаться глобальными идентификаторами в ядре, предпочитая им локальные (привязанные к процессам). Павел также рассказал о разрабатываемой функциональности CRIU - checkpoint/restore всех процессов системы, перезапуск ядра с сохранением памяти нетронутой, и возвращение процессов, используя "старую" память. Это должно работать очень быстро. Andrew Morton спросил, а можно ли написать приложение, которое принципиально невозможно зачекпойнтить/отресторить? Павел ответил, что пока да, например Unix-сокеты вызывают проблемы, но он работает над этим - разработчики systemd хотят использовать эту функциональность.

CRIU уже вовсю используется, между прочим. Разработчикам сообщили, что CRIU сумел сохранить и впоследствии восстановить 48-гигабайтное приложение.