URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 138369
[ Назад ]

Исходное сообщение
"Выпуск CRIU 4.2, системы для сохранения и восстановления состояния процессов в Linux"

Отправлено opennews , 14-Ноя-25 09:28 
После шести месяцев разработки опубликован выпуск инструментария CRIU 4.2 (Checkpoint and Restore In Userspace), предназначенного для сохранения и восстановления процессов в пространстве пользователя. Инструментарий позволяет сохранить состояние одного или группы процессов, а затем возобновить работу с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений.  Код проекта написан на языке Си и распространяется под лицензией GPLv2. CRIU применяется в таких системах управления контейнерами, как OpenVZ, LXC/LXD и Docker. Необходимые для работы CRIU изменения включены в основной состав ядра Linux...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=64248


Содержание

Сообщения в этом обсуждении
"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 09:28 
Использую в продуктивной системе, здоровья проекту!

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено привет , 14-Ноя-25 10:57 
продуктовой (с) тех-лид ВТБ

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 13:17 
В проде (с) тех-лид Сбера

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Xenia Joness , 14-Ноя-25 19:43 
> продуктовой (с) тех-лид ВТБ
> В проде (с) тех-лид Сбера

Продолжу дальше:

В проде (с) тех лид Гугла
В проде (с) тех лид Мелкософта
В проде (с) тех лид НАСА
В проде (с) тех лид "Рога и копыта"


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Жироватт , 14-Ноя-25 09:50 
Попробовал. Хм...Джава-стек сумело корректно сохранить и восстановить

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 09:54 
А чего там восстанавливать? Только с видеокартами были сложности. Лучше расскажи, какое практическое применение есть? Я могу придумать только продолжительный рендер без возможности прервать и срочное обновление.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Жироватт , 14-Ноя-25 10:29 
На старых версия не всегда корректно работал с большим количеством JNI-вызовов, ведь должны захватываться и они.
> Лучше расскажи, какое практическое применение есть?

Рендер, расчеты.
На билдферме может выполняться сборочный процесс.
Иногда просто нежелательно тушить процесс


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 12:30 
Сборка Раста.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Lamerok , 15-Ноя-25 03:24 
ты же тот самый техлид выше? и не знаешь применения для этой технологии?! ну тогда я рассказывать точно небуду)

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 15-Ноя-25 05:38 
> Я могу придумать только продолжительный рендер без возможности прервать и срочное обновление.

Перенос процесса на другую машину, потому что эта барахлит.


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 15-Ноя-25 12:37 
> Какое практическое применение есть?

Чтоб можно было реализовать восстановление игр без повторного запуска, как на консолях


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 15-Ноя-25 12:43 
А смысл? У кого-то уже получилось?

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Шарп , 14-Ноя-25 09:54 
>без разрыва уже установленных сетевых соединений

Это невозможно. Другая сторона в сетевом соединении увидит разрыв. Если есть данные прикреплённые к сессии, то они сбросятся.


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 10:18 
Другая сторона только отвалится по таймауту. Если не успеет, то всё будет как будто у нас тут небольшой свопинг приключился.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 10:33 
Там специальные подпорки в ядре, позволяющие реконструировать внутреннее состояние сокета без использования вызовов сокетного апи, поэтому сокет будет восстановлен точно в том же состоянии, и если удалённая сторона не затаймаутилась - то она ничего не заметит, закрытия сокета и посылки FIN не происходит, а после разморозки трафик едет дальше, как ни в чём не бывало.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 12:16 
> после разморозки трафик едет дальше, как ни в чём не бывало.

даже через неделю?


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 12:28 
Через неделю-то тайаут произойдёт. Но если только та сторона тоже решила заморозиться, то и через месяц.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 18:50 
Хоть через год, если настроишь тайм-ауты на обеих сторонах. Компьютеру без разницы.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 15-Ноя-25 05:35 
> Это невозможно. Другая сторона в сетевом соединении увидит разрыв.

Да ладно? Что действительно невозможно скрыть факт перезагрузки? /s

До тех пор, пока ты (или что-то там ниже по сетевому стеку) не отправил другой стороне сообщения о том, что ты разрываешь соединение, другая сторона ничего не заподозрит. Единственное, что может выдать Штирлица -- это таймаут: если ты долго не будешь отправлять ACK пакеты в ответ на принятые оттуда, то сетевой стек на той стороне решит, что соединение оборвалось.

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

Впрочем, несколько потерянных пакетов, наверное, не так важно, соединение потупит немного, но со временем вернётся в норму.


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 15-Ноя-25 18:16 
> перезагружают, не теряя пакетов

Такой цели вообще нет и быть не может. В обычной сети пакеты теряются постоянно. Вокруг этого неприятного факта целый TCP с алгоритмами контроля окна передачи построили.


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 16-Ноя-25 00:29 
Не может быть чтобы такой цели не могло быть. TCP далеко не безболезненно переживает потерю пакетов, сначала дожидаясь таймаута, а потом сужая окно в Европу. Другое дело, что для того, чтобы оно работало, нет необходимости достигать этой цели на 100%.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 16-Ноя-25 00:57 
TCP расстроится куда больше, если сервер перезагрузят и соединение молча отвалится навсегда, потеряв по дороге FIN. Когда это не проблема, никто не возится с CRIU, а просто выключают в одном месте и включают в другом.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено trolleybus , 14-Ноя-25 09:59 
> Устранено целочисленное переполнение в функции pagemap_len()

