SlideShare a Scribd company logo
1 of 15
Оснастите свои доки кранами
Павел Емельянов
Москва, 2014
2
О чём речь

Несколько слов о CRIU вообще

И ещё несколько о CRIU-1.3.1

CRIU + Docker: скрестить коня и трепетную лань

Что дальше?
3
Что такое CRIU?
Checkpoint-Restore In Userspace
Процессы
и
окружение
Checkpoint
/
Dump
Restore
/
Restart
Набор
файлов-образов
4
Что такое CRIU? (продолж.)
Начался ~3 года назад
После 2-х летней осады сообщества Linux Kernel с
патчами для in-kernel реализации
Вместо 100+ патчей на всё ядро – небольшое их количество,
расширяющих только user API
В 3.11 есть всё, что нужно для нормальной работы
5
Для чего он нужен
Живая миграция
“Незаметное” обновление ядра
Ускорение долгого старта приложений
Периодические снимки состояний (HPC)
Продвинутая отладка и тестирование
Присадки к screen/tmux
Кнопка save
6
Где мы сейчас

1.3 выпущено 1 сентября
– И потом 1.3.1 12-го

Способен сохранять и восстанавливать

всё, чем пользуются стандартные серверные приложение

окружение (namespaces, cgroups, mountpoints), настраиваемое
утилитами OpenVZ, LXC и Docker

CLI и RPC (и .so для более простого доступа к RPC)

Поддержка живой миграции

Отслеживание изменений в памяти

C/R одной стороны активного TCP-соединения

Почти закончена интеграция с OpenVZ, LXC and Docker!
7
Docker

В Google нужны контейнеры и живая миграция

Для контейнеров – Docker

Для миграции – CRIU
8
Сценарий 1
Docker
daemon
CT2
CT1
CT3
Docker
daemon
Host 1 Host 2
CT1
9
Сценарий 2
Docker
daemon
CT2
CT1
CT3
Host 1 Host 2
Docker
daemon
CT2
CT1
CT3
10
Что для этого нужно

“Починить” AUFS, который портит имена файлов

Поддержать bind mounts внешних файлов внутрь
контейнера

Прикрепить контейнер к новому Docker-демону

Поддержать вложенные PID-namespaces
11
Что из этого сделано
+ “Починить” AUFS, который портит имена файлов
+ Поддержать bind mounts внешних файлов внутрь
контейнера
+ Прикрепить контейнер к новому Docker-демону
– Поддержать вложенные PID-namespaces
12
Как это будет выглядеть
Docker
daemon
CT2
CT1
CT3
Docker
CLI
dump $id
restore $id
-t $ct_root_pid
-D /var/lib/docker/$ct/...
13
Где посмотреть

file://$criu_sources/contrib/docker_cr.sh

https://github.com/docker/libcontainer/pull/204

http://criu.org/Docker
14
Что дальше?

Merge 204th
pull

Поддержать user-namespaces

Сделать живую миграцию по-человечески

Живая миграция != dump + copy + restore

Проект Пихль / P.Haul

https://github.com/xemul/p.haul
15
Где живёт проект
http://criu.org
http://git.criu.org
+CRIU page
criu@openvz.org

More Related Content

What's hot

Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupBadoo Development
 
Работа высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераРабота высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераudmlug
 
Консервация процессов в домашних условиях
Консервация процессов в домашних условияхКонсервация процессов в домашних условиях
Консервация процессов в домашних условияхOpenVZ
 
Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"Olga Lavrentieva
 
Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)Ivan Kudryavtsev
 
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanesPavel Emelyanov
 
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...Minsk Linux User Group
 
Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014
Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014
Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014it-people
 
«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр КолесеньIT Share
 
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011Sergey Schadnyh
 
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerAndrey Markelov
 
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)OSLL
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Badoo Development
 
Легко ли продавать контейнеры на базаре (Павел Емельянов)
Легко ли продавать контейнеры на базаре (Павел Емельянов)Легко ли продавать контейнеры на базаре (Павел Емельянов)
Легко ли продавать контейнеры на базаре (Павел Емельянов)Ontico
 
Microsoft cluster systems ritconf
Microsoft cluster systems ritconfMicrosoft cluster systems ritconf
Microsoft cluster systems ritconfrit2010
 
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)AvitoTech
 
Build private clouds with ProxmoxVE distributive
Build private clouds with ProxmoxVE distributiveBuild private clouds with ProxmoxVE distributive
Build private clouds with ProxmoxVE distributiveДима Ванькевич
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)Ontico
 

What's hot (20)

Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
 
Работа высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераРабота высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервера
 
Консервация процессов в домашних условиях
Консервация процессов в домашних условияхКонсервация процессов в домашних условиях
Консервация процессов в домашних условиях
 
Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"
 
Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)
 
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanes
 
