The OpenNET Project / Index page

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

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

09.09.2015 18:11

Представлен значительный релиз проекта CRIU 1.7, развивающего технологию сохранения и восстановления процессов в пространстве пользователя для Linux. Разработанный в рамках проекта инструментарий позволяет организовать создание контрольных точек, с заморозкой состояния запущенных приложений, и последующего восстановления работы с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений.

Список изменений:

  • Гибкое восстановление CGroup при восстановлении процессов;
  • Поддержка строгого режима фильтров seccomp;
  • Поддержка наследуемых Unix-сокетов;
  • Поддержка UID/GID для точек монтирования;
  • Возможность восстановить пространство имён точек монтирования с удаленным bind-mount;
  • Снижено время сохранения состояния процессов за счёт использования freeze cgroup;
  • Возможность указать размер для открытого и удаленного файла;
  • Поддержка OverlayFS;
  • Расширен список вызовов библиотеки libcriu;
  • Исправления для большого количества проблем.

Следует отметить, что проект CRIU всё больше и больше привлекает внимание других открытых проектов и компаний:

  • Разработчик Андрей Арканджели (Andrea Arcangeli) из компании RedHat добавил поддержку userfaultfd в ядре Linux. Это даст возможность выполнять "lazy memory" восстановление процессов (то есть процессы будут восстанавливаться без памяти, а память будет подгружаться по мере необходимости).
  • Пакет CRIU был добавлен в недавно анонсированный выпуск Red Hat Enterprise Linux 7.2, который сейчас находится в статусе беты.
  • Сотрудники RedHat нашли в CRIU две уязвимости.
  • Усилиями разработчика Laurent Dufour из IBM код CRIU был портирован на платформу PowerPC 64 LE и налажен процесс регулярного тестирования этого порта.
  • Поддержка сохранения и восстановления процессов для архитектур ARM и PowerPC была по умолчанию включена в ядре Fedora Linux. В Fedora 23 можно будет использовать CRIU в сборках под архитектуры ARM и PowerPC без перекомпиляции ядра.

Из областей применения технологии CRIU отмечается обеспечение перезагрузки ОС без нарушения непрерывности выполнения длительно выполняемых процессов, Live-миграция изолированных контейнеров, ускорение запуска медленных процессов (можно начать работу с состояния, сохранённого после инициализации), проведение обновлений ядра без перезапуска сервисов, периодическое сохранение состояния долговыполняемых вычислительных задач для возобновления работы в случае краха, балансировка нагрузки на узлы в кластерах, дублирование процессов на другую машину (fork на удалённую систему), создание снапшотов пользовательских приложений в процессе работы для их анализа на другой системе или на случай если потребуется отменить дальнейшие действия в программе. Из интересных применений CRIU можно отметить проект Tonic, в котором при написании каждой строки кода сохраняется состояние процесса и всегда можно вернуться к предыдущей версии. Разработчик проекта подробно рассказал в своей статье как это работает.

