Dilema SDN-a: umrežavanje jezgre Linuxa nasuprot zaobilaženju jezgre

Sujal Das glavni je direktor za strategiju i marketing u tvrtki Netronome, dobavljaču x86 rješenja za zajedničku obradu visokih performansi za umrežavanje, sigurnost, uravnoteženje opterećenja, virtualizaciju i SDN.

Ako smo išta naučili u tehnološkom poslu u posljednjih 25 godina, nikad ne bi podcjenjivali Linux jezgru. Zašto su tolike mrežne tvrtke toliko željne zaobići Linux jezgru - ili preciznije, mrežni niz Linux kernela? Što može biti toliko pogrešno s umreženim paketnim arterijama u Linux jezgri što motivira toliko nas da ih zaobiđemo?

Dva su glavna razloga. Prvo, mrežni niz kernela je prespor - a problem se samo pogoršava usvajanjem bržih mreža na poslužiteljima i preklopnicima (10GbE, 25GbE i 40GbE danas, a u bliskoj budućnosti porast na 50GbE i 100GbE) . Drugo, rukovanje mrežom izvan jezgre omogućuje uključivanje nove tehnologije bez potrebe za promjenom osnovnog koda jezgre Linuxa.

Iz ta dva razloga, i uz dodatnu prednost što su mnoge tehnologije zaobilaženja jezgre otvorenog koda i / ili ih specificiraju tijela za standarde, zagovornici bypass rješenja i dalje potiču operatore podatkovnih centara da ih usvoje.

Rješenja zaobilaska jezgre

U prošlosti smo vidjeli mnoga rješenja za zaobilaženje jezgre, a posebno RDMA (daljinski izravni pristup memoriji), TOE (TCP Offload Engine) i OpenOnload. U novije vrijeme DPDK (Data Plane Development Kit) koristi se u nekim aplikacijama za zaobilaženje jezgre, a zatim se pojavljuju nove inicijative kao što je FD.io (Brzi izlaz podataka) temeljeno na VPP (Vector Packet Processing). Vjerojatnije će se pojaviti u budućnosti.

Tehnologije poput RDMA i TOE stvaraju paralelni stog u jezgri i rješavaju prvi problem (naime, "kernel je prespor"), dok OpenOnload, DPDK i FD.io (temeljeni na VPP-u) premještaju umrežavanje u Linux korisnički prostor kako bi se obratili i jednima i drugima. zahtjevi za brzinom i tehnologijom. Kada se tehnologije grade u korisničkom prostoru Linuxa, izbjegava se potreba za promjenama na jezgri, eliminirajući dodatni napor potreban za uvjeravanje Linux jezgrene zajednice u korisnost zaobilaznih tehnologija i njihovo usvajanje nadogradnjom u jezgru Linuxa.

Netronome

Izazovi zaobilaženja jezgre

Izazovi povezani s usvajanjem paralelnih stogova izvan mrežnog stoga kernela očigledni su operaterima podatkovnih centara koji se suočavaju s skaliranjem svoje infrastrukture na vrlo velik broj poslužitelja. Uz paralelne mrežne hrpe dolazi naizgled beskrajan popis sigurnosti, upravljivosti, robusnosti, zaključavanja dobavljača hardvera i kompatibilnosti protokola.

Na primjer, postoje implementacije Open vSwitch i OpenContrail koje koriste DPDK kao pristup zaobilaženja jezgre. Implementacije DPDK ograničene su na dva načina. Prvo, teško je, a ponekad je i nemoguće razvijati značajke brzo i u korak s inovacijama softvera otvorenog koda temeljenim na jezgri. Drugo, iako se razine performansi i sigurnosti potrebne VM-ovima i aplikacijama mogu isporučiti, potreban je značajan broj x86 CPU jezgri, smanjujući ukupnu učinkovitost infrastrukture podatkovnog centra.

Bez obzira na to, neki operateri centara podataka koji imaju možda nekoliko stotina poslužitelja za upravljanje i koji pokreću jednu aplikaciju, kao što su računarstvo visokih performansi ili klasteri za trgovanje visokim frekvencijama, mogu smatrati praktičnim korištenje takvih paralelnih snopova zaobilaženja jezgre. Isto se odnosi i na namjenske klastere za pohranu.

No može li se začepljenje mrežnog snopa jezgre popraviti bez pribjegavanja paralelnim zaobilaznim stekovima? Da to može. Pravi način za rješavanje gornja dva problema bio bi pronalaženje načina za transparentno ubrzanje performansi mrežnog snopa jezgre, koristeći pametni mrežni hardver i bez ikakvog zaključavanja dobavljača.

