Bekijk Volledige Versie : Extreme load balancing.
Stel er is voor een bijna volledige statische website zo'n 4TB traffic per dag (geen tikfout, 4 terrabyte). Per unieke zou het rond de 10MB zijn.
Logisch gezien kan je dit niet met 1 machine af. Een cluster van zo'n 8 machines zou dit (naar verwachting) wel moeten kunnen.
Maar dan zou er nog 1 zeer belangrijk ding moeten komen, namenlijk de load balancer die het over deze acht machines verdeeld.
Dat is nu de vraag waarop ik een antwoord zoek. Iemand enig idee wat voor soort load balancer dit af zou kunnen afhandelen, en wat voor soort verbinding (fiber waarschijnlijk?) deze het best kan hebben richting een uplink. Deze dient dan *minstens* een continue throuput te kunnen leveren van 1gbit (eventueel minus een paar procent qua netwerk overhead). (liever zelfs nog meer).
In eerste instantie werdt opzich gedacht aan een redelijke server en dan het trunken van een aantal 1000Base-SX kaarten (als load balancer).
Deze zou behalve het verdelen van netwerk verkeer verders niets te hoeven doen.
Maar zijn hier ook oplossingen voor die hier speciaal voor gemaakt zijn?
En ook niet geheel onbelangrijk, zijn er DC's/ISP's die een getrunkte uplink van zo'n 4 of 5gbit leveren (dedicated). En bij voorkeur ook op verschillende lokaties.
De Alteons van Juniper kunnen dit wellicht voor elkaar krijgen, meestal is de 4 a 5x SX uplinks ook niet zo'n probleem voor een dergelijke provider.
Er zit natuurlijk een maar aan, als jij een x aantal fiber lijntjes wilt hebben, zit hier natuurlijk wel een commitment aan vast van een x aantal mbit.
Verder zou ik een aantal Quad Xeon's met 2 MB cache/cpu Ebayen, in plaats van dure Dual Xeons en/of Opterons.
Een beetje Quad Xeon 700 Mhz kan je al op de kop tikken voor rond de 8 a 900 EURO. Heb zelf 4 Quad Xeons 700 MHz, draait als een zonnetje.
Origineel geplaatst door XF-RICK
De Alteons van Juniper kunnen dit wellicht voor elkaar krijgen, meestal is de 4 a 5x SX uplinks ook niet zo'n probleem voor een dergelijke provider.
Klopt, waarschijnlijk kan je bij elke ISP meerdere SX links krijgen, maar ook getrunkt en burtstable naar 100% capaciteit?
// edit: Alteon kom ik overigens enkel tegen icm Nortel (De enige referenties met Juniper is dat Alteon een oud type is van hun).
Er zit natuurlijk een maar aan, als jij een x aantal fiber lijntjes wilt hebben, zit hier natuurlijk wel een commitment aan vast van een x aantal mbit.
Er wordt uitgegaan van een average gebruik van van 4TB/dag (even geen rekenmachine bij de hand om het aantal mbits uit te rekenen), maar in de buurt van de 600mbit tot 1gbit commitment.
Verder zou ik een aantal Quad Xeon's met 2 MB cache/cpu Ebayen, in plaats van dure Dual Xeons en/of Opterons.
De kosten is opzich het probleem niet. Maar mag ik hieruit opmaken dat het meer het aantal cpu's en een flink hoeveelheid cache belangrijker is dan de snelheid van de cpu? Er wordt idd ook weinig berekend, 95% is statische html en downloable files.
Prijsverhouding van een (oude) Quad Xeon tegenover een Dual Xeon ligt beter, soms kan je ook al leuke quads krijgen voor 700 EURO/stuk. Je bent welliswaar wat meer rackspace kwijt. Maar bij een project van zo'n omvang maakt een rack min of meer toch niet zoveel uit.
ISP's zullen ook de nodigde voorbereidingen moeten nemen voor zo'n project van zo'n omvang. Als jij 6 gbit piekmogelijkheid wilt hebben, moet de ISP minimaal 10 Gbit hebben liggen, liever 20 voor redundancy.
Ook de aanschafkosten voor een paar dikke routers tellen mee in de maandelijkse prijs.
Commitment van 500 a 600 Mbit zal voor veel partijen geen probleem zijn, kwestie is het kiezen van de juiste partner. Of als je de kennis hebt kan je ook bij zulke volumes gaan denken aan het opzetten van een eigen netwerk.
Ligt er natuurlijk ook aan om wat voor content het gaat, hoe gevoelig dit is en wat de bereikbaar daarvan moet zijn (SLA's enzovoort).
Alteon is als ik het goed heb enige tijd geleden overgenomen door Nortel.
Een paar tips: Gebruik voor het serveren van statische content geen apache maar een snelle, lichte http server.
Tweede; probeer zoveel mogelijk content te cachen. Dit kan zowel op het OS niveau als in je applicatie, maar ook bijvoorbeeld door losse caches in je cluster op te nemen. O.a. squid is hier bruikbaar voor. Ook onder andere Cisco levert hardware die dit kan.
Origineel geplaatst door svbeek
Alteon is als ik het goed heb enige tijd geleden overgenomen door Nortel.
Wist dat ik iets vergeten was :D
Thanks voor de tip..
De Nortel Alteon Application Switch ziet er op het eerste gezicht idd qua functionaliteit zeer goed uit.
Qua het zelf routen willen we dit liever niet (domweg omdat we zelf daar (te) weinig kennis van hebben).
De meest ideale situatie zou zijn, een opzich simpele router waar 4 glas kabeltjes op binnen komen (getrunked) en per cluster server 1 gig kabel (glas/koper).
De enige functie die dan door die router (cq load balancer) dient te worden gedaan is het verdelen van in verkeer over de verschillende servers. (niet dat we zelf met bgp aan de slag moeten bijvoorbeeld).
Foundry heeft ook load balancer spul, je kan ook F5 even proberen
Is vrij simpel op te lossen op een makkelijke manier, veel providers kunnen makkelijk een gigabit of meer trekken, daarnaast ben je nog geen 1 rack kwijt en de kosten vallen in dit plaatje ook mee.
Wat je nodig hebt is gewoon goede stabiele hardware, mensen die het loadbalancen (clusteren) snappen, en een bedrijf die dat al vaker heeft gedaan die klopt dat zo uit zijn mouw.
Om reclame te voorkomen kan ik je niet vertellen welke bedrijven dit zijn, maar er zijn er genoeg die dit doen.
Dit is met gemak op te lossen met LVS.
Alle webservers moeten hiervoor een Gbit connectie krijgen.
De loadbalancer kan je aan een 100mbit verbinding hangen, das genoeg.
Via DirectRouting loadbalance je al het verkeer over de webservers.
De loadbalancer kan een simpele celeron zijn met 512 aan ram, das genoeg.
Aangezien je het over statische content hebt ga ik er vanuit dat je maar 1 website wil serveren.
Hiervoor raad ik je dan aan elke node (webserver) uit te rusten met degelijke schijven (SCSI/Raptor).
Vervolgens neem je Dual Opterons als webserver met een mooi Tyan board. Deze hebben degelijke 1000mbit NIC's onboard.
De switch waar je dit dan aan hangt kan je met een paar 1000Base-SX'es trunken richting de core-switch.
Webservers
- Dual Opteron 246
- 4GB DDR
- Tyan Thunder K8S Pro
- 4x 74GB Raptor in RAID-5 (kan uiteraard ook met SCSI)
- Chenbro RM11704 1U casing
Loadbalancer
- Celeron 2.66Ghz
- 512Mb Ram
- SuperMicro / Intel board
- 2x 80GB in RAID-1
- Simpele 1U casing
Dit kan met gemak 4TB aan dataverkeer per dag produceren. LVS wordt echt onderschat door de meesten hier.
Via Round-Robins DNS kan je zo zelfs nog gaan loadbalancen over clusters. Zo kan je in TC, RedBus en SBP een cluster neerzetten bij een partij die dit verkeer aan kan. Maar dat lijkt me iets te veel van het goede.
Origineel geplaatst door Wido
Dit is met gemak op te lossen met LVS.
Alle webservers moeten hiervoor een Gbit connectie krijgen.
De loadbalancer kan je aan een 100mbit verbinding hangen, das genoeg.
Hoe kan 100 mbit genoeg zijn als je alleen al 407 mbit moet kunnen duwen om 4T op een dag te doen ?
LVS wordt echt onderschat door de meesten hier.Volledig mee eens. LVS met DR is retesnel.
1 van onze loadbalancers 'switchte' gisteren 250 Mbps en had toen 0.33 load op een PIII 1,13. Verbruikte zelf op zo'n moment ong 10 Mbps.
Als je daar een nieuwe machine opzet moet dat makkelijk kunnen.
Origineel geplaatst door Cliff
Hoe kan 100 mbit genoeg zijn als je alleen al 407 mbit moet kunnen duwen om 4T op een dag te doen ? De webservers doen het uitgaande verkeer, niet de loadbalancer.
Maar just in case kan je de loadbalancer best aan 1000Mbit hangen.
Het is echter niet nodig.
@ Pier, wij hebben een Celeron 2.6Ghz als loadbalancer staan in een van de clusters. Load komt nooit boven de 0.10 van dat ding.
Origineel geplaatst door Wido
Dit is met gemak op te lossen met LVS.
Alle webservers moeten hiervoor een Gbit connectie krijgen.
De loadbalancer kan je aan een 100mbit verbinding hangen, das genoeg.
Aan LVS dachten we in eerste instantie ook aangezien we hier al (kleine) ervaring mee hebben.
Qua kosten stukken beter als een application switch van bv Foundry of Nortel, maar ik heb meer vertrouwen in specifieke hardware ervoor als een LVS server. (Een Alteon is in mijn beleving beter redundant te maken als een linux server).
Aangezien je het over statische content hebt ga ik er vanuit dat je maar 1 website wil serveren.
Hiervoor raad ik je dan aan elke node (webserver) uit te rusten met degelijke schijven (SCSI/Raptor).
Klopt, totale grote is max 50mb (geschat).
Alles cachen in geheugen is dus best mogenlijk. Naar disk hoeven dan alleen logs te worden geschreven.
Via Round-Robins DNS kan je zo zelfs nog gaan loadbalancen over clusters. Zo kan je in TC, RedBus en SBP een cluster neerzetten bij een partij die dit verkeer aan kan. Maar dat lijkt me iets te veel van het goede.
Kan je gedachten lezen? :) Al was het idee om enkel TC en RedBus te gebruiken met een onderlinge ring. Maar hierover waren we inmiddels ook al in bespreking met een bepaalde partij.
Voorlopig genoeg ideeen om even mee te gaan spelen qua wat voor hardware voor load balancers (web servers is al bijna zeker, 5 tot 6 supermicro of tyan opterons met flink wat geheugen en raptors in raid5 / raid0+1 ) per lokatie.
Ook BerArt even bedankt voor de tip van de Splinter load balancer!
De anderen die PB's stuurde, ik vroeg (nog) niet om aanbiedingen.
Ik ga toch nog even zeggen hoe tevreden ik ben over LVS.
Draai nu al 1.5 jaar LVS de loadbalancer is er nog nooit mee gestopt, doet altijd netjes zijn werk. Met heartbeat en connection-table syncing heb je een goede failover.
Origineel geplaatst door Wido
Ik ga toch nog even zeggen hoe tevreden ik ben over LVS.
Bij LVS, zoals wij het nu zelf hebben draaien, loopt al het verkeer via de load balancer naar de webservers. Maar ik begrijp nu uit jouw verhaal dat dit ook anders kan? (gezien de load balancer best een 100mbit connectie mag hebben).
Klopt. Jij gebruikt denk ik de NAT methode? Als je de DirectRouting methode neemt is dat niet nodig.
euro-access
14/10/05, 16:11
Uit ervaring is toch gebleken dat software matige loadbalancers op z'n bek kunnen gaan. Er zijn niet voor niets hardwarematige loadbalancers op de markt. (tis net zoals een linux router of een echte router)
op den duur kom je je zelf tegen en denk je had ik maar.
Wij hebben meerdere Alteon loadbalancers coper en volledig glas.
die dingen zijn zo mega snel en goed. je kunt er bijna alles maar.
Ervaring en kennis zoals DennisP aangaf is ook erg belangrijk. iedereen kan een loadbalancing cluser opzetten maar het moet ook nog goed draaien en onderhouden worden.
Wij kunnen je wel het een en ander nader uitleggen geen enkel probleem.
Paul
info@euroaccess.nl
Origineel geplaatst door Wido
Loadbalancer
- Celeron 2.66Ghz
- 512Mb Ram
- SuperMicro / Intel board
- 2x 80GB in RAID-1
- Simpele 1U casing
Het volgende is een tip;
Eerlijk gezegd vind ik dit een beetje te simpel.
Uiteindelijk is je load balancer toch een behoorlijk cruciaal onderdeel van het complete systeem. Het is min of meer een must dat deze blijft functioneren. Valt deze uit, is alles onbereikbaar.
Ik zou hier dus ook weer niet TE licht over denken.
Origineel geplaatst door Croab
Het volgende is een tip;
Eerlijk gezegd vind ik dit een beetje te simpel.
Uiteindelijk is je load balancer toch een behoorlijk cruciaal onderdeel van het complete systeem. Het is min of meer een must dat deze blijft functioneren. Valt deze uit, is alles onbereikbaar.
Ik zou hier dus ook weer niet TE licht over denken. Die voer je dan uiteraard redundant uit.
Maar extra CPU power betekend niet extra stabiel.
Gewoon een SuperMicro of Intel socket 478 moederbord met een celeron.
Met heartbeat is dit vervolgens hartstikke redundant te maken.
Origineel geplaatst door Wido
Die voer je dan uiteraard redundant uit.
Maar extra CPU power betekend niet extra stabiel.
Gewoon een SuperMicro of Intel socket 478 moederbord met een celeron.
Met heartbeat is dit vervolgens hartstikke redundant te maken.
mee eens.
Het kwam zo simpel over.
1 simpel servertje, rest van de 'grote' servers handelt het verkeer af, done.
Er moet goed over gedacht worden. Ik denk niet dat deze website zomaar even uit de lucht mag zijn door een onderschatting :)
Een simpele opzet:
Meerdere failover loadbalancers (radware of bijvoorbeeld een aantal F5's
Hierover round robin dns en je moet dat verkeer wel kunnen trekken.
webserver \
webserver - loadbalancer - round robin dns
webserver /
webserver \
webserver - loadbalancer - round robin dns
webserver /
webserver \
webserver - loadbalancer - round robin dns
webserver /
Simpele opzet waar je ongeveer wel een aantal TB's verkeer mee kunt verzetten.
Het is niet moeilijk (en hoeft ook niet eens heel duur te zijn)