CRIU - CRIU
Эта статья слишком полагается на Рекомендации к основные источники.Август 2014 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчики) | OpenVZ Команда в Virtuozzo |
---|---|
изначальный выпуск | 23 июля 2012 г.[1] |
Стабильный выпуск | 3.14 (29 апреля 2020 г.[2]) [±] |
Написано в | C и Ассемблер |
Операционная система | Linux |
Платформа | x86-64, РУКА, Питание ISA, IBM System / 390 |
Тип | Контрольные точки приложения |
Лицензия | GNU GPL v.2 |
Интернет сайт | криу |
Контрольная точка / восстановление в пользовательском пространстве (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 и РУКА систем и поддерживает следующие функции:
- Процессы: их иерархия, PID, аутентификаторы пользователей и групп (UID, GID, SID, так далее.), возможности системы, потоки, а также запущенные и остановленные состояния
- Память приложений: с отображением памяти файлы и Общая память
- Открытые файлы
- Трубы и ФИФО
- Доменные сокеты Unix
- Сетевые розетки, включая TCP сокеты в состоянии ESTABLISHED (см. ниже)
- System V IPC
- Таймеры
- Сигналы
- Терминалы
- Системные вызовы, специфичные для ядра Linux:
inotify
,signalfd
,eventfd
иэполл
По состоянию на сентябрь 2013 г.[Обновить], исправление ядра не требуется, поскольку все необходимые функции уже объединены в Основная линия ядра Linux начиная с версии ядра 3.11, выпущенной 2 сентября 2013 г.[7][8]
Миграция TCP-соединения
Одной из первоначальных целей проекта была поддержка миграции TCP-соединений, при этом самой большой проблемой было приостановить, а затем восстановить только одну сторону соединения. Это было необходимо для выполнения живой миграции контейнеров (вместе со всеми их активными сетевыми соединениями) между физическими серверами, основного сценария использования функции контрольной точки / восстановления в OpenVZ. Чтобы справиться с этой проблемой, была реализована новая функция «Режим восстановления TCP». Эта функция была включена в версию 3.5 Основная линия ядра Linux[9] и предоставляет пользователям дополнительные средства для разборки и восстановления сокетов TCP без необходимости обмена сетевыми пакетами с противоположной стороной соединения.
Похожие проекты
Следующие проекты предоставляют функциональность, аналогичную CRIU:
Рекомендации
- ^ Павел Емельянов (23.07.2012). "Инструмент восстановления контрольных точек v0.1".
- ^ «График выпуска».
- ^ https://criu.org/Release_schedule
- ^ Павел Емельянов (15.07.2011). «Контрольная точка / восстановление в основном в пользовательском пространстве».
- ^ «Контрольная точка / перезапуск в пользовательском пространстве». Конференция сантехников Linux 2011.
- ^ "Слить ветку" акпм "(она же" патч-бомба Андрея, дубль два ")". Дерево исходных текстов ядра Linux. 2012-01-13.
- ^ «Установка: ядро Linux».
Требуется ядро Linux версии 3.11 или новее, с некоторыми определенными параметрами.
- ^ «Ядро Linux 3.11, раздел 1.5. Подробное отслеживание того, какие страницы пишет задача». kernelnewbies.org. 2013-09-02. Получено 2016-05-03.
- ^ Павел Емельянов (29.02.2012). «Восстановление TCP-соединения». Список рассылки Linux Netdev.
- ^ "DMTCP: распределенная многопоточная контрольная точка". SourceForge.
- ^ «Контрольная точка лаборатории Беркли / перезапуск (BLCR) для LINUX». Национальная лаборатория Лоуренса Беркли.
- ^ «Контрольная точка Linux / перезагрузка». kernel.org.
дальнейшее чтение
- Санидхья Кашьяп. «Обновление и проверка ядра без перезагрузки».
- Рами Розен. «Контейнеры Linux и будущее облако» (PDF).
- Команда CRIU. «Сравнение с другими проектами CR».