Руководитель отдела разработки CRIU Павел Емельянов подготовил статью о том, почему такие инструменты востребованы сегодня, и какие возможности они открывают для разработчиков и пользователей в перспективе.CRIU (http://criu.org/Main_Page) – это проект, позволяющий копировать, восстанавливать работающие приложения в любом месте и в любое время. Инициатива три года назад получила скептический отзыв Эндрю Мортона, который собирался выкинуть впоследствии «эти лишние функции» из ядра, а сегодня – становится компонентом одной из самых популярных ОС Linux – Red Hat Enterprise Linux.
Еще в 2012 году разработчики компании Parallels (ныне Odin) начали искать способ живой миграции не только виртуальных машин между различными платформами, но и самих приложений. Задача придать виртуальной среде дополнительной гибкости была понятной – ведь именно Virtuozzo первой предложила технологии контейнерной виртуализации, и возможность останавливать приложения, чтобы запустить их «в другом месте» выглядела логичной.Cуществует весьма популярный проект контейнерной виртуализации OpenVZ (https://openvz.org/Main_Page), поддерживаемый компанией Virtuozzo (http://www.virtuozzo.com), и у него даже есть определенные возможности по резервному копированию и восстановлению работы приложений, но именно CRIU (https://criu.org/Main_Page) изначально была призвана создать универсальный и надежный инструмент перемещения приложений между любыми рабочими средами.
Первое время сообщество рассматривало данную инициативу с большим скепсисом. Все же решение задачи, которую поставили перед собой программисты было очень многосторонним – нужно было предусмотреть массу всяческих нюансов, чтобы приложение продолжило работать без сбоев, не теряло свои данные и сохраняло безопасность ИТ-инфраструктуры, принятые политики доступа к информации. Даже Линус Торвальдс поначалу считал, что «ничего не получится», но текущие достижения и упорство команды доказали обратное.CRIU меняет Linux
Возможно эта фраза покажется вам слишком уж бравадной, но в действительности команда CRIU за прошедшее время внесла немало изменений и дополнений в мир GNU/Linux. И это касается не только самого когда CRIU, пакет с которым уже включают в себя различные дистрибутивы, но и различных дополнительных интерфейсов и функций ядра (kernel), которые были созданы командой программистов для поддержки работы CRIU. Конечно, можно было зашить всю технологию в отдельный модуль ядра, но разработчики OpenSource всегда предпочитают сделать что-то более общее и полезное, если возникает такая возможность.
Так, благодаря CRIU в ядре Linux появилась возможность получать исчерпывающую информацию о сетевых соединениях, следить за тем, какие участки памяти используют отдельные приложения. Кроме этого были расширены возможности получения информации из виртуальной файловой системы proc, все более широко используемой OpenSource сообществом.
Более того, знаком зрелости CRIU можно считать тот факт, что в последнем релизе Red Hat Enterprise Linux (https://access.redhat.com/documentation/en/red-hat-enterpris.../) от ноября 2015 года инструментарий CRIU был включен в комплект как технологический превью (tech preview). А это значит, что наработки CRIU стали вызывать интерес у более широкого спектра пользователей Linux – ведь с новой версией Red Hat все желающие смогут опробовать механизм CRIU в действии.Отчего столько шума?
Вы спросите, чем же CRIU отличается от других решений для резервного копирования и восстановления приложений? Ответ будет очень простым – CRIU позволяет перенести выполняющееся приложение на другой сервер, практически незаметно для самого приложения. Все данные работающего приложения сохраняются в виде набора файлов и могут быть переданы куда угодно и как угодно. Такой подход снимает ограничения приложений не написанных в популярной сегодня микросервисной архитектуре — теперь приложение не привязано жёстко к серверу, на котором оно выполняется, а это значит, что для восстановления его функций не нужно его перезапускать, теряя время и данные – можно просто восстановить приложение, которое не только будет работать корректно, но и не поймет, что его кто-то куда-то перенес.За время развития проекта ребята научились делать последовательные снимки (snapshot), добавляя к образу только изменившиеся данные, сделали возможной миграцию приложения с однго сервера на другой вообще без обращения к жесткому диску – прямо сохраняя все необходимые данные в оперативной памяти. В последних версиях CRIU появилась возможность обрабатывать сложные комбинации из абстракций ядра, что необходимо для работы с современными приложениями. А в ближайшем будущем появиться функция миграции приложения без сохраненной памяти, с последующей её подкачкой по сети для продолжения непрерывной работы.
Конечно, такая задача порождает массу вопросов и подзадач, которые команда CRIU решает и сегодня. Ежеквартально выходит новый релиз CRIU, в которых, как вы можете видеть сами (http://criu.org/Download/criu/1.8), появляется немало новых функций и огромное количество доработок и исправлений. Так, в последней версии CRIU 1.8 появилась библиотека API Python, улучшено взаимодействие с ядром и OpenVZ, исправлен целый ряд недоработок, а также повышен уровень безопасности. Все это и привело к тому, что CRIU появился в составе Red Hat Enterprise Linux – пусть пока и в статусе tech preview. Похоже, российской команде программистов все же удается решить свою задачу, и, возможно, скоро мы увидим CRIU в составе всех остальных дистрибутивов Linux.
URL:
Новость: http://www.opennet.me/opennews/art.shtml?num=43539
Пометьте новость плиз. Реклама.
Реклама чего? CRIU - свободный проект. Почти все новости на этом сайте можно считать рекламой свободного ПО.
> Реклама чего? CRIU - свободный проект. Почти все новости на этом сайте
> можно считать рекламой свободного ПО.Новость подана в форме рекламы. Ходит как утка, крякает как утка.
Пусть будет. Пареные_Рельсы/Один - это одна из немногих контор, рекламу которых я читаю с удовольствием.
> Пусть будет. Пареные_Рельсы/Один - это одна из немногих контор, рекламу которых я
> читаю с удовольствием.Я не ратую за то, чтоб удалить. Хорошее дело делают. И реклама пусть будет. Предлагаю просто отметить новость.
Забывая что продукт не открывали пока на попу не стали наступать конкуренты.
Наверно у них проблема с абстракции
Утиная типизация не всегда хорошо.
CRIU изначально был открытым.
criu да, а vz ?
>самых популярных ОС Linux – Red Hat Enterprise Linux.А я думал самая популярная - Ubuntu.
Линус считает что самый популярный линукс - андроид.
https://youtu.be/MShbP3OpASA?t=24m27sХотя, любой дурак знает, что Андроид линуксом не является.
> Линус считает что самый популярный линукс - андроид.
> https://youtu.be/MShbP3OpASA?t=24m27s
> Хотя, любой дурак знает, что Андроид линуксом не является.как хорошо что я не дурак
а тебя поздравляю
Надо же, как в одном посте можно назвать дураком и Линуса, и себя.
чел ну ты реально не въезжаешь - андроид это линукс вообще то
> чел ну ты реально не въезжаешь - андроид это линукс вообще тоЯдром что ли?
Да вы посмотрите diff ядра linux и ядра android.
> Хотя, любой дурак знает, что Андроид линуксом не является.Убунта тоже *TROLLFACE*
> любой дурак знает, что Андроид линуксом не является.Нет, не любой - только ты.
как раз таки Android является Linux-ом в чистом виде, а вот юзерспейз без GTK+/Qt да и вообще всего зоопарка gnu/opensourse, но от этого он линуксом быть не перестает
>да и вообще всего зоопарка gnu/opensourse1. в андроиде есть gnu утилиты
2. он и сам по себе опенсорсно тем не менее ты пишешь так, будто это что то плохое
если у тебя в детстве произошли неприятности во время посещения тобой зоопарка, то ни он, ни линух, ни гну -- не виноваты
>>да и вообще всего зоопарка gnu/opensourse
> 1. в андроиде есть gnu утилитыВ каком месте они _без рута_ есть?
> 2. он и сам по себе опенсорс
Нде?
> но тем не менее ты пишешь так, будто это что то плохое
Ага, оно и есть.
> если у тебя в детстве произошли неприятности во время посещения тобой зоопарка,
> то ни он, ни линух, ни гну -- не виноватыСемимесячных не спрашиваем.
>> 1. в андроиде есть gnu утилиты
>В каком месте они _без рута_ есть?В дебиане без рута нет ifconfig. По твоей логике, в дебиане нет ifconfig?
> В дебиане без рута нет 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
Следующий!
(C) "Слово - не воробей. Ничто не воробей, кроме воробья"Применительно к линуксу. Андроид -- это Андроид. Линукс - это Линукс. Андроид _основан_ на линуксе, т.е. использует его как ОС.
Linux - это ядро!Android -это, грубо говоря, всего лишь, запущенная поверх ядра Linux Java-машина, что в совокупности и даёт ОС.
В принципе, Android можно назвать "Линуксом" ничуть не в меньшей степени, чем какой-нибудь Ubuntu, Debian, RedHat и т.п.
Т.е. например Debian GNU/Linux и Arch Linux - это такие же (в той же степени) "Линукс" как и Android,
А вот Debian GNU/Hurd или Arch Hurd - это совсем не "Линукс".
> Хотя, любой дурак знает, что Андроид линуксом не является.https://github.com/guardianproject/lildebi/
> This is an app to setup and manage a Debian install in parallel on an Android phone.Видать, еще не все об этом не слышали )
все очень интересно, но хотелось бы поподробнее о деталях, например "появилась возможность получать исчерпывающую информацию о сетевых соединениях, следить за тем, какие участки памяти используют отдельные приложения. Кроме этого были расширены возможности получения информации из виртуальной файловой системы proc"
>нтересно, но хотелось бы поподробнее о деталях, например "появилась возможностьЕсли нужен ченжлог релиза или тех-детали о внутренностях, то эта новость не об этом. Попробуй её прочитать? ..//"Надо же себя заставлять!?\\,,, Взаимообразно: можно и про интересующие темы поискать _другие_ новости, статьи.
>эта новость не об этом.То есть, это все-таки реклама.
Это новость. За деталями - по линкам и в доку.
> Это новость. За деталями - по линкам и в доку.это реклама и голимый пиар.
Интересно экспертное мнение тигара насчёт КРИУ. Ведь для бзды вроде тоже были невзлетевшие реализации checkout/restore.
http://www.7he.at/freebsd/vps/docs/man/vps.9.html
Оно?
Пилилось, правда, силами одного человека.
>checkout/restore."Checkpoint/Restore In Userspace, or CRIU (pronounced kree-oo, IPA: /krɪʊ/, Russian: криу)"
Благодарю. Это моя очепятка.
Ага, и айЗена тоже :)
Linux/ФантомОС?
слог новости довольно мерзок, как будто кто-то хочет продать мне системдос от партнёра микрософта.
А на десктопе оно применимо? Хотел почитать о проекте, но их сайт лежит.Вот есть кубунта, не хочу закрывать программу (и потерять все "унды") как привинтить эту штуку, чтобы восстанавливать с того-же места? Или это опять всё для виртуализаций и контейнеров?
> А на десктопе оно применимо? Хотел почитать о проекте, но их сайт
> лежит.
> Вот есть кубунта, не хочу закрывать программу (и потерять все "унды") как
> привинтить эту штуку, чтобы восстанавливать с того-же места? Или это опять
> всё для виртуализаций и контейнеров?Ну для начало нужно собрать ядро с опцией #crazyrussians.
сайт уже работает, пойдите почитайте.
Не пойму почему, но меня не пускают. Наверное секрет не хотят раскрывать.
Штука полезная, но надо либо полностью переписывать текст либо сносить статью целиком. Мне кажется что лучше второе.
> 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
---
Ну давайте, расскажите мне, как вы много знаете контекстно-независимых приложений.
Хорошо, что у тебя сфера принятия решений ограничена только форумом, павлинукс :)
> Хорошо, что у тебя сфера принятия решений ограничена только форумом, павлинукс :)Я тебя не знаю. Меня никто не знает. Поэтому - ты насрал себе на лицо.
Что-то, я мало что понял из этой новости, но еще в 2000-м году, когда делал сервер доступа в интернет + файловый в домовой сети, столкнулся с проблемами недостаточной производительности интернет-сервера. То ли подсчет трафика тормозил, то ли еще что... Собирались эти "сервера" по принципу "на тебе Боже, что нам не гоже" и "я его слепила из того, что было".Сначала появился интернет-сервер (какая-то i486), потом файловый - он помощней был (i586).
Так вот, я к чему это все: поднял кластер на них. И "тяжелое" приложение успешно мигрировало на ресурс посвободнее, если пыталось "сожрать" слишком много ресурсов (обычно, им FS и оказывался, туда и мигрировало). Все полный автомат и наживую.
Уже не помню механизма, помню только ядро 2.2.Х было еще.
А чем эта CRIU-то отличается?
Оно сохраняет память приложения, его состояние, и позволяет быстро развернуть его на другой физической или виртуальной машине. Само приложение может и не заметить, что его перенесли.
> Так вот, я к чему это все: поднял кластер на них. И "тяжелое" приложение успешно мигрировало на ресурс посвободнее, если пыталось "сожрать" слишком много ресурсов (обычно, им FS и оказывался, туда и мигрировало).WAT?
> Все полный автомат и наживую.
у админов localhost всегда так
Надеюсь наша CRIY завалит докер который всегда вызывал недоумение