Разработчики выбрали цели для новой версии CRIU из своего списка задач и в следующем релизе планируют сфокусироваться на следующей функциональности:

  • Поддержка безопасных контейнеров (расширение поддержки seccomp, userns, возможно будет поддержка SELinux, и расширение поддержки AppArmor)
  • Устранение проблем с поддержкой CGroups
  • Поддержка архитектуры i386


  1. Главная ссылка к новости (http://lists.openvz.org/piperm...)
  2. https://www.opennet.dev/opennews/art.shtml?num=42869
  3. OpenNews: Проект OpenVZ анонсировал новый компонент для миграции Linux контейнеров - P.Haul
  4. OpenNews: Статус интеграции проектов CRIU и Docker
  5. OpenNews: Выпуск CRIU 1.0, системы для заморозки и восстановления состояния процессов в Linux
Автор новости: sergeyb
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42939-criu
Ключевые слова: criu, openvz, containers, odin
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (33) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 21:27, 09/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Очередная вещь, которая должна быть в линухах "искаропки"
     
     
  • 2.3, Anonymous1 (?), 21:47, 09/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Подскажите, пожалуйста, в какой из существующих ОС эта "очевидная вещь" уже есть "искаропки"?
     
     
  • 3.4, О (?), 21:54, 09/09/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Очередная
     
  • 3.17, Аноним (-), 08:54, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Очередная.
    И он имел ввиду, что она должна быть, но необязательно в других системах она есть. Что нам до других систем?
     
  • 3.23, sergeyb (ok), 11:32, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Есть под "искаропки" вы подразумеваете наличие пакета в дистрибутиве,
    то CRIU уже много в каких дистрибутивах присутствует - https://openvz.org/Packages
     
     
  • 4.29, Аноним (-), 19:47, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Рады за вас, передавайте спасибо программистам паралелс
     
  • 3.27, Anonim (??), 14:51, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Подскажите, пожалуйста, в какой из существующих ОС эта "очевидная вещь" уже есть "искаропки"?

    z/OS, NSK же.

     
  • 2.10, Аноним (-), 23:58, 09/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Очередная вещь, которая должна быть в линухах "искаропки"

    восторженно воскликнул вирусописатель, потирая мозолистые волосатые ладошки

     
     
  • 3.15, Аноним (-), 06:16, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > восторженно воскликнул вирусописатель, потирая мозолистые волосатые ладошки

    И много вы вирусов под линь видели?

     
     
  • 4.18, Аноним (-), 08:54, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Криворукие админы ловили. Не так давно историю успеха на Хабре читал.
     
     
  • 5.32, Alex (??), 21:03, 11/09/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тот контингент, что на хабре водится - и на МК-80 может что-нибудь поймать спокойно.
     
  • 2.14, Аноним (-), 06:15, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Очередная вещь, которая должна быть в линухах "искаропки"

    ЧСХ, только недавно гадал - зачем нужна опция user page fault. А оказывается - для вот таких вещей.

     

  • 1.2, Аноним (-), 21:39, 09/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень жду i386, без этого 32битные контейнеры virtuozzo7 бессмысленны.
     
  • 1.5, АнонимХ (??), 22:03, 09/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И только Дебиан выбрасывает пакет CRIU. Это альтернативная форма протеста или что?
     
     
  • 2.6, kachsheev (ok), 23:26, 09/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ась? Перепроверьте. В 8м оно точно есть.
     
     
  • 3.8, Аноним (-), 23:47, 09/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Уже нет.
    https://www.debian.org/News/2015/20150905
    Removed packages
    criu Fast-moving target, too difficult to keep updated
     
     
  • 4.19, Аноним (-), 09:01, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    $ sudo aptitude install criu
    [sudo] password for user:
    Следующие НОВЫЕ пакеты будут установлены:        
      criu libprotobuf-c1{a} libprotobuf9{a} python-ipaddr{a} python-protobuf{a}
    0 пакетов обновлено, 5 установлено новых, 0 пакетов отмечено для удаления, и 67 пакетов не обновлено.
    Необходимо получить 839 kB архивов. После распаковки 3 419 kB будет занято.
    Хотите продолжить? [Y/n/?]

    Всё нормально, пока что...

     
  • 4.24, sergeyb (ok), 11:34, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Уже нет.
    > https://www.debian.org/News/2015/20150905
    > Removed packages
    > criu  Fast-moving target, too difficult to keep updated

    Я бы тут упрекнул ментейнеров Debian, а не разработчиков CRIU :)
    Если в Debian не успевают за развитием CRIU.

     
  • 4.30, Аноним (-), 23:20, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    вернется после стабилизации, сейчас тяжко с поддержкой
     

  • 1.7, Аноним (-), 23:27, 09/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Кто-нибудь знает годный howto для использования CRIU + Docker? Например, у меня есть числодробилка в виртуальном кластере, и я его хочу быстренько  перекинуть на другую машину, приостановив и затем продолжив вычисления.
     
     
  • 2.9, Ananim (?), 23:52, 09/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Забей, как к либвирту прикрутят, так и можно будет использовать, а пока что оно всё ещё очень анально.
     
  • 2.12, casper_ua (?), 01:54, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    https://wiki.openvz.org/Docker_inside_CT
    ну это почти тоже самое, но без CRIU ;)
     
  • 2.25, sergeyb (ok), 11:35, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Кто-нибудь знает годный howto для использования CRIU + Docker?

    Да, есть - http://criu.org/Docker

     
     
  • 3.26, Аноним (-), 12:05, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Во, больше похоже на правду, чем комментарий со ссылкой чуть выше. Спасибо, попробую.
     

  • 1.11, Аноним (-), 01:48, 10/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что если прикрутить данную штуку к сетевой шине и например удерживать данное приложение на паузе и в случае вылета отпускать паузу на одной из них.

    Таким образом не будет отказа обслуживания или я чего-то ен понимаю?

     
     
  • 2.13, Аноним (-), 02:22, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не сможешь делать заморозку на каждый коннект.
     
  • 2.16, Аноним (-), 06:17, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А что если прикрутить данную штуку к сетевой шине и например удерживать
    > данное приложение на паузе и в случае вылета отпускать паузу на одной из них.

    Знаешь, такие вещи можно и менее странно делать.

     
  • 2.22, Аноним (-), 09:29, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Костыль, но лично мне в некоторых ситуациях пригодилось бы такое решение...
     

  • 1.20, Andrey Mitrofanov (?), 09:20, 10/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > -  Пакет CRIU был добавлен
    > в недавно анонсированный (http://www.opennet.dev/opennews/art.shtml?num=42925) выпуск
    > Red Hat Enterprise Linux 7.2, который сейчас находится в статусе беты.

    Ага. Понятно, почему его выкинули из Debian-а. Пора!

    > -  Сотрудники RedHat нашли
    > в CRIU две уязвимости.

     
     
  • 2.31, Андрей (??), 12:57, 11/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> -  Пакет CRIU был добавлен
    >> в недавно анонсированный (http://www.opennet.dev/opennews/art.shtml?num=42925) выпуск
    >> Red Hat Enterprise Linux 7.2, который сейчас находится в статусе беты.
    > Ага. Понятно, почему его выкинули из Debian-а. Пора!
    >> -  Сотрудники RedHat нашли
    >> в CRIU две уязвимости.

    Уязвимости былий надены в сервисе, который по умолчанию не стартует и пока никем не используется. Да, уязвимости есть, но они не столь критичные. Исправим.

     

  • 1.21, Аноним (-), 09:22, 10/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    ЯННП, чем это лучше SIGSTOP?
     
     
  • 2.28, Аноним (-), 15:45, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    SIGSTOP умеет сохранить весь процесс в файл, перекинуть на другую машину и развернуть этот процесс в том же состоянии на новой машине? Да хотя бы на той же, но после перезагрузки.
    Расскажите, как?
     
     
  • 3.33, Аноним (-), 05:48, 12/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не обращайте внимания, это очередной аутист, не читающий дальше заголовка, а идущий сразу хвастаться своим невежеством в комментариях.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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