Контейнеры в OpenStack: простое решение сложных проблем
-
Upload
yandex -
Category
Technology
-
view
582 -
download
1
description
Transcript of Контейнеры в OpenStack: простое решение сложных проблем
Profit from the cloudTM
Dmitry Guryanov
Контейнеры в Openstack – простое
решение сложных проблем
Profit from the cloud TM
Содержание
• Чем контейнеры отличаются от виртуальных машин.
• Что Parallels делает с OpenStack.
• Почему контейнеры проще поддерживать в OpenStack.
3 Profit from the cloud TMTM
Виртуальные машины или контейнеры
• Одно ядро на всех
• Общаются с хостовой ОС с
помощью системных
вызовов
• Изоляция как и у
виртуальных машин
• В каждой ВМ свое ядро ОС
• Общаются с хостовой ОС
через виртуальное “железо”
4 Profit from the cloud TMTM
Контейнер в дереве процессов
3231 /usr/sbin/httpd
3556 \_ /usr/sbin/httpd
3557 \_ /usr/sbin/httpd
3849 iscsid
4025 rpcbind
4722 init
4879 \_ /sbin/udevd –d
5164 \_ /sbin/rsyslogd
5189 \_ /usr/sbin/sshd
5196 \_ xinetd
5203 \_ /usr/sbin/saslauthd
5204 | \_ /usr/sbin/saslauthd
5240 \_ /usr/sbin/httpd
5251 \_ /usr/sbin/httpd
5260 bash –
5265 \_ /usr/bin/vim
• Namespaces
• Cgroups
• Filesystem
Container 101
5 Profit from the cloud TMTM
Особенности контейнеров
• Из хоста мы можем:
• Влиять на процессы внутри контейнера любым способом, доступным
системе: syscalls, procfs, cgroup files.
• Запускать любые процессы внутри контейнера с такой же легкостью и
надежностью, как и в хосте.
• Настраивать любые параметры системы, например, через sysctl, proc.
• Из контейнера мы можем:
• Запускать любые процессы с привилегиями суперпользователя.
• Менять параметры своих процессов.
• Настраивать некоторые, тщательно отобранные, параметры системы.
• Что мы не можем сделать из контейнера:
• Влиять на процессы из других контейнеров и хоста.
• Выходить за рамки разрешенного потребления ресурсов.
6 Profit from the cloud TMTM
Преимущества контейнеров
• Главное преимущество – это высокая плотность. Контейнеров на
PCS можно запустить примерно в 3 раза больше, чем виртуальных
машин с такими же параметрами.
• Виртуальное железо отсутсвует – нет необходимости в
перезапусках, все операции можно делать на запущенном
контейнере.
• Есть надежный способ доступа внутрь гостевой системы.
7 Profit from the cloud TMTM
Преимущества контейнеров
• Главное преимущество – это высокая плотность. Контейнеров на
PCS можно запустить примерно в 3 раза больше, чем виртуальных
машин с такими же параметрами.
• Виртуальное железо отсутсвует – нет необходимости в
перезапусках, все операции можно делать на запущенном
контейнере.
• Есть надежный способ доступа внутрь гостевой системы.
Недостатки:
• Нельзя запускать другие ОС, такие как Windows или FreeBSD.
• Нельзя делать вообще все что угодно.
8 Profit from the cloud TMTM
Преимущества контейнеров
• Главное преимущество – это высокая плотность. Контейнеров на
PCS можно запустить примерно в 3 раза больше, чем виртуальных
машин с такими же параметрами.
• Виртуальное железо отсутсвует – нет необходимости в
перезапусках, все операции можно делать на запущенном
контейнере.
• Есть надежный способ доступа внутрь гостевой системы.
Недостатки:
• Нельзя запускать другие ОС, такие как Windows или FreeBSD.
• Нельзя делать вообще все что угодно.
Нужно ли это в облаках?
9 Profit from the cloud TMTM
Контейнеры и Openstack
Если контейнеры – такая отличная технология, почему они все еще
не поддерживаются в OpenStack?
• Openstack используется в-основном, в частных облаках, где
большая плотность контейнеров не является преимуществом.
• Контейнеры, которые есть в основной ветке ядра не могут
использоваться для публичных IaaS сервисов.
10 Profit from the cloud TMTM
Наша цель – дать возможность хостерам
использовать контейнеры через интерфейсы
Openstack.
11 Profit from the cloud TMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Horizon
Xe
n
Vm
wa
re
Hyp
erV
KV
M
Sw
ift
Ce
ph
Glu
ste
r
SA
N
Другие сервисы, работающие через Nova API
Op
en
Vsw
itch
Lin
uxB
ridg
e
12 Profit from the cloud TMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Horizon
Xe
n
Vm
wa
re
Hyp
erV
KV
M
Sw
ift
Ce
ph
Glu
ste
r
SA
N
Другие сервисы, работающие через Nova API
Op
en
Vsw
itch
Lin
uxB
ridg
e
PC
S
13 Profit from the cloud TMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Horizon
Xe
n
Vm
wa
re
Hyp
erV
KV
M
Sw
ift
Ce
ph
Glu
ste
r
SA
N
Другие сервисы, работающие через Nova API
Op
en
Vsw
itch
Lin
uxB
ridg
e
PC
S
PS
tora
ge
PS
tora
ge
14 Profit from the cloud TMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Xe
n
Vm
wa
re
Hyp
erV
KV
M
Sw
ift
Ce
ph
Glu
ste
r
SA
N
Op
en
Vsw
itch
Lin
uxB
ridg
e
Parallels Panels
PC
S
APS Packaging
PS
tora
ge
PS
tora
ge
Billing
Parallels Automation
15 Profit from the cloud TMTM
Что уже сделано
openstack-nova-compute
libvirt xenapi hyperv vmware pcs OpenVZ
16 Profit from the cloud TMTM
Что уже сделано
libvirt API
openstack-nova-compute
libvirt xenapi hyperv vmware
kvm xen lxc parallels
pcs OpenVZ
17 Profit from the cloud TMTM
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 Profit from the cloud TMTM
Настройка сети с точки зрения nova-compute
Compute
Driver
spawn
OVS/br-int
dnsmasq
Public
network
Instance001
Instance002
Instance003
Instance003
VIF1:type=OVSbridge=br-intname=tapX123mac=01:02:04:AA:BB:CCip=192.168.144.12/24gw=192.168.144.1
19 Profit from the cloud TMTM
Решение задачи для виртуальных машин
• Подготовить образ так, чтобы он всегда получал IP по dhcp для всех
своих сетевых адаптеров.
• Использовать гостевые утилиты.
• Отредактировать файлы конфигурации сети перед запуском
instance.
20 Profit from the cloud TMTM
Настройка 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 Profit from the cloud TMTM
Изменение размера 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 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
23 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
24 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
25 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
26 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
27 Profit from the cloud TMTM
Изменение размера instance в онлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
28 Profit from the cloud TMTM
Изменение размера instance в онлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
29 Profit from the cloud TMTM
Изменение размера instance в онлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
30 Profit from the cloud TMTM
Online-resize виртуальных машин – это сложно
Онлайн-миграция виртуальных машин простая операция, но дальше
начинаются проблемы:
• Изменение размера жесткого диска на живой системе.
• Изменение количества оперативной памяти (уменьшение –
практически невозможно).
• Изменение количества процессоров сложная и опасная операция.
31 Profit from the cloud TMTM
Почему это возможно с контейнерами?
• Онлайн миграция также реализована, к тому же происходит
быстрее.
• Изменение количества CPU происходит изменением параметра в
сигруппе cpu.
• Количество оперативной памяти легко меняется с помощью
сигруппы mem.
• На виртуальном диске контейнера находится одна ФС.
• Размер файловой системы
• Увеличивается запуском улилиты resize2fs в хосте.
• Уменьшается с использование техники ballooning.
32 Profit from the cloud TMTM
Кроме того
• Set admin password делается тривиально.
• Inject file, networking, ssh keys тоже.
• В операциях attach/detach volume можно вместо имени устройства
указывать точку монтирования.
• Volume detach абсолютно безопасен.
33 Profit from the cloud TMTM
Выводы
• Контейнеры отлично подходят для использования в Openstack.
• Но сейчас Openstack заточен под работу с виртуальными
машинами и контейнеры не поддерживаются.
• Так что мы работаем над этим.
34 Profit from the cloud TMTM
Спасибо!
• http://www.parallels.com
• http://www.openvz.org
• http://www.criu.org