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