CRIU - CRIU

CRIU
CRIU.svg
Разработчики)OpenVZ Команда в Virtuozzo
изначальный выпуск23 июля 2012 г.; 8 лет назад (2012-07-23)[1]
Стабильный выпуск3.14 (29 апреля 2020 г.; 7 месяцев назад (2020-04-29)[2]) [±]
Написано вC и Ассемблер
Операционная системаLinux
Платформаx86-64, РУКА, Питание ISA, IBM System / 390
ТипКонтрольные точки приложения
ЛицензияGNU GPL v.2
Интернет сайткриу.org

Контрольная точка / восстановление в пользовательском пространстве (CRIU) (произносится kree-oo, / krɪʊ /), это программный инструмент для Linux Операционная система. Используя этот инструмент, можно заморозить работающее приложение (или его часть) и проверьте его на постоянное хранилище как набор файлов. Затем можно использовать файлы для восстановления и запуска приложения с того места, где оно было заморожено. Отличительной особенностью проекта CRIU является то, что он в основном реализован в пространство пользователя, а не в ядре.

В настоящее время проект находится в активной разработке, с ежемесячным циклом выпуска стабильных выпусков.[3]

История

Первую версию программного обеспечения CRIU представил сообществу разработчиков Linux Павел Емельянов, OpenVZ руководитель группы ядра, 15 июля 2011 г.[4]

В сентябре 2011 года проект был представлен на Linux Plumbers Conference.[5] В целом, большинство участников положительно оценили проект, что подтверждается тем фактом, что ряд исправлений ядра, необходимых для реализации проекта, был включен в основное ядро.Эндрю Мортон Однако был настроен немного скептически:

Замечание по этому поводу: это проект разных безумных русских по выполнению c / r в основном из пользовательского пространства, с добавлением в ядро ​​различного странного вспомогательного кода, где продемонстрирована необходимость ... в итоге все будет работать! Я прошу их обернуть каждый фрагмент нового кода внутри CONFIG_CHECKPOINT_RESTORE. Так что, если все это в конечном итоге дойдет до слез и проект в целом потерпит неудачу, должно быть несложно пройти и удалить все его следы.

— Эндрю Мортон, [6]

Использовать

Инструмент CRIU разрабатывается как часть проекта OpenVZ с целью замены контрольной точки / восстановления в ядре. Хотя его основная цель - поддержка миграции контейнеров, позволяющая пользователям проверять и восстанавливать текущее состояние запущенных процессов и групп процессов. В настоящее время инструмент можно использовать на x86-64 и РУКА систем и поддерживает следующие функции:

По состоянию на сентябрь 2013 г., исправление ядра не требуется, поскольку все необходимые функции уже объединены в Основная линия ядра Linux начиная с версии ядра 3.11, выпущенной 2 сентября 2013 г.[7][8]

Миграция TCP-соединения

Одной из первоначальных целей проекта была поддержка миграции TCP-соединений, при этом самой большой проблемой было приостановить, а затем восстановить только одну сторону соединения. Это было необходимо для выполнения живой миграции контейнеров (вместе со всеми их активными сетевыми соединениями) между физическими серверами, основного сценария использования функции контрольной точки / восстановления в OpenVZ. Чтобы справиться с этой проблемой, была реализована новая функция «Режим восстановления TCP». Эта функция была включена в версию 3.5 Основная линия ядра Linux[9] и предоставляет пользователям дополнительные средства для разборки и восстановления сокетов TCP без необходимости обмена сетевыми пакетами с противоположной стороной соединения.

Похожие проекты

Следующие проекты предоставляют функциональность, аналогичную CRIU:

Рекомендации

  1. ^ Павел Емельянов (23.07.2012). "Инструмент восстановления контрольных точек v0.1".
  2. ^ «График выпуска».
  3. ^ https://criu.org/Release_schedule
  4. ^ Павел Емельянов (15.07.2011). «Контрольная точка / восстановление в основном в пользовательском пространстве».
  5. ^ «Контрольная точка / перезапуск в пользовательском пространстве». Конференция сантехников Linux 2011.
  6. ^ "Слить ветку" акпм "(она же" патч-бомба Андрея, дубль два ")". Дерево исходных текстов ядра Linux. 2012-01-13.
  7. ^ «Установка: ядро ​​Linux». Требуется ядро ​​Linux версии 3.11 или новее, с некоторыми определенными параметрами.
  8. ^ «Ядро Linux 3.11, раздел 1.5. Подробное отслеживание того, какие страницы пишет задача». kernelnewbies.org. 2013-09-02. Получено 2016-05-03.
  9. ^ Павел Емельянов (29.02.2012). «Восстановление TCP-соединения». Список рассылки Linux Netdev.
  10. ^ "DMTCP: распределенная многопоточная контрольная точка". SourceForge.
  11. ^ «Контрольная точка лаборатории Беркли / перезапуск (BLCR) для LINUX». Национальная лаборатория Лоуренса Беркли.
  12. ^ «Контрольная точка Linux / перезагрузка». kernel.org.

дальнейшее чтение