Programovanie

Dilema SDN: Sieťovanie jadra Linuxu oproti obchádzaniu jadra

Sujal Das je hlavným stratégom a marketingovým riaditeľom spoločnosti Netronome, poskytovateľa vysoko výkonných riešení pre spoločné spracovanie x86 pre siete, zabezpečenie, vyrovnávanie zaťaženia, virtualizáciu a SDN.

Keby sme sa za posledných 25 rokov niečo naučili v technologickom odbore, bolo by to nikdy nepodceniť jadro Linuxu. Prečo potom toľko sieťových spoločností tak túžilo obísť jadro Linuxu, presnejšie sieťový zásobník jadra Linuxu? Čo môže byť také zlé na tepnách sieťových paketov v jadre Linuxu, ktoré motivujú toľko z nás, aby ich obišli?

Existujú dva hlavné dôvody. Po prvé, sieťový zásobník jadra je príliš pomalý - a problém sa len zhoršuje prijatím rýchlejšej siete na serveroch a prepínačoch (10GbE, 25GbE a 40GbE dnes a v blízkej budúcnosti stúpne na 50GbE a 100GbE). . Po druhé, práca v sieti mimo jadra umožňuje zapojenie novej technológie bez potreby zmeny základného kódu jadra systému Linux.

Z týchto dvoch dôvodov a s ďalšou výhodou, že mnoho technológií obchádzania jadra je otvoreným zdrojom alebo sú špecifikované normovými orgánmi, navrhovatelia riešení obtokov naďalej tlačia na operátorov dátových centier, aby si ich osvojili.

Riešenia obchádzania jadra

V minulosti sme videli veľa riešení obchádzania jadra, najmä RDMA (Remote Direct Memory Access), TOE (TCP Offload Engine) a OpenOnload. V poslednej dobe sa v niektorých aplikáciách používa na obídenie jadra DPDK (Data Plane Development Kit). Potom sa objavujú nové iniciatívy ako FD.io (Fast Data Input Output) založené na VPP (Vector Packet Processing). Pravdepodobne v budúcnosti pribudnú ďalšie.

Technológie ako RDMA a TOE vytvárajú v jadre paralelný zásobník a riešia prvý problém (konkrétne „jadro je príliš pomalé“), zatiaľ čo OpenOnload, DPDK a FD.io (založené na VPP) presúvajú siete do užívateľského priestoru Linuxu, aby riešili oba rýchlosť a technologické požiadavky na zásuvné moduly. Keď sú technológie zabudované v užívateľskom priestore systému Linux, zabráni sa potrebám zmien v jadre, čo eliminuje ďalšie úsilie potrebné na presvedčenie komunity jadra Linuxu o užitočnosti obtokových technológií a ich prijatí prostredníctvom upstreamingu do jadra Linuxu.

Netronóm

Problémy s obchádzaním jadra

Výzvy spojené s prijatím paralelných zásobníkov mimo sieťového zásobníka jadra sú zrejmé pre operátorov dátových centier, ktorí majú problém s rozšírením svojej infraštruktúry na veľmi veľký počet serverov. S paralelnými sieťovými zásobníkmi prichádza zdanlivo nekonečný zoznam problémov so zabezpečením, spravovateľnosťou, robustnosťou, blokovaním dodávateľov hardvéru a kompatibilitou protokolov.

Napríklad existujú implementácie Open vSwitch a OpenContrail, ktoré používajú DPDK ako prístup obchádzania jadra. Implementácie DPDK sú obmedzené dvoma spôsobmi. Po prvé, je ťažké a niekedy nemožné vyvíjať funkcie rýchlo a rýchlo pomocou inovácií otvoreného softvéru založených na jadre. Po druhé, aj keď je možné dodať úrovne výkonu a zabezpečenia, ktoré potrebujú VM a aplikácie, vyžaduje to značné množstvo jadier procesora x86, čo znižuje celkovú efektivitu infraštruktúry dátového centra.

Niektorým prevádzkovateľom dátových centier, ktorí majú na správu možno niekoľko stoviek serverov a ktorí prevádzkujú jednu aplikáciu, ako sú napríklad klastre High Performance Computing alebo High Frequency Trading, však môže pripadať praktické využívať také paralelné obchádzkové zásobníky jadra. To isté platí pre vyhradené úložné klastre.

Môže sa však upchatie sieťového zásobníka jadra vyriešiť bez toho, aby ste sa uchýlili k paralelným obtokovým zásobníkom? Áno, môže. Správnym spôsobom, ako vyriešiť tieto dva problémy, by bolo nájsť spôsoby, ako transparentne zrýchliť výkon sieťového zásobníka jadra pomocou inteligentného sieťového hardvéru a bez nutnosti akejkoľvek výmeny od dodávateľa.

