Спустя четыре года после выпуска первой версии 7 марта разработчики проекта CRIU (Checkpoint and Restore In Userspace) представили (https://lists.openvz.org/pipermail/criu/2016-March/026045.html) новый релиз инструментария для сохранения и восстановления процессов в пространстве пользователя для Linux - CRIU 2.0 (http://criu.org/Download/criu/2.0). Разработанный в рамках проекта инструментарий позволяет организовать создание контрольных точек, с заморозкой состояния запущенных приложений, и последующего восстановления работы с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений.Представленная версия включает в себя множество функциональных исправлений, улучшений безопасности и новую функциональность. Полный список изменений доступен на странице сайте проекта (https://criu.org/Download/criu/2.0), посвященной новой версии CRIU. Наиболее существенные изменения в новой версии:
- Исходный код проекта подготовлен (https://lists.openvz.org/pipermail/criu/2015-December/024128...) для выделения компонентов libsockcr и compel (https://criu.org/Compel), о которых будет объявлено позднее;
- Поддержка (https://criu.org/User-mode) сохранения состояния процесса непривилегированным пользователем;
- В инструментарий CRIT (CRiu Image Tool) добавлены средства для просмотра дерева процессов (ps), используемых файлов (fds) и информации об маппинге в память (mems);- Добавлен скрипт "post-setup-namespaces";- Реализована возможность задания таймаута для процедуры сохранения дампа (по умолчанию 5 секунд);- Добавлена возможность переопределения профиля LSM при восстановлении с опциями CLI/RPC;- Монтирование в режиме "bind" теперь может применяться и для монтирования корня;- Расширена поддержка внешних файлов (https://criu.org/Inheriting_FDs_on_restore), добавлена поддержка внешних TTY (https://criu.org/Inheriting_FDs_on_restore#Example_4_-_Exter...);- Поддержка C/R для новой функциональности в ядре Linux;
Учитывая предыдущий опыт разработки CRIU разработчики приняли решение изменить график выпуска новых версий и процесс разработки в проекте. После выпуска версии 2.0 в репозиторий добавили ветку devel (https://github.com/xemul/criu/tree/criu-dev), в которую будут попадать абсолютно все новые изменения. Основная ветка будет считаться стабильной и изменения в нее будут добавлять только при абсолютной уверенности, что эти изменения не вносят никаких деградаций в существующую функциональность. Новые версии будут появляться каждый месяц из стабильной ветки. Дата выхода будет анонсирована чуть позднее.
Также доступны два доклада о практическом применении инструментария CRIU:- Доклад о плюсах и минусах "живой" миграции контейнеров (https://www.youtube.com/watch?v=M1FKW945bQA) c конференции DevConf.CZ
<center><iframe width="640" height="480" src="https://www.youtube.com/embed/M1FKW945bQA?rel=0" frameborder="0" allowfullscreen></iframe></center>
- Доклад об использовании CRIU для "живой" миграции контейнеров LXC (https://www.youtube.com/watch?v=ol85OJxDaHc) с конференции Linux.au
<center><iframe width="640" height="360" src="https://www.youtube.com/embed/ol85OJxDaHc?rel=0" frameborder="0" allowfullscreen></iframe></center>
URL: https://lists.openvz.org/pipermail/criu/2016-March/026045.html
Новость: http://www.opennet.me/opennews/art.shtml?num=44015
втыкайте в проксмокс и заживём
Его что, совсем забросили, втянуть некому?.. Надеюсь, не так -- а тогда к ним и. :)
незаменимая вещь.
осталось прояснить с возможностью использования criu для обновления динамических библиотек "долго работающим" процессам
> незаменимая вещь.
> осталось прояснить с возможностью использования criu для обновления динамических библиотек
> "долго работающим" процессамhttps://blogs.oracle.com/linux/entry/new_userspace_patching_...
Не благодарите.
https://duckduckgo.com/?q=Ksplice+site%3Aopennet.ru...
23.01.2016 10:29 Ksplice для компонентов пространства пользователя адаптирован для Oracle Linux 6
24.02.2012 12:35 Oracle представил сервис Ksplice для RHEL и продлил поддержку для Oracle Linux до 10 лет
22.07.2011 08:48 Oracle поглотил компанию Ksplice, развивающую технологию обновления Linux-ядра без перезагрузки
>[оверквотинг удален]
>> "долго работающим" процессам
> https://blogs.oracle.com/linux/entry/new_userspace_patching_...
> Не благодарите.
> https://duckduckgo.com/?q=Ksplice+site%3Aopennet.ru...
> 23.01.2016 10:29 Ksplice для компонентов пространства пользователя адаптирован для Oracle
> Linux 6
> 24.02.2012 12:35 Oracle представил сервис Ksplice для RHEL и продлил поддержку
> для Oracle Linux до 10 лет
> 22.07.2011 08:48 Oracle поглотил компанию Ksplice, развивающую технологию обновления
> Linux-ядра без перезагрузкиСпасибо, Андрей, но за ksplice я вкурсе. но суть в другом, ksplice как и раньше для ядерной части предполагает подготовку binary-патчей. С моей-же точки зрения наиболее подходящим для этого (security обновления библиотек) инструментом выглядит именно checkpoiint/restore. Павлин что-то говорил что это мол пустое, но я как-то не наблюдаю больших технический трудностей для реализации ещё и этого функционала в рамках CRIU, учитывая что в ядерной части основная часть проделана и патчи для 4.4 ядра предполагают checkpoint/restart seccomp/ebpf.
на текущий момент needrestart мне подсказывает и помогает справляться с рестартом необходимого на полуавтомате, но хотелка нерестартовать вовсе от этого меньше не становится.
Кто-нибудь уже придумал практическое применение (хотя бы в теории)? :D
Живая миграция в Docker (http://criu.org/Docker), LXC (https://criu.org/LXC), Virtuozzo 7 (http://www.opennet.me/opennews/art.shtml?num=43982) сделана с помощью CRIU.Tonic сделан с использованием CRIU - http://blog.tonicdev.com/2015/09/10/time-traveling-in-node.j...
А еще тут куча сценариев использования - https://criu.org/Usage_scenarios
> Живая миграция в Docker ... LXC ... Virtuozzo 7 ... Tonic ... А еще тут куча ...Я спрашивал практическое применение, а не примеры того, что динамитом можно убить 2.5 воробья (и то если скучкуются).
Накой хрен мигрировать весь Docker/LXC/Virtuozzo 7/Tonic? rsync ssh:// уже не модно?
Ах да, "с сохранением и восстановлением" - Чо, прям с паролями и временными SSL-ключами?
Так наверно на случай сбоя, хотя да, какая в ж...у миграция если диск накрыло?!
Ну тогда ... c собой в отпуск брать, в пятницу закрюкал, в субботу на пляже разморозил!
Вечером закрюкал, слил в продакшен! А чо, конфиги уже впадлу править?
---Не, у меня есть варианты, но они настолько экзотичные, что даже развивать тему не хочется.
тебе ответили про практическое применение. Что ты передергиваешь?
> Накой хрен мигрировать весь Docker/LXC/Virtuozzo 7/Tonic? rsync ssh:// уже не модно?Кто говорит о миграции всей ноды? Речь про отдельный контейнер. При этом в процессе миграции rsync и ssh очень даже активно используются. Но ими дело не ограничивается, ведь перенести надо не только состояние "диска", но и состояние памяти.
> Ах да, "с сохранением и восстановлением" - Чо, прям с паролями и
> временными SSL-ключами?Таки да. И даже с открытыми сокетами и файлами, прикинь какое сильное колдунство.
> Так наверно на случай сбоя, хотя да, какая в ж...у миграция если
> диск накрыло?!Нет, на случай переноса на другую ноду(железный сервер) без приостановки работы, в том числе и по сети.
> Ну тогда ... c собой в отпуск брать, в пятницу закрюкал, в
> субботу на пляже разморозил!В принципе можно, хоть и не совсем для этого создавалось.
> Кто-нибудь уже придумал практическое применение (хотя бы в теории)? :DПавлин, как насчёт такого применения.
1. checkpoint
2. делаем копию
3. на копии патчим библиотеки
4. запускаем копию с новыми библиотеками в изоляторе
-- если не упало убиваем и патчим оригинал -> запускаем оригинал в работу
-- если упало -> запускаем оригинал как был.5 restart
откуда вы возмёте боевую нагрузку и изоляторе?
> откуда вы возмёте боевую нагрузку и изоляторе?1. а она не нужна, точнее сказать, она уже имеется и проверяется в первую очередь соответствие ABI
2. обновление в любом случае только в регламентированное время
> если не упало убиваем и патчим оригиналтак она у вас никогда не упадёт, без нагрузки то.
представь себе что кроме этих ваших web сайтиков бывают такие программы, которые просто работают и делают дело, им не нужно новых коннектов - только память/cpu/дисккакая сложность инициировать в огороде новое соединение?
>> Кто-нибудь уже придумал практическое применение (хотя бы в теории)? :D
> Павлин, как насчёт такого применения.1. Виртуалка. Сетевуха в бридже с eth0.
2. Снапшот.
3. Пуск
4. Редирект трафика в виртуалку.
-- если не упало обновляем продакшен, редиректим обратно.
-- если упало -> не сохраняем снапшот.И то жирно, хватит проверить библиотеку на боевом,
ну отвалится сотня-другая тысяч клиентов, ничё, не умрут - F5 нажмут.С миграциями есть риск, что все клиенты воткнутся вообще в нерабочий сервер.
---
Вместо этой мигрилки лучше бы развивали тему "Дампа оперативки, и привязки его к новой системе, как конфига ядра". (с)
grub:
linux /boot/vmlinuz-9.99.999 root=/dev/cloud memcfg=/memdump-21.01.2189.raw
Через 2 сек. комп работает как и пару месяцев назад.
---За много бабла распишу и спроектирую схему реализации такой системы. Сам программить не буду, влом уже. :)
>>> Кто-нибудь уже придумал практическое применение (хотя бы в теории)? :D
>> Павлин, как насчёт такого применения.
> 1. Виртуалка. Сетевуха в бридже с eth0.
> 2. Снапшот.
> 3. Пуск
> 4. Редирект трафика в виртуалку.
> -- если не упало обновляем продакшен, редиректим обратно.
> -- если упало -> не сохраняем снапшот.неплохо придумано, но, есть проблемы, как пример
есть писаное чужими кривыми руками приложение, при старте коннектится к бд -> делает пару запросов -> следующие запросы раз в неделю.
обработка потери соединения в приложении не расписана -> соответственно при потере tcp коннекта оно падает на раз-два.
бд требует обновления, приложение остановить проблематично, можно конечно написать какой-нибудь прокси посередине но таких прокси ненаберёшся.
> И то жирно, хватит проверить библиотеку на боевом,
> ну отвалится сотня-другая тысяч клиентов, ничё, не умрут - F5 нажмут.
> С миграциями есть риск, что все клиенты воткнутся вообще в нерабочий сервер.я конечно может слишком оптимистичен, но мне кажется criu взлетит. будет-ли реализована моя хотелка или нет - покажет время.
f5 не для всех задач подходит, к сожалению.
> ---
> Вместо этой мигрилки лучше бы развивали тему "Дампа оперативки, и привязки его
> к новой системе, как конфига ядра". (с)
> grub:
> linux /boot/vmlinuz-9.99.999 root=/dev/cloud memcfg=/memdump-21.01.2189.raw
> Через 2 сек. комп работает как и пару месяцев назад.
> ---
> За много бабла распишу и спроектирую схему реализации такой системы. Сам программить
> не буду, влом уже. :)ну а чем принципиально это отличается от hibernate?
> неплохо придумано, но, есть проблемы, как примерНа уровне ядра, elf фала и карты памяти с метками решается.
А хочет этого приложение или нет определяется при компиляции.> я конечно может слишком оптимистичен, но мне кажется criu взлетит.
Никак не придумаю я реальной проблемы при которой нужна миграция системы
с сохранением состояния. Разве только какие-то экзотичные виды бэкапа
узлов нейронной сети, которые по сигналу из мозгового сервера восстанавливают
своё состояние.
>> неплохо придумано, но, есть проблемы, как пример
> На уровне ядра, elf фала и карты памяти с метками решается.
> А хочет этого приложение или нет определяется при компиляции.
>> я конечно может слишком оптимистичен, но мне кажется criu взлетит.
> Никак не придумаю я реальной проблемы при которой нужна миграция системы
> с сохранением состояния. Разве только какие-то экзотичные виды бэкапа
> узлов нейронной сети, которые по сигналу из мозгового сервера восстанавливают
> своё состояние.если-уж не говорить о livepatch'инге то как вариант тормознул приложение -> слил на флешку -> принёс домой -> продолжаешь работать. это конечно тоже можно рассматривать как извращение при наличии терминального/сетевого доступа... но
отличный аватар Ж:)
> За много бабла распишу и спроектирую схему реализации такой системы. Сам программить не буду, влом уже. :)В серверную картриджей принесли, сходи заправь! Потом уже можешь садиться и писать все что хочешь, но сначала работу сделай, за которую тебе деньги платят.
>> За много бабла распишу и спроектирую схему реализации такой системы. Сам программить не буду, влом уже. :)
> В серверную картриджей принесли, сходи заправь!Вам какая печаль? Ещё на складе не забрали веники и мётлы,
а весна уж скоро - пора тебе лопату на метлу менять и идти подметать.
никогда не понимал понятие резервного копирования всей вирт машины, или лайв миграция, и всякие вимбекапыспрашивается нафига? боюсь в ближайшем будущем придумают метод лайв миграции физ серверов из одного дц в другой )))
> никогда не понимал понятие резервного копирования всей вирт машины, или лайв миграция,
> и всякие вимбекапы
> спрашивается нафига? боюсь в ближайшем будущем придумают метод лайв миграции физ серверов
> из одного дц в другой )))Есть уже, "Равшан, Джамшут и Газель Сo. Inc."
>> никогда не понимал понятие резервного копирования всей вирт машины, или лайв миграция,
>> и всякие вимбекапы
>> спрашивается нафига? боюсь в ближайшем будущем придумают метод лайв миграции физ серверов
>> из одного дц в другой )))
> Есть уже, "Равшан, Джамшут и Газель Сo. Inc."что только не придумают, чтоб занятость населения была )))
роботизация зло !!! ))))))
А я хочу
1: Запустил КДЕ
2: Поработал во множестве программ
3: Наступила ночь (или надо куда-то ехать с компом)
4: Чудесным способом применил эту Крю
5: Комп выключился
6: Поспал (приехал куда надо было)
7: Включил со всеми ранее запущенными программами и файлами в том состоянии что и вчера.
8: Щастя.Так мождно?
Нельзя, за некоторым исключением.
Впрочем, для этого придумали саспенд/гибернацию.
это называется гибернация
Нет. Не то. Есть желание сохранять состояние рабочей сессии. Или самых нужных программ. Это не гебернация. После неё я не смогу зайти от другого пользователя. А тут вошёл в рабочую учётку и тебе открылись кады-офисы с документами и всеми ундами, вошёл "домой"и тут тебе всё как было, фоточки в гимпе и пр. тоже, ундай-не хочу..
> Нет. Не то. Есть желание сохранять состояние рабочей сессии. Или самых нужных
> программ. Это не гебернация. После неё я не смогу зайти от
> другого пользователя. А тут вошёл в рабочую учётку и тебе открылись
> кады-офисы с документами и всеми ундами, вошёл "домой"и тут тебе всё
> как было, фоточки в гимпе и пр. тоже, ундай-не хочу..в твом первом сообщении ни слова про переключение пользователей
но так тоже можно сделать, просто пользователей будет переключать в GRUB-е
Этот костыль так просто не заработает, нужно 20тонн синей изоленты.
Вот и я думаю. А все вумнаи слова, что понаписали в новости лишь для прикрытия, что это не для людей сделано.
Это сделано для людей которым работать, а не извращаться. Миграция приложений вещь сама в себе.
Если для вашего кейса не хватает саспенда, то вы явно делаете что-то не так. Возможно вы не так описываете свои хотелки.
Возвращаться к сохранённой точке в проекте, со всеми откатами и открытыми сопутствующими инструментами - это не работа? Вернуться в мастерскую, где всё так как я оставил - это извращение? У нас видимо очень разные представления о работе.Два пользователя в системе - один для домашних посидюлек, другой для работы. Файлы не пересекаются, настройки не мешаются, закладки не отвлекают, красота! Какой нахрен саспенд? Единственное чего не хватает - сохранение состояния сессии или критически важных приложения с документами.
> Возвращаться к сохранённой точке в проекте, со всеми откатами и открытыми сопутствующими
> инструментами - это не работа? Вернуться в мастерскую, где всё так
> как я оставил - это извращение? У нас видимо очень разные
> представления о работе.
> Два пользователя в системе - один для домашних посидюлек, другой для работы.
> Файлы не пересекаются, настройки не мешаются, закладки не отвлекают, красота! Какой
> нахрен саспенд? Единственное чего не хватает - сохранение состояния сессии или
> критически важных приложения с документами.вспомнился Фантом ОС уважаемого DZ. Может всё таки сменить подход ОС самой ? В Фантом ОС нет понятия файла, как я понял из конференций 2009 года, всё что имеется эт типа гибернейт файлика - который при следующем старте стартовал именно в том месте где и остановился, помню лайв демонстрацию цикла в Фантом ОС когда резко всё выключали, а после старта можно было увидеть как цикл продолжился и переменная инкремента ну чуть отставала на момент остонова всей системы, прелесть - не так ли? Но в реале, что? кто поддерживает идеи DZ ? по части многие сочли бы не нужным такое поведение.
> сохранение состояния сессии или
> критически важных приложения с документами.так файлы уже и есть сохранение крит важных данных с последующим их воспроизведением )))
пс: определитесь что вам нужно, может ещё придумаете чтоб комп энергию не потреблял ? ох какое счастье было бы.
> вспомнился Фантом ОС уважаемого DZ. Может всё таки сменить подход ОС самой
> ?всё-бы хорошо - но придётся много переписывать
это не первый checkpoint/restart на linux, когда-то был mosix/openssi/kerrighed у них правда ещё и доп. функционал. но CRIU первый в mainline'е
Добавить в тулбар тайтла окна кнопочку-бэкенд к CRIU, которая будет не закрывать приложение, а замораживать его состояние тебя устроит? Вроде худо-бедно все WM можно так кастомизировать, было бы желание же.
Хотя в твоём кейсе нужно что-то типа саспенда учётки (и всех процессов запущенных её пользователем, соответственно). В принципе тоже решаемо, при локе учётки - саспендить все процессы заданного юзверя, при входе юзверя - размораживать.
Прикинь, всё ядро не для людей сделано, ты напрямую с ядром вообще не работаешь, только через туеву хучу прослоек типа либ и приложений.
> Так мождно?Vmware -> Snapshots, я так Вантуз 10 запускаю, ибо оно грузится
до рабочего состояния минут 5, и вечно что-то апдейтит.
Мнда... это реализованно в полуоси было году в 93-95... называлось "рабочая папка"...