The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз CRIU 0.2, системы для заморозки и восстановления состояния процессов в Linux

28.09.2012 11:42

Доступен релиз проекта CRIU 0.2 и развиваемого им инструментария CRtools, предоставляющих для Linux средства для манипуляции snapshot-ами приложений в пространстве пользователя. Разработанный в рамках проекта инструментарий позволяет организовать создание контрольных точек или заморозки состояния для запущенных приложений и последующего восстановления работы с сохранённой позиции.

При помощи утилит CRtools можно не только замораживать процессы на одной системе, но и сохранить состояние одного или группы процессов, а затем возобновить работу с сохранённой позиции на другой машине без разрыва уже установленных сетевых соединений. Также можно сохранить состояние процесса, перезапустить систему и восстановить работу приложения с момента остановки. Из других областей применения технологии CRIU можно отметить Live-миграцию изолированных контейнеров, ускорение запуска медленных процессов (можно начать работу с состояния, сохранённого после инициализации), проведение обновлений ядра без перезапуска сервисов, периодическое сохранение состояния долговыполняемых вычислительных задач для возобновления работы в случае краха. В будущем не исключается создание на базе CRIU решений для миграции активных десктоп-сеансов с одной машины на другую.

Важными особенностями CRIU являются поддержка любых состояний процессов и возможность работы на немодифицированной ОС, содержащей стандартное ядро Linux и системные библиотеки. Создаваемые ранее аналогичные проекты обладали ограниченной поддержкой состояний процессов, требовали модификации ядра или системных библиотек. CRIU базируется на технологиях, уже присутствующих в современных ядрах Linux, и позволяющих обеспечить заморозку групп процессов и сессий, состояния маппинга памяти, нитей, открытых файлов, именованных и неименованных каналов, сокетов, TCP-соединений (позволяет обеспечить миграцию процесса без разрыва соединения), IPC и т.п. Из популярных приложений, для которых протестирована корректная заморозка, можно выделить MySQL, Apache, GCC, make, tar, bz2, в процессе обеспечение поддержки для sendmail, git, java, ssh/sshd.

Версия 0.2 примечательна добавлением начальной поддержки заморозки изолированных групп процессов (контейнеров), созданных с использованием инструментария LXC, манипулирующего такими возможностями ядра Linux, как cgroups для контроля за ресурсами и пространства имён для выполнения отдельных изолированных групп идентификаторов ФС, IPC, процессов, сетевого стека. Кроме поддержки LXC в новой версии также добавлена поддержка пакетных сокетов (RAW-сокеты семейства PF_PACKET) и заморозки состояния TTY, что позволяет останавливать не только серверные, но и полноценные консольные приложения, такие как утилита screen.

В процессе обсуждения в списке разработчиков ядра Linux проект CRIU, а также инициативу продвижения в основное ядро Linux наработок компании Parallels, поддержало несколько ведущих разработчиков, в том числе Линус Торвальдс и Эндрю Мортон, которые способствовали принятию в ядро патчей с функциональностью, необходимой для работы CRIU. Например, недавно в ядро был добавлен созданный в рамках проекта CRIU интерфейс для получения информации о сокетах или экспорта из ядра подробной информации о разделяемой памяти процессов, а также интерфейса для восстановления TCP-соединений c предварительно зафиксированной контрольной точки.

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

Интерес к использованию CRIU выразили компании IBM и Google, начавшие экспериментировать с инструментарием CRtools. Что касается дистрибутивов Linux, то Debian уже включил CRtools в свой будущий релиз, в Fedora рассматривается запрос на добавление пакета, так же есть надежда, что Red Hat, который анонсировал поддержку LXC в RHEL7, включит инструментарий в свой дистрибутив.

