Балансировка
"на скорости проводов".
Без ASIC, без
ограничений
Андрей Домась, Одноклассники
Вячеслав Морозов, NFWare
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Кто мы такие?
АНДРЕЙ ДОМАСЬ
Ведущий cистемный администратор
ВЯЧЕСЛАВ МОРОЗОВ
Технический директор
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
О чем?
Балансировка в Одноклассниках
Проблема с SYN-flood
Решение от NFWare
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Балансировка в OK
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Когда-то давно
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Когда-то давно
Много дорабатывали
Баги
Плохо документирован
Однопоточные проверки (30-40 мин
если сломалось много серверов)
Настраивается из файла (сложно
автоматизировать)
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Не так давно
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Не так давно
/check?mandatoryifs=wan568,lan428&lvsif=tunl0&lvsifip=x.x.x.x&otherifsopts=advmss:1440
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Не так давно
/check?mandatoryifs=wan568,lan428&lvsif=tunl0&lvsifip=x.x.x.x&otherifsopts=advmss:1440
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Не так давно
/check?mandatoryifs=wan568,lan428&lvsif=tunl0&lvsifip=x.x.x.x&otherifsopts=advmss:1440
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Сейчас
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Сейчас
app-group1.cloud.local.
app-group1.cloud.local. 10 A 192.168.0.1
app-group1.cloud.local. 10 A 192.168.0.2
app-group1.cloud.local. 10 A 192.168.0.3
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
DDoS (SYN-flood)
Q1 2016 peaks: 120+ Mpps
https://www.incapsula.com/ddos-report/ddos-report-q1-2016.html
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Тесты (ip_vs)
Connection Rate
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Тонкое место
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Чем плох ip_vs
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Что решили попробовать
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Тесты
6 x 10G, no LACP
Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz
Connections/sec
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Тесты
6 x 10G, no LACP
Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz
Connections/sec
41.8
Mcps
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Тесты
Connections/secConnections/sec
x200ip_vs NFWare
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Как это работает
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Как это работает (HA)
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
NFWare Load Balancer
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Гибридная многоядерная архитектура
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Гибридная многоядерная архитектура
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Гибридная многоядерная архитектура
Scalability
Pipeline
Better resource
utilization
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Распределение нагрузки между ядрами
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Распределение нагрузки между ядрами
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Распределение нагрузки между ядрами
SW RSS:
Поддержка
различных карт
Smart hash
Улучшение
использлования PCIe
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Оптимизация работы одного ядра
● Fast path: сессия существует, отправка пакетов
в сторону выбранного сервера назначения
Поиск существующих соединений в таблице
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Оптимизация работы одного ядра
● Fast path: сессия существует, отправка пакетов
в сторону выбранного сервера назначения
● Slow path: Новая сессия
Поиск существующих соединений в таблице
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Оптимизация работы одного ядра
● Fast path: сессия существует, отправка пакетов
в сторону выбранного сервера назначения
● Slow path: Новая сессия
Поиск существующих соединений в таблице Создание новой сессии
● Поиск виртуального сервиса
● Применение правил шедулера
● Отправка пакета в сторону выбранного сервера
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Slow path: IPVS
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Slow path: IPVS
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Slow path: IPVS
RCU
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Slow path: NFWare
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Slow path: NFWare
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Slow path: NFWare
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
DDoS Protection | Борьба с SYN-Flood
Срабатывание по пороговому значению
Освобождение произвольных сессий - в
результате может не быть места в hash bucket
Блокировка всей таблицы
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
DDoS Protection | Борьба с SYN-Flood
Срабатывание по пороговому значению
Освобождение произвольных сессий - в
результате может не быть места в hash bucket
Блокировка всей таблицы
Срабатывание при создании сессии
Освобождение сессии в целевом hash bucket
Lock-free
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
Преимущества
Бесшовная интеграция в существующую инфраструктуру
Увеличение производительности балансировки в 200 раз
Улучшение защиты от SYN-Flood
Сохранение функционала ip_vs: синхронизация сессий,
режимы (возможности балансировки)
Андрей Домась, Вячеслав Морозов: Балансировка "на скорости проводов". Без ASIC, без ограничений
ВОПРОСЫ?
Андрей Домась
andrey.domas@corp.mail.ru
Вячеслав Морозов
vmorozov@nfware.com

Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare для Одноклассников / Андрей Домась, Вячеслав Морозов (Одноклассники)

  • 1.
    Балансировка "на скорости проводов". БезASIC, без ограничений Андрей Домась, Одноклассники Вячеслав Морозов, NFWare
  • 2.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Кто мы такие? АНДРЕЙ ДОМАСЬ Ведущий cистемный администратор ВЯЧЕСЛАВ МОРОЗОВ Технический директор
  • 3.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений О чем? Балансировка в Одноклассниках Проблема с SYN-flood Решение от NFWare
  • 4.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Балансировка в OK
  • 5.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Когда-то давно
  • 6.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Когда-то давно Много дорабатывали Баги Плохо документирован Однопоточные проверки (30-40 мин если сломалось много серверов) Настраивается из файла (сложно автоматизировать)
  • 7.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Не так давно
  • 8.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Не так давно /check?mandatoryifs=wan568,lan428&lvsif=tunl0&lvsifip=x.x.x.x&otherifsopts=advmss:1440
  • 9.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Не так давно /check?mandatoryifs=wan568,lan428&lvsif=tunl0&lvsifip=x.x.x.x&otherifsopts=advmss:1440
  • 10.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Не так давно /check?mandatoryifs=wan568,lan428&lvsif=tunl0&lvsifip=x.x.x.x&otherifsopts=advmss:1440
  • 11.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Сейчас
  • 12.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Сейчас app-group1.cloud.local. app-group1.cloud.local. 10 A 192.168.0.1 app-group1.cloud.local. 10 A 192.168.0.2 app-group1.cloud.local. 10 A 192.168.0.3
  • 13.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений DDoS (SYN-flood) Q1 2016 peaks: 120+ Mpps https://www.incapsula.com/ddos-report/ddos-report-q1-2016.html
  • 14.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Тесты (ip_vs) Connection Rate
  • 15.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Тонкое место
  • 16.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Чем плох ip_vs
  • 17.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Что решили попробовать
  • 18.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Тесты 6 x 10G, no LACP Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz Connections/sec
  • 19.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Тесты 6 x 10G, no LACP Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz Connections/sec 41.8 Mcps
  • 20.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Тесты Connections/secConnections/sec x200ip_vs NFWare
  • 21.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Как это работает
  • 22.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Как это работает (HA)
  • 23.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений NFWare Load Balancer
  • 24.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Гибридная многоядерная архитектура
  • 25.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Гибридная многоядерная архитектура
  • 26.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Гибридная многоядерная архитектура Scalability Pipeline Better resource utilization
  • 27.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Распределение нагрузки между ядрами
  • 28.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Распределение нагрузки между ядрами
  • 29.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Распределение нагрузки между ядрами SW RSS: Поддержка различных карт Smart hash Улучшение использлования PCIe
  • 30.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Оптимизация работы одного ядра ● Fast path: сессия существует, отправка пакетов в сторону выбранного сервера назначения Поиск существующих соединений в таблице
  • 31.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Оптимизация работы одного ядра ● Fast path: сессия существует, отправка пакетов в сторону выбранного сервера назначения ● Slow path: Новая сессия Поиск существующих соединений в таблице
  • 32.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Оптимизация работы одного ядра ● Fast path: сессия существует, отправка пакетов в сторону выбранного сервера назначения ● Slow path: Новая сессия Поиск существующих соединений в таблице Создание новой сессии ● Поиск виртуального сервиса ● Применение правил шедулера ● Отправка пакета в сторону выбранного сервера
  • 33.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Slow path: IPVS
  • 34.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Slow path: IPVS
  • 35.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Slow path: IPVS RCU
  • 36.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Slow path: NFWare
  • 37.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Slow path: NFWare
  • 38.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Slow path: NFWare
  • 39.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений DDoS Protection | Борьба с SYN-Flood Срабатывание по пороговому значению Освобождение произвольных сессий - в результате может не быть места в hash bucket Блокировка всей таблицы
  • 40.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений DDoS Protection | Борьба с SYN-Flood Срабатывание по пороговому значению Освобождение произвольных сессий - в результате может не быть места в hash bucket Блокировка всей таблицы Срабатывание при создании сессии Освобождение сессии в целевом hash bucket Lock-free
  • 41.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений Преимущества Бесшовная интеграция в существующую инфраструктуру Увеличение производительности балансировки в 200 раз Улучшение защиты от SYN-Flood Сохранение функционала ip_vs: синхронизация сессий, режимы (возможности балансировки)
  • 42.
    Андрей Домась, ВячеславМорозов: Балансировка "на скорости проводов". Без ASIC, без ограничений ВОПРОСЫ? Андрей Домась andrey.domas@corp.mail.ru Вячеслав Морозов vmorozov@nfware.com