Programmering

SDN-dilemma: Linux-kernenetværk versus kerneomgåelse

Sujal Das er chefstrategi og marketingofficer hos Netronome, en udbyder af højtydende x86-co-behandlingsløsninger til netværk, sikkerhed, belastningsbalancering, virtualisering og SDN.

Hvis vi har lært noget i teknologibranchen i de sidste 25 år, ville det være at aldrig undervurdere Linux-kernen. Hvorfor har så mange netværksfirmaer været så ivrige efter at omgå Linux-kernen - eller mere specifikt Linux-kernenetværksstakken? Hvad kan der være så galt med netværkspakkearterierne i Linux-kernen, der motiverer så mange af os til at omgå dem?

Der er to hovedårsager. For det første er kernenetværksstakken for langsom - og problemet bliver kun værre med vedtagelsen af ​​højere hastighedsnetværk i servere og switche (10GbE, 25GbE og 40GbE i dag og stiger til 50GbE og 100GbE i den nærmeste fremtid) . For det andet giver håndtering af netværk uden for kernen mulighed for at tilslutte ny teknologi uden behov for at ændre Linux-kernekode.

Af disse to grunde og med den yderligere fordel, at mange kernel bypass-teknologier er open source og / eller specificeret af standardorganer, fortsætter tilhængerne af bypass-løsninger med at skubbe datacenteroperatører til at vedtage dem.

Kerneløsning

Vi har set mange kernel bypass-løsninger tidligere, især RDMA (Remote Direct Memory Access), TOE (TCP Offload Engine) og OpenOnload. For nylig er DPDK (Data Plane Development Kit) blevet brugt i nogle applikationer til at omgå kernen, og så er der nye nye initiativer såsom FD.io (Fast Data Input Output) baseret på VPP (Vector Packet Processing). Mere vil sandsynligvis dukke op i fremtiden.

Teknologier som RDMA og TOE skaber en parallel stak i kernen og løser det første problem (nemlig "kernen er for langsom"), mens OpenOnload, DPDK og FD.io (baseret på VPP) flytter netværk til Linux-brugerrum for at adressere begge krav til hastighed og teknologi-plug-in. Når teknologier bygges i Linux-brugerrummet, undgås behovet for ændringer i kernen, hvilket eliminerer den ekstra indsats, der kræves for at overbevise Linux-kernesamfundet om nytten af ​​bypass-teknologierne og deres vedtagelse via upstreaming i Linux-kernen.

Netronome

Kerneomgå udfordringer

Udfordringerne i forbindelse med vedtagelse af parallelle stakke uden for kernenetværksstakken er åbenlyse for datacenteroperatører, der er udfordret med at skalere deres infrastruktur til et meget stort antal servere. Med parallelle netværksstakke kommer en tilsyneladende uendelig liste over sikkerhed, håndterbarhed, robusthed, hardware-leverandør-lock-in og protokolkompatibilitetsproblemer.

For eksempel er der implementeringer af Open vSwitch og OpenContrail, der bruger DPDK som en kernel bypass-tilgang. DPDK-implementeringerne er begrænset på to måder. For det første er det vanskeligt og undertiden umuligt at udvikle funktioner hurtigt og i lås med kernelbaserede open source-softwareinnovationer. For det andet, selvom de niveauer af ydelse og sikkerhed, der kræves af virtuelle computere og applikationer, kan leveres, kræver det et betydeligt antal x86 CPU-kerner, hvilket reducerer den samlede effektivitet af datacenterinfrastrukturen.

Ikke desto mindre kan nogle datacenteroperatører, der måske har et par hundrede servere at administrere, og som kører en enkelt applikation, såsom High Performance Computing eller High Frequency Trading-klynger, finde det praktisk at bruge sådanne parallelle kernel-bypass-stakke. Det samme gælder dedikerede opbevaringsklynger.

Men kan tilstopning af kernenetværksstakken rettes uden at ty til parallelle bypass-stakke? Ja den kan. Den rigtige måde at løse de to ovenstående problemer på ville være at finde måder til at fremskynde ydeevnen for kernenetværksstakken transparent ved hjælp af smart netværkshardware og uden nogen leverandørlås.

