Dilemma SDN: rete del kernel Linux vs bypass del kernel

Sujal Das è chief strategy and marketing officer di Netronome, un fornitore di soluzioni di co-elaborazione x86 ad alte prestazioni per networking, sicurezza, bilanciamento del carico, virtualizzazione e SDN.

Se abbiamo imparato qualcosa nel settore della tecnologia negli ultimi 25 anni, sarebbe quello di non sottovalutare mai il kernel Linux. Perché, allora, così tante società di networking sono state così ansiose di bypassare il kernel Linux o, più specificamente, lo stack di rete del kernel Linux? Cosa potrebbe esserci di così sbagliato nelle arterie dei pacchetti di rete nel kernel Linux che motiva così tanti di noi a bypassarle?

Ci sono due ragioni principali. In primo luogo, lo stack di rete del kernel è troppo lento e il problema sta peggiorando solo con l'adozione di reti a velocità più elevate in server e switch (10GbE, 25GbE e 40GbE oggi e che saliranno a 50GbE e 100GbE nel prossimo futuro) . In secondo luogo, la gestione della rete al di fuori del kernel consente di collegare nuove tecnologie senza la necessità di modificare il codice del kernel Linux di base.

Per questi due motivi, e con l'ulteriore vantaggio che molte tecnologie di bypass del kernel sono open source e / o specificate da organismi di normalizzazione, i sostenitori delle soluzioni di bypass continuano a spingere gli operatori di data center ad adottarle.

Soluzioni di bypass del kernel

In passato abbiamo visto molte soluzioni di bypass del kernel, in particolare RDMA (Remote Direct Memory Access), TOE (TCP Offload Engine) e OpenOnload. Più recentemente, DPDK (Data Plane Development Kit) è stato utilizzato in alcune applicazioni per bypassare il kernel, e poi ci sono nuove iniziative emergenti come FD.io (Fast Data Input Output) basato su VPP (Vector Packet Processing). Probabilmente ne emergeranno altri in futuro.

Tecnologie come RDMA e TOE creano uno stack parallelo nel kernel e risolvono il primo problema (vale a dire, il "kernel è troppo lento") mentre OpenOnload, DPDK e FD.io (basato su VPP) spostano la rete nello spazio utente Linux per affrontare entrambi requisiti di velocità e plug-in tecnologici. Quando le tecnologie sono costruite nello spazio utente Linux, viene evitata la necessità di modifiche al kernel, eliminando lo sforzo aggiuntivo richiesto per convincere la comunità del kernel Linux circa l'utilità delle tecnologie di bypass e la loro adozione tramite upstream nel kernel Linux.

Netronome

Sfide di bypass del kernel

Le sfide legate all'adozione di stack paralleli al di fuori dello stack di rete del kernel sono ovvie per gli operatori di data center che devono scalare la propria infrastruttura a un numero molto elevato di server. Con gli stack di rete parallela viene fornito un elenco apparentemente infinito di problemi di sicurezza, gestibilità, robustezza, vincoli del fornitore di hardware e compatibilità del protocollo.

Ad esempio, esistono implementazioni di Open vSwitch e OpenContrail che utilizzano DPDK come approccio di bypass del kernel. Le implementazioni DPDK sono vincolate in due modi. Innanzitutto, è difficile e talvolta impossibile far evolvere le funzionalità rapidamente e di pari passo con le innovazioni software open source basate sul kernel. In secondo luogo, sebbene i livelli di prestazioni e sicurezza richiesti dalle VM e dalle applicazioni possano essere forniti, richiede un numero significativo di core CPU x86, riducendo l'efficienza complessiva dell'infrastruttura del data center.

Tuttavia, alcuni operatori di data center che hanno forse qualche centinaio di server da gestire e che eseguono una singola applicazione, come i cluster High Performance Computing o High Frequency Trading, potrebbero trovare pratico utilizzare tali stack di bypass del kernel paralleli. Lo stesso vale per i cluster di archiviazione dedicati.

Ma è possibile correggere l'intasamento dello stack di rete del kernel senza ricorrere a stack di bypass paralleli? Sì, può. Il modo giusto per risolvere i due problemi di cui sopra sarebbe trovare modi per accelerare le prestazioni dello stack di rete del kernel in modo trasparente, utilizzando hardware di rete intelligente e senza alcun vincolo del fornitore.

