The OpenNET Project / Index page

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

CRIU, путь от вызывающей непонимание разработки до интеграции в Red Hat Enterprise Linux

18.12.2015 10:38

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

CRIU – это свободный проект, позволяющий копировать, восстанавливать работающие приложения в любом месте и в любое время. Инициатива три года назад получила скептический отзыв Эндрю Мортона, который собирался выкинуть впоследствии «эти лишние функции» из ядра Linux, а сегодня – становится компонентом одного из самых популярных дистрибутивов – Red Hat Enterprise Linux.

Еще в 2012 году разработчики компании Parallels (ныне Odin) начали искать способ живой миграции не только виртуальных машин между различными платформами, но и самих приложений. Задача придать виртуальной среде дополнительной гибкости была понятной – возможность останавливать приложения, чтобы запустить их «в другом месте» выглядела логичной. Существует весьма популярный проект контейнерной виртуализации OpenVZ, поддерживаемый компанией Virtuozzo, и у него даже есть определенные возможности по резервному копированию и восстановлению работы приложений, но именно система CRIU изначально была призвана создать универсальный и надежный инструмент перемещения приложений между любыми рабочими средами.

Первое время сообщество рассматривало данную инициативу с большим скепсисом. Все же решение задачи, которую поставили перед собой программисты было очень многосторонним – нужно было предусмотреть массу всяческих нюансов, чтобы приложение продолжило работать без сбоев, не теряло свои данные и сохраняло безопасность ИТ-инфраструктуры, принятые политики доступа к информации. Даже Линус Торвальдс поначалу считал, что «ничего не получится», но текущие достижения и упорство команды доказали обратное.

CRIU меняет Linux

Возможно эта фраза покажется слишком бравадной, но в действительности команда CRIU за прошедшее время внесла немало изменений и дополнений в мир GNU/Linux. И это касается не только самого кода CRIU, пакет с которым уже включают в себя различные дистрибутивы, но и различных дополнительных интерфейсов и функций ядра (kernel), которые были созданы командой программистов для поддержки работы CRIU. Конечно, можно было зашить всю технологию в отдельный модуль ядра, но разработчики OpenSource всегда предпочитают сделать что-то более общее и полезное, если возникает такая возможность.

Так, благодаря CRIU в ядре Linux появилась возможность получать исчерпывающую информацию о сетевых соединениях, следить за тем, какие участки памяти используют отдельные приложения. Кроме этого были расширены возможности получения информации из виртуальной файловой системы proc, все более широко используемой OpenSource сообществом.

Более того, знаком зрелости CRIU можно считать тот факт, что в последнем релизе Red Hat Enterprise Linux от ноября 2015 года инструментарий CRIU был включен в комплект как технология для ознакомления (tech preview). А это значит, что наработки CRIU стали вызывать интерес у более широкого спектра пользователей Linux – ведь с новой версией Red Hat все желающие смогут опробовать механизм CRIU в действии.

Отчего столько шума?

Чем же CRIU отличается от других решений для резервного копирования и восстановления приложений? CRIU позволяет перенести выполняющееся приложение на другой сервер, практически незаметно для самого приложения. Все данные работающего приложения сохраняются в виде набора файлов и могут быть переданы куда угодно и как угодно. Такой подход снимает ограничения приложений не написанных в популярной сегодня микросервисной архитектуре — теперь приложение не привязано жёстко к серверу, на котором оно выполняется, а это значит, что для восстановления его функций не нужно его перезапускать, теряя время и данные – можно просто восстановить приложение, которое не только будет работать корректно, но и не поймет, что его кто-то куда-то перенес.

За время развития проекта разработчики научились делать последовательные снимки (snapshot), добавляя к образу только изменившиеся данные, сделали возможной миграцию приложения с одного сервера на другой вообще без обращения к жесткому диску – прямо сохраняя все необходимые данные в оперативной памяти. В последних версиях CRIU появилась возможность обрабатывать сложные комбинации из абстракций ядра, что необходимо для работы с современными приложениями. А в ближайшем будущем появится функция миграции приложения без сохранения содержимого памяти, с последующей подкачкой его по сети для продолжения непрерывной работы.

