CRIU

CRIU
CRIU
Тип

Инструментальное программное обеспечение

Разработчик

Команда OpenVZ

Написана на

и Ассемблер

Операционная система

Linux

Лицензия

GNU GPL v.2

Сайт

http://criu.org

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

Содержание

История

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

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

В целом, проект был принят с оптимизмом, что подтверждается включением в ядро некоторых правок, необходимых проекту. Однако следует отметить, что Линус Торвальдс, создатель ядра Linux, отреагировал на проект скептически[5]. В частности, он отметил, что (англ. ):

„A note on this: this is a project by various mad Russians to perform c/r mainly from userspace, with various oddball helper code added into the kernel where the need is demonstrated.
… However I'm less confident than the developers that it will all eventually work! So what I'm asking them to do is to wrap each piece of new code inside CONFIG_CHECKPOINT_RESTORE.
So if it all eventually comes to tears and the project as a whole fails, it should be a simple matter to go through and delete all trace of it.“

что можно примерно перевести как:

«Замечание: это проект, разрабатываемый разными сумасшедшими русскими, по созданию контрольных точек и рестарта с них в основном из пользовательского приложения, с различным странным вспомогательным кодом, добавленным в ядро там, где показана такая необходимость.
… Однако, я не так, как разработчики, уверен в том, что всё это когда-нибудь заработает! Поэтому я прошу их „обернуть“ макросом CONFIG_CHECKPOINT_RESTORE каждый кусок нового кода в ядре.
Так что если со временем всё это закончится слезами и проект в целом развалится, это будет простой задачей пройтись по коду и выкинуть всё без следа.»

Первый релиз проекта состоялся 23 июля 2012 года[6].

Возможности

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

На сегодняшний день поддерживается единственная архитектура — X86 64 — и следующие объекты ОС Linux.

  • Процессы, их иерархия, PID, идентификаторы пользователя и группы (uid, euid, sid, …), системные права
  • Память приложений, включая отображенные файлы и разделяемые участки
  • Открытые файлы
  • Pipes, включая FIFO
  • Сокеты Unix
  • Сокеты TCP/IP (в том числе и в состоянии ESTABLISHED, см. ниже)
  • System V IPC
  • Таймеры

Некоторые из указанных возможностей пока поддерживаются только при использовании дополнительных патчей к ядру Linux, однако разработчиками поставлена цель включить все требуемые изменения в основную ветку ядра Linux. Часть требуемых изменений уже включена (напр. поддержка разделяемой памяти, сокеты Unix и TCP/IP).

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

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

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

См. также

Существуют аналогичные проекты в разной стадии завершенности.

  • Упомянутая компонента[какая?] проекта OpenVZ
  • DMTCP
  • BLCR

Примечания

Литература

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "CRIU" в других словарях:

  • CRIU-METOPON — i. e. Arietis frons. promontor. geminum. Unum Cretae in ora Australi ad Occidentem, Capao S. Iani Nigro, Capo Leone Pineto. Capo Crio; prope vicus est S. Giovanni de Capo Crio. Baudrand. Dionys. v. 87. Η῞τ᾿ εἰς ἅλα πουλὺ νένευκε Πὰρ ςθ᾿ ἱερην`… …   Hofmann J. Lexicon universale

  • CARAMBIS — Paphlagoniae, seu Galatiae promontor. magnum ad Septentrionem porrectum. Mela, l. 1. c. 19. Quorum (Paphlagonum scil.) in littoribus pene mediis promontorium est Carambis. Val. Flac. l. 4. v. 599. Quid tibi nubiferâ surgentem rupe Carambim? Idem …   Hofmann J. Lexicon universale

  • acriu — ACRÍU, ÍE, acrii, adj. (Rar) Cam acru2; acrişor; acruţ. – Acru2 + suf. iu. Trimis de ana zecheru, 13.09.2007. Sursa: DEX 98  acríu adj. m.(sil. criu), f. acríe; pl. m. şi f …   Dicționar Român

  • sicriu — SICRÍU, sicrie, s.n. 1. Obiect în formă de ladă de lemn sau de metal, în care se aşază mortul pentru a fi înmormântat; coşciug, raclă. 2. (reg.) Ladă, cutie. ♦ Scrin, dulap. [var.: săcríu, secríu, sicrín s.n.] – Din magh. szekrény. Trimis de… …   Dicționar Român

  • Hardcore punk — En este artículo se detectaron los siguientes problemas: Carece de fuentes o referencias que aparezcan en una fuente acreditada. Requiere una revisión ortográfica y gramatical. Por favor …   Wikipedia Español

  • Niño cambiado — Troles con el niño cambiado que han criado, John Bauer, 1913. En diversas leyendas y creencias populares europeas, un niño cambiado es el hijo de un hada, xana, trol, elfo u otra criatura fantástica, dejado secretam …   Wikipedia Español

  • Контрольная точка — Контрольная точка  служебная информация, которая записывается операционной системой на жесткий диск или другой носитель для обработки исключительных ситуаций, таких как перезапуск, сбой или отказ оборудования. По состоянию контрольной точки… …   Википедия

  • Боян Кркич — Общая информация Полное имя Боян Кркич Перес …   Википедия

  • Бойан Кркич — Боян Кркич Общая информация Полное имя Боян Кркич Перес …   Википедия

  • Кркич — Кркич, Боян Боян Кркич …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»