Terug naar overzicht

Als beheerder van een systeem kennen we het allemaal wel. Het is maandagochtend en een webshop of databaseserver is niet bereikbaar door een verstoring.. Dit had voorkomen kunnen worden! Maar hoe? Daar komt load balancing in het spel.


Wat is load balancing en wanneer heb ik het nodig?
Load balancing zegt het eigenlijk al; het verdelen van load over meerdere uitvoerende systemen, bijvoorbeeld twee of meer servers. Het zorgt er niet alleen voor dat je je capaciteit vergroot, maar het verhoogt ook de beschikbaarheid van je diensten waardoor je in de toekomst vaker een rustige maandagochtend hebt. Daarnaast komt load balancing de schaalbaarheid ten goede doordat je eenvoudig servers toe kan voegen, maar misschien nog wel belangrijker dat je ze gecontroleerd uit service kan nemen om te updaten.

Waar moet ik beginnen?
Wanneer je in servers wil gaan schalen is het van belang dat de configuratie en content van al je servers identiek aan elkaar zijn. Dit zorgt er tenslotte voor dat bezoekers dezelfde website of applicatie te zien krijgen. Vervolgens ga je aan de slag met een hard- of softwarepakket om te kunnen load balancen. Dit zou je zelf kunnen doen, maar je hebt ook de mogelijkheid om dit door Interconnect te laten verzorgen door middel van een dedicated load balancer op basis van F5 Networks. F5 is de marktleider op het gebied van load balancing. Met de managed load balancer van Interconnect is jouw applicatie schaalbaar en klaar voor de toekomst! Wij verzorgen dan de configuratie en het beheer waarna alleen nog de afstemming rest hoe je graag je verkeer wil ontvangen op de backend. We nemen de basisconfiguratie met je door!

Wat heb ik nodig?
Benodigdheden om zelf aan de slag te kunnen:

BLOG Load balancing met F5

Installatie van de webservers

De hypervisor waar we gebruik van maken is gebaseerd op VMware.
Installeer een VM met CentOS en wijs daar portgroup ‘DT-LB-LAN’ aan toe voor LAN connectiviteit met de load balancer. Wijs een IP adres per webserver toe zoals aangegeven in de topologie. Doe dit door middel van het volgende commando:

vi /etc/sysconfig/network-scripts/ifcfg-ens192

Vul de volgende parameters aan (gebruik i in vi om te wijzigen en ESC + :wq om op te slaan):

BOOTPROTO=static
ONBOOT=yes
DHCP=no
IPADDR=10.2.0.11
NETMASK=255.255.255.0
GATEWAY=10.2.0.245

Herstart de network service om de wijzigingen van kracht te laten worden met: service network restart en verifieer de instellingen d.m.v. de volgende commando’s:

ip a show
ip route


Pas de volgende configuratie toe om Apache te installeren en een index.html aan te maken waarmee je later kan herkennen op welke webserver je sessie belandt.

yum -y install httpd
echo "WEB01" > /var/www/html/index.html
service httpd start
systemctl enable httpd
systemctl stop firewalld

Doe dit ook voor de andere twee webservers, of zoals een luie ITer beaamt – clone de machines en wijzig enkel de IP adressen en echo melding in index.html.

Installatie van de F5 en connectiviteit naar de webservers

Voor de inrichting van de F5 houden we de gegevens in de topologie aan, waarbij 213.206.226.227 het externe interface adres is, en 10.2.0.145 het interne interface adres is. Pas waar nodig interface en VLAN adressering aan naar jouw situatie.

De F5 VM waar we gebruik van maken heeft de volgende portgroups gekoppeld:

1. Een portgroup voor het management interface;
2. Een portgroup voor externe connectiviteit (F5 interface 1.1);
3. Een portgroup voor lokale connectiviteit naar de backend (F5 interface 1.2);
4. Een portgroup voor High Availability active/active of active/standby mogelijkheden (F5 interface 1.3). Dit wordt in deze blog buiten beschouwing gelaten.

BLOG Load balancing met F5 interface mapping

Na het deployen van een OVA template wijst de basisinstallatie zichzelf uit.
Nu volgt de connectiviteit naar de backend. We zullen de configuraties toepassen onder de Local Traffic configuratie stanza. We maken drie nodes aan voor de webservers, een pool waarin we de drie nodes koppelen en als laatst een virtual server welke als proxy fungeert tussen bezoekers en webservers. De koppeling met de pool wordt tevens gedaan via de virtual server.

Aanmaak node

Navigeer naar Local Traffic > Nodes en druk op Create. Houd de volgende instellingen aan en herhaal dit voor WEB02 (10.2.0.22) en WEB03 (10.2.0.33).

BLOG Load balancing met F5 aanmaak individuele node

Aanmaak pool

Navigeer naar Local Traffic > Pools en druk op Create. Geef een naam op, wijs een health monitor toe (voor periodieke statuschecks van je backend – hier in een latere blog meer over!), selecteer je load balancing methode en wijs de nodes toe.

BLOG Load balancing met F5 aanmaak pool

Aanmaak virtual server

Navigeer naar Local Traffic > Virtual Servers en druk op Create. Geef een naam op, een destination address, een service port en selecteer de Auto Map functie onder Source Address Translation. Vervolgens selecteer je de pool die we zojuist hebben aangemaakt en druk je op Finished!

BLOG Load balancing met F5 aanmaak virtual server

Tijd om te testen!

Een ideale test om na te gaan of de beschikbaarheid van de drie webservers volstaat is het commando curl vanuit Linux. Hiermee is het mogelijk om HTTP informatie op te vragen van de destination host die je invult.

davet@shell:~$ curl 213.206.226.227
WEB01
davet@shell:~$ curl 213.206.226.227
WEB02
davet@shell:~$ curl 213.206.226.227
WEB01
davet@shell:~$ curl 213.206.226.227
WEB02
davet@shell:~$ curl 213.206.226.227
WEB03
davet@shell:~$ curl 213.206.226.227
WEB02
davet@shell:~$ curl 213.206.226.227
WEB03

Momenteel wordt er geload balanced tussen de drie webservers op basis van round robin en worden willekeurige nodes aangesproken per individuele sessie. Er zijn echter nog tal van mogelijkheden om te load balancen; denk bijvoorbeeld aan Least connections per member of Ratio per member, waar het aantal sessies van belang is per member. Daarnaast zijn er ook nog mogelijkheden op basis van persistence zodat je gedurende je sessie verbonden blijft aan dezelfde member. Dit kan bestaan uit session persistence via cookie, hash, source- of destination IP adres en meer.

Voor nu hebben we een basisinstallatie opgezet en gaan we in de volgende blog in op geavanceerde mogelijkheden zoals self-healing backends via health monitors en content switching met iRules!

Plaats reactie

1000 Resterende tekens