paint-brush
Cloudgiganten spenderen een fortuin aan load balancers: dit onderzoek zou dat kunnen veranderendoor@loadbalancer
Nieuwe geschiedenis

Cloudgiganten spenderen een fortuin aan load balancers: dit onderzoek zou dat kunnen veranderen

door Load Balancer5m2025/02/14
Read on Terminal Reader

Te lang; Lezen

Onderzoekers hebben de Layer-7-load balancing geoptimaliseerd met behulp van programmeerbare SmartNIC's om de efficiëntie, kosten en het energieverbruik in clouddatacenters te verbeteren.
featured image - Cloudgiganten spenderen een fortuin aan load balancers: dit onderzoek zou dat kunnen veranderen
Load Balancer HackerNoon profile picture
0-item

Auteurs:

(1) Tianyi Cui, Universiteit van Washington ([email protected]);

(2) Chenxingyu Zhao, Universiteit van Washington ([email protected]);

(3) Wei Zhang, Microsoft ([email protected]);

(4) Kaiyuan Zhang, Universiteit van Washington ([email protected]).

Opmerking van de redacteur: Dit is deel 1 van 6 van een studie waarin pogingen worden beschreven om de load balancing van laag 7 te optimaliseren. Lees de rest hieronder.

Tabel met links

Abstract

Load balancers worden alomtegenwoordig gebruikt in de huidige clouds om netwerkverzoeken schaalbaar te verdelen over datacenterservers. Gezien het uitgebreide gebruik van load balancers en de bijbehorende operationele kosten, hebben verschillende inspanningen zich gericht op het verbeteren van hun efficiëntie door Layer-4 load-balancing logica te implementeren in de kernel of door hardwareversnelling te gebruiken. Dit werk onderzoekt of de complexere en verbindingsgerichte Layer-7 load-balancing-capaciteit ook kan profiteren van hardwareversnelling. In het bijzonder richten we ons op het offloaden van load-balancing-capaciteit op programmeerbare SmartNIC's. We benutten de kosten- en energie-efficiëntie van SmartNIC's volledig met behulp van drie belangrijke ideeën. Ten eerste betogen we dat een volledige en complexe TCP/IP-stack niet vereist is voor Layer-7 load balancers en stellen in plaats daarvan een lichtgewicht forwarding agent voor op de SmartNIC. Ten tweede ontwikkelen we verbindingsbeheerdatastructuren met een hoge mate van gelijktijdigheid met minimale synchronisatie wanneer uitgevoerd op multi-core SmartNIC's. Tot slot beschrijven we hoe de load-balancing logica kan worden versneld met behulp van aangepaste pakketverwerkingsaccelerators op SmartNIC's. We maken een prototype van Laconic op twee typen SmartNIC-hardware, waarmee we een doorvoersnelheid van meer dan 150 Gbps behalen met alle cores op BlueField-2, terwijl één SmartNIC-core een 8,7x hogere doorvoersnelheid en vergelijkbare latentie behaalt als Nginx op één x86-core.

1 Inleiding

Load balancers zijn een fundamenteel bouwblok voor datacenters, omdat ze de servicebelasting over verzamelingen applicatieservers verdelen [38, 45, 46]. Load balancers werden oorspronkelijk gebouwd als gespecialiseerde hardwareapparaten, maar worden nu meestal geïmplementeerd als software die draait op commodity-servers of VM's. Dit implementatiemodel biedt een grotere mate van aanpasbaarheid en aanpassingsvermogen dan de oudere hardwaregebaseerde ontwerpen, maar het kan ook resulteren in hoge kosten voor cloudproviders en applicatieservices, gezien de aankoopkosten en het energieverbruik van algemene servers [8]. Applicatieservices doen vaak grote moeite om hun gebruik van load balancers te consolideren en te verminderen om de gewenste kostenbesparingen te behalen [2, 4, 5].


Gezien het uitgebreide gebruik en de kosten van load balancers, hebben verschillende inspanningen zich gericht op het verbeteren van hun efficiëntie, met name Layer-4 (L4) load balancers, door de load balancing logica in een lagere, mogelijk hardware-versnelde, laag in te bedden. Katran [16] wordt versneld met behulp van eBPF-code in de Linux-kernel, waardoor pakketten binnen de kernel worden onderschept en verwerkt en het aantal overgangen naar load balancing code op gebruikersniveau wordt geminimaliseerd. ClickNP [32] pakt enkele aspecten van de L4 load balancing logica (met name NAT-achtige mogelijkheden) aan op een FPGA-compatibele SmartNIC en benut de parallelle verwerkingsmogelijkheden van FPGA-apparaten. SilkRoad [38] gebruikt een combinatie van een programmeerbare switch en een eindhost om de status op te slaan die is gekoppeld aan L4 load balancers en de dataplane-transformaties uit te voeren die verband houden met de load balancing-bewerking binnen een switch-pijplijn.