Конечно, такая задача порождает массу вопросов и подзадач, которые команда CRIU решает и сегодня. Ежеквартально выходит новый релиз CRIU, в которых появляется немало новых функций и огромное количество доработок и исправлений. Так, в последней версии CRIU 1.8 появилась библиотека API Python, улучшено взаимодействие с ядром и OpenVZ, исправлен целый ряд недоработок, а также повышен уровень безопасности. Все это и привело к тому, что CRIU появился в составе Red Hat Enterprise Linux – пусть пока и в статусе tech preview. Не исключено, что скоро CRIU можно будет увидеть в составе всех остальных дистрибутивов Linux.

  1. OpenNews: Выпуск CRIU 1.8, системы для сохранения и восстановления состояния процессов в Linux
  2. OpenNews: Релиз Red Hat Enterprise Linux 7.2 с обновлённым рабочим столом GNOME
  3. OpenNews: Интервью с Павлом Емельяновым, одним из самых активных российских разработчиков ядра Linux
  4. OpenNews: Выпуск системы управления контейнерами LXC 1.1, со встроенной поддержкой CRIU
  5. OpenNews: 9 лет проекту OpenVZ. Обзор участия Parallels в развитии открытых проектов
Автор новости: Virtuozzo
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43539-criu
Ключевые слова: criu
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (51) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, chinarulezzz (ok), 11:38, 18/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Пометьте новость плиз. Реклама.
     
     
  • 2.4, Аноним (-), 12:06, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Реклама чего? CRIU - свободный проект. Почти все новости на этом сайте можно считать рекламой свободного ПО.
     
     
  • 3.5, chinarulezzz (ok), 12:15, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > Реклама чего? CRIU - свободный проект. Почти все новости на этом сайте
    > можно считать рекламой свободного ПО.

    Новость подана в форме рекламы. Ходит как утка, крякает как утка.

     
     
  • 4.10, Аноним (-), 13:26, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пусть будет. Пареные_Рельсы/Один - это одна из немногих контор, рекламу которых я читаю с удовольствием.
     
     
  • 5.13, chinarulezzz (ok), 14:11, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Пусть будет. Пареные_Рельсы/Один - это одна из немногих контор, рекламу которых я
    > читаю с удовольствием.

    Я не ратую за то, чтоб удалить. Хорошее дело делают. И реклама пусть будет. Предлагаю просто отметить новость.

     
  • 5.21, Аноним (-), 16:44, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Забывая что продукт не открывали пока на попу не стали наступать конкуренты.
     
  • 4.17, nomore (?), 14:47, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Наверно у них проблема с абстракции
     
  • 4.19, Аноним (-), 15:54, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Утиная типизация не всегда хорошо.
     
     
  • 5.27, Аноним (-), 22:07, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    CRIU изначально был открытым.
     
     
  • 6.30, Аноним (-), 00:26, 19/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    criu да, а vz ?
     

  • 1.2, Аноним (-), 11:46, 18/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >самых популярных ОС Linux – Red Hat Enterprise Linux.

    А я думал самая популярная - Ubuntu.

     
     
  • 2.3, Аноним (-), 11:58, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Линус считает что самый популярный линукс - андроид.
    https://youtu.be/MShbP3OpASA?t=24m27s

    Хотя, любой дурак знает, что Андроид линуксом не является.

     
     
  • 3.7, Минона (ok), 13:02, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > Линус считает что самый популярный линукс - андроид.
    > https://youtu.be/MShbP3OpASA?t=24m27s
    > Хотя, любой дурак знает, что Андроид линуксом не является.

    как хорошо что я не дурак
    а тебя поздравляю

     
  • 3.8, vall (??), 13:07, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Надо же, как в одном посте можно назвать дураком и Линуса, и себя.
     
     
  • 4.43, re (?), 08:38, 20/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    чел ну ты реально не въезжаешь - андроид это линукс вообще то
     
     
  • 5.44, Аноним (-), 19:26, 20/12/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > чел ну ты реально не въезжаешь - андроид это линукс вообще то

    Ядром что ли?

     
  • 5.47, Anonim (??), 14:48, 21/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да вы посмотрите diff ядра linux и ядра android.
     
  • 3.11, Аноним (-), 14:02, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Хотя, любой дурак знает, что Андроид линуксом не является.

    Убунта тоже *TROLLFACE*

     
  • 3.26, Led (ok), 21:46, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > любой дурак знает, что Андроид линуксом не является.

    Нет, не любой - только ты.

     
  • 3.33, Аноним (-), 05:04, 19/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    как раз таки Android является Linux-ом в чистом виде, а вот юзерспейз без GTK+/Qt да и вообще всего зоопарка gnu/opensourse, но от этого он линуксом быть не перестает
     
     
  • 4.42, Яро Ш. Я. (?), 04:19, 20/12/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >да и вообще всего зоопарка gnu/opensourse

    1. в андроиде есть gnu утилиты
    2. он и сам по себе опенсорс

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

     
     
  • 5.45, Аноним (-), 19:26, 20/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >>да и вообще всего зоопарка gnu/opensourse
    > 1. в андроиде есть gnu утилиты

    В каком месте они _без рута_ есть?

    > 2. он и сам по себе опенсорс

    Нде?

    > но тем не менее ты пишешь так, будто это что то плохое

    Ага, оно и есть.

    > если у тебя в детстве произошли неприятности во время посещения тобой зоопарка,
    > то ни он, ни линух, ни гну -- не виноваты

    Семимесячных не спрашиваем.


     
     
  • 6.53, анон с лора (?), 04:59, 25/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> 1. в андроиде есть gnu утилиты
    >В каком месте они _без рута_ есть?

    В дебиане без рута нет ifconfig. По твоей логике, в дебиане нет ifconfig?

     
     
  • 7.54, Andrey Mitrofanov (?), 16:44, 25/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > В дебиане без рута нет ifconfig.

    $ ifconfig
    bash: ifconfig: команда не найдена
    $ /sbin/ifconfig lo
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:27486200 errors:0 dropped:0 overruns:0 frame:0
              TX packets:27486200 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:15617873905 (14.5 GiB)  TX bytes:15617873905 (14.5 GiB)

    $ head -1 /etc/issue
    Debian GNU/Linux 7 \n \l


    Следующий!

     
  • 3.37, vn971 (ok), 14:28, 19/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    (C) "Слово - не воробей. Ничто не воробей, кроме воробья"

    Применительно к линуксу. Андроид -- это Андроид. Линукс - это Линукс. Андроид _основан_ на линуксе, т.е. использует его как ОС.

     
     
  • 4.38, Hemulo (?), 17:01, 19/12/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Linux - это ядро!

    Android -это, грубо говоря, всего лишь, запущенная поверх ядра Linux Java-машина, что в совокупности и даёт ОС.

    В принципе, Android  можно назвать "Линуксом" ничуть не в меньшей степени, чем какой-нибудь Ubuntu, Debian, RedHat и т.п.

    Т.е. например Debian GNU/Linux и Arch Linux - это такие же (в той же степени) "Линукс" как и Android,
    А вот Debian GNU/Hurd или Arch Hurd - это совсем не "Линукс".

     
  • 3.48, Нимано (?), 14:58, 21/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Хотя, любой дурак знает, что Андроид линуксом не является.

    https://github.com/guardianproject/lildebi/
    > This is an app to setup and manage a Debian install in parallel on an Android phone.

    Видать, еще не все об этом не слышали )

     

  • 1.6, sabakka (?), 12:26, 18/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    все очень интересно, но хотелось бы поподробнее о деталях, например "появилась возможность получать исчерпывающую информацию о сетевых соединениях, следить за тем, какие участки памяти используют отдельные приложения. Кроме этого были расширены возможности получения информации из виртуальной файловой системы proc"
     
     
  • 2.15, Andrey Mitrofanov (?), 14:38, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >нтересно, но хотелось бы поподробнее о деталях, например "появилась возможность

    Если нужен ченжлог релиза или тех-детали о внутренностях, то эта новость не об этом.  Попробуй её прочитать?   ..//"Надо же себя заставлять!?\\,,,  Взаимообразно: можно и про интересующие темы поискать _другие_ новости, статьи.

     
     
  • 3.20, Аноним (-), 16:38, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >эта новость не об этом.

    То есть, это все-таки реклама.

     
     
  • 4.23, . (?), 17:29, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Это новость. За деталями - по линкам и в доку.
     
     
  • 5.31, Аноним (-), 00:26, 19/12/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Это новость. За деталями - по линкам и в доку.

    это реклама и голимый пиар.

     

  • 1.9, Аноним (-), 13:18, 18/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересно экспертное мнение тигара насчёт КРИУ. Ведь для бзды вроде тоже были невзлетевшие реализации checkout/restore.
     
     
  • 2.12, Аноним (-), 14:04, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://www.7he.at/freebsd/vps/docs/man/vps.9.html
    Оно?
    Пилилось, правда, силами одного человека.
     
  • 2.16, Andrey Mitrofanov (?), 14:41, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >checkout/restore.

    [I]"Check[/I][B]point[/B][I]/Restore In Userspace, or CRIU (pronounced kree-oo, IPA: /krɪʊ/, Russian: криу)"[/I]

     
     
  • 3.18, Аноним (-), 14:50, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Благодарю. Это моя очепятка.
     
  • 2.22, Аноним (-), 16:50, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, и айЗена тоже :)
     

  • 1.14, Аноним (-), 14:36, 18/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Linux/ФантомОС?
     
  • 1.24, Аноним (-), 17:54, 18/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    слог новости довольно мерзок, как будто кто-то хочет продать мне системдос от партнёра микрософта.
     
  • 1.25, Константавр (ok), 19:36, 18/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А на десктопе оно применимо? Хотел почитать о проекте, но их сайт лежит.

    Вот есть кубунта, не хочу закрывать программу (и потерять все "унды") как привинтить эту штуку, чтобы восстанавливать с того-же места? Или это опять всё для виртуализаций и контейнеров?

     
     
  • 2.28, Аноним (-), 22:09, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А на десктопе оно применимо? Хотел почитать о проекте, но их сайт
    > лежит.
    > Вот есть кубунта, не хочу закрывать программу (и потерять все "унды") как
    > привинтить эту штуку, чтобы восстанавливать с того-же места? Или это опять
    > всё для виртуализаций и контейнеров?

    Ну для начало нужно собрать ядро с опцией #crazyrussians.

     
  • 2.32, sergeyb (ok), 00:30, 19/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    сайт уже работает, пойдите почитайте.
     
     
  • 3.34, Константавр (ok), 09:01, 19/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не пойму почему, но меня не пускают. Наверное секрет не хотят раскрывать.
     

  • 1.29, piteri (ok), 22:50, 18/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Штука полезная, но надо либо полностью переписывать текст либо сносить статью целиком. Мне кажется что лучше второе.

     
  • 1.39, pavlinux (ok), 17:12, 19/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > CRIU – это свободный проект, позволяющий копировать, восстанавливать работающие приложения

    tar -cf /tmp/any_app.tar /bin/any_app /etc/any_app.cfg ...

    > в любом месте

    scp|rsync /tmp/any_app.tar host:/tmp/

    > и в любое время.

    at
    $>  scp|rsync /tmp/any_app.tar host:/tmp/ /tmp/any_app.tar

    ^D

    ---

    Ну давайте, расскажите мне, как вы много знаете контекстно-независимых приложений.

     
     
  • 2.40, Красные Глаза (ok), 18:25, 19/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хорошо, что у тебя сфера принятия решений ограничена только форумом, павлинукс :)
     
     
  • 3.49, pavlinux (ok), 19:30, 21/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Хорошо, что у тебя сфера принятия решений ограничена только форумом, павлинукс :)

    Я тебя не знаю. Меня никто не знает. Поэтому - ты насрал себе на лицо.  

     

  • 1.41, Alting (ok), 00:05, 20/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что-то, я мало что понял из этой новости, но еще в 2000-м году, когда делал сервер доступа в интернет + файловый в домовой сети, столкнулся с проблемами недостаточной производительности интернет-сервера. То ли подсчет трафика тормозил, то ли еще что... Собирались эти "сервера" по принципу "на тебе Боже, что нам не гоже" и "я его слепила из того, что было".

    Сначала появился интернет-сервер (какая-то i486), потом файловый - он помощней был (i586).

    Так вот, я к чему это все: поднял кластер на них. И "тяжелое" приложение успешно мигрировало на ресурс посвободнее, если пыталось "сожрать" слишком много ресурсов (обычно, им FS и оказывался, туда и мигрировало). Все полный автомат и наживую.

    Уже не помню механизма, помню только ядро 2.2.Х было еще.

    А чем эта CRIU-то отличается?

     
     
  • 2.51, Аноним (-), 00:29, 24/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Оно сохраняет память приложения, его состояние, и позволяет быстро развернуть его на другой физической или виртуальной машине. Само приложение может и не заметить, что его перенесли.
     

  • 1.50, ALex_hha (ok), 19:44, 21/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Так вот, я к чему это все: поднял кластер на них. И "тяжелое" приложение успешно мигрировало на ресурс посвободнее, если пыталось "сожрать" слишком много ресурсов (обычно, им FS и оказывался, туда и мигрировало).

    WAT?

    > Все полный автомат и наживую.

    у админов localhost всегда так

     
  • 1.52, Аноним (-), 19:49, 24/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Надеюсь наша CRIY     завалит докер который всегда вызывал недоумение
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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