Виртуализированные
сетевые сервисы на line rate
в серверном окружении
Александр Шалимов
Эра виртуализации
• Практически все находится на виртуальных
машинах или в контейнерах
• http-сервера
• БД
• АТС
• Трейдинговые системы
• Реверс прокси с защитой от ddos
• Nginx
• Пользовательские задачи
• Почтовые клиенты
• Облачные технологии
• Телеком операторы
Сетевая производительность VM
Какая будет
производительность?
• .
• ..
• …
• …….
• ………..
• Max 100Kpps
• < 10% от 1Gbe
канала и 300us
задержка
Виртуальная
машина
Приложение
Linux
Гипервизор
Virtual Switch
Упс! Что-то пошло не так!
Почему так?
• Сетевой стек OS
• Универсальный
• Много копирований
• Лишние и дублированные действия
• Системные вызовы
• Переключения контекста и прерывания
Возможные технологии решения
• + гибкость
• + независимость от
аппаратуры
• - производительность
• - вертикальная
• - горизонтальная
• - гибкость
• - независимость от
аппаратуры
• +/- производительность
• + вертикальная
• - горизонтальная
Intel DPDK
• Intel DPDK – это набор библиотек и драйверов для быстрой
обработки пакетов на платформах Intel.
• Использование больших виртуальных страниц (huge pages
2mb/1gb).
• Размещение объектов равномерно по всем каналам
оперативной памяти.
• Адресное пространство карточки доступно из userspace.
• Неблокирующие очереди для передачи пакетов.
• Нет прерываний в драйверах DPDK – активный цикл.
• Активное использование SSE инструкций для обработки
пакетов.
• Выделение целых ядер процессоров под задачи.
DPDK = Data Plane Development Kit
http://dpdk.org/
Open vSwitch + DPDK
Пример проблемы с инкапсуляцией и overlay
OpenStack
• Open source software for building private and public cloud.
• Create VMs, attach storage to them, and connect them into virtual topology
9
Виртуальные сети в OpenStack
• Взаимодествие между
машинами
• На одном сервере
• Между серверами
• Трафик инкапсулируется по
т.н. overlay сетям
• GRE
• VXLAN
OVS/GRE plugin architecture
11
VM VM VM VM
br-int
br-ex
Compute Node
VMs
OVS bridgespatch port
GRE port
NIC
physical layer
??? SLOW
http://www.openstack.org/summit/openstack-summit-hong-kong-2013/session-videos/presentation/open-vswitch-and-its-usage-in-neutron
OVS/GRE plugin bottlenecks
12
br-ex
patch port
GRE port
NIC
Linux Networking
Stack
Standard networking stack is slow,
yes. It’s well know fact. But the
traffic speed is even slower. Why?
• Heavily layered
• Allocation
• ….
GRE port in OVS
• OVS lays finishing of GRE packet encapsulation on
networking stack.
13
MACs IPs Payload
VM
OVS GRE port
MACs IPs PayloadGRE
Linux Networking Stack
MACs IPs PayloadGREMACs IPs
Require more work for route and arp lookups. Thus, slower!
GRE port architecture
• GRE port should fully be responsible for packet encapsulation.
• Tasks of GRE port:
• Determine local IP.
• Must specify both local and remote IPs;
• Determine MAC addresses
• Maintain our own ARP table;
• What NIC to send
• Route table is encoded into main flow table and encapsulated packets are returned back
to the datapath and matched again against the flow table.
• Still suit OpenStack Neutron plugin
14
Experimental evaluation
15
Accelerated OVS Original OVS
VLAN
physical-to-physical 5 Mpps 1.1 Mpps
physical-to-vm 3.3 Mpps 0.44 Mpps
GRE
physical-to-physical 1.6 Mpps 0.22 Mpps
physical-to-vm 1.12 Mpps 0.11 Mpps
* 10 Gb channel
** 64 bytes UDP packets
*** theoretical max is 15Mpps
**** Intel Xeon E3-1240 2.4GHz/6
***** IVSHMEM VM connection (~0.6Mpps without)
It is 5 times performance improving!
Что сейчас и что дальше?
Какой статус сейчас?
• DPDK входит в поставку Ubuntu 16.04
• Хотите производительность?
• “g <название приложения> dpdk”
• Уже портированы многие из них:
• Iptable/iproute
• Nginx
• Pktgen
• Haproxy
• Libvirt
• Docker
• ….
Эволюция фреймворков
• Поверх DPDK появляются
более удобные фреймворки
для программистов и
инженеров
• Запуск цепочек сервисов
• VM + Docker
• Интеграция host приложений
• Перехват трафика для анализа
• Уже есть VXLAN, GRE
• DPDK Packet Framework
• FD.io – Cisco VPP
18
Hardware
Application Layer / App Server
VM/VIM Management Systems
Network Controller
Operating Systems
Data Plane Services
Orchestration
Network IOPacket Processing
VPP technology in a nutshell
• VPP data plane throughput not impacted by large FIB size
• OVSDPDK data plane throughput heavily impacted by FIB size
• VPP and OVSDPDK tested on Haswell x86 platform with E5-2698v3
2x16C 2.3GHz (Ubuntu 14.04 trusty)
OVSDPDK
VPP
0
5
10
15
20
2 MACs
2k MACs
20k MACs
NDR rates for 2p10GE, 1 core, L2 NIC-to-NIC
[IMIX Gbps]
OVSDPDK
VPP
0.0
20.0
40.0
60.0
80.0
100.0
120.0
12 routes
1k routes 100k
routes
500k
routes
1M
routes
2M
routes
NDR rates for 12 port 10GE, 12 cores, IPv4
[IMIX Gbps]
VPP Feature Summary
fd.io Foundation 20
14+ MPPS, single core
Multimillion entry FIBs
Source RPF
Thousands of VRFs
Controlled cross-VRF
lookups
Multipath – ECMP and Unequal
Cost
Multiple million Classifiers –
Arbitrary N-tuple
VLAN Support – Single/Double
tag
Counters for everything
Mandatory Input Checks:
TTL expiration
header checksum
L2 length < IP length
ARP resolution/snooping
ARP proxy
IPv4/IPv6 IPv4
GRE, MPLS-GRE, NSH-GRE,
VXLAN
IPSEC
DHCP client/proxy
CG NAT
IPv6
Neighbor discovery
Router Advertisement
DHCPv6 Proxy
L2TPv3
Segment Routing
MAP/LW46 – IPv4aas
iOAM
MPLS
MPLS-o-Ethernet –
Deep label stacks
supported
L2
VLAN Support
Single/ Double tag
L2 forwarding with
EFP/BridgeDomain concepts
VTR – push/pop/Translate
(1:1,1:2, 2:1,2:2)
Mac Learning – default limit of
50k addresses
Bridging – Split-horizon group
support/EFP Filtering
Proxy Arp
Arp termination
IRB – BVI Support with
RouterMac assignment
Flooding
Input ACLs
Interface cross-connect
Bарианты интеграции
VPP
Control
Plane
DataPlane
Openstack
Neutron
ODL
Plugin
HC
VPP
ControlPlaneDataPlane Netlink Server
libnetwork
cni
weave
calico
…
flannel
VPP
ControlPlaneDataPlane
HC
NSH_SFC
SFC
VPP
DataPlane HC
VNF
OpenStack Integration Container Integration NFV - SFCs
NFV - VNFs
Историческая справка
Как выглядит телеком оператор внутри?
Кругом проприетарное оборудование!
2G, 3G, 4G, 5G,….
Проблемы телеком операторов
•Количества трафика растет, требуется больше
сетевого оборудования, НО доход не растет.
• Инфраструктура состоит из проприетарного дорого
оборудования.
• Статическое распределение ресурсов.
• Вывод новых сервисов занимается до 18 месяцев.
Виртуальные сетевые сервисы
ETSI WhitePaper
v.1.0
October 2012
Преимущества
Перенос сетевых функций на виртуальные
машины:
•Упрощение развертывания и обновления как
софта, так и железа
•Уменьшение стоимости за счет использования
стандартных серверов
•Объединение сервисов в группы
Пример
Заключение
• Есть проблемы с сетевым взаимодействием в виртуальном
окружении
• Есть варианты решения – простые и сложные
• DPDK, Netmap
• DPDK Packet Framework, FD.io
• Для многих популярных приложений есть порты на DPDK
• Высокая потребность в людях, которые понимают тематтику
виртуальных сетей и окружения.
Вопросы?
http://arccn.ru/ ashalimov@arccn.ru
@alex_shali
@arccnnews