SmartNIC sa snažia vyriešiť tieto problémy bez obídenia jadra. SmartNIC sú karty NICS (karty sieťového rozhrania), ktoré sú programovateľné a umožňujú predajcom, ktorí poskytujú tieto produkty, inovovať sieťový hardvér servera rýchlosťou softvéru - čo je praktická požiadavka v modernej softvérovo definovanej infraštruktúre dátových centier s povoleným NFV.

Zadajte SmartNICS

Netronome SmartNIC poskytujú základné alebo tradičné funkcie NIC a pokročilé funkcie, ktoré potrebujú poskytovatelia cloudových dátových centier a telekomunikačných služieb. Medzi tieto pokročilé funkcie patrí schopnosť odľahčiť bohaté sieťové funkcie, ktoré poskytujú napríklad virtuálne prepínače a virtuálne smerovače používané v softvérovo definovaných sieťových prostrediach a výpočtové servery optimalizované pre NFV. Schopnosť odložiť tieto sieťovo náročné funkcie náročné na výpočty do SmartNIC prináša virtuálnym počítačom vyššiu úroveň výkonu a zabezpečenia, zvyšuje počet aplikácií, ktoré je možné na server doručiť, a celkovo zvyšuje efektivitu dátového centra. Funkcie SmartNIC sa môžu rýchlo rozvíjať pomocou sieťových inovácií otvoreného zdroja, ako sú napríklad Open vSwitch, OpenStack, OpenContrail a eBPF projektu IO Visor (Extended Berkeley Packet Filter).

Výhody nasadenia SmartNIC sa neobmedzujú iba na zvýšený výkon a bohatšiu sadu funkcií. Existujú tiež značné úspory TCO, pretože SmartNIC môžu nahradiť tradičné NIC používané na serveroch. Ceny SmartNIC sú cenovo porovnateľné s tradičnými sieťovými adaptérmi a poskytujú značné úspory uvoľnením cenných zdrojov serverového procesora pre virtuálne počítače a aplikácie a zvýšením efektívnosti servera. Vzhľadom na to, že servery spotrebujú až 60 percent celkových nákladov na infraštruktúru dátových centier, sľubuje schopnosť podporovať väčšie pracovné zaťaženie na server pomocou serverov SmartNIC značné úspory.

Navrhovatelia obchvatu jadra tvrdia, že sieťový výkon servera potrebný v aplikáciách SDN a NFV je možné dosiahnuť pomocou vysoko výkonných jadier procesora x86, a preto sú potrebné iba tradičné sieťové karty. Ale v praktických testoch a v reálnom živote môžu mechanizmy bypassu jadra potrebovať až 24 jadier CPU, aby dosiahli požadovaný výkon v sieti. Prakticky to spotrebuje celý server iba na sieťové pripojenie.

Predajcovia produktov SmartNIC plne súhlasia s tým, že výkon siete jadra predstavuje skutočný problém, ktorý sa bude len zhoršovať, pretože operátori budujú dátové centrá, aby uspokojili požiadavky stále rastúceho počtu mobilných zariadení a zariadení internetu vecí. Neveria však, že obídenie jadra operačného systému problém vyrieši. Namiesto toho je potrebné intenzívne úlohy sieťového spracovania v sieťovom stohu jadra Linuxu odložiť do serverov SmartNIC agnostickým spôsobom, namiesto použitia implementácií, ktorých výsledkom sú paralelné, nadbytočné sieťové stohy.

SmartNIC sa zaoberajú týmito výzvami, odľahčujú implementácie sieťových dátových ciest založené na jadre, ktoré sú dnes k dispozícii, a rýchlo sa vyvíjajú v širšej komunite otvorených zdrojov Linuxu. Technológie zásobníkov jadra Linuxu, ako sú eBPF a Traffic Classifier, sľubujú, že umožnia dodávateľom SmartNIC, ako je Netronome, držať sa sieťového zásobníka jadra Linuxu a umožniť operátorom dátových centier efektívne škálovať.

Dôrazným odporúčaním komunity Linux bolo vždy vyhnúť sa obchádzaniu jadra. Rovnako ako všetky základné a jednoduché nápady, aj táto myšlienka obstála v minulosti, platí dnes a zostane verná aj v budúcnosti.

Nové technologické fórum poskytuje miesto na preskúmanie a diskusiu o vznikajúcich podnikových technológiách v nebývalej hĺbke a šírke. Výber je subjektívny, založený na našom výbere technológií, ktoré považujeme za dôležité a pre čitateľov najväčší záujem. neprijíma marketingové záruky na zverejnenie a vyhradzuje si právo upravovať všetok prispievaný obsah. Všetky otázky posielajte na adresu [email protected].

$config[zx-auto] not found$config[zx-overlay] not found