SmartNIC-i nastoje riješiti ove probleme bez zaobilaženja jezgre. SmartNIC-ovi su NICS-ovi (mrežne kartice sučelja) koji se mogu programirati, što omogućuje dobavljačima koji nude takve proizvode da inoviraju mrežni hardver poslužitelja brzinom softvera - praktični zahtjev u modernoj infrastrukturi podatkovnih centara definiranoj softverom i omogućenom NFV.

Uđite u SmartNICS

Netronome SmartNIC pružaju osnovne ili tradicionalne NIC značajke i napredne značajke potrebne centrima podataka u oblaku i davateljima usluga telekomunikacija. Te napredne značajke uključuju mogućnost iskrcavanja bogate mrežne funkcionalnosti, poput one koju pružaju virtualni prekidači i virtualni usmjerivači koji se koriste u softverski definiranim mrežnim okruženjima i računalnim poslužiteljima optimiziranim za NFV. Sposobnost prenošenja ovih računalno intenzivnih mrežnih funkcija na SmartNIC donosi višu razinu izvedbe i sigurnosti VM-ovima, povećava broj aplikacija koje se mogu isporučiti po poslužitelju i pruža sveukupno poboljšanje učinkovitosti podatkovnih centara. Značajke SmartNIC mogu se brzo razvijati s mrežnim inovacijama otvorenog koda, poput Open vSwitch, OpenStack, OpenContrail i eBPF (Extended Berkeley Packet Filter) projekta IO Visor.

Prednosti primjene SmartNIC-a nisu ograničene na povećane performanse i bogatiji skup značajki. Tu su i značajne uštede na TCO, jer SmartNIC mogu zamijeniti tradicionalne NIC-ove koji se koriste na poslužiteljima. SmartNIC-i imaju konkurentne cijene tradicionalnim NIC-ovima i pružaju značajne uštede oslobađanjem vrijednih CPU resursa poslužitelja za VM-ove i aplikacije, povećavajući učinkovitost poslužitelja. S obzirom na to da poslužitelji troše čak 60 posto ukupnih troškova infrastrukture centara podataka, sposobnost podrške većem radnom opterećenju po poslužitelju pomoću SmartNIC-a obećava značajne uštede.

Pristalice zaobilaženja jezgre vole tvrditi da se mrežne performanse poslužitelja potrebne u SDN i NFV aplikacijama mogu postići korištenjem x86 procesorskih jezgri visokih performansi, pa su stoga sve što su potrebni tradicionalni NIC-ovi. Ali u praktičnim mjerilima i u stvarnom životu, mehanizmima zaobilaženja jezgre možda će trebati čak 24 CPU jezgre da bi postigli potrebne mrežne performanse. To praktički troši cijeli poslužitelj samo za umrežavanje.

Dobavljači SmartNIC-a potpuno se slažu da su performanse mreže jezgre stvarni problem koji će se samo pogoršavati dok operateri grade centre podataka kako bi udovoljili zahtjevima sve većeg broja mobilnih i IoT uređaja. Ali oni ne vjeruju da zaobilaženje jezgre operacijskog sustava rješava problem. Umjesto toga, intenzivne zadatke mrežne obrade u mrežnom stogu Linux jezgre treba prenijeti na SmartNIC-ove na agnostički način dobavljača, umjesto da se koriste implementacije koje rezultiraju paralelnim, suvišnim mrežnim stogovima.

SmartNIC se suočavaju s tim izazovima, iskrcavajući danas dostupne implementacije mrežnih putova baziranih na jezgri i brzo se razvijajući u široj zajednici otvorenog koda Linuxa. Tehnologije sloga jezgre Linux, kao što su eBPF i Klasifikator prometa, obećavaju omogućiti dobavljačima SmartNIC-a poput Netronomea da se pridržavaju mrežnog sloga Linux kernela i omogućiti operaterima podatkovnih centara da se učinkovito skaliraju.

Zvučna preporuka Linux zajednice uvijek je bila izbjegavanje zaobilaženja jezgre. Kao i sve temeljne i jednostavne ideje, i ova se ideja održala u prošlosti, vrijedi i danas i ostat će istinita u budućnosti.

New Tech Forum pruža mjesto za istraživanje i raspravu o novonastaloj tehnologiji poduzeća u neviđenoj dubini i širini. Izbor je subjektivan, zasnovan na našem odabiru tehnologija za koje vjerujemo da su važne i da najviše zanimaju čitatelje. ne prihvaća marketinške kolaterale za objavljivanje i zadržava pravo uređivanja cjelokupnog sadržaja. Pošaljite sve upite na [email protected]