Programování

Dilema SDN: Síťování jádra Linuxu vs. obejití jádra

Sujal Das je hlavním strategickým a marketingovým ředitelem společnosti Netronome, poskytovatele vysoce výkonných řešení pro společné zpracování x86 pro sítě, zabezpečení, vyvažování zátěže, virtualizaci a SDN.

Pokud bychom se za posledních 25 let v technologickém oboru něco naučili, bylo by to nikdy nepodceňovat linuxové jádro. Proč tedy tolik síťových společností tak dychtilo obejít jádro Linuxu - nebo konkrétněji síťový zásobník jádra Linuxu? Co může být tak špatného na tepnách síťových paketů v linuxovém jádře, které motivují tolik z nás, aby je obcházely?

Existují dva hlavní důvody. Za prvé, síťový zásobník jádra je příliš pomalý - a problém se jen zhoršuje přijetím vysokorychlostních sítí na serverech a přepínačích (10GbE, 25GbE a 40GbE dnes a v blízké budoucnosti se zvýší na 50GbE a 100GbE) . Zadruhé, práce v síti mimo jádro umožňuje připojení nové technologie bez nutnosti měnit základní kód jádra Linuxu.

Z těchto dvou důvodů a s další výhodou, že mnoho technologií obchvatu jádra je otevřený zdroj a / nebo jsou specifikovány orgány norem, navrhovatelé řešení obchvatu nadále tlačí provozovatele datových center, aby je přijali.

Řešení obejití jádra

V minulosti jsme viděli mnoho řešení obejití jádra, zejména RDMA (Remote Direct Memory Access), TOE (TCP Offload Engine) a OpenOnload. V poslední době se v některých aplikacích k obejití jádra používá DPDK (Data Plane Development Kit), a pak se objevují nové iniciativy, jako je FD.io (Fast Data Input Output) založený na VPP (Vector Packet Processing). V budoucnu se pravděpodobně objeví další.

Technologie jako RDMA a TOE vytvářejí v jádře paralelní zásobník a řeší první problém (jmenovitě „jádro je příliš pomalé“), zatímco OpenOnload, DPDK a FD.io (založené na VPP) přesouvají sítě do uživatelského prostoru Linuxu, aby řešily oba rychlost a požadavky na technologii plug-in. Když jsou technologie zabudovány v uživatelském prostoru Linuxu, není nutné provádět změny v jádře, což eliminuje další úsilí potřebné k přesvědčení komunity jádra Linuxu o užitečnosti obtokových technologií a jejich přijetí prostřednictvím upstreamingu do jádra Linuxu.

Netronome

Obejít problémy jádra

Výzvy spojené s přijetím paralelních zásobníků mimo síťový zásobník jádra jsou zřejmé operátorům datových center, kteří čelí výzvě škálovat svou infrastrukturu na velmi velký počet serverů. S paralelními síťovými zásobníky přichází zdánlivě nekonečný seznam problémů se zabezpečením, správou, robustností, uzamčením dodavatelů hardwaru a kompatibilitou protokolů.

Například existují implementace Open vSwitch a OpenContrail, které používají DPDK jako přístup k obejití jádra. Implementace DPDK jsou omezeny dvěma způsoby. Zaprvé, je těžké a někdy nemožné vyvíjet funkce rychle a rychle pomocí inovací softwaru založeného na jádru založeného na otevřeném zdrojovém kódu. Zadruhé, i když lze zajistit úroveň výkonu a zabezpečení, kterou virtuální počítače a aplikace vyžadují, vyžaduje to značný počet procesorových jader x86, což snižuje celkovou účinnost infrastruktury datového centra.

Některým provozovatelům datových center, kteří mají ke správě snad několik stovek serverů a provozují jedinou aplikaci, jako jsou klastry High Performance Computing nebo High Frequency Trading, však může připadat praktické využívat takové paralelní obtokové zásobníky jádra. Totéž platí pro vyhrazené úložné klastry.

Může však být ucpání síťového zásobníku jádra opraveno, aniž byste se uchýlili k paralelním bypassovým zásobníkům? Ano, může. Správným způsobem, jak vyřešit dva výše uvedené problémy, by bylo najít způsoby, jak transparentně urychlit výkon síťového zásobníku jádra pomocí inteligentního síťového hardwaru a bez jakéhokoli zablokování dodavatele.

