Programmering

SDN-dilemma: Linux-kjernnettverk vs kjerneomgå

Sujal Das er sjefstrategi og markedsføringsansvarlig i Netronome, en leverandør av høyytelses x86-sambehandlingsløsninger for nettverk, sikkerhet, lastbalansering, virtualisering og SDN.

Hvis vi har lært noe i teknologibransjen de siste 25 årene, ville det være å aldri undervurdere Linux-kjernen. Hvorfor har så mange nettverksselskaper så ivrig etter å omgå Linux-kjernen - eller nærmere bestemt Linux-kjernenettverksstakken? Hva kan være så galt med nettverkspakkeårene i Linux-kjernen som motiverer så mange av oss til å omgå dem?

Det er to hovedårsaker. For det første er kjernens nettverksstabel for langsom - og problemet blir bare verre med adopsjonen av høyere hastighetsnettverk i servere og brytere (10GbE, 25GbE og 40GbE i dag, og stiger til 50GbE og 100GbE i nær fremtid) . For det andre tillater håndtering av nettverk utenfor kjernen å koble til ny teknologi uten behov for å endre Linux-kjernekoden.

Av disse to grunnene, og med den ekstra fordelen at mange kjerneforskyvningsteknologier er åpen kildekode og / eller spesifisert av standardorganer, fortsetter forkjemperne for bypassløsninger å presse datasenteroperatører til å vedta dem.

Kernel bypass-løsninger

Vi har sett mange kjerneløpsløsninger tidligere, spesielt RDMA (Remote Direct Memory Access), TOE (TCP Offload Engine) og OpenOnload. Mer nylig har DPDK (Data Plane Development Kit) blitt brukt i noen applikasjoner for å omgå kjernen, og så er det nye nye initiativer som FD.io (Fast Data Input Output) basert på VPP (Vector Packet Processing). Mer vil trolig dukke opp i fremtiden.

Teknologier som RDMA og TOE skaper en parallell stabel i kjernen og løser det første problemet (nemlig "kjernen er for treg") mens OpenOnload, DPDK og FD.io (basert på VPP) flytter nettverk til Linux-brukerrom for å adressere begge hastighet og teknologi plug-in krav. Når teknologier bygges i Linux-brukerområdet, unngås behovet for endringer i kjernen, noe som eliminerer den ekstra innsatsen som kreves for å overbevise Linux-kjernesamfunnet om nytten av bypass-teknologiene og deres adopsjon via oppstrøms i Linux-kjernen.

Netronome

Kernel bypass utfordringer

Utfordringene knyttet til å ta i bruk parallelle stabler utenfor kjernens nettverksstabel er åpenbare for datasenteroperatører som er utfordret med å skalere infrastrukturen til et veldig stort antall servere. Med parallelle nettverksstabler kommer en tilsynelatende endeløs liste over sikkerhet, håndterbarhet, robusthet, maskinvareleverandørinnlåsing og protokollkompatibilitetsproblemer.

For eksempel er det implementeringer av Open vSwitch og OpenContrail som bruker DPDK som en bypass-tilnærming. DPDK-implementeringene er begrenset på to måter. For det første er det vanskelig og noen ganger umulig å utvikle funksjoner raskt og i lås med kjernebasert programvareinnovasjon med åpen kildekode. For det andre, selv om nivåene av ytelse og sikkerhet som kreves av virtuelle maskiner og applikasjoner, kan leveres, krever det et betydelig antall x86 CPU-kjerner, noe som reduserer den totale effektiviteten til datasenterinfrastrukturen.

Likevel kan noen datasenteroperatører som har noen få hundre servere å administrere og som kjører en enkelt applikasjon, for eksempel High Performance Computing eller High Frequency Trading-klynger, synes det er praktisk å bruke slike parallelle kjernebypassstabler. Det samme gjelder dedikerte lagringsklynger.

Men kan tilstopping av kjernens nettverksstabel løses uten å ty til parallelle bypass-stabler? Ja det kan det. Den riktige måten å løse de to problemene over ville være å finne måter å akselerere ytelsen til kjernens nettverksstabel gjennomsiktig, ved hjelp av smart nettverksmaskinvare, og uten noen leverandørinnlåsing.