На следующей неделе планируется опубликовать интервью с Павлом Емельяновым, одним из самых активных российских разработчиков ядра Linux. С 2004 года Павел работает в компании Parallels над CRIU, OpenVZ и различными проектами, связанными с изолированными контейнерами и облачными системами. Для формирования вопросов для интервью требуется помощь сообщества - вопросы можно оставлять в виде комментариев к новости. Тематика вопросов не ограничена и может затрагивать как личную жизнь, так и технические аспекты OpenVZ и CRIU или инициативы Parallels по включению в стандартное ядро Linux всех элементов, необходимых для обеспечения полноценной контейнерной виртуализации.

  1. Главная ссылка к новости (http://git.criu.org/?p=crtools...)
  2. OpenNews: Первый релиз CRtools, утилиты для заморозки и восстановления состояния процессов в Linux
Лицензия: CC-BY
Тип: Программы
Ключевые слова: criu, snapshot, crtools, checkpoint, linux
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (34) Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Григорий (??), 12:57, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]
  • +5 +/
    Здорово!
     
  • 1.3, myhand (ok), 12:58, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]
  • +/
    > ... способствовали принятию в ядро патчей с функциональностью, необходимой для работы CRIU ...

    Однако с ванильным ядром пока оно работает не полностью...

    The v3.5 upstream kernel already has most of the required functionality merged. Some is still out-of-tree though, so you might need to clone the linux-cr.git, checkout the crtools-3.6-rc5 branch and compile the kernel. (с)

     
  • 1.4, Кашин Дмитрий (?), 13:00, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]
  • +2 +/
    Хм...

    Я правильно понимаю, что теперь я могу заморозить nginx с несколькими гигами кэша, перезагрузиться с новым ядром, разморозить его обратно и не получить лежащий от DoS-а сервер?

    Если так, то это реально крутая вещь.

     
     
  • 2.9, Алексей (??), 14:35, 28/09/2012 [^] [ответить]    [к модератору]
  • –1 +/
    да, если nginx запускать в контейнере (cgroups), то на время перезагрузки его лучше на другую машину перетащить (постепенно), а потом обратно. причем все это штатными средствами ядра (правда сам nginx хорошо написан, это редкость).
     
     
  • 3.36, myhand (ok), 11:53, 29/09/2012 [^] [ответить]    [к модератору]
  • +/
    > да, если nginx запускать в контейнере (cgroups)

    Да ну?  А на сайте сабжа написано, что для sshd - planned (sshd requires TCP listening sockets support).

    Либо информация в вики устарела - либо вы наврали здесь.

     
  • 2.24, Аноним (-), 21:07, 28/09/2012 [^] [ответить]    [к модератору]  
  • +/
    В принципе ничему не противоречит. Хотя умнее заморозить -> поднять на другой машине -> заапдейтить старую -> передвинуть обратно. Так может получиться непрерывный сервис.
     
  • 2.42, 911 (??), 22:43, 30/09/2012 [^] [ответить]    [к модератору]  
  • +/
    >разморозить его обратно и не получить лежащий от DoS-а сервер?
    >Если так, то это реально крутая вещь.

    В любом случае, если он лежал до, ляжет и после. Причем очень быстро.

     
  • 1.5, Аноним (-), 13:29, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +1 +/
    > Судя по Павлу первая девушка у него появилась лет этак в 35

    Павел Емельянов, архитектор в департаменте серверной виртуализации Parallels.

    В компании Parallels с 2004 года, начинал как разработчик в команде Linux kernel team, потом стал лидером этой команды. Идеолог проекта "живая миграция приложений в Linux". В середине 90-х и позднее — самый плодовитый генератор идей и кода в mainstream ядро Linux из России в целом и Parallels в частности. Завсегдатай тусовок (в том числе "только по приглашению") Linux community в режиме реального времени. Основной стратег в деле освоения Parallels облачных технологий. Выпускник МФТИ, к.ф.-м.н., отец троих детей.

     
  • 1.7, solardiz (ok), 13:51, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Кир Колышкин и Павел Емельянов выступят с докладом как раз на тему CRIU на Yet another Conference в Москве (организатор - Yandex) 1-го октября:

    http://events.yandex.ru/talks/334/

    Сегодня (28-го сентября) до 18:00 последний день регистрации на YaC (бесплатно):

    http://events.yandex.ru/events/yac/2012/

     
  • 1.10, Преподаватель информатики (?), 14:40, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +1 +/
    Хм, это надо использовать в комнатах KDE (activities), а то LibreOffice офигивает от остановки комнаты.
     
     
  • 2.38, Аноним (-), 23:51, 29/09/2012 [^] [ответить]    [к модератору]  
  • +/
    Может, проще подлечить офигевших?
     
  • 1.12, мимо_проходил (?), 15:00, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    А что нибудь подобное, но во freebsd есть?
     
     
  • 2.13, Аноним (-), 15:03, 28/09/2012 [^] [ответить]    [к модератору]  
  • +1 +/
    Увы нет
     
  • 2.25, Аноним (-), 21:09, 28/09/2012 [^] [ответить]    [к модератору]  
  • +1 +/
    > А что нибудь подобное, но во freebsd есть?

    Там вообще все с виртуализацией плохо. И контейнеры стали сильно отставать от пингвинов.

     
  • 1.17, Аноним (-), 17:31, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Вопрос на интервью для Павла:

    1) Раньше был подобный по сути, но не реализации проект CryoPID - A Process Freezer for Linux.
    Связаны ли как-то CRIU и CryoPID?

    2) Насколько я понял из беглого взгляда на CRIU -этот проект начал использовать недавне появивщейся АПИ в ядре для "замораживания" статусов, которое вроде как сначала зародилось на будущее использование (на опеннете обсуждалось). Итого вопрос - насколько инфраструктура соответствующая в ядре готова насейчас для полноценного использования CRIU для любого процесса в системе и если не готова, то есть ли договоренности о ее расширении до нужного уровня и если есть - то когда (в каких релизах ванилы) это будет?

     
  • 1.18, Buy (ok), 18:21, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • –2 +/
    Apple задавит патентами, точно помню у них подан иск на кого-то за реализацию возможности продолжить разговор без разрыва сессии перейдя с ноута или стационарного компа на айфон или айпад.
     
     
  • 2.19, ram_scan (?), 20:43, 28/09/2012 [^] [ответить]    [к модератору]  
  • +/
    Prior art был еще в 80-лохматые года, даже до победного шествия биллогейтсового масадоса. Таким образом тупоголовые защиты от копирования с программ сдирали.

    Например на спекки (да святится имя его), году в 84-м или в 85-м был промышленно выпускаем хардварный девайс с именем Multiface, который позволял делать снапшоты аппликух, сохранять их на внешний сторадж, и пущать их потом с замороженого места на другой машине (собсно все страны СЭВ тогда на клонах этой машинки именно в снапшоты такие по большому счету и гамались). Позже появился beta-disc с точно такой-же но более криво работающей фичей.

     
  • 2.20, Аноним (-), 20:45, 28/09/2012 [^] [ответить]    [к модератору]  
  • +/
    В РФ и в Швейцарии запрещены патенты на софт. И тут совсем другое.
     
  • 2.28, Аноним (-), 21:12, 28/09/2012 [^] [ответить]    [к модератору]  
  • +5 +/
    > Apple задавит патентами,

    Эпплу ща для начала гугл навешает патентами так что они будут выпускать только прямоугольник. Скругленный. Гламурный. Но без начинки. Потому что все что касается сотовой связи - густо запатентовано моторолой :)

     
     
  • 3.33, arisu (ok), 01:06, 29/09/2012 [^] [ответить]    [к модератору]  
  • +6 +/
    > Эпплу ща для начала гугл навешает патентами так что они будут выпускать
    > только прямоугольник. Скругленный. Гламурный. Но без начинки.

    ничего, фанаты огрызка купят. ещё и будут говорить, что так даже лучше — не надо думать о заряде батареи, о прошивках и прочей занудной ерунде.

     
  • 1.21, Клим (?), 20:54, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    виртуалбокс со снапшотоами уже не катит?
     
     
  • 2.23, Xaionaro (ok), 21:01, 28/09/2012 [^] [ответить]    [к модератору]  
  • +/
    Ну-ну, виртуализируйте всё подряд...
     
  • 2.27, Аноним (-), 21:11, 28/09/2012 [^] [ответить]    [к модератору]  
  • +/
    > виртуалбокс со снапшотоами уже не катит?

    Ну вы сравнили, блин, грузовик с велосипедом.

     
  • 1.22, Xaionaro (ok), 21:00, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Давно ждал эту вкусняшку :)
     
  • 1.26, Аноним (-), 21:09, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    А поддержка автоматизации переноса процесса в openvz/lxc контейнер не предвидится ? Чтобы заморозил процесс в системе, а потом разморозил в контейнере и главное, чтобы в этот контейнер перенеслись все нужные этому процессу компоненты.
     
  • 1.29, Аноним (-), 21:16, 28/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Как быстро он сохраняет слепок процесса ? Есть ли смысл экспериментировать с заморозкой всех процессов, или suspend/resume всей системы будет слишком много времени занимать ? Интересно поковырять CRIU в сторону создания слепка для всей системы и восстановления на другой машине для обеспечения high availability или для переноса без остановки на более мощный сервер.
     
     
  • 2.31, AMD man (?), 00:59, 29/09/2012 [^] [ответить]    [к модератору]  
  • +/
    О прецедентах: Слепок (slepok) был ещё на EC ЭВМ и сохранял полное состояние работающей системы на ленту.
     
     
  • 3.35, www2 (??), 09:49, 29/09/2012 [^] [ответить]    [к модератору]  
  • +/
    Вся система и отдельный процесс - всё-таки несколько разные вещи.
     
  • 2.37, Аноним (-), 13:03, 29/09/2012 [^] [ответить]    [к модератору]  
  • +/
    > Интересно поковырять CRIU в сторону создания слепка для всей системы и восстановления на другой машине для обеспечения high availability или для переноса без остановки на более мощный сервер.

    Для таких задач давно придумали виртуализацию.

     
  • 1.32, arisu (ok), 01:04, 29/09/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    у-у-у. я думал, можно на любое ведро водрузить. или хотя бы на любое третье ведро. или хотя бы на любое 3.3 ведро.

    пичалька.

     
     
  • 2.39, Аноним (-), 11:40, 30/09/2012 [^] [ответить]    [к модератору]  
  • +/
    к 3.6 обещали что везде будет
     
     
  • 3.40, Аноним (-), 19:31, 30/09/2012 [^] [ответить]    [к модератору]  
  • +/
    3.6 выйдет завтра-послезавтра. Может, к 3.7?
     
  • 3.41, arisu (ok), 20:24, 30/09/2012 [^] [ответить]    [к модератору]  
  • +/
    > к 3.6 обещали что везде будет

    что «3.6»? что «везде будет»? O_O

     
  • 1.43, anonym (?), 15:14, 01/10/2012 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    функционал восстановления/заморозки включили в 3,5, в 3,6 это будет реализовано полностью. Если интересуют не только контейнеры, то можно почитать на эту тему http://habrahabr.ru/post/152903/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Fornex
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру