July 24th, 2012

openvz
  • k001

Вышел первый релиз CRtools, версия 0.1

Original: [CRIU] CRtools 0.1 released!

Вероятно, все в этом сообществе знают про функциональность чекпоинт-рестора (далее CPT) в OpenVZ, благодаря которой можно делать живую миграцию контейнеров и другие интересные штуки. Но не все, наверное, знают о проекте CRIU, который мы замутили примерно с год назад.

CPT -- важная фича в OpenVZ, и мы её, как и все другие фичи, конечно же, хотим видеть в базовом (mainstream) линукс ядре, такой у нас план-максимум, всё из OpenVZ задвинуть в базовое ядро, в том или ином виде. Но как мы ни пытались задвинуть СPT в ядро (а мы несколько раз пытались), результат нулевой. Осознание того, что не мы одни такие, кто безуспешно пробовал сделать то же самое и ничего не достиг*, конечно, делает наши переживания по поводу провала менее горькими и безутешными, но практически никак не помогает. Причина же неудачи тривиальна: это большой кусок сложного ядерного кода, затрагивающего многие ядерные подсистемы.

И вот, мы** пришли к идее реализовать большую часть функциональности CPT в пользовательском пространстве, то есть в виде отдельной программы, а не внутри ядра. На практике это невозможно, поскольку местами всё-таки необходима некоторая помощь со стороны ядра, но основная идея состоит в том, чтобы свести необходимость в ядерных патчах к минимуму.

Идея эта сработала, и даже лучше, чем мы ожидали. На сегодняшний день, после примерно года разработки, около 90% ядерного кода, который нам необходим, уже в ядре. Остальные 10% уже тоже готовы и, по-видимому, влить их в ядро будет довольно-таки просто. На вики проекта есть табличка, где расписано, что мы влили и что ещё осталось: http://criu.org/Commits.

Что же касается не-ядерной части, мы рады представить вашему вниманию релиз CRtools версии 0.1. В этом месте я, пожалуй, заткну фонтан своего красноречия и предоставлю слово Павлу, процитировав его анонс (переводить не стану, вроде и так всё понятно):

Collapse )

Что дальше? Будем портировать OpenVZ на ядро 3.5 (скорее всего) и попробуем там использовать CRIU, выкинув большой кусок ядерного кода, который мы несём в OpenVZ патче.

* Например, Орен Лаадан потратил на это несколько лет своей жизни. И не он один.
** На самом деле это был Павел Емельянов, наш самый главный ядерный архитектор, но сказать "мы" так приятно, что мы никак не можем отказать себе в этом удовольствии.