А вот это типично сишная проблема. Многие тупо не парятся и везде пишут int, когда даже стандартом не определено, сколько точно байтофф оно занимает, ибо architecture dependent. Про знаковые/беззнаковые вообще молчу. А использовать всякие uint32_t не хотим, это ненужное ненужно.

Даже в расте такой номер не пройдет, если только специально не поиздеваться.


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Пыщь , 14-Ноя-25 10:32 
Понравилась цитата защищавшего расто-операторов, суну сюда: "Это вы себе что-то придумывете. А люди обучаются, исправляют ошибки, получают знания и удовольствие."

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Медведь , 14-Ноя-25 11:43 
> А вот это типично сишная проблема.

Бред сивой кобылы. Такое возможно в любом  ЯП, где целые занимают фиксированный размер в памяти. Ржа тоже вполне себе подвержена ошибкам из-за выхода за допустимый диапазон значений.

Забавно, ржавозависимые при каждом баге в растокоде упрекают всех, что от их драгоценной ржи требуют чего-то, чего ржа не обещала, но сами не могут определиться с тем, чего же она все-таки обещала ;)


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено morphe , 14-Ноя-25 12:21 
Ржавчина использует для подобных вещей везде isize/usize, и не позволяет неявных конверсий между ним и int

В то время как в сишке для совместимости везде int и грабли


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Медведь , 14-Ноя-25 13:25 
И теперь usize::MAX + 1 не приведет к переполнению, да-да-да. Вот откуда вы лезете?

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено morphe , 14-Ноя-25 15:40 
> И теперь usize::MAX + 1 не приведет к переполнению, да-да-да. Вот откуда
> вы лезете?

Если что-то может переполниться, в Rust можно явно это обрабатывать через checked_add/saturating_add/strict_add/wrapping_add/overflowing_add, а не делать проверки вида a + b < a и надеяться что компилятор тут поймёт что это проверка на переполнение, а не UB (Потому что по стандарту это UB)


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено _ , 14-Ноя-25 22:12 
> Если что-то может переполниться, в Rust можно явно это обрабатывать через checked_add/saturating_add/strict_add/wrapping_add/overflowing_add,

Ыыыы :) А такое-же в Си сделать по твоему - технически не возможно, да? ;)))))))


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 15-Ноя-25 20:59 
Дело не в том, возможно или нет. Все Тьюринг-полные языки эквивалентны. Проблема в том, что в коде на Си так не делают: никто не заставляет, традиций проверять и помнить всё UB назубок нет, тулинга и автоматизации толком тоже нет. А так, можешь писать без лажи на Си — пиши. Хоть сразу у машинных кодах пиши, если можешь. Но ведь по факту, пишете вы только комментарии на опеннете.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено trolleybus , 14-Ноя-25 15:53 
> И теперь usize::MAX + 1 не приведет к переполнению, да-да-да

Штука в том, что в расте тоже можно много чего натворить, но только если ты этого очень сильно захочешь. А в сишке ты можешь натворить, даже если очень не хочешь.


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Медведь , 14-Ноя-25 15:15 
> стандартом не определено, сколько точно байтофф оно занимает, ибо architecture dependent

В рже, внезапно, размер usize и isize тоже зависит от архитектуры. Сюрприз!


"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено trolleybus , 14-Ноя-25 16:00 
Так это и документировано. На 32 битах - 32 бита, на 64 - 64. И никаких сюрпризофф.
А в сишке внезапно в одной и той же архитектуре может в разных ABI отличаться (например, размер лонга на линуксе 64 бита, на винде 32).

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 19:21 
Это пока майкрософт и прочие не написали свой компилятор раста для 128 битных процессоров. Ну хотя у раста нет ABI, думать об этом и не придётся.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Catwoolfii , 14-Ноя-25 12:00 
эту штуку могли бы использовать в proxmox для живой миграции контейнеров lxc

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 14-Ноя-25 14:52 
Когда сделают live миграцию LXC контейнеров в Proxmox VE как это было ранее когда были OpenVZ контейнеры?

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Аноним , 15-Ноя-25 00:26 
Просто criu писали виртуоззники, у них под миграцию контейнеров между хостами все было заточено, так как виртуозза для хостеров и их shamand автоматом мигрировал контейнеры с проблемных хостов. В комплекте с виртуоззо сторадж это была довольно удобная вещь. Проксмокс скорее про небольшие внедрения, и фича эта была в нем просто из комплекта от openvz, чего видимо в lxc не доделали, потому что похоже коммерческого интереса хостить на lxc клиентов особо нет. Виртуозза к сожалению помирает, 7 версия была ох как давно, а 9я нововыпущенная - это совсем другой продукт, и даже без контейнеров вовсе. Но с другой стороны щас всем куб подавай.

"Выпуск CRIU 4.2, системы для сохранения и восстановления сос..."
Отправлено Анонимнетнетнет , 15-Ноя-25 19:51 
Открытые документы pdf и chrome восстановит в прежнем виде после перезагрузки?