Docker. Основы
Docker. ОсновыDocker. Основы
Docker. Основы
 
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
 
openSUSE Build Server от Б до Ю
openSUSE Build Server от Б до ЮopenSUSE Build Server от Б до Ю
openSUSE Build Server от Б до Ю
 
Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014
Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014
Python-разработка в части Яндекс-вселенной - Александр Кошелев, PyCon RU 2014
 
«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень
 
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
 
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и Docker
 
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
 
Легко ли продавать контейнеры на базаре (Павел Емельянов)
Легко ли продавать контейнеры на базаре (Павел Емельянов)Легко ли продавать контейнеры на базаре (Павел Емельянов)
Легко ли продавать контейнеры на базаре (Павел Емельянов)
 
Microsoft cluster systems ritconf
Microsoft cluster systems ritconfMicrosoft cluster systems ritconf
Microsoft cluster systems ritconf
 
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
"Sphinx 3.0 в реальной жизни" Андрей Смирнов (Avito)
 
Build private clouds with ProxmoxVE distributive
Build private clouds with ProxmoxVE distributiveBuild private clouds with ProxmoxVE distributive
Build private clouds with ProxmoxVE distributive
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
 

Similar to Teach your dockers to use CRanes

Миграция на современные версии CUCM.
Миграция на современные версии CUCM.Миграция на современные версии CUCM.
Миграция на современные версии CUCM.Michael Ganschuk
 
Миграция на современные версии CUCM. Что необходимо знать и учитывать для усп...
Миграция на современные версии CUCM. Что необходимо знать и учитывать для усп...Миграция на современные версии CUCM. Что необходимо знать и учитывать для усп...
Миграция на современные версии CUCM. Что необходимо знать и учитывать для усп...Cisco Russia
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Ruslan Sharipov
 
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14Serguei Gitinsky
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesАндрей Новиков
 
Миграция на CUCM 11 c предыдущих версий: особенности и рекомендации.
Миграция на CUCM 11 c предыдущих версий: особенности и рекомендации.Миграция на CUCM 11 c предыдущих версий: особенности и рекомендации.
Миграция на CUCM 11 c предыдущих версий: особенности и рекомендации.Cisco Russia
 
Checkpoint and Restore In Userspace: Готово или нет?
Checkpoint and Restore In Userspace: Готово или нет?Checkpoint and Restore In Userspace: Готово или нет?
Checkpoint and Restore In Userspace: Готово или нет?OpenVZ
 
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.DrupalSib
 
Symantec Backup Exec 2014 vs. Acronis Backup And Recovery 11.5
Symantec Backup Exec 2014 vs. Acronis Backup And Recovery 11.5Symantec Backup Exec 2014 vs. Acronis Backup And Recovery 11.5
Symantec Backup Exec 2014 vs. Acronis Backup And Recovery 11.5hdablin
 
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"LogeekNightUkraine
 
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...MskDotNet Community
 
Cisco Collaboration Prime 10.5
Cisco Collaboration Prime 10.5Cisco Collaboration Prime 10.5
Cisco Collaboration Prime 10.5Cisco Russia
 
Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментовVitalii Morvaniuk
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и средыAlexandr Konfidentsialno
 
obzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierovobzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierovSergey Maximov
 
Froglogic Squish
Froglogic Squish Froglogic Squish
Froglogic Squish SQALab
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев кировqasib
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015OSLL
 
Практическое использование Tensorflow
 Практическое использование Tensorflow Практическое использование Tensorflow
Практическое использование TensorflowMad Devs
 

Similar to Teach your dockers to use CRanes (20)

Миграция на современные версии CUCM.
Миграция на современные версии CUCM.Миграция на современные версии CUCM.
Миграция на современные версии CUCM.
 
Миграция на современные версии CUCM. Что необходимо знать и учитывать для усп...
Миграция на современные версии CUCM. Что необходимо знать и учитывать для усп...Миграция на современные версии CUCM. Что необходимо знать и учитывать для усп...
Миграция на современные версии CUCM. Что необходимо знать и учитывать для усп...
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
 
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в Kubernetes
 
Миграция на CUCM 11 c предыдущих версий: особенности и рекомендации.
Миграция на CUCM 11 c предыдущих версий: особенности и рекомендации.Миграция на CUCM 11 c предыдущих версий: особенности и рекомендации.
Миграция на CUCM 11 c предыдущих версий: особенности и рекомендации.
 
Checkpoint and Restore In Userspace: Готово или нет?
Checkpoint and Restore In Userspace: Готово или нет?Checkpoint and Restore In Userspace: Готово или нет?
Checkpoint and Restore In Userspace: Готово или нет?
 
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
 