Виртуализированные сетевые сервисы на line rate в серверном окружении / Александр Шалимов (ЦПИКС)

  • 1.
    Виртуализированные сетевые сервисы наline rate в серверном окружении Александр Шалимов
  • 2.
    Эра виртуализации • Практическивсе находится на виртуальных машинах или в контейнерах • http-сервера • БД • АТС • Трейдинговые системы • Реверс прокси с защитой от ddos • Nginx • Пользовательские задачи • Почтовые клиенты • Облачные технологии • Телеком операторы
  • 3.
    Сетевая производительность VM Какаябудет производительность? • . • .. • … • ……. • ……….. • Max 100Kpps • < 10% от 1Gbe канала и 300us задержка Виртуальная машина Приложение Linux Гипервизор Virtual Switch Упс! Что-то пошло не так!
  • 4.
    Почему так? • Сетевойстек OS • Универсальный • Много копирований • Лишние и дублированные действия • Системные вызовы • Переключения контекста и прерывания
  • 5.
    Возможные технологии решения •+ гибкость • + независимость от аппаратуры • - производительность • - вертикальная • - горизонтальная • - гибкость • - независимость от аппаратуры • +/- производительность • + вертикальная • - горизонтальная
  • 6.
    Intel DPDK • IntelDPDK – это набор библиотек и драйверов для быстрой обработки пакетов на платформах Intel. • Использование больших виртуальных страниц (huge pages 2mb/1gb). • Размещение объектов равномерно по всем каналам оперативной памяти. • Адресное пространство карточки доступно из userspace. • Неблокирующие очереди для передачи пакетов. • Нет прерываний в драйверах DPDK – активный цикл. • Активное использование SSE инструкций для обработки пакетов. • Выделение целых ядер процессоров под задачи. DPDK = Data Plane Development Kit http://dpdk.org/
  • 7.
  • 8.
    Пример проблемы синкапсуляцией и overlay
  • 9.
    OpenStack • Open sourcesoftware for building private and public cloud. • Create VMs, attach storage to them, and connect them into virtual topology 9
  • 10.
    Виртуальные сети вOpenStack • Взаимодествие между машинами • На одном сервере • Между серверами • Трафик инкапсулируется по т.н. overlay сетям • GRE • VXLAN
  • 11.
    OVS/GRE plugin architecture 11 VMVM VM VM br-int br-ex Compute Node VMs OVS bridgespatch port GRE port NIC physical layer ??? SLOW http://www.openstack.org/summit/openstack-summit-hong-kong-2013/session-videos/presentation/open-vswitch-and-its-usage-in-neutron
  • 12.
    OVS/GRE plugin bottlenecks 12 br-ex patchport GRE port NIC Linux Networking Stack Standard networking stack is slow, yes. It’s well know fact. But the traffic speed is even slower. Why? • Heavily layered • Allocation • ….
  • 13.
    GRE port inOVS • OVS lays finishing of GRE packet encapsulation on networking stack. 13 MACs IPs Payload VM OVS GRE port MACs IPs PayloadGRE Linux Networking Stack MACs IPs PayloadGREMACs IPs Require more work for route and arp lookups. Thus, slower!
  • 14.
    GRE port architecture •GRE port should fully be responsible for packet encapsulation. • Tasks of GRE port: • Determine local IP. • Must specify both local and remote IPs; • Determine MAC addresses • Maintain our own ARP table; • What NIC to send • Route table is encoded into main flow table and encapsulated packets are returned back to the datapath and matched again against the flow table. • Still suit OpenStack Neutron plugin 14
  • 15.
    Experimental evaluation 15 Accelerated OVSOriginal OVS VLAN physical-to-physical 5 Mpps 1.1 Mpps physical-to-vm 3.3 Mpps 0.44 Mpps GRE physical-to-physical 1.6 Mpps 0.22 Mpps physical-to-vm 1.12 Mpps 0.11 Mpps * 10 Gb channel ** 64 bytes UDP packets *** theoretical max is 15Mpps **** Intel Xeon E3-1240 2.4GHz/6 ***** IVSHMEM VM connection (~0.6Mpps without) It is 5 times performance improving!
  • 16.
    Что сейчас ичто дальше?
  • 17.
    Какой статус сейчас? •DPDK входит в поставку Ubuntu 16.04 • Хотите производительность? • “g <название приложения> dpdk” • Уже портированы многие из них: • Iptable/iproute • Nginx • Pktgen • Haproxy • Libvirt • Docker • ….
  • 18.
    Эволюция фреймворков • ПоверхDPDK появляются более удобные фреймворки для программистов и инженеров • Запуск цепочек сервисов • VM + Docker • Интеграция host приложений • Перехват трафика для анализа • Уже есть VXLAN, GRE • DPDK Packet Framework • FD.io – Cisco VPP 18 Hardware Application Layer / App Server VM/VIM Management Systems Network Controller Operating Systems Data Plane Services Orchestration Network IOPacket Processing
  • 19.
    VPP technology ina nutshell • VPP data plane throughput not impacted by large FIB size • OVSDPDK data plane throughput heavily impacted by FIB size • VPP and OVSDPDK tested on Haswell x86 platform with E5-2698v3 2x16C 2.3GHz (Ubuntu 14.04 trusty) OVSDPDK VPP 0 5 10 15 20 2 MACs 2k MACs 20k MACs NDR rates for 2p10GE, 1 core, L2 NIC-to-NIC [IMIX Gbps] OVSDPDK VPP 0.0 20.0 40.0 60.0 80.0 100.0 120.0 12 routes 1k routes 100k routes 500k routes 1M routes 2M routes NDR rates for 12 port 10GE, 12 cores, IPv4 [IMIX Gbps]
  • 20.
    VPP Feature Summary fd.ioFoundation 20 14+ MPPS, single core Multimillion entry FIBs Source RPF Thousands of VRFs Controlled cross-VRF lookups Multipath – ECMP and Unequal Cost Multiple million Classifiers – Arbitrary N-tuple VLAN Support – Single/Double tag Counters for everything Mandatory Input Checks: TTL expiration header checksum L2 length < IP length ARP resolution/snooping ARP proxy IPv4/IPv6 IPv4 GRE, MPLS-GRE, NSH-GRE, VXLAN IPSEC DHCP client/proxy CG NAT IPv6 Neighbor discovery Router Advertisement DHCPv6 Proxy L2TPv3 Segment Routing MAP/LW46 – IPv4aas iOAM MPLS MPLS-o-Ethernet – Deep label stacks supported L2 VLAN Support Single/ Double tag L2 forwarding with EFP/BridgeDomain concepts VTR – push/pop/Translate (1:1,1:2, 2:1,2:2) Mac Learning – default limit of 50k addresses Bridging – Split-horizon group support/EFP Filtering Proxy Arp Arp termination IRB – BVI Support with RouterMac assignment Flooding Input ACLs Interface cross-connect
  • 21.
    Bарианты интеграции VPP Control Plane DataPlane Openstack Neutron ODL Plugin HC VPP ControlPlaneDataPlane NetlinkServer libnetwork cni weave calico … flannel VPP ControlPlaneDataPlane HC NSH_SFC SFC VPP DataPlane HC VNF OpenStack Integration Container Integration NFV - SFCs NFV - VNFs
  • 22.
  • 23.
    Как выглядит телекомоператор внутри? Кругом проприетарное оборудование! 2G, 3G, 4G, 5G,….
  • 24.
    Проблемы телеком операторов •Количестватрафика растет, требуется больше сетевого оборудования, НО доход не растет. • Инфраструктура состоит из проприетарного дорого оборудования. • Статическое распределение ресурсов. • Вывод новых сервисов занимается до 18 месяцев.
  • 25.
  • 26.
    Преимущества Перенос сетевых функцийна виртуальные машины: •Упрощение развертывания и обновления как софта, так и железа •Уменьшение стоимости за счет использования стандартных серверов •Объединение сервисов в группы
  • 27.
  • 28.
    Заключение • Есть проблемыс сетевым взаимодействием в виртуальном окружении • Есть варианты решения – простые и сложные • DPDK, Netmap • DPDK Packet Framework, FD.io • Для многих популярных приложений есть порты на DPDK • Высокая потребность в людях, которые понимают тематтику виртуальных сетей и окружения.
  • 29.

Editor's Notes

  • #13 It is complex and expensive: Complex heavily layered universal code. Expensive system calls and data copies just to move packets from/to kernel. Costly packet encapsulation in the kernel (per-packet malloc/free, refcounter pointers, data sharing,…)
  • #21 The input checks included by VPP include mandatory networking checks. Some solutions today either don’t perform these or don’t have them leading to questionable performance numbers