Леонид Юрьев, "Петер-Сервис"

32
TopGun архитектура терабитной платформы DPI Леонид Юрьев Петер-Сервис R&D

description

HighLoad++ 2013

Transcript of Леонид Юрьев, "Петер-Сервис"

Page 1: Леонид Юрьев, "Петер-Сервис"

TopGunархитектура терабитнойплатформы DPI

Леонид ЮрьевПетер-Сервис R&D

Page 2: Леонид Юрьев, "Петер-Сервис"

Леонид Юрьев• 20 лет программирую

• изобретаю, иногда не велосипеды

[email protected]

[email protected]

Page 3: Леонид Юрьев, "Петер-Сервис"

Петер-Сервис– HighLoad c 1992 года– принципы: взялись → дожимаем, качество, модульность

• решения для крупных операторов связи – BSS, Telco, BigData, High Availability & High Load

• полный цикл – разработка, внедрение и обслуживание

• более 100 миллионов абонентов – при участии наших систем

• 900 сотрудников из них 400 разработка, 250 внедрение и саппорт

• 450 фич/год

Page 4: Леонид Юрьев, "Петер-Сервис"

•Что такое и зачем DPI?

• TopGun – почему?

•Основные плюшки 3+1

•Круто!

•Будет Event…

•Вопросы

Agenda

25СЛАЙДОВ

Page 5: Леонид Юрьев, "Петер-Сервис"

Что такое DPI?

– Технология анализа полного содержимого трафика выше L2 по OSIhttp://ru.wikipedia.org/wiki/Deep_packet_inspection

• устанавливается у оператора

• работает с «сырыми» пакетами

• включение «в разрыв» – может вмешиваться в трафик

• подключение «на копию» – просто наблюдает

FLOW – примерно/грубо соответствует соединению TCP/UDP

DPIСеть Интернет

Page 6: Леонид Юрьев, "Петер-Сервис"

Кому и зачем нужен DPI?– Государству и Бизнесу, Usecases очень много…

Защита• Блокировка вторжений (IDS, IPS)

• Отсечение DoS-атак

Качество обслуживания,Гибкие тарифы

• QoS и шейпинг с управлением потоком (торренты не мешают)

• Subscriber Management

Фильтрация• Родительский контроль, Антивирус

• РОСКОМНАДЗОР

Информативность• Customer Experience Management

• Данные для таргетирования рекламы

• Статистика и оперативный Мониторинг сети

Требования законодательстваи регулирование

• В мире: СОРМ и PRISM

• В России: 114-ФЗ, 139-ФЗ, ПП-538

• Предотвращение утечек (DLP)

+100500…

Page 7: Леонид Юрьев, "Петер-Сервис"

Насколько законно и этично?– Зависит от usecase, а они очень разные…

Законно, если…• Госорганы – в соответствии с

законами:114-ФЗ, 139-ФЗ, ПП-538

• Бизнес – в соответствии с договором с пользователем

• Бизнес – в соответствии с договором с работником (DLP)

• Если заказана соответствующая услуга

Этично, когда…• Открыто, не подпольно

• Анализирует машина, не человек

• Важно как используется результат

• Обеспечить корректное использование – задача государства и общества

Page 8: Леонид Юрьев, "Петер-Сервис"

Сложность задачи– Какие проблемы, Captain?

1. Wire Speed• 14.8 × 2 миллионов пакетов в секунду на каждые 10Gb

2. Отказоустойчивость• иначе «интернет не работает» и потеря денег

3. Много N×10 GbE• требуется масштабирование и балансировка• миллионы flow, сотни тысяч каждую секунду• защита от DDoS, родительский контроль,

тарифы «торренты в фоне»

4. Готовность к разным задачам• иначе переделывать или отказываться

– Аaaа… but the Challenge!

Page 9: Леонид Юрьев, "Петер-Сервис"

Зачем нужен 101-й DPI?– у конкурентов есть проблемы

1. Зависимость от оборудования• hardware vendor lock-in