Symantec Backup Exec 2014 vs. Acronis Backup And Recovery 11.5
Symantec Backup Exec 2014 vs. Acronis Backup And Recovery 11.5Symantec Backup Exec 2014 vs. Acronis Backup And Recovery 11.5
Symantec Backup Exec 2014 vs. Acronis Backup And Recovery 11.5
 
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
 
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
 
Cisco Collaboration Prime 10.5
Cisco Collaboration Prime 10.5Cisco Collaboration Prime 10.5
Cisco Collaboration Prime 10.5
 
Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментов
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и среды
 
obzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierovobzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierov
 
Froglogic Squish
Froglogic Squish Froglogic Squish
Froglogic Squish
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
Presentation_1369674095019
Presentation_1369674095019Presentation_1369674095019
Presentation_1369674095019
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015
 
Практическое использование Tensorflow
 Практическое использование Tensorflow Практическое использование Tensorflow
Практическое использование Tensorflow
 

More from OpenVZ

PFcache - LinuxCon 2015
PFcache - LinuxCon 2015PFcache - LinuxCon 2015
PFcache - LinuxCon 2015OpenVZ
 
Speeding up ps and top
Speeding up ps and topSpeeding up ps and top
Speeding up ps and topOpenVZ
 
Live migration: pros, cons and gotchas -- Pavel Emelyanov
Live migration: pros, cons and gotchas -- Pavel EmelyanovLive migration: pros, cons and gotchas -- Pavel Emelyanov
Live migration: pros, cons and gotchas -- Pavel EmelyanovOpenVZ
 
Live migrating a container: pros, cons and gotchas -- Pavel Emelyanov
Live migrating a container: pros, cons and gotchas -- Pavel EmelyanovLive migrating a container: pros, cons and gotchas -- Pavel Emelyanov
Live migrating a container: pros, cons and gotchas -- Pavel EmelyanovOpenVZ
 
CRIU: time and space travel for Linux containers -- Kir Kolyshkin
CRIU: time and space travel for Linux containers -- Kir KolyshkinCRIU: time and space travel for Linux containers -- Kir Kolyshkin
CRIU: time and space travel for Linux containers -- Kir KolyshkinOpenVZ
 
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015OpenVZ
 
Живая миграция: плюсы, минусы и подводные камни - Павел Емельянов
Живая миграция: плюсы, минусы и подводные камни - Павел ЕмельяновЖивая миграция: плюсы, минусы и подводные камни - Павел Емельянов
Живая миграция: плюсы, минусы и подводные камни - Павел ЕмельяновOpenVZ
 
What's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey BronnikovWhat's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey BronnikovOpenVZ
 
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий МонаховПроблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий МонаховOpenVZ
 
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировOpenVZ
 
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан КупреевCRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан КупреевOpenVZ
 
LibCT и контейнеры на уровне приложений -- Александр Бурлука
	LibCT и контейнеры на уровне приложений -- Александр Бурлука	LibCT и контейнеры на уровне приложений -- Александр Бурлука
LibCT и контейнеры на уровне приложений -- Александр БурлукаOpenVZ
 
Управление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир ДавыдовУправление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир ДавыдовOpenVZ
 
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел ЕмельяновЖивая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел ЕмельяновOpenVZ
 
LibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey VaginLibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey VaginOpenVZ
 
Denser containers with PF cache - Pavel Emelyanov
Denser containers with PF cache - Pavel EmelyanovDenser containers with PF cache - Pavel Emelyanov
Denser containers with PF cache - Pavel EmelyanovOpenVZ
 
CGroups kernel memory controller -- Pavel Emelyanov
CGroups kernel memory controller -- Pavel EmelyanovCGroups kernel memory controller -- Pavel Emelyanov
CGroups kernel memory controller -- Pavel EmelyanovOpenVZ
 
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...OpenVZ
 
Not so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir KolyshkinNot so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir KolyshkinOpenVZ
 
Openvz booth
Openvz boothOpenvz booth
Openvz boothOpenVZ
 

More from OpenVZ (20)

PFcache - LinuxCon 2015
PFcache - LinuxCon 2015PFcache - LinuxCon 2015
PFcache - LinuxCon 2015
 
Speeding up ps and top
Speeding up ps and topSpeeding up ps and top
Speeding up ps and top
 
Live migration: pros, cons and gotchas -- Pavel Emelyanov
Live migration: pros, cons and gotchas -- Pavel EmelyanovLive migration: pros, cons and gotchas -- Pavel Emelyanov
Live migration: pros, cons and gotchas -- Pavel Emelyanov
 
Live migrating a container: pros, cons and gotchas -- Pavel Emelyanov
Live migrating a container: pros, cons and gotchas -- Pavel EmelyanovLive migrating a container: pros, cons and gotchas -- Pavel Emelyanov
Live migrating a container: pros, cons and gotchas -- Pavel Emelyanov
 