SmartNICs prøver å løse disse problemene uten å omgå kjernen. SmartNIC-er er NICS-er (nettverksgrensesnittkort) som er programmerbare, slik at leverandørene som leverer slike produkter kan innovere servernettverksmaskinvare med hastigheten på programvaren - et praktisk krav i moderne programvaredefinert og NFV-aktivert datasenterinfrastruktur.

Gå inn på SmartNICS

Netronome SmartNIC-er tilbyr både grunnleggende eller tradisjonelle NIC-funksjoner og avanserte funksjoner som er behov for datasenter og teletjenesteleverandører. Disse avanserte funksjonene inkluderer muligheten til å laste ned rik nettverksfunksjonalitet, slik som den som tilbys av virtuelle brytere og virtuelle rutere som brukes i programvaredefinerte nettverksmiljøer og NFV-optimaliserte beregningsservere. Evnen til å laste ut disse beregningskrevende nettverksfunksjonene til SmartNIC gir høyere ytelse og sikkerhet til virtuelle maskiner, øker antall applikasjoner som kan leveres per server, og gir et generelt løft i datasenterets effektivitet. SmartNIC-funksjoner kan utvikle seg raskt med open source-nettverksinnovasjoner, for eksempel med Open vSwitch, OpenStack, OpenContrail og IO Visor-prosjektets eBPF (Extended Berkeley Packet Filter).

Fordelene ved å distribuere SmartNIC-er er ikke begrenset til økt ytelse og et rikere funksjonssett. Det er også betydelige TCO-besparelser, ettersom SmartNIC kan erstatte tradisjonelle nettverkskort som brukes i servere. SmartNIC-er er priset konkurransedyktig til tradisjonelle nettverkskort og gir betydelige besparelser ved å frigjøre verdifulle server-CPU-ressurser for virtuelle maskiner og applikasjoner, noe som øker servereffektiviteten. Gitt at servere bruker så mye som 60 prosent av de totale infrastrukturkostnadene for datasenteret, kan muligheten til å støtte større arbeidsbelastning per server ved hjelp av SmartNICs gi betydelige besparelser.

Kernel bypass-talsmenn liker å hevde at ytelsen til servernettverket som trengs i SDN- og NFV-applikasjoner, kan oppnås ved hjelp av x86 CPU-kjerner med høy ytelse, og derfor er tradisjonelle NIC-er alt som trengs. Men i praktiske referanser og i virkeligheten, kan bypass-mekanismer for kjerne trenge så mange som 24 CPU-kjerner for å få den nødvendige nettverksytelsen. Det forbruker praktisk talt hele serveren for nettverk bare.

SmartNIC-leverandører er helt enige om at kjernens nettverksytelse er et reelt problem som bare vil bli verre ettersom operatørene bygger ut datasentre for å møte kravene fra stadig økende antall mobile og IoT-enheter. Men de tror ikke at omgåelse av operativsystemkjernen løser problemet. Snarere må intensive nettverksbehandlingsoppgaver i Linux-kjernenettverksstakken lastes ned til SmartNICs på en leverandøragnostisk måte, i stedet for å bruke implementeringer som resulterer i parallelle, overflødige nettverksstabler.

SmartNIC-er takler disse utfordringene ved å laste ned kjernebaserte implementeringsdataveier for nettverksdata som er tilgjengelige i dag og utvikle seg raskt i det bredere Linux-kildekildesamfunnet. Linux-kernel stack-teknologier som eBPF og Traffic Classifier holder løftet om å la SmartNIC-leverandører som Netronome holde seg til Linux-kernel-nettverksstakken og la datasenteroperatører skalere effektivt.

Den rungende anbefalingen fra Linux-samfunnet har alltid vært å unngå kjernebypass. Som alle grunnleggende og enkle ideer, har denne ideen holdt seg i det siste, gjelder i dag og vil forbli sant i fremtiden.

New Tech Forum er et sted for å utforske og diskutere ny teknologi i enestående dybde og bredde. Valget er subjektivt, basert på vårt valg av teknologiene vi mener er viktige og av størst interesse for leserne. godtar ikke markedsføringssikkerhet for publisering og forbeholder seg retten til å redigere alt bidratt innhold. Send alle henvendelser til [email protected].

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