The OpenNET Project / Index page

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

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

30.11.2023 08:58

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

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

В новом выпуске реализована поддержка архитектуры набора команд LoongArch64, применяемой в китайских процессорах Loongson 3A5000/3B5000/3C5000 и реализующей RISC ISA, похожий на MIPS и RISC-V. Для новых процессоров Intel добавлена поддержка инструкции XSAVE. Добавлена поддержка миграции настройки prctl(NO_NEW_PRIVS) и обеспечено восстановление настройки prctl(THP_DISABLE). Прекращена поддержка Python 2.

  1. Главная ссылка к новости (https://github.com/checkpoint-...)
  2. OpenNews: Экспериментальные сборки ALT Linux для процессоров Loongarch64 и смартфона Pinephone Pro
  3. OpenNews: Релиз ядра Linux 6.6
  4. OpenNews: В Debian добавлена поддержка архитектуры LoongArch
  5. OpenNews: Выпуск системы управления контейнерами LXD 5.17
  6. OpenNews: Выпуск CRIU 3.18, системы для сохранения и восстановления состояния процессов в Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60199-criu
Ключевые слова: criu, loongarch64
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Розенталь (?), 09:13, 30/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Хорошая утилита. Пользовался одно время.
     
     
  • 2.3, Аноним (3), 09:59, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Жаль только с иксами не работает. И что-то затухла инициатива прикрутить к вейланду.
     
     
  • 3.9, ilyafedin (ok), 11:01, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле затухла? Прикрутили уже, что еще надо?
     
     
  • 4.10, Аноним (3), 11:23, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Status: stalled

    Что конкретно прикрутили?

     
     
  • 5.11, ilyafedin (ok), 11:25, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >>Status: stalled

    Что за статус?

    > Что конкретно прикрутили?

    В плазме 6 по идее можно без проблем сохранять и восстанавливать Qt-приложения. В других тулкитах никто поддержку и не планировал вроде.

     
     
  • 6.12, Аноним (3), 11:28, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это статус поддержки вейланда в CRIU, с тех пор никаких новостей не было.
     
     
  • 7.13, ilyafedin (ok), 11:29, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Это статус поддержки вейланда в CRIU, с тех пор никаких новостей не
    > было.

    Не знаю что за статус и где, в Qt пришло бесплатно как by-product поддержки переподключения к композитору

     
     
  • 8.14, Аноним (3), 11:34, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Тут не переподключение ... текст свёрнут, показать
     
  • 4.30, Аноним (30), 09:20, 02/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.opennet.ru/openforum/vsluhforumID15/4888.html#35

    "глянуть сегодняшнюю подсистему засыпания в свап и востановления из сна. Идея: переодически сынкать изменённую память процесов на свап, если сынкать, только, изменения будет не много. В случае отключения питания загрузка производится как после засыпания в свап."

     

  • 1.2, Аноним (2), 09:29, 30/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да, серьезно упрощает жизнь сисадминам и девопсам.
     
  • 1.4, Аноним (4), 10:25, 30/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Очень удобно делать снапшоты по расписанию для пользователей в твоей конторке. Потом находишь снапшот с открытым интернет-банком и переводишь себе на мороженное скромную или не очень сумму.
     
     
  • 2.19, Вася (??), 15:27, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    а там токен протух и кроме него у тебя ничего нет
     
  • 2.22, Аноним (22), 19:00, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    158.3, пункт «г»; 159.3
    Ну и потом не то что в эникейщики, в сторожа путь заказан
     

  • 1.5, Аноним (5), 10:38, 30/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    core dumped
     
  • 1.6, Аноним (5), 10:40, 30/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >на другом сервере без разрыва уже установленных сетевых соединений

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

     
     
  • 2.8, Аноним (8), 10:57, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Гугли на тему TCP_REPAIR_QUEUE, через него можно не только соединения процесса заморозить, но и сохранить соединения после мягкой перезагрузки ОС.

    https://lists.openwall.net/netdev/2012/03/28/84
    https://lwn.net/Articles/495304/

     
     
  • 3.17, Аноним (5), 15:16, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То что восстановить на локальной системе можно - это понятно. Но вот представь, у тебя работающий сервер. Ты его замораживаешь, мигрируешь на другой VPS, размораживаешь. У него айпишник будет другой. Предположим, что у них хитрая реализация TCP, позволяющая менять айпишники в середине сессии. Более того, приложение в своих переменных будет хранить старый адрес, а значит все новые сессии на старый адрес прозрачно менять на новый. Но как они все узнают новый IP? А никак, в TCP такие финты не предусмотрены. Значит придётся это либо в протокол самого приложения, но тогда можно просто начать новую сессию с новым IP, и заменить адрес в переменных, как встроенная фича сервера. Тогда весь этот гимор с замораживаниями и хитрыми реализациями TCP не нужен. Делать навесной протокол без аутентификации? Злоумышленникам очень понравится. С аутентификацией? Не везде применимо, и код приложения менять надо. Далее, если миграция не пройдёт очень быстро, то клиенты отвалятся по таймауту.

    Отсюда, единственное применение этой технологии - микросервисная архитектура, когда у нового и старого инстанса микросервиса один и тот же айпишник внутри своей частной сети и когда все микросервисы настроены не рвать соединение по таймауту. Эрзац-servicemesh на костылях. Обычный сервисмеш лучше, но на самом деле ни сервисмеш, ни миаросервисная архитектура не нужны, это просто модный культ карго.

     
     
  • 4.21, Аноним (21), 18:14, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > У него айпишник будет другой.

    Не будет. Переносил так виртуалки на другой континент, вместе с айпишником. Таймауты для TCP сессий в популярных ОС сам нагуглишь, это домашка тебе такая. Как сделаешь, я тебе про сервисмеш домашку выдам. А там глядишь и до карго-культа доберёмся. Всё, топай самообразовываться.

     
     
  • 5.23, Аноним (23), 22:28, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я не тот аноним, но тоже не понял что-то. Вот есть у меня приложение, которое установило соединение с сервисом в инете. Я его заморозил, а через день разморозил, и все продолжит работать что-ли? И там в инете целый день меня буду ждать?
     
     
  • 6.25, Аноним (21), 05:02, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну прямо день может и не будет, но вообще это зависит от многих факторов. В убогие времена модемной связи по карточкам можно было отключиться, пообедать, попить чаю, сходить в сортир и подключиться обратно, при этом SSH-сессии не рвались (если не пытаться в окне никакие кнопки нажимать, конечно же). Разгадка проста: публичный айпишник у провайдерского NATа был один на всех, поэтому с точки зрения удалённого сервера ничего страшного не происходило. RST не пришёл, а то, что пакетов полтора часа в сокете нет, так это ещё не повод рвать соединение. Если тебе в цифрах интересно, что смотри man 7 tcp, конкретно про логику работы keepalive.
     
     
  • 7.27, Аноним (27), 14:05, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это конкретно один протокол так реализован и сервер так настроен. А остальные сервера (HTTP, кхе, кхе) просто порвут соединение, чтобы не было slowloris.
     
     
  • 8.28, Аноним (27), 14:11, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Собственно для миграции серверов, обслуживающих много пользователей, миграция ко... текст свёрнут, показать
     
  • 7.29, Аноним (29), 18:15, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Про keepalive я в курсе, но а если он не используется в протоколе, то что? Вот, к примеру, я сделал telnet IP 80, и он продолжит работать после нескольких через заморозки?
     
     
  • 8.32, Аноним (21), 05:37, 04/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты и другой анон выше тоже путаешь уровни OSI Гарантии CRIU ограничиваются TC... текст свёрнут, показать
     

  • 1.7, Аноним (7), 10:42, 30/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Игрался с заморозкой софта, через несколько заморозок программа начала глючить. Слишком замутно, легче виртуалку со снапшотами использовать.
     
     
  • 2.15, Пряник (?), 13:35, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Предположу что сохраняется только память программы, а память ядра не сохраняется (например, открытые файлы), и CRIU пытается по частям выдрать эту инфу из ядра. В виртуалках же тупо сохраняется вся память в снимок (но только для qcow2 образов).
     
     
  • 3.20, Аноним (3), 15:38, 30/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    По-моему, с некоторых пор, оно пытается восстанавливать процессы под теми же идентификаторами, если они уже заняты, тут упс. Во всяком случае, это может быть одной из причин -- многое зависит от архитектуры приложения. У сетевых больше причин отвалиться, если подобные вещи не являются для них штатными (практически 100% софта умирает при минимальных отклонениях в подключении).
     
  • 2.26, all_glory_to_the_hypnotoad (ok), 05:09, 01/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше писать приложения, которые не нужно замораживать. Такая заморозка никогда полностью корректно работать не будет для приложения в общем случае.
     
     
  • 3.31, Аноним (3), 22:10, 02/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Sigstop ещё запрети. Самому не смешно?
     

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



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

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