SmartNIC se snaží tyto problémy vyřešit, aniž by obcházely jádro. SmartNIC jsou NICS (karty síťového rozhraní), které jsou programovatelné a umožňují prodejcům, kteří dodávají takové produkty, inovovat síťový hardware serveru rychlostí softwaru - praktický požadavek v moderní softwarově definované infrastruktuře datového centra s podporou NFV.

Zadejte SmartNICS

Netronome SmartNIC poskytují základní i tradiční funkce NIC a pokročilé funkce potřebné pro cloudová datová centra a poskytovatele telekomunikačních služeb. Mezi tyto pokročilé funkce patří schopnost odlehčit bohaté síťové funkce, jako jsou virtuální přepínače a virtuální směrovače používané v softwarově definovaných síťových prostředích a výpočetní servery optimalizované NFV. Schopnost odlehčit tyto výpočetně náročné síťové funkce na SmartNIC přináší virtuálním počítačům vyšší úroveň výkonu a zabezpečení, zvyšuje počet aplikací, které lze doručit na server, a poskytuje celkovou podporu efektivity datového centra. Funkce SmartNIC se mohou rychle vyvíjet díky inovacím v oblasti open source sítí, jako jsou Open vSwitch, OpenStack, OpenContrail a eBPF projektu IO Visor (Extended Berkeley Packet Filter).

Výhody nasazení SmartNIC se neomezují pouze na zvýšený výkon a bohatší sadu funkcí. Rovněž dochází k významným úsporám TCO, protože SmartNIC mohou nahradit tradiční síťové karty používané na serverech. Ceny SmartNIC jsou cenově konkurenceschopné vůči tradičním síťovým adaptérům a poskytují významné úspory uvolněním cenných zdrojů CPU serveru pro virtuální počítače a aplikace, což zvyšuje efektivitu serveru. Vzhledem k tomu, že servery spotřebují až 60 procent celkových nákladů na infrastrukturu datového centra, slibuje schopnost podporovat větší pracovní zátěž na server pomocí SmartNIC významné úspory.

Navrhovatelé obejití jádra tvrdí, že síťového výkonu serveru potřebného v aplikacích SDN a NFV lze dosáhnout pomocí vysoce výkonných procesorových jader x86, a proto jsou potřeba pouze tradiční síťové karty. Ale v praktických měřítcích a v reálném životě mohou mechanismy bypassu jádra potřebovat až 24 jader CPU, aby získaly požadovaný výkon v síti. To prakticky spotřebovává celý server pouze pro připojení k síti.

Prodejci SmartNIC plně souhlasí s tím, že výkon sítě jádra je skutečným problémem, který se bude jen zhoršovat, protože operátoři budují datová centra, aby uspokojili požadavky stále rostoucího počtu mobilních zařízení a zařízení IoT. Ale nevěří, že obejití jádra operačního systému problém vyřeší. Spíše intenzivní úlohy zpracování sítě v síťovém zásobníku jádra Linuxu je třeba vyložit na SmartNIC agnostickým způsobem od dodavatele, místo aby se používaly implementace, které vedou k paralelním redundantním síťovým zásobníkům.

SmartNIC řeší tyto výzvy, odlehčují dnes implementované síťové datové cesty založené na jádře a rychle se vyvíjejí v širší komunitě open source Linuxu. Technologie linuxového jádra, jako je eBPF a Traffic Classifier, slibují, že umožní prodejcům SmartNIC, jako je Netronome, držet se síťového zásobníku linuxového jádra a umožnit operátorům datových center efektivně škálovat.

Hlasitým doporučením komunity Linux vždy bylo vyhnout se obejití jádra. Stejně jako všechny základní a jednoduché myšlenky se i tato myšlenka v minulosti prosadila, platí dnes i v budoucnu.

Nové technologické fórum poskytuje místo, kde můžete prozkoumat a diskutovat o nově vznikajících podnikových technologiích v nebývalé hloubce a šíři. Výběr je subjektivní, založený na našem výběru technologií, které považujeme za důležité a pro čtenáře nejzajímavější. nepřijímá marketingové materiály ke zveřejnění a vyhrazuje si právo upravovat veškerý přispěný obsah. Všechny dotazy zasílejte na [email protected]