The OpenNET Project / Index page

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

Выпуск CRIU 3.18, системы для сохранения и восстановления состояния процессов в Linux

24.04.2023 22:19

Опубликован выпуск инструментария CRIU 3.18 (Checkpoint and Restore In Userspace), предназначенного для сохранения и восстановления процессов в пространстве пользователя. Инструментарий позволяет сохранить состояние одного или группы процессов, а затем возобновить работу с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений. Код проекта распространяется под лицензией GPLv2.

Из областей применения технологии CRIU отмечается обеспечение перезагрузки ОС без нарушения непрерывности выполнения длительно выполняемых процессов, Live-миграция изолированных контейнеров, ускорение запуска медленных процессов (можно начать работу с состояния, сохранённого после инициализации), проведение обновлений ядра без перезапуска сервисов, периодическое сохранение состояния долговыполняемых вычислительных задач для возобновления работы в случае краха, балансировка нагрузки на узлы в кластерах, дублирование процессов на другую машину (fork на удалённую систему), создание снапшотов пользовательских приложений в процессе работы для их анализа на другой системе или на случай если потребуется отменить дальнейшие действия в программе. CRIU применяется в таких системах управления контейнерами, как OpenVZ, LXC/LXD и Docker. Необходимые для работы CRIU изменения включены в основной состав ядра Linux.