CRIU: time and space travel for Linux containers -- Kir Kolyshkin
CRIU: time and space travel for Linux containers -- Kir KolyshkinCRIU: time and space travel for Linux containers -- Kir Kolyshkin
CRIU: time and space travel for Linux containers -- Kir Kolyshkin
 
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
 
Живая миграция: плюсы, минусы и подводные камни - Павел Емельянов
Живая миграция: плюсы, минусы и подводные камни - Павел ЕмельяновЖивая миграция: плюсы, минусы и подводные камни - Павел Емельянов
Живая миграция: плюсы, минусы и подводные камни - Павел Емельянов
 
What's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey BronnikovWhat's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey Bronnikov
 
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий МонаховПроблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
 
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
 
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан КупреевCRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
 
LibCT и контейнеры на уровне приложений -- Александр Бурлука
	LibCT и контейнеры на уровне приложений -- Александр Бурлука	LibCT и контейнеры на уровне приложений -- Александр Бурлука
LibCT и контейнеры на уровне приложений -- Александр Бурлука
 
Управление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир ДавыдовУправление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
 
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел ЕмельяновЖивая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
 
LibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey VaginLibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey Vagin
 
Denser containers with PF cache - Pavel Emelyanov
Denser containers with PF cache - Pavel EmelyanovDenser containers with PF cache - Pavel Emelyanov
Denser containers with PF cache - Pavel Emelyanov
 
CGroups kernel memory controller -- Pavel Emelyanov
CGroups kernel memory controller -- Pavel EmelyanovCGroups kernel memory controller -- Pavel Emelyanov
CGroups kernel memory controller -- Pavel Emelyanov
 
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
 
Not so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir KolyshkinNot so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir Kolyshkin
 
Openvz booth
Openvz boothOpenvz booth
Openvz booth
 

Teach your dockers to use CRanes

  • 1. Оснастите свои доки кранами Павел Емельянов Москва, 2014
  • 2. 2 О чём речь  Несколько слов о CRIU вообще  И ещё несколько о CRIU-1.3.1  CRIU + Docker: скрестить коня и трепетную лань  Что дальше?
  • 3. 3 Что такое CRIU? Checkpoint-Restore In Userspace Процессы и окружение Checkpoint / Dump Restore / Restart Набор файлов-образов
  • 4. 4 Что такое CRIU? (продолж.) Начался ~3 года назад После 2-х летней осады сообщества Linux Kernel с патчами для in-kernel реализации Вместо 100+ патчей на всё ядро – небольшое их количество, расширяющих только user API В 3.11 есть всё, что нужно для нормальной работы
  • 5. 5 Для чего он нужен Живая миграция “Незаметное” обновление ядра Ускорение долгого старта приложений Периодические снимки состояний (HPC) Продвинутая отладка и тестирование Присадки к screen/tmux Кнопка save
  • 6. 6 Где мы сейчас  1.3 выпущено 1 сентября – И потом 1.3.1 12-го  Способен сохранять и восстанавливать  всё, чем пользуются стандартные серверные приложение  окружение (namespaces, cgroups, mountpoints), настраиваемое утилитами OpenVZ, LXC и Docker  CLI и RPC (и .so для более простого доступа к RPC)  Поддержка живой миграции  Отслеживание изменений в памяти  C/R одной стороны активного TCP-соединения  Почти закончена интеграция с OpenVZ, LXC and Docker!
  • 7. 7 Docker  В Google нужны контейнеры и живая миграция  Для контейнеров – Docker  Для миграции – CRIU
  • 9. 9 Сценарий 2 Docker daemon CT2 CT1 CT3 Host 1 Host 2 Docker daemon CT2 CT1 CT3
  • 10. 10 Что для этого нужно  “Починить” AUFS, который портит имена файлов  Поддержать bind mounts внешних файлов внутрь контейнера  Прикрепить контейнер к новому Docker-демону  Поддержать вложенные PID-namespaces
  • 11. 11 Что из этого сделано + “Починить” AUFS, который портит имена файлов + Поддержать bind mounts внешних файлов внутрь контейнера + Прикрепить контейнер к новому Docker-демону – Поддержать вложенные PID-namespaces
  • 12. 12 Как это будет выглядеть Docker daemon CT2 CT1 CT3 Docker CLI dump $id restore $id -t $ct_root_pid -D /var/lib/docker/$ct/...
  • 14. 14 Что дальше?  Merge 204th pull  Поддержать user-namespaces  Сделать живую миграцию по-человечески  Живая миграция != dump + copy + restore  Проект Пихль / P.Haul  https://github.com/xemul/p.haul