Gli SmartNIC cercano di risolvere questi problemi senza bypassare il kernel. Gli SmartNIC sono NICS (schede di interfaccia di rete) programmabili, che consentono ai fornitori che forniscono tali prodotti di innovare l'hardware di rete del server alla velocità del software, un requisito pratico nella moderna infrastruttura di data center definita da software e abilitata per NFV.

Entra in SmartNICS

Gli SmartNIC Netronome forniscono funzionalità NIC di base o tradizionali e funzionalità avanzate necessarie ai data center cloud e ai fornitori di servizi di telecomunicazioni. Queste funzionalità avanzate includono la capacità di scaricare ricche funzionalità di rete, come quella fornita da switch virtuali e router virtuali utilizzati in ambienti di rete definiti dal software e server di elaborazione ottimizzati per NFV. La capacità di scaricare queste funzioni di rete ad alta intensità di calcolo su SmartNIC porta livelli più elevati di prestazioni e sicurezza alle VM, aumenta il numero di applicazioni che possono essere distribuite per server e fornisce un aumento generale dell'efficienza del data center. Le funzionalità di SmartNIC possono evolversi rapidamente con le innovazioni di rete open source, come Open vSwitch, OpenStack, OpenContrail e eBPF (Extended Berkeley Packet Filter) del progetto IO Visor.

I vantaggi della distribuzione di SmartNIC non sono limitati a prestazioni migliorate e un set di funzionalità più ricco. Ci sono anche notevoli risparmi in termini di TCO, poiché gli SmartNIC possono sostituire i tradizionali NIC utilizzati nei server. Gli SmartNIC hanno un prezzo competitivo rispetto ai tradizionali NIC e offrono risparmi significativi liberando preziose risorse CPU del server per VM e applicazioni, aumentando l'efficienza del server. Dato che i server consumano fino al 60% dei costi totali dell'infrastruttura del data center, la capacità di supportare maggiori carichi di lavoro per server utilizzando SmartNIC promette risparmi significativi.

I sostenitori del bypass del kernel amano sostenere che le prestazioni di rete del server necessarie nelle applicazioni SDN e NFV possono essere ottenute utilizzando core CPU x86 ad alte prestazioni, e quindi le NIC tradizionali sono tutto ciò che è necessario. Ma nei benchmark pratici e nella vita reale, i meccanismi di bypass del kernel potrebbero richiedere fino a 24 core della CPU per ottenere le prestazioni di rete richieste. Questo sta praticamente consumando l'intero server per il solo networking.

I fornitori di SmartNIC sono pienamente d'accordo sul fatto che le prestazioni della rete del kernel sono un problema reale che peggiorerà solo quando gli operatori costruiranno data center per soddisfare le esigenze di un numero sempre crescente di dispositivi mobili e IoT. Ma non credono che bypassare il kernel del sistema operativo risolva il problema. Piuttosto, le attività di elaborazione di rete intensiva nello stack di rete del kernel Linux devono essere scaricate su SmartNIC in modo indipendente dal fornitore, invece di utilizzare implementazioni che risultano in stack di rete paralleli e ridondanti.

Gli SmartNIC affrontano queste sfide, scaricando le implementazioni del percorso dati di rete basate sul kernel disponibili oggi e evolvendo rapidamente nella più ampia comunità open source Linux. Le tecnologie dello stack del kernel Linux come eBPF e Traffic Classifier mantengono la promessa di consentire ai fornitori di SmartNIC come Netronome di attenersi allo stack di rete del kernel Linux e consentire agli operatori di data center di scalare in modo efficiente.

La clamorosa raccomandazione della comunità Linux è sempre stata quella di evitare il bypass del kernel. Come tutte le idee semplici e fondamentali, questa idea ha avuto influenza in passato, è vera oggi e rimarrà vera in futuro.

Il New Tech Forum offre un luogo per esplorare e discutere la tecnologia aziendale emergente in profondità e ampiezza senza precedenti. La selezione è soggettiva, in base alla nostra scelta delle tecnologie che riteniamo importanti e di maggiore interesse per i lettori. non accetta materiale di marketing per la pubblicazione e si riserva il diritto di modificare tutti i contenuti forniti. Invia tutte le richieste a [email protected]