– выгодно вендору, но не оператору• не-тиражная электроника

– стоимость, риски незаменимости и уникальности• нет маневра от закладок

– выше риски их обнаружить (shit happens)

2. Нет готовности к «разным задачам»• сложно/невозможно доработать систему под новые задачи

– как пример, добавить распаковку gzip к акселератору regex• нет эластичности вычислительной сложности обработки

– дальше поясню

• «просто так» никто не сознается

• аппаратный DPI– это ерунда из 90х

Page 10: Леонид Юрьев, "Петер-Сервис"

Нет эластичности вычислительной сложности– де-факто имеем два варианта «софтверной архитектуры»

А ТЕПЕРЬ PPS• работаем с DMA-RING или рядом

• считаем такты, рекордный PPS

• hardcode, трудно и неудобно

• подходит для задач где,мало вычислений

• иначе – экономия на спичках

≈ 50`000`000 попугаев в секунду

OLD SCHOOL• generic interface & large i/o overhead

• от наших 5 копеек ничего не зависит

• делаем гибко и удобно, это навсегда

• подходит для задач где,много вычислений

• иначе – 90% в накладных расходах

≈ 500`000попугаев в секунду

– выбрать один из вариантови не посягать на задачи другого

Page 11: Леонид Юрьев, "Петер-Сервис"

Наши цели, что хотим сделать?– JFK: Американец, Первым, на Луне, Вернуться, Живой

Свободно• без привязки к конкретному

«железу»

• на оборудовании максимально широкого спектра

Эластично• чтобы просто «добавлять

серверы», без революций в коде

• масштабируемо, без неустранимых внутренних ограничений

Эффективно• с потерей на универсальности

порядка 10%

Конкурентно• с отказоустойчивостью

• с низкой стоимостью владения

Платформа• для DPI-приложений широкого

спектра

Page 12: Леонид Юрьев, "Петер-Сервис"

Что сделано, каков продукт?– запилили прототип и решили поделиться мыслями

Скромничаем…• 90% зависит от usecase/FL

• раскрывать детали не готовы

• приходите, расскажем подробнее

• простые метрики – для простых задач

А если померяться?• ширина канала ≈ сколько потребуется

• пакетов в секунду ≈ wire speed

• задержка ≈ 100 μs

• на ядро ≈ 90% от рекордов:

– платим 10% за совершенство архитектуры– в сравнении с Intel DPDK– без prefetch, спрашивайте почему…

Page 13: Леонид Юрьев, "Петер-Сервис"

TopGun– I feel the need... The need for speed!

Page 14: Леонид Юрьев, "Петер-Сервис"

Scope платформы

FUSE

TOPGUNВнешние системы

Управлениеи

мониторинг

Платформа = TopGun

Не входит:• Переключатель (bypass)• Управление и мониторинг• Внешние подсистемы

Page 15: Леонид Юрьев, "Петер-Сервис"

Основные слагаемые: 3+1=4– плюшек больше, некоторые успеем распробовать

Распределение трафика• mac rewrite и раздаем коммутаторами• управляется роем

Рой обработчиков• оцениваем здоровье и связанность• ведем перепись

Табло• контексты как наборы key-value• контролируем объем трафика и размер реплик

Транспорт событий• замысел и что внутри

Page 16: Леонид Юрьев, "Петер-Сервис"

Анатомия скелета– что-куда подключено

Схеме около 50 лет…1. Переключатель

2. Распределение трафика

3. Data Plane (Switch)

4. Обрабатывающие серверы

5. Control Plane (Switch)

6. Супервизор

7. Перешеек для репликациимежду копиями – наш addition

ЗЕРКАЛИРОВАНИЕ требуется ТОЛЬКОдля failover «СОВСЕМ БЕЗ ПОТЕРЬ»

BL

AD

E

BL

AD

E

BL

AD

E

BL

AD

E

BL

AD

E

РАСПРЕДЕЛЕНИЕ

DATA PLANE

CONTROL PLANE

BL

AD

E

BL

AD

E

BL

AD

E

BL

AD

E

BL

AD

E

РАСПРЕДЕЛЕНИЕ

DATA PLANE

CONTROL PLANE

SUPERVISOR

ПЕРЕКЛЮЧАТЕЛЬ

ГОРЯЧИЙ РЕЗЕРВВКЛЮЧЕНО

1

2

3

4

5

6

7

Page 17: Леонид Юрьев, "Петер-Сервис"

Что есть «Балансировка»?

РАСПРЕДЕЛЕНИЕБАЛАНСИРОВКА УПРАВЛЕНИЕ

Page 18: Леонид Юрьев, "Петер-Сервис"

Распределение трафика– MAC rewrite + коммутаторы

Замысел• лучше раздавать коммутаторами,

они быстрые и…

• ассоциативная таблица MAC → ПОРТ отлично управляется

Магия1. посчитаем HASH от IP и запишем два

байта в MAC, получаем 65536 сегментов трафика

2. распределим сегменты по обработчикам

3. пусть обработчики пингуют DATA PLANEот имени MAC нужных им сегментов

ПЕРЕКЛЮЧАТЕЛЬ

BL

AD

E

BL

AD

E

BLADE BL

AD

E

BL

AD

E

РАСПРЕДЕЛЕНИЕ

DATA PLANE(Коммутатор)

dst-MAC[0,1,2,3] = 0x77

dst-MAC[4,5] = Hash(IP)

SEG #

MAC → PORT#

Page 19: Леонид Юрьев, "Петер-Сервис"

Распределение трафика– MAC rewrite + коммутаторы

Плюсы• молниеносная управляемость

при статической конфигурации

• мгновенный failover– при сбое broadcast и активация

• простое расширение– достаточно подключить оборудование

• на нас работает весь Ethernet:– Pause Frame, Spanning Tree, LAG…

ПЕРЕКЛЮЧАТЕЛЬ

BL

AD

E

BL

AD

E

BLADE BL

AD

E

BL

AD

E

РАСПРЕДЕЛЕНИЕ

DATA PLANE(Коммутатор)

dst-MAC[0,1,2,3] = 0x77

dst-MAC[4,5] = Hash(IP)

SEG #

MAC → PORT#

Page 20: Леонид Юрьев, "Петер-Сервис"

MAC rewrite– есть подводные камни

OpenFlow• Таблица вместо Hash и не везде есть SetField

• Требуются ACL и TCAM

• Вместо 65K получаем порядка 1000

Arista 7124FX и всяческие FPGA• Да, но не удобно и vendor lock-in

POF – серебряная пуля?• Предложения по расширению OpenFlow

• Позволяет посчитать CRC и записать в MAC

• Protocol-Oblivious Forwarding, http://www.poforwarding.org/

Продержаться можно, ожидаем

подкрепление

Page 21: Леонид Юрьев, "Петер-Сервис"

Swarm Arrives!

Цель общая, действия локальны• все получают одну инструкцию, но действуют

самостоятельно• избавляемся от микро-менеджмента

Каждый знает о каждом• информация для согласованных решений• пример – поезда и смена расписания• можем балансировать децентрализовано

Один ничто, рой все• потеря единицы не должна влиять на результат• не храним ценного внутри, реплицируем• идеальный failover

Роевой Интеллект – эффект коллективного поведения децентрализованной самоорганизующейся системы

Page 22: Леонид Юрьев, "Петер-Сервис"

Балансировка – управляем роем

Оцениваем обработчики• производим перекрестную оценку каждого

• оцениваем здоровье и связанность с роем

• проверяем Data Plane и Control Plane

Ведем перепись• у каждого обработчика свой список роя

• используем NTP и timestamps

• много деталей и know how

Балансирует каждый !• по своему списку «выбирает» себе Сегменты

• hash ring не используем – мало Сегментов

• балансируем по ядрам, не по серверам

ПЕРЕКЛЮЧАТЕЛЬ

BL

AD

E

BL

AD

E

BLADE

BL

AD

E

BL

AD

E

LIST

CONTROL PLANE(Коммутатор)

SEG#

LIST

SEG#

LIST

SEG#

LIST

SEG#

LIST

SEG#

РАСПРЕДЕЛЕНИЕ

MAC → PORT#DATA PLANEMAC → PORT#

Page 23: Леонид Юрьев, "Петер-Сервис"

Балансировка – управляем роем

Плюсы

• Самодиагностика– постоянная и встроенная

• Отказоустойчиво– децентрализовано– нет единой точки отказа

• Легко мониторить и интегрировать,– просто слушаем Control Plane

ПЕРЕКЛЮЧАТЕЛЬ

BL

AD

E

BL

AD

E

BLADE

BL

AD

E

BL

AD

E

LIST

CONTROL PLANE(Коммутатор)

SEG#

LIST

SEG#

LIST

SEG#

LIST

SEG#

LIST

SEG#

РАСПРЕДЕЛЕНИЕ

MAC → PORT#DATA PLANEMAC → PORT#

Page 24: Леонид Юрьев, "Петер-Сервис"

Табло для роя– оперативное общедоступное хранилище

Табло• простое key-value хранилище

• как-то все записи версионированы

• заточено под zerocopy & DMA

• unordered map + shared memory + lockfree

Реплицируем• реплика на каждом сервере

• при локальном измененииотправляется уведомление в Control Plane

• получаемые обновления вливаютсяс учетом версионности

• нет единого формата версии, зависит от данных и задачи

ПЕРЕКЛЮЧАТЕЛЬ

BL

AD

E

BL

AD

E

BL

AD

E

BL

AD

E

РАСПРЕДЕЛЕНИЕ

DATA PLANE

CONTROL PLANE

ОБРАБОТЧИК

репликаТАБЛО

WRITEBACKFIFO

BL

AD

E

Page 25: Леонид Юрьев, "Петер-Сервис"

ПЕРЕКЛЮЧАТЕЛЬ

BL

AD

E

BL

AD

E

BL

AD

E

BL

AD

E

РАСПРЕДЕЛЕНИЕ

DATA PLANE

CONTROL PLANE

ОБРАБОТЧИК

репликаТАБЛО

WRITEBACKFIFO

BL

AD

E

Обработка роем– это и есть самое главное

Трансформируем задачи• сводим к виртуальной микро-машине

• состояние представляем как набор key-value

Версионируем состояние• пакеты – события,

обработка которых меняет состояние

• находим способ версионировать

Обработчики – Stateless• хранят состояние на Табло

• не хранят ценного внутри, только кэшируют

• работают в цикле– receive event, get state, handle, put state

Flow=TCPfrom=10.0.0.1:4629to=199.32.42.3:80,Node={A.5, Green},Inbound=200Outbound=6346

Page 26: Леонид Юрьев, "Петер-Сервис"

Рой – обработка и «Табло»

Tradeoff• Уменьшаем трафик по Control Plane

отправляя оповещения реже

• Уменьшаем объем реплик,храня только свое или 1-ю линию failover

Тонкости• TCP Window – носим «чемодан с

батарейками»

• TCP Sequences – дуплексный маркер направления потока данных

• у обработчика локальный writebackcache, запись в реплику через отдельную очередь

ПЕРЕКЛЮЧАТЕЛЬ

BL

AD

E

BL

AD

E

BL

AD

E

BL

AD

E

РАСПРЕДЕЛЕНИЕ

DATA PLANE

CONTROL PLANE

ОБРАБОТЧИК

репликаТАБЛО

WRITEBACKFIFO

BL

AD

E

Flow=TCPfrom=10.0.0.1:4629to=199.32.42.3:80,Node={A.5, Green},Inbound=200Outbound=6346

Page 27: Леонид Юрьев, "Петер-Сервис"

Свой «Транспорт»

Неплохо бы…• единообразно: in-process, in-server,

over-network, плюс со-процессоры

• мега-эффективный обмен сообщениями

• автоматические запятые – копировать нельзя шарить DMA

Дизайн• zerocopy + shared memory + lockfee + PI

• разные «транспорты» под один фасад

• операции со «строками» и итераторы

• ensure & asserts, safemode…

• сложности – в отдельный процесс

POD PAIR LIST STREAMING MQ

КАКАЯ-ТО МАГИЯ

C/C++ Java Erlang Go D

zerocopy

lockfree

priorityinheritance

DMA

safemode

NETWORK

DATA PLANECONTROL PLANE IPC

SHARED RAMDPDK MPI ØMQ netmap

Page 28: Леонид Юрьев, "Петер-Сервис"

Свой «Транспорт»

Внутри• концепт буфера как куска памяти и

offset_ptr (для сопроцессоров…)

• чистый lockfree (CAS & retry-on-fail),либо checked busyloop с выходом на PI-futex

• действительно эффективные итераторы и операции с цепочками

• очередь сообщений и диспетчер с пулом потоков

• providers: Intel DPDK, netmap, 0mq, MPI...

Планы• LGPL ≈ 1Hippeus, this is SPARTA!

• Думаем о Erlang, Go, D, Java, Xeon Phi, CUDA, Tilera…

MESSAGE = a list of chunks

INPLACE

WEA

K

DATA

chunk chunk chunk

externaldata

FIFO

SHARED RAMDPDK MPI ØMQ netmap

C/C++ Java Erlang Go D

PROVIDER INTERFACE

to be continued…

HighLoad++2014

POD PAIR LIST STREAMING MQ

NETWORK

DATA PLANECONTROL PLANE IPC

Page 29: Леонид Юрьев, "Петер-Сервис"

У нас получается, круто!

Масштабируемость• распределение коммутаторами

• MAC rewrite – OpenFlow & Arista,на подходе POF

• децентрализованное управлениераспределением трафика

Надежность / Стоимость• нет единой точки отказа

• прореживаем репликации Табло –уменьшаем трафик Control Plane

• храним в репликах Табло меньше чужих данных – уменьшаем требования RAM

• нужна полная гарантия «без потерь» –ставим зеркало

Эластичность и эффективность• «транспорт» дает гибкость за 10%

• при нехватке CPU/RAM можем просто подключить еще

• доступен safemode или непосредственно shared memory

Платформа• распределенное Табло для данных

• микро-машины с версионируемымсостоянием

• обмен сообщениямивне зависимости от среды передачи

Page 30: Леонид Юрьев, "Петер-Сервис"

Много нераскрытых тем,будет семинар 03.12.2013

• Законность и этика, конфиденциальность, сетевой нейтралитет

• Технология как стратегическое преимущество

• Больше usecases и Бизнеса

• Что уже сделано, пилотные проекты и внедрения

• Больше технических подробностей

• http://www.billing.ru/events/560

Page 31: Леонид Юрьев, "Петер-Сервис"

Checkpoint: Подведем итоги

DPI нужен – как Бизнесу, так и Государству

TopGun – интересная и сложная задача• Масштабируемо с роевым интеллектом

• Эластично и независимо от «железа»

• Стоимость/надежность – можно балансировать

• Легко развивать, терабит, задержка 100 μs

Организуем семинар 03.12.2013 http://www.billing.ru/events/560

Page 32: Леонид Юрьев, "Петер-Сервис"

TopGun: Вопросы?

Сейчас – HighLoad

• Предпосылки и цели TopGun

• MAC rewrite и распределение трафика

• Рой – управление балансировкой

• Рой – обработчики

• Рой – поддержка Табло

• Транспорт, zerocopy, lockfree, PI, диспетчеризация

На семинаре в Петер-Сервис

• Usecases и Бизнес

• Когда релиз?

• Законность и этика

• Свобода и конфиденциальность, компромисс с реальностью

• Технология как стратегическое преимущество

• Поддерживаемые протоколы

• Пилотные проекты и внедрения