В новом выпуске:

  • Предоставлена возможность использования CRIU без прав root.
  • Добавлена поддержка сигнала SIGTSTP (интерактивный сигнал приостановки выполнения, который в отличие от SIGSTOP может быть обработан и проигнорирован).
  • Добавлен параметр "--skip-file-rwx-check" для пропуска проверки прав доступа к файлу (r/w/x) при восстановлении.
  • Добавлена поддержка опций IP_PKTINFO и IPV6_RECVPKTINFO.
  • Для платформ ARM реализована поддержка аппаратных точек останова.
  • Добавлена оптимизация точек сохранения для сильно разреженных ghost-файлов (--ghost-fiemap).


  1. Главная ссылка к новости (https://github.com/checkpoint-...)
  2. OpenNews: Выпуск системы управления контейнерами LXD 5.0
  3. OpenNews: Выпуск CRIU 3.16, системы для сохранения и восстановления состояния процессов в Linux
  4. OpenNews: Linux Foundation представил containerd 1.0, runtime для изолированных контейнеров
  5. OpenNews: Утверждена единая спецификация для образов и runtime изолированных контейнеров
  6. OpenNews: Выпуск OpenVZ 7.0, ставший итогом слияния проектов OpenVZ и Virtuozzo
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59024-criu
Ключевые слова: criu
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (46) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:03, 24/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Каким образом это нововведение возможно применить в девопсе?
     
     
  • 2.2, Аноним (2), 23:11, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Какое именно? И зачем именно в девопсе? Как мне видится невозможность сдампить GUI приложения несколько ограничивает применимость на десктопе, но всё же. Да и вроде говорили что для иксов анриал, но для вейланда возможно. Так уж получается, что какой-нибудь блендер иногда неплохо бы остановить по разным причинам.
     
     
  • 3.21, Аноним (21), 07:12, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Правильная, ядерная (никаких изменений в системном и прикладном ПО не требуется) реализация SSI кластера балансировки нагрузки между узлами (прозрачная миграция процессов) и правильная, реализация сохранения и восстановления процессов для Linux (прозрачное восстановление абсолютно всех процессов,включая все графические процессы): https://mirror.yandex.ru/mirrors/ftp.linux.kiev.ua/Linux/CD/Dystryk/

    Исходники: https://sourceforge.net/projects/monitoring/files/hardened-om-sources/hardened

     
  • 3.22, Аноним (21), 07:19, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  и вроде говорили что для иксов анриал

    Лгут тебе. Выше ссылки на LiveCD и исходники ядра Linux, все оттестировано и работает.

    Жаль, не смогли протолкнуть эти, ПРАВЕЛЬНЫЕ, технологии в официальное ядро. Победила красная шляпа с cgroups, namespaces, systemd+dbus+polkit.

     
     
  • 4.69, xoy (??), 21:45, 11/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Дела давно минувших лет - преданье старины глубокой.
     
  • 3.23, Аноним (21), 07:24, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > и вроде говорили что для иксов анриал, но для вейланда возможно

    Насколько помню события 15-летней давности там разрабы поругались с технологиями cgroup, namespaces если их выкинуть с ядра, то уже есть реализация и для X11: https://sourceforge.net/projects/monitoring/files/hardened-om-sources/hardened

    А вейленд такое же нинужгое зло как и сыстемды с дбас.

     
     
  • 4.58, Илья (??), 19:17, 26/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > А вейленд такое же нинужгое зло

    А есть какой-то другой способ окна рисовать?

     
     
  • 5.60, AlexYeCu (ok), 23:59, 26/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >А есть какой-то другой способ окна рисовать?

    Ты не поверишь…

     
  • 5.63, Аноним (63), 08:45, 27/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    X11, он более универсален, поддерживает сеть, многоголовость (DMX). Хотя и DMX в иксах недавно похерели. Наверно производители железа приплатили.
     
     
  • 6.68, Илья (??), 17:34, 01/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > X11, он более универсален, поддерживает сеть, многоголовость (DMX). Хотя и DMX в
    > иксах недавно похерели. Наверно производители железа приплатили.

    Его же усиленно выпиливают и везде рекомендуют от него отказываться.

     
  • 2.7, Аноним (7), 23:42, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Было бы неплохо смигрировать вживую контейнер с одной машины на другую, например.
     
     
  • 3.12, Dzen Python (ok), 23:57, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    М?
    Прикладники научились писать софт, который не требует перезапусков раз в эн времени?
    Или 640 петабайт оперативы уж точно должно хватить всем?
     
     
  • 4.14, 48 (?), 00:40, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А что драйверов на расте писать не собираются? или системы не состоят из контейнеров внутри виртуалок, потому что никто низачто не отвечает?
     
  • 3.40, Ivan (??), 11:16, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Жду пока в Proxmox VE добавят живую миграцию LXC контейнеров. Ранее в Promox VE работала живая миграция
    OpenVZ контейнеров. После того как разработчики в Proxmox VE добавили LXC вместо OpenVZ, то они сломали живую миграцию контейнеров.
     
     
  • 4.48, ABATAPA (ok), 16:40, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Для QEMU-контейнеров работает.
     
     
  • 5.54, PnD (??), 16:23, 26/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    LXC оборачивает то что умеет ядро с cgropus.
    Там некому (пока?) контролировать состояние памяти (чтобы построить поверху миграцию). Максимум что можно — зафризить SIGSTOP и потом тащить всю память, до победного.
    Второй проблемой будет перенос состояния CPU в новую точку запуска контейнера. И вот его в CRIU как-то сумели решить, как я понял из новости.
    * "Тапки", fd etc. не упоминаю т.к. в целом тривиально.
     

  • 1.4, Аноним (4), 23:38, 24/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Я minecraft приостанавливал посылая SIGSTOP через htop, чтоб проц не грузил, когда на паузе
     
     
  • 2.55, PnD (??), 16:41, 26/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > через htop

    Сотонист, не иначе.
    # pkill -STOP -f XXX
    # pkill -CONT -f XXX

     

  • 1.6, Аноним (7), 23:41, 24/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что происходит с файловыми дескрипторами? Например, программа пишет что-то в файл на нфс-шаре, мы её резко снэпшотим. Потом - восстанавливаем на другой машине с такой же нфс-шарой. Сможет ли она продолжить писать в тот же файл?
    Также сокеты иксов и пульсов. Допустим я хочу перенести граф-приложение с машины на машину. Persistent storage - тот же нфс.
     
     
  • 2.11, Dzen Python (ok), 23:56, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отслеживание открытых файлов и маппинг на удаленной машине?
    Дамп небольших файлов целиком с переносом образа процесса на удаленную машину?
    Резолв соединений к БД на уровне внешних процессов-брокеров?

    > Потом - восстанавливаем на другой машине с такой же нфс-шарой. Сможет ли она продолжить писать в тот же файл?

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

    > А что происходит с файловыми дескрипторами?

    Это как раз наименьшая проблема. Тут гораздо большая проблема с окружением (которое по умолчанию может быть очень отличным от машины, на которой сняли снапшот).

     
     
  • 3.18, Аноним (18), 05:53, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    это ж как мне кажется напоминает ceph из proxmox'a
     
  • 3.24, Аноним (24), 08:24, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Тут гораздо большая проблема с окружением (которое по умолчанию может быть очень отличным от машины, на которой сняли снапшот).

    Допустим у нас контейнер, содержимое которого рсинхаем перед расснапшочиванием.

     
  • 2.26, Tron is Whistling (?), 08:42, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Главное чтобы файл за это время измениться не успел.
    Иначе будет ПРИКОЛЬНО111!!!
     
     
  • 3.65, Олег (??), 21:33, 28/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    кеши сделабт много прикольного
    уже умеют много прикольного без всяких нововведений
     

  • 1.8, Sw00p aka Jerom (?), 23:47, 24/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Фантом ОС изобретают :)
     
     
  • 2.25, Аноним (24), 08:24, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет. Иначе повторят его судьбу.
     
     
  • 3.33, Sw00p aka Jerom (?), 09:36, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Лол, Фантому надо было родиться на западе, чтобы эпфийцы заценили его :) как и все остальное давным-давно изобретенное, но не оцененное.
     

  • 1.16, Аноним (16), 01:06, 25/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений.

    Это что за чёрная магия? Как это работает?

     
     
  • 2.17, Аноним (2), 01:43, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений.
    > Это что за чёрная магия? Как это работает?

    За натом работает, видимо. У меня отваливались по таймауту. Если программа рассчитана на обновление соединения то всё будет работать при этом, а так вообще никто ничего не заметит.

     
     
  • 3.27, Tron is Whistling (?), 08:44, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да а в чём магия-то? Дескриптор сокета и прочее переносится со всей сопутствующей инфой.
    Если удалённая сторона стаймаутится не успеет - всё будет ок. У меня так SSH-сеансы после часовой отлучки в хибернейт поднимаются.
     
     
  • 4.46, Бывалый смузихлёб (?), 16:31, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    т.е если подобную штуку запустить и на другом компе, то получится что к одному удалённому источнику установлено 2 одинаковых подключения с разных машин ?

    И как тогда они будут одинаковыми, если у новой машины даже адрес будет другой ?

     
     
  • 5.49, Tron is Whistling (?), 17:37, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    IP-адрес тоже придётся переносить
    А так - да, могут даже смешаться до степени смешения, и будет весело
     
  • 5.50, Tron is Whistling (?), 17:38, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Удалённому источнику там пофиг, что у кого установлено, он тупо пакетики получает с энным адресом
     
  • 4.53, Аночик (?), 15:08, 26/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В переносе ip адреса как минимум магия.
    Ну и так по мелочи.
     
     
  • 5.61, Tron is Whistling (?), 08:22, 27/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А в чём магия-то?
    Снял IP на одной системе, поднял на другой.
    Или роутинг изменил, а IP на lo.
     

  • 1.19, Аноним (19), 06:34, 25/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Идея хорошая, а вот с реализацией проблемы. После нескольких заморозок процесс начинает глючить. Лучшее решение - это использование виртуализации и снапшотов.
     
  • 1.28, Tron is Whistling (?), 08:47, 25/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вообще сама идея мне честно говоря нравится. Можно перетащить большой долгоживущий процесс с машины на машину и машину обслужить.

    Другое дело, что лично мне оно вообще почти не надо, потому что я строго соблюдаю принцип "одна машина - одна задача" + дублирование/кластеризацию, а контейнерщикам со всякими мокросервисами не надо вообще - их проще грохнуть и перезапустить. Но вот когда у тебя есть какая-то махровая проприетарь или щастье, которое ни задублировать, ни погасить на время обслуживания хост-системы, может быть интересно.

    Надо с астериском попробовать - кто-нибудь пробовал?

     
     
  • 2.56, PnD (??), 16:55, 26/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Э, зачэм астериск? © анекдот про гусей.
    Немного не понял смысл упражнения. Не, ну перетащить "прогретую" jvm с одного физ. хоста (без гипервизора-прослойки потому что HFT /а почему тогда java?/ или ещё какая фигня) наверное ок.
    Но астер-то зачем вот так???
     
     
  • 3.62, Tron is Whistling (?), 08:26, 27/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это смотря что у вас на астериске.
    У нас есть больничные кол-центры, которые даже блин не раскидать по нодам - там столько стейта, что обмениваться этим стейтом между узлами синхронно очково - малейший чих, и звонки встанут. Обновлять хост-систему на таких нодах - очень лютая тема.
     
     
  • 4.64, PnD (??), 11:59, 27/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > У нас есть больничные кол-центры, которые даже блин не раскидать по нодам

    Да, "положить" дежурную больницу — отдельная песТня, перед заходом на "посадку".
    Я такие штуки прокладывал xen (ну и qemu в DM, как без него). Потому что там легче доказать свою невиноватость. (И такой подход впоследствии отлично зашёл в PCI-DSS.)

    Но, т.к. x86-железо (да хотя бы и ARM|Power|etc., протекающему PJSIP [20 байт на входящий по последним замерам] вообще пофиг) в нашей унылой реальности "складывается" примерно всегда. Проектировал так чтобы "сложившийся" узел оборвал текущие звонки. (В этом месте никого не привлекут если все регламенты проведены по журналам.) А новые сразу шли на резерв. Чего и вам желаю.
    * Если в системе нет регламента для штатного (без сбоев в обслуживании) вывода из нагрузки, то я даже не знаю что сказать…

     

  • 1.31, 1 (??), 09:18, 25/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Идея хороша, хотя бы для обновления ядра без остановки компа ...
    Продумать, чтоб новое ядро перехватывало процессы и вуаля - правильные 24/7
     
  • 1.32, ZVVZ (?), 09:35, 25/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Что только не делают. лишь бы Plan9/Inferno не пилить
     
     
  • 2.42, Аноним (16), 13:01, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А на них так можно разве?
     

  • 1.35, Аноним (35), 09:38, 25/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ждем в proxmox для ha lxc контейнеров
     
  • 1.37, Аноним (37), 10:16, 25/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Почему нельзя просто скопировать machine1:/proc/$pid1 на machine2:/proc/$pid2

    ?

     
  • 1.41, Ддд (?), 12:04, 25/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В демке они игры на лету между датацентрами по планете перекидывали и игра не осианавливалась
     

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



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

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