16
Использование контейнеризации в среде массового хостинга Павел Одинцов Технический директор FastVPS [email protected]

Использование контейнеризации в среде массового хостинга

  • Upload
    yandex

  • View
    951

  • Download
    4

Embed Size (px)

DESCRIPTION

Речь пойдет об особенностях использования контейнеров в публичных услугах. Почему linux upstream containers пока не подходят на эту роль? По каким причинам OpenVZ справляется с задачей, но не полностью? Какие фишки контейнеров мы хотим иметь в будущем?

Citation preview

Page 1: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Использование контейнеризации в среде массового хостинга

Павел Одинцов Технический директор FastVPS

[email protected]

Page 2: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Схема контейнеры

ЯдроУправляющее ПО

Из чего состоят контейнеры?

Page 3: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Ядро

PID namespace

Ядерная составляющая

Mount namespace

IPC namespace

Network namespace

User namespace

UTS namespace

Memory cgroup

CPU cgroup

Blkio cgroup (disk)

Page 4: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

User Space

LXC

Управляющее ПО

vzctl

libvirt

Docker

systemd

libcgroup

unshare

nsenter

bash!

Page 5: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Кастомеры

FastVPS Heroku CERN Docker Вы

Parallels Yandex Facebook Red Hat Google

Page 6: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Задачи

Для чего используется контейнеризация?

Изоляция собственного ПО

Предоставление массовой услуги

VPS/VDS

Page 7: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Изоляция

Известно, какое ПО у нас работает в контейнере

!

Есть возможность оценки, какие типы ресурсов и в каком количестве требует ПО

!

Имеется доступ к конфигурации для оптимизации ПО

!

Имеется возможность регулярного обновления ПО

!

Использование заведомо более-менее адекватного ПО

В чем особенности задачи изоляции?

Page 8: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

VPS/VDS

•Мы не знаем ничего о типе нагрузки и требуемых ресурсах •Мы не имеем доступа к конфигурации •Безопасность на очень низком уровне - велика вероятность полной компрометации •Возможна спланированная «атака» на ресурсы (исчерпание памяти, дисковых ресурсов) •Возможна спланированная «атака» на безопасность / устойчивость сервиса •Высокая вероятность входящих DoS/DDoS атак •Высокая вероятность исходящих DoS/DDoS атак, а также иной зловредной активности •Необходимость предоставить полноценную Linux среду, а не только «частичную» изоляцию

В чем особенности VPS/VDS?

Page 9: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Проблемы

•Проблемы в изоляции ресурсов, например, ioctl и многие опасные syscall не изолированы

•Нет полной изоляции proc fs

•Нет возможности гранулированного контроля за расходом ресурсов IPC, памяти, сокетов, буферов

ядра. Как следствие - возможность достижения лимита для хост-сервера.

•Отсутствие удобной в эксплуатации реализации файловых систем для контейнеров

•Отсутствие Live Migration (Update от 23 января 2013: рабочий прототип: https://github.com/xemul/

p.haul)

•Нет возможности ограничить число процессов (process counter cgroup так и не принята в ядро)

Проблемы Linux Upstream Containers

Page 10: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

OpenVZ

•Нет проблем в изоляции ресурсов, напимер, ioctl и многие опасные syscall изолированы

•Есть полная изоляция proc fs

•Есть возможности гранулированного контроля за расходом ресурсов IPC, памяти,

сокетов, буферов ядра

•Есть удобная в эксплуатации реализации файловая система для контейнеров - ploop

•Есть Live Migration

•Есть возможности ограничить число процессов

OpenVZ - отсутствие проблем

Page 11: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Наши будни

• Входящие DDoS атаки (от 10 kpps до1 Mpps, до 3-5 Gbps и более). От деградции сети на хост-сервере до перегрузки

оборудования Дата Центра

•Исходящие DDoS атаки (от 50 000 пакетов/секунду и более). Приводит к сильной деградации производительности

сети

•Попытки размещения командных центров ботнетов. Деградация сети где-то на 50-100 серверах сторонних компаний

•Форк бомбы или сбои ПО приводящие к аналогичному эффекту.

•Перегрузка iptables conntrack сервера при некорректной конфигурации фаерволла либо при очень высоком трафике

на сервис. Приводит к полной недоступности всего сервера

• Баги ядра

Атаки на контейнеризацию

Page 12: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

OpenVZ FastVPS

• 2 Дата Центра

•Около 200 хост-серверов

•Десятки тысяч контейнеров

• 30 различных дистрибутивов ОС

• 60 фич риквестов и баг репортов в проект OpenVZ

OpenVZ в FastVPS - цифры

Page 13: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

OpenVZ FastVPS

•Дистрибутив: CentOS 5/CentOS 6

•Ядро: OpenVZ 2.6.32 актуальной версии (если у вас 2.6.18 - срочно обновитесь!)

•Файловая система: ext4 (и местами ext3)

• Тип OpenVZ дисков: simfs, ploop

• Тип используемого контроллера ресурсов: UBC совместно с vSWAP

• VzAPI - собственное решение на Go для управления контейнерами OpenVZ по

сети с использованием REST/JSON/SSL

OpenVZ в FastVPS - технологии

Page 14: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Будущее

•Большего уровня изоляции и возможность максимально гранулированного контроля всех ресурсов

•Дружбы между всеми контейнеризациями! :)

•Общего формата шаблонов ОС для контейнеризации: https://github.com/containers/container-rfc

•Эффективной системы хранения для контейнеров (даже ploop из OpenVZ имеет ряд проблем)

•Динамического распределения ресурсов

•Более крутого user space средства для управления и мониторинга

•Отсутствия полноценного Linux дистрибутива на хост-сервере, возможно, загрузка по сети или упрощенный root fs, см. CoreOs

•Проблемы с файловыми системами и централизованным хранением

•Контейнеров работающих не нескольких севрерах

•Сетевых (и распределенных) файловых систем (кто внимательный приглашаем на тест: https://openvz.org/Pstorage)

Что мы хотим от контейнеров в будущем?

Page 15: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

Информация

•http://OpenVZ.org - официальный сайт проекта

•http://www.slideshare.net/kolyshkin/ - Презентации от Кирилла Колышкина

•Контейнеры — это будущее облаков: http://habrahabr.ru/company/FastVPS/blog/208650/

•Контейнеризация на Linux в деталях — LXC и OpenVZ. Часть 1: http://habrahabr.ru/company/FastVPS/

blog/209072/

•Контейнеризация на Linux в деталях — LXC и OpenVZ Часть 2: http://habrahabr.ru/company/FastVPS/

blog/209084/

•http://LWN.net - общие новости из мира ядра Linux

Что можно почитать еще?

Page 16: Использование контейнеризации в среде массового хостинга

fastvps.ru

[email protected]

СПАСИБО!• https://twitter.com/odintsov_pavel

[email protected]

• http://stableit.ru/

• http://ru.linkedin.com/in/podintsov

Павел Одинцов Технический директор FastVPS

[email protected]