SmartNIC'er forsøger at løse disse problemer uden at omgå kernen. SmartNIC'er er NICS'er (netværksinterfacekort), der er programmerbare, hvilket gør det muligt for leverandørerne, der leverer sådanne produkter, at innovere servernetværkshardware med softwarehastighed - et praktisk krav i moderne softwaredefineret og NFV-aktiveret datacenterinfrastruktur.

Indtast SmartNICS

Netronome SmartNICs leverer både grundlæggende eller traditionelle NIC-funktioner og avancerede funktioner, der er nødvendige af cloud-datacenter og teletjenesteudbydere. Disse avancerede funktioner inkluderer muligheden for at downloade rig netværksfunktionalitet, såsom den, der leveres af virtuelle switche og virtuelle routere, der bruges i softwaredefinerede netværksmiljøer og NFV-optimerede computerservere. Evnen til at aflaste disse computerintensive netværksfunktioner til SmartNIC bringer højere niveauer af ydeevne og sikkerhed til virtuelle computere, øger antallet af applikationer, der kan leveres pr. Server og giver et samlet løft i datacentrets effektivitet. SmartNIC-funktioner kan udvikle sig hurtigt med open source-netværksinnovationer, f.eks. Med Open vSwitch, OpenStack, OpenContrail og IO Visor-projektets eBPF (Extended Berkeley Packet Filter).

Fordelene ved at implementere SmartNIC'er er ikke begrænset til øget ydeevne og et rigere funktionssæt. Der er også betydelige TCO-besparelser, da SmartNIC'er kan erstatte traditionelle NIC'er, der bruges i servere. SmartNIC'er prissættes konkurrencedygtigt til traditionelle NIC'er og giver betydelige besparelser ved at frigøre værdifulde server-CPU-ressourcer til virtuelle computere og applikationer, hvilket øger servereffektiviteten. I betragtning af at servere bruger så meget som 60 procent af de samlede datacenterinfrastrukturomkostninger, lover evnen til at understøtte større arbejdsbelastninger pr. Server ved hjælp af SmartNICs betydelige besparelser.

Kernel bypass-tilhængere kan godt lide at hævde, at serverens netværksydelse, der er nødvendig i SDN- og NFV-applikationer, kan opnås ved hjælp af højtydende x86 CPU-kerner, og derfor er traditionelle NIC'er alt, hvad der er nødvendigt. Men i praktiske benchmarks og i det virkelige liv kan kernel bypass-mekanismer muligvis have brug for så mange som 24 CPU-kerner for at få den krævede netværksydelse. Det forbruger praktisk talt hele serveren til netværk alene.

SmartNIC-leverandører er helt enige om, at kernenetværkets ydeevne er et reelt problem, der kun vil blive værre, da operatører bygger ud datacentre for at imødekomme kravene fra et stadigt stigende antal mobile og IoT-enheder. Men de tror ikke på, at omgåelse af operativsystemets kerne løser problemet. Snarere skal intensive netværksbehandlingsopgaver i Linux-kernenetværksstakken downloades til SmartNIC'er på en leverandøragnostisk måde i stedet for at bruge implementeringer, der resulterer i parallelle, redundante netværksstakke.

SmartNIC'er tackler disse udfordringer ved at downloade kerne-baserede netværksdatastiimplementeringer, der er tilgængelige i dag, og udvikler sig hurtigt i det bredere Linux open source-samfund. Linux-kernestaksteknologier som eBPF og Traffic Classifier holder løftet om at tillade SmartNIC-leverandører som Netronome at holde sig til Linux-kernenetværksstakken og give datacenteroperatører mulighed for at skalere effektivt.

Den rungende anbefaling fra Linux-samfundet har altid været at undgå kernel bypass. Ligesom alle grundlæggende og enkle ideer har denne idé haft sving i fortiden, gælder i dag og vil forblive sand i fremtiden.

New Tech Forum giver et sted at udforske og diskutere nye virksomhedsteknologier i hidtil uset dybde og bredde. Valget er subjektivt baseret på vores valg af de teknologier, som vi mener er vigtige og af største interesse for læserne. accepterer ikke markedsføringssikkerhed til offentliggørelse og forbeholder sig retten til at redigere alt bidraget indhold. Send alle forespørgsler til [email protected].

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