Hoewel deze inspanningen aanzienlijke winst hebben opgeleverd bij het optimaliseren van L4-load balancing dat verkeer op de netwerklaag balanceert, vertrouwen datacenterservices vaak op load balancing-mogelijkheden op applicatielaag die alleen in Layer-7 (L7) load balancers te vinden zijn. In het bijzonder willen services stromen routeren op basis van de kenmerken van de clientaanvraag, sessieaffiniteit voor clientaanvragen behouden, toegangscontrole bieden, enzovoort [7]. Maar deze functies maken het moeilijker voor L7-load balancers om de hardwareversnellingstechnieken te gebruiken die worden gebruikt voor L4-load balancers. Een fundamentele uitdaging is dat de L7-load balancing-bewerking is gebaseerd op informatie die is ingebed in verbindingsgerichte transportprotocollen, waardoor een full-stack netwerkverwerkingsagent op de load balancer lijkt te vereisen om TCP/HTTP-verbindingen te verwerken. Bijgevolg zijn de huidige L7-load balancers generieke softwareoplossingen die hoge verwerkingskosten met zich meebrengen op standaardservers.


In dit werk onderzoeken we of we de efficiëntie van L7-loadbalancers kunnen verbeteren met behulp van programmeerbare netwerkhardware. We richten ons op SmartNIC's die algemene computerkernen bieden, aangevuld met pakketverwerkingshardware. SmartNIC's zijn met name aantrekkelijke doelen omdat hun computerkernen willekeurige protocollogica kunnen hosten, terwijl hun pakketverwerkingsaccelerators efficiënt dataplane-transformaties kunnen uitvoeren. Een SmartNIC combineert dus de mogelijkheden van traditionele hostcomputing met de opkomende mogelijkheden van programmeerbare switches en is een geschikt doel voor L7-loadbalancers. Ons werk wordt ook deels gemotiveerd door de toenemende inzet van SmartNIC's binnen datacenters als een kosteneffectief en energiezuinig computersubstraat voor netwerktaken.


Er moeten verschillende uitdagingen worden aangepakt bij het offloaden van loadbalancing-functionaliteit naar SmartNIC's. Ten eerste zijn SmartNIC-cores slap, uitgerust met beperkt geheugen en inefficiënt bij het uitvoeren van algemene berekeningen. Voor zover mogelijk moeten we lichtgewicht netwerkstacks gebruiken in plaats van generieke, volledig functionele stacks die aanwezig zijn in OS-kernels. Ten tweede veronderstelt efficiënte multi-core-verwerking op de SmartNIC's lichtgewicht synchronisatie voor toegang tot gelijktijdige datastructuren, en dit is met name relevant als we de netwerkverwerkingslogica afslanken. Ten derde is het effectieve gebruik van accelerators voor pakkettransformaties noodzakelijk om de computercapaciteit van SmartNIC's te verbeteren.


We ontwerpen en implementeren Laconic , een SmartNIC-offloaded load balancer die de hierboven genoemde uitdagingen aanpakt. Een belangrijk onderdeel van ons systeem is een lichtgewicht netwerkstack die een co-design vertegenwoordigt van de applicatielaag load-balancing logica met de transportlaag taken. Deze lichtgewicht netwerkstack voert complexe pakketverwerking alleen uit op een subset van de pakketten die via de load balancer worden verzonden. Voor de rest van de pakketten voert de netwerkstack eenvoudige herschrijvingen van pakketten uit en vertrouwt op de client en de server om end-to-end betrouwbaarheid en congestiecontrole te bieden. Voor SmartNIC's met pakketverwerkingsversnellers, maakt dit ontwerp het mogelijk dat de meeste pakketten worden verwerkt met behulp van hardwaregebaseerde flow-processing engines, wat aanzienlijke efficiëntiewinsten oplevert. We ontwikkelen ook verbindingsbeheerdatastructuren die zeer gelijktijdig zijn en dure wederzijdse uitsluitingsbewerkingen minimaliseren. We merken op dat sommige van onze ontwerpbijdragen ook van toepassing zijn op een generiek servergebaseerd ontwerp, maar ze hebben een multiplicatief effect op SmartNIC's door een snel pad uit te rekenen dat kan worden uitgevoerd op de hardwarepakketengines.


We hebben Laconic gebouwd en aangepast aan twee verschillende typen SmartNIC's: Marvell LiquidIO3 en Nvidia BlueField-2. Laconic biedt zowel Layer-4- als Layer-7-functionaliteit en implementeert veelgebruikte Layer-7-interpositielogica voor het balanceren van verbindingen met backendservices. Voor grote berichten kan Laconic op BlueField-2 met één enkele ARM-core tot 8,7x hogere doorvoer bereiken dan veelgebruikte Nginx op een krachtigere x86-core. Voor kleine berichten kan Laconic op BlueField-2 een hogere doorvoer bereiken met vergelijkbare of zelfs lagere latentie vergeleken met Nginx. Op LiquidIO3 is de doorvoer van Laconic 4,5x hoger vergeleken met x86 Nginx. We demonstreren ook de Laconic-prestaties met echte werklasten en presenteren gedetailleerde microbenchmarks over de voordelen van belangrijke ideeën.


Figuur 1: Algemene SmartNIC-architecturen


Dit artikel is beschikbaar op arxiv onder de CC BY-NC-ND 4.0 DEED-licentie.


L O A D I N G
. . . comments & more!

About Author

Load Balancer HackerNoon profile picture
Load Balancer@loadbalancer
Load Balancer's careful conducting ensures no single point of failure, scalability and availability in harmony.

LABELS

DIT ARTIKEL WERD GEPRESENTEERD IN...