WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
CRIU

Checkpoint and Restore in Userspace
Тип Инструментальное программное обеспечение
Разработчик Команда OpenVZ
Написана на Си и Ассемблер
Операционная система Linux
Последняя версия 3.10 (10 июля 2018)
Лицензия GNU GPL v.2
Сайт criu.org

CRIU (от англ. Checkpoint/Restore In Userspace) — программное обеспечение для операционной системы Linux, позволяющее создать извне во время выполнения произвольной программы контрольную точку с возможностью возобновления работы программы с этой точки, в том числе в другом экземпляре операционной системы (функция живой миграции)[1].

Главной особенностью проекта является его преимущественная реализация в пространстве пользовательских процессов, а не в ядре операционной системы (как, к примеру, в проекте OpenVZ), а также возможность работы с произвольными процессами без дополнительной поддержки с их стороны[2].

История

В 2011 компания Parallels анонсировала[3] в российской прессе планы по интеграции своего проекта Parallels Virtuozzo Containers в основное ядро Linux. Одной из основных особенностей проекта является возможность живой миграции процессов. Осмысление предыдущих неудачных попыток интеграции подобных технологий в ядро операционной системы[4] привело разработчиков к осознанию того, что миграцию процессов необходимо реализовывать в адресном пространстве пользовательских приложений.

Начальная версия проекта CRIU была разработана Павлом Емельяновым, лидером команды разработчиков OpenVZ, и представлена сообществу разработчиков операционной системы Linux 15 июля 2011 года[5]. В сентябре того же года проект был представлен на конференции Linux Plumbers[6].

В целом проект был принят с оптимизмом, что подтверждается включением в ядро некоторых правок, необходимых проекту. Однако маинтейнер Эндрю Мортон, через чье git-дерево правки попали в основное ядро, был в своих комментариях несколько скептичен[7].

Первый релиз проекта состоялся 23 июля 2012 года[8]. 25 ноября 2013 года разработчики анонсировали первый крупный релиз своего проекта — 1.0[9]. CRIU этой версии может работать на архитектурах ARM и x86-64, и не требует дополнительных модификаций ядра — достаточно поставить основное ядро версии не ниже 3.11.

Возможности

Поскольку проект разрабатывается в рамках проекта OpenVZ, основной целью, преследуемой разработчиками, является поддержка миграции контейнеров. Тем не менее, с помощью CRIU есть возможность сохранять и восстанавливать состояние отдельных процессов или их групп.

По состоянию на середину 2010-х годов поддерживается две архитектуры — x86-64 и ARM — и следующие объекты Linux:

Вся требуемая поддержка ядра включена в ядро Linux версии 3.11.

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

Одной из поставленных целей проекта является возможность сохранять и восстанавливать состояние TCP-соединения, причём основной интерес представляет случай, когда процедуре сохранения с последующим восстановлением подвергается только одна сторона соединения. Такая постановка задачи возникла из основного сценария использования CRIU компанией Parallels, при котором контейнер мигрирует с одной машины на другую, и при этом все внешние соединения «переезжают» вместе с контейнером.

Для достижения поставленной цели был разработан и внедрен в ядро Linux версии 3.5 механизм, получивший название TCP repair mode[10], в рамках которого реализован набор операций над TCP-сокетом, позволяющих «разобрать» и «собрать» его, не запуская никаких, описанных в стандарте, процедур по сетевому обмену пакетами.

Примечания

  1. Павел Емельянов. Виртуализация приложений новый этап // Журнал сетевых решений / LAN. — 2016. № 3. С. 47.
  2. Rami Rosen. Ch. 14. Advanced Topics // Linux Kernel Networking: Implementation and Theory. — Apress, 2014. — С. 406. — 636 с. ISBN 9781430261971.
  3. «Parallels наняла известных разработчиков для проникновения в ядро Linux» Архивировано 9 января 2014 года. // Cnews, 2011/08/12
  4. Jonathan Corbet, Checkpoint/restart: it’s complicated // LWN.net
  5. Pavel Emelyanov, Checkpoint/restore mostly in the userspace // LWN.net
  6. Checkpoint/restart in the userspace Архивировано 14 ноября 2011 года. // Linux Plumbers Conference, September 7-9, 2011
  7. Linus Torvalds, Git commit title: «Merge branch 'akpm' (aka „Andrew’s patch-bomb, take two“)» (недоступная ссылка):
    «Замечание: это проект, разрабатываемый разными сумасшедшими россиянами, по созданию контрольных точек и рестарта с них в основном из пользовательского приложения, с различным странным вспомогательным кодом, добавленным в ядро там, где показана такая необходимость.
    … Однако, я не так, как разработчики, уверен в том, что всё это когда-нибудь заработает! Поэтому я прошу их „обернуть“ макросом CONFIG_CHECKPOINT_RESTORE каждый кусок нового кода в ядре.
    Так что если со временем всё это закончится слезами и проект в целом развалится, это будет простой задачей пройтись по коду и выкинуть всё без следа.»
  8. Announce: Checkpoint-restore tool v0.1 // LKML, 2012-07-23
  9. Checkpoint-restore tool v1.0 // CRIU
  10. TCP connection repair // LWN.net

Литература

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии