Контейнеры в OpenStack: простое решение сложных проблем.
В настоящее время в OpenStack есть хорошая поддержка гипервизорной виртуализации, но пока нет работающего решения для использования контейнеров. Я расскажу, почему так получилось, сравню гипервизорную и контейнерную технологии в контексте OpenStack и рассмотрю, насколько проще будет выполнять некоторые операции в OpenStack при использовании контейнеров, а также какие новые возможности появятся в OpenStack при использовании этого типа виртуализации.
Контейнеры в OpenStack: простое решение сложных проблем
1. Profit from the cloud
TM
dguryanov@parallels.com
Dmitry Guryanov
Контейнеры в Openstack – простое
решение сложных проблем
2. Profit from the cloudTM
Содержание
• Чем контейнеры отличаются от виртуальных машин.
• Что Parallels делает с OpenStack.
• Почему контейнеры проще поддерживать в OpenStack.
3. 3 Profit from the cloudTMTM
Виртуальные машины или контейнеры
• Одно ядро на всех
• Общаются с хостовой ОС с
помощью системных
вызовов
• Изоляция как и у
виртуальных машин
• В каждой ВМ свое ядро ОС
• Общаются с хостовой ОС
через виртуальное “железо”
5. 5 Profit from the cloudTMTM
Особенности контейнеров
• Из хоста мы можем:
• Влиять на процессы внутри контейнера любым способом, доступным
системе: syscalls, procfs, cgroup files.
• Запускать любые процессы внутри контейнера с такой же легкостью и
надежностью, как и в хосте.
• Настраивать любые параметры системы, например, через sysctl, proc.
• Из контейнера мы можем:
• Запускать любые процессы с привилегиями суперпользователя.
• Менять параметры своих процессов.
• Настраивать некоторые, тщательно отобранные, параметры системы.
• Что мы не можем сделать из контейнера:
• Влиять на процессы из других контейнеров и хоста.
• Выходить за рамки разрешенного потребления ресурсов.
6. 6 Profit from the cloudTMTM
Преимущества контейнеров
• Главное преимущество – это высокая плотность. Контейнеров на
PCS можно запустить примерно в 3 раза больше, чем виртуальных
машин с такими же параметрами.
• Виртуальное железо отсутсвует – нет необходимости в
перезапусках, все операции можно делать на запущенном
контейнере.
• Есть надежный способ доступа внутрь гостевой системы.
7. 7 Profit from the cloudTMTM
Преимущества контейнеров
• Главное преимущество – это высокая плотность. Контейнеров на
PCS можно запустить примерно в 3 раза больше, чем виртуальных
машин с такими же параметрами.
• Виртуальное железо отсутсвует – нет необходимости в
перезапусках, все операции можно делать на запущенном
контейнере.
• Есть надежный способ доступа внутрь гостевой системы.
Недостатки:
• Нельзя запускать другие ОС, такие как Windows или FreeBSD.
• Нельзя делать вообще все что угодно.
8. 8 Profit from the cloudTMTM
Преимущества контейнеров
• Главное преимущество – это высокая плотность. Контейнеров на
PCS можно запустить примерно в 3 раза больше, чем виртуальных
машин с такими же параметрами.
• Виртуальное железо отсутсвует – нет необходимости в
перезапусках, все операции можно делать на запущенном
контейнере.
• Есть надежный способ доступа внутрь гостевой системы.
Недостатки:
• Нельзя запускать другие ОС, такие как Windows или FreeBSD.
• Нельзя делать вообще все что угодно.
Нужно ли это в облаках?
9. 9 Profit from the cloudTMTM
Контейнеры и Openstack
Если контейнеры – такая отличная технология, почему они все еще
не поддерживаются в OpenStack?
• Openstack используется в-основном, в частных облаках, где
большая плотность контейнеров не является преимуществом.
• Контейнеры, которые есть в основной ветке ядра не могут
использоваться для публичных IaaS сервисов.
10. 10 Profit from the cloudTMTM
Наша цель – дать возможность хостерам
использовать контейнеры через интерфейсы
Openstack.
11. 11 Profit from the cloudTMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Horizon
Xen
Vmware
HyperV
KVM
Swift
Ceph
Gluster
SAN
Другие сервисы, работающие через Nova API
OpenVswitch
LinuxBridge
12. 12 Profit from the cloudTMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Horizon
Xen
Vmware
HyperV
KVM
Swift
Ceph
Gluster
SAN
Другие сервисы, работающие через Nova API
OpenVswitch
LinuxBridge
PCS
13. 13 Profit from the cloudTMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Horizon
Xen
Vmware
HyperV
KVM
Swift
Ceph
Gluster
SAN
Другие сервисы, работающие через Nova API
OpenVswitch
LinuxBridge
PCS
PStorage
PStorage
14. 14 Profit from the cloudTMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Xen
Vmware
HyperV
KVM
Swift
Ceph
Gluster
SAN
OpenVswitch
LinuxBridge
Parallels Panels
PCS
APS Packaging
PStorage
PStorage
Billing
Parallels Automation
15. 15 Profit from the cloudTMTM
Что уже сделано
openstack-nova-compute
libvirt xenapi hyperv vmware pcs OpenVZ
16. 16 Profit from the cloudTMTM
Что уже сделано
libvirt API
openstack-nova-compute
libvirt xenapi hyperv vmware
kvm xen lxc parallels
pcs OpenVZ
17. 17 Profit from the cloudTMTM
pcs-nova-driver
• Boot from image (все, что поддерживает qemu-img + наш формат).
• Boot from volume (VM only).
• Power off/power on/suspend/resume.
• Pause/unpause (VM only).
• OVS Networking.
• Neutron security groups.
• Instance snapshots.
• VNC console.
• Volume attach/detach (VM only).
• ISCSI volumes.
• Inject guest info (ssh keys, admin password, flat networking info, то же
самое, что и в kvm).
• Set admin password (CT only).
18. 18 Profit from the cloudTMTM
Настройка сети с точки зрения nova-compute
Compute
Driver
spawn
OVS/br-int
dnsmasq
Public
network
Instance001
Instance002
Instance003
Instance003
VIF1:
type=OVS
bridge=br-int
name=tapX123
mac=01:02:04:AA:BB:CC
ip=192.168.144.12/24
gw=192.168.144.1
19. 19 Profit from the cloudTMTM
Решение задачи для виртуальных машин
• Подготовить образ так, чтобы он всегда получал IP по dhcp для всех
своих сетевых адаптеров.
• Использовать гостевые утилиты.
• Отредактировать файлы конфигурации сети перед запуском
instance.
20. 20 Profit from the cloudTMTM
Настройка IP внутри контейнеров
• Во всех дистрибутивах линукса сеть настраивается по-разному, но
их конечное число.
• В PCS поддерживаются все популярные дистрибутивы.
~ prlctl set my-instance --device-add net
--network Bridged
--mac 0A:02:04:AA:BB:CC
--ipadd 192.168.144.12/24
--gw 192.168.144.1
21. 21 Profit from the cloudTMTM
Изменение размера instance
• nova boot my-instance --image fedora-20
--flavor m1.small
• nova resize my-instance m1.medium
• nova resize-confirm my-instance
Что меняется:
• Размер root, swap и ephemeral диска.
• Количество процессоров.
• Объем оперативной памяти.
22. 22 Profit from the cloudTMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
23. 23 Profit from the cloudTMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
24. 24 Profit from the cloudTMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
25. 25 Profit from the cloudTMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
26. 26 Profit from the cloudTMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
27. 27 Profit from the cloudTMTM
Изменение размера instance в онлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
28. 28 Profit from the cloudTMTM
Изменение размера instance в онлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
29. 29 Profit from the cloudTMTM
Изменение размера instance в онлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
30. 30 Profit from the cloudTMTM
Online-resize виртуальных машин – это сложно
Онлайн-миграция виртуальных машин простая операция, но дальше
начинаются проблемы:
• Изменение размера жесткого диска на живой системе.
• Изменение количества оперативной памяти (уменьшение –
практически невозможно).
• Изменение количества процессоров сложная и опасная операция.
31. 31 Profit from the cloudTMTM
Почему это возможно с контейнерами?
• Онлайн миграция также реализована, к тому же происходит
быстрее.
• Изменение количества CPU происходит изменением параметра в
сигруппе cpu.
• Количество оперативной памяти легко меняется с помощью
сигруппы mem.
• На виртуальном диске контейнера находится одна ФС.
• Размер файловой системы
• Увеличивается запуском улилиты resize2fs в хосте.
• Уменьшается с использование техники ballooning.
32. 32 Profit from the cloudTMTM
Кроме того
• Set admin password делается тривиально.
• Inject file, networking, ssh keys тоже.
• В операциях attach/detach volume можно вместо имени устройства
указывать точку монтирования.
• Volume detach абсолютно безопасен.
33. 33 Profit from the cloudTMTM
Выводы
• Контейнеры отлично подходят для использования в Openstack.
• Но сейчас Openstack заточен под работу с виртуальными
машинами и контейнеры не поддерживаются.
• Так что мы работаем над этим.
34. 34 Profit from the cloudTMTM
Спасибо!
• http://www.parallels.com
• http://www.openvz.org
• http://www.criu.org