View
967
Download
4
Category
Preview:
DESCRIPTION
Речь пойдет об особенностях использования контейнеров в публичных услугах. Почему linux upstream containers пока не подходят на эту роль? По каким причинам OpenVZ справляется с задачей, но не полностью? Какие фишки контейнеров мы хотим иметь в будущем?
Citation preview
fastvps.ru
pavel.odintsov@gmail.com
Использование контейнеризации в среде массового хостинга
Павел Одинцов Технический директор FastVPS
pavel.odintsov@gmail.com
fastvps.ru
pavel.odintsov@gmail.com
Схема контейнеры
ЯдроУправляющее ПО
Из чего состоят контейнеры?
fastvps.ru
pavel.odintsov@gmail.com
Ядро
PID namespace
Ядерная составляющая
Mount namespace
IPC namespace
Network namespace
User namespace
UTS namespace
Memory cgroup
CPU cgroup
Blkio cgroup (disk)
fastvps.ru
pavel.odintsov@gmail.com
User Space
LXC
Управляющее ПО
vzctl
libvirt
Docker
systemd
libcgroup
unshare
nsenter
bash!
fastvps.ru
pavel.odintsov@gmail.com
Кастомеры
FastVPS Heroku CERN Docker Вы
Parallels Yandex Facebook Red Hat Google
fastvps.ru
pavel.odintsov@gmail.com
Задачи
Для чего используется контейнеризация?
Изоляция собственного ПО
Предоставление массовой услуги
VPS/VDS
fastvps.ru
pavel.odintsov@gmail.com
Изоляция
Известно, какое ПО у нас работает в контейнере
!
Есть возможность оценки, какие типы ресурсов и в каком количестве требует ПО
!
Имеется доступ к конфигурации для оптимизации ПО
!
Имеется возможность регулярного обновления ПО
!
Использование заведомо более-менее адекватного ПО
В чем особенности задачи изоляции?
fastvps.ru
pavel.odintsov@gmail.com
VPS/VDS
•Мы не знаем ничего о типе нагрузки и требуемых ресурсах •Мы не имеем доступа к конфигурации •Безопасность на очень низком уровне - велика вероятность полной компрометации •Возможна спланированная «атака» на ресурсы (исчерпание памяти, дисковых ресурсов) •Возможна спланированная «атака» на безопасность / устойчивость сервиса •Высокая вероятность входящих DoS/DDoS атак •Высокая вероятность исходящих DoS/DDoS атак, а также иной зловредной активности •Необходимость предоставить полноценную Linux среду, а не только «частичную» изоляцию
В чем особенности VPS/VDS?
fastvps.ru
pavel.odintsov@gmail.com
Проблемы
•Проблемы в изоляции ресурсов, например, ioctl и многие опасные syscall не изолированы
•Нет полной изоляции proc fs
•Нет возможности гранулированного контроля за расходом ресурсов IPC, памяти, сокетов, буферов
ядра. Как следствие - возможность достижения лимита для хост-сервера.
•Отсутствие удобной в эксплуатации реализации файловых систем для контейнеров
•Отсутствие Live Migration (Update от 23 января 2013: рабочий прототип: https://github.com/xemul/
p.haul)
•Нет возможности ограничить число процессов (process counter cgroup так и не принята в ядро)
Проблемы Linux Upstream Containers
fastvps.ru
pavel.odintsov@gmail.com
OpenVZ
•Нет проблем в изоляции ресурсов, напимер, ioctl и многие опасные syscall изолированы
•Есть полная изоляция proc fs
•Есть возможности гранулированного контроля за расходом ресурсов IPC, памяти,
сокетов, буферов ядра
•Есть удобная в эксплуатации реализации файловая система для контейнеров - ploop
•Есть Live Migration
•Есть возможности ограничить число процессов
OpenVZ - отсутствие проблем
fastvps.ru
pavel.odintsov@gmail.com
Наши будни
• Входящие DDoS атаки (от 10 kpps до1 Mpps, до 3-5 Gbps и более). От деградции сети на хост-сервере до перегрузки
оборудования Дата Центра
•Исходящие DDoS атаки (от 50 000 пакетов/секунду и более). Приводит к сильной деградации производительности
сети
•Попытки размещения командных центров ботнетов. Деградация сети где-то на 50-100 серверах сторонних компаний
•Форк бомбы или сбои ПО приводящие к аналогичному эффекту.
•Перегрузка iptables conntrack сервера при некорректной конфигурации фаерволла либо при очень высоком трафике
на сервис. Приводит к полной недоступности всего сервера
• Баги ядра
Атаки на контейнеризацию
fastvps.ru
pavel.odintsov@gmail.com
OpenVZ FastVPS
• 2 Дата Центра
•Около 200 хост-серверов
•Десятки тысяч контейнеров
• 30 различных дистрибутивов ОС
• 60 фич риквестов и баг репортов в проект OpenVZ
OpenVZ в FastVPS - цифры
fastvps.ru
pavel.odintsov@gmail.com
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 - технологии
fastvps.ru
pavel.odintsov@gmail.com
Будущее
•Большего уровня изоляции и возможность максимально гранулированного контроля всех ресурсов
•Дружбы между всеми контейнеризациями! :)
•Общего формата шаблонов ОС для контейнеризации: https://github.com/containers/container-rfc
•Эффективной системы хранения для контейнеров (даже ploop из OpenVZ имеет ряд проблем)
•Динамического распределения ресурсов
•Более крутого user space средства для управления и мониторинга
•Отсутствия полноценного Linux дистрибутива на хост-сервере, возможно, загрузка по сети или упрощенный root fs, см. CoreOs
•Проблемы с файловыми системами и централизованным хранением
•Контейнеров работающих не нескольких севрерах
•Сетевых (и распределенных) файловых систем (кто внимательный приглашаем на тест: https://openvz.org/Pstorage)
Что мы хотим от контейнеров в будущем?
fastvps.ru
pavel.odintsov@gmail.com
Информация
•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
Что можно почитать еще?
fastvps.ru
pavel.odintsov@gmail.com
СПАСИБО!• https://twitter.com/odintsov_pavel
• pavel.odintsov@gmail.com
• http://stableit.ru/
• http://ru.linkedin.com/in/podintsov
Павел Одинцов Технический директор FastVPS
pavel.odintsov@gmail.com
Recommended