PDA

Bekijk Volledige Versie : Cluster voor community websites bouwen.



jo0st
23/01/06, 18:03
Hoi,

Sinds een jaar draai ik enkele community websites, nu begint het een beetje de grootte aan te nemen dat het niet meer helemaal goed draait op de huidige configuratie (webserver + database server).

Database: dual opteron, 4 gig
Web: dual xeon 2 gig

De coding zal uiteraard ook geheel opnieuw worden gedaan want dat is gewoon niet echt optimaal op het moment. Het is dan ook de bedoeling dat we geruime tijd vooruit kunnen. We willen een loadbalancing setup gaan maken, 2/3 front-end server, en 1/2 loadbalancers.

Ik vroeg mij af wat voor configuratie jullie zouden aanraden voor de loadbalancers, en welke configuratie voor de webservers. Want zelf kom ik er niet helemaal uit.

Ryan Kalkhoven
23/01/06, 18:08
Dat is geheel afhankelijk van je budget. Je kan zeer goede hardware oplossingen kiezen, maar dan moet je ook een goed budget hebben.

Met software zoals bijv. LVS onder linux kun je ook een heel eind komen. Dit kan een stuk goedkoper zijn.

Echter naast geld moet je er ook naar kijken waar je zelf het meeste verstand van hebt als je het zelf wil onderhouden. Want zodra je voor dit soort oplossingen gaat kiezen wil je naast dat je de grote vraag kan beantwoorden ook zorgen dat het permanent online is.

jo0st
23/01/06, 18:12
In principe is er wel budget, ik weet alleen niet wat er precies nodig is.
Om maar een voorbeeld te noemen, er is vast geen dual opteron nodig met 4 gig om als loadbalancer te serveren. En ik ben benieuwd wat andere dan voor specs zouden aanraden.

svbeek
23/01/06, 18:16
Wat wil je precies bereiken met de cluster oplossing? Een hogere beschikbaarheid, het verdelen van load, of beiden?

Draai je een php/mysql applicatie?
Dan zou ik eens kijken naar mysql replicatie. Je zult dan wel gescheiden read en write queries moeten gaan gebruiken in je applicatie. Maar dat
zou niet zo'n probleem moeten zijn.

Als load balancer heb je twee keuzes: of je gaat voor een server met load balancing software, zoals linux virtual server, of je gaat voor een hardware oplossing. Dit kan bijv. foundry serveriron, alteon of extreme networks zijn (die laatste hebben we zelf). De eerste oplossing is goedkoper, de tweede wat bedrijfszekerder als je mij vraagt. Ook kun je ervoor kiezen deze loadbalancer weer redundant uit te voeren, dus twee load balancers in failover configuratie. Overigens zullen diverse colocatie providers je ook wel kunnen load balanced poortjes kunnen verhuren zodat je hier zelf geen hardware voor hoeft te kopen.

Wat betreft de hardware van de servers: Een database server profiteert van snelle disken en veel ram (om te cachen). Gebruik dus scsi schijven (het liefst in raid 10). Gebruik als intern netwerk een gigabit verbinding, voor een hogere doorvoer en minder overhead (jumbo frames). Op dit punt kun je prima voor 1000baseT kiezen, das wat goedkoper als fiber.

Opterons presteren goed als mysql server (goede prijs/kwaliteit verhouding, zie de diverse opteron vs xeon benchmarks op het internet). Let wel op dat je os en mysql installatie 64 bits ondersteunen, zodat je er het maximale uit trekt. Waarschijnlijk wil je ook gelijk voor een dual core oplossing kiezen, levert je meer rekenkracht per rack unit op.

Ryan Kalkhoven
23/01/06, 18:25
@Jo0st

Zonder specificaties van traffic en load etc. Kun je vrij weinig zeggen of een Dual Opteron overkill is. Voor een website met 300 unieke bezoekers per dag waarschijnlijk wel maar zijn het er 300 per minuut dan moet je daar toch minimaal aan denken

jo0st
23/01/06, 18:31
Mmmm, dan zou ik die even eruit moeten gaan vissen. Ben overigens zelf (prolly wel duidelijk), niet degene die over het technische gedeelte gaat. Ik probeer alleen wat extra research te doen zodat er niet onnodig veel of misschien te weinig aan servercapaciteit word ingekocht.

Ik kan op dit moment wel vertellen dat er 30 000 uniek per dag ongeveer de sites bezoekt. En totaal ongeveer 4 000 000 pageviews genereren. Het probleem zit hem er meer in dat dit binnen hele korte tijd al verdubbel is, en we snel aankopen moeten doen om deze groei op te kunnen vangen en minstens 3 maanden vooruit kunnen.

Op deze seconde zijn er 1170 mensen online.

Maar ik zal even zorgen dat degene die het technische gedeelte normalitair op zich neemt mij het nodige toestuurt zodat ik jullie ook wat meer kan vertellen.

Mark17
23/01/06, 22:30
Ik neem aan dat elke bezoeker minimaal 1 query per pagina doet, dat zou betekenen dat er in die ene seconde 1170 query's zijn geweest, zijn er echter per pagina 2 of meer query's nodig of verwacht je een goede groei in de nabije toekomst dan zou ik als ik u was en er het geld voor over had gaan voor een dual opteron met 4 GB RAM (RAM moet wel uit te breiden zijn) met RAID 10 en SCSI hardeschijven. Dit zijn niet de goedkoo0pste servers, echter leveren deze servers zeker goede kwaliteit indien het een merk server betreft (SUN/HP/etc.). Daarnaast adviseer ik je om met 1 loadbalancer en 3 webservers te beginnen (indien uploaden mogelijk is zou je voor de uploads een aparte fileserver kunnen gebruiken).

Echter kun je het beste beginnen met het script efficienter te maken (minder SQL query's). Overleg met je colocatie provider waar je dit onderbrengt of wilt onderbrengen kan ook zeer goed helpen.

jo0st
23/01/06, 23:14
Ik heb al een dual opteron met 4 GIG ram staan op het moment. Wij dachten dat als we wat extra RAM in ozne DUAL xeon zouden prikken (nu 2 GIG) dat deze ook wel als spare en/of tweede database server zou kunnen dienen.

Daarnaast vroeg ik me af welke specs voor een loadbalancing server, en welke specs voor de front-end servers jij aan zou raden.

svbeek
23/01/06, 23:29
Je zou de xeon inderdaad ook kunnen upgraden naar 4 gig ram. Beiden servers dan in een mysql replicatie opstelling, alle writes op de ene server (de opteron lijkt me), alle reads dan op de xeon.

Wat betreft de webservers, met minimaal twee servers beginnen natuurlijk, anders kan je niet load balancen. Dit kunnen prima gewone p4's zijn met 1 of 2 gig ram. Het webgedeelte van een applicatie is meestal het makkelijkst te load balancen, dus kun je hier beter gaan voor kwantiteit ipv kwaliteit (dus meerdere goedkope servers ipv één zware dure machine). Bijv. google doet dit ook, veel goedkope machines ipv enkele hele dure.

Verder zou je kunnen overwegen om alle statische content, zoals plaatjes e.d. op een aparte server te zetten. Deze draait dan alleen een lichte webserver (bijv lighthttpd) zonder scripting mogelijkheden e.d. Zodoende is het vrij simpel mogelijk de overige webservers te ontlasten, ze hoeven zich niet met dit 'simpele werk' bezig te houden en hebben dus meer resources over. Ook deze server is trouwens een punt waar met caching veel winst te behalen valt.

jo0st
23/01/06, 23:34
Loadbalancing servers hebben toch ook niet echt veel nodig? met een 512 MB sempronnetje zou dit toch makkelijk kunnen.

Want ik wil (eigenlijk) de xeon inderdaad upgraden. 2 loadbalancing servers en 3 webservers gaan aanschaffen.

Wat zou er nodig zijn voor deze image/file server?? Hier geld ook eerder kwantiteit boven kwaliteit?

svbeek
23/01/06, 23:41
Een simpel load balancertje zou inderdaad bijv. een celeron of sempron met een halve gig ram kunnen zijn, met linux virtual server erop. Door middel van heartbeat zou je dan de loadbalancers in een failover configuratie kunnen laten draaien.
Zelf ben ik echter wat meer voorstander van een hardware based load balancer, dit is naar mijn mening gewoon professioneler. Je zou kunnen overwegen refurbished apparatuur te kopen. Als goed shopt zou je deze wel voor de prijs van een hierboven genoemde server moeten kunnen vinden. Of natuurlijk het load balancen in overleg door je provider laten doen, mits deze dit kan leveren.

Wat betreft de fileserver, dit hangt van je applicatie af. Wordt er bijna alleen maar gelezen vanaf de fileserver, of ook veel geschreven?

jo0st
24/01/06, 00:08
Hardware loadbalancer: waar moet ik daarbij precies aan denken?

Fileserver: moet inderdaad ook vrij veel schrijven, wat zou je me dan aanraden?

Mark17
24/01/06, 00:27
Voor de fileserver zijn snelle schijven nodig (ivm het vervangen van data waardoor de cache minder bruikbaar is). Hiervoor zou je voor scsi discs kunnen gaan net zoals is geadviseerd voor de SQL server.

jo0st
24/01/06, 00:41
Origineel geplaatst door Mark17
Voor de fileserver zijn snelle schijven nodig (ivm het vervangen van data waardoor de cache minder bruikbaar is). Hiervoor zou je voor scsi discs kunnen gaan net zoals is geadviseerd voor de SQL server.


Het hoeft bijvoorbeeld niet een opteron te zijn? een pIV met dikke schijven zou het ook kunnen trekken??

Mark17
24/01/06, 00:51
indien het enkel een fileserver is zou je het beste voor een single opteron met 2 GB ram kunnen gaan (uiteraard is het verstandig om al wel de optie tot uitbreiding naar een dual opteron en 4GB ram te hebben).

jo0st
24/01/06, 09:22
Ons bestellijstje ziet er als volgd uit:

Load Balancing
2 x AMD SEMPRON 512 MB

Web Server
3 x SINGLE OPTERON 1024 MB

File Server
1 x DUAL OPTERON 2048 MB (WD RAPTOR)

Plus 4 extra WD RAPTOR schijven voor in de huidige database/ webserver (die als tweede db server gaat serveren).

Iemand nog op en aanmerkingen over iets in deze setup wat echt niet goed is?

Ryan Kalkhoven
24/01/06, 09:31
Als tip zou ik je sowieso willen geven dat je de configs die je hierboven aangeeft minimaal kan verdubbelen binnen zijn eigen kast. Kortom zorg dat je overal minimaal het dubbele of meer aan geheugen kan plaatsen en ook een CPU en extra schijven. Als jij het hebt over een verdubbeling van je bezoekers afgelopen weken/maanden en dat je dit komende 3 maanden wederom verwacht, kun je ervoor zorgen dat je met je nieuwe apparatuur het net wat langer uit kan houden.


Kan denk ik geen kwaad en dat soort systemen kun je altijd weer gebruiken in je volgende omgeving (zeker als je het over een mand of 3 weer moet aanpassen).

svbeek
24/01/06, 09:53
Origineel geplaatst door jo0st
Ons bestellijstje ziet er als volgd uit:

Load Balancing
2 x AMD SEMPRON 512 MB

Web Server
3 x SINGLE OPTERON 1024 MB

File Server
1 x DUAL OPTERON 2048 MB (WD RAPTOR)

Plus 4 extra WD RAPTOR schijven voor in de huidige database/ webserver (die als tweede db server gaat serveren).

Iemand nog op en aanmerkingen over iets in deze setup wat echt niet goed is?

Misschien een redundante voeding voor de fileserver, aangezien die nog een single point of failure is. Maar dan zou je zelf even moeten kijken of je dat de kosten waard vind.

Wat betreft de hardware load balancer, kijk eens op de site van foundry bij serveriron, of zoek eens op google op alteon. Bekijk ook of het uitbesteden van het load balancing gedeelte geen kostenbesparing kan opleveren.

jo0st
24/01/06, 09:58
Ik zit colocated bij XS4ALL, deze vragen 50 euro setupkosten per server, plus een maandelijks bedrag van 75 euro. Daar komt bij dat de serverbeheerder sowieso al fulltime in dienst is. Dus ik denk niet dat dat een kostenbesparing zal worden.

En ik de rest even googlen.

Bedankt voor jullie reacties!

Eris
24/01/06, 10:09
Je vergeet nog de database doos :)

jo0st
24/01/06, 10:11
Origineel geplaatst door Eris
Je vergeet nog de database doos :)

Daar heb ik al een dual opteron met 4 gig ram, en de huidige webserver (dual xeon met 2 gig ram) zal de tweede database server worden. Dus die hebben we dan al :)

Wido
24/01/06, 12:46
Je kan met LVS echt perfect loadbalancen, wij doen dat nu al 1.5 jaar en LVS heeft nog nooit een probleem opgeleverd.

Single opteron als fileserver is erg overkill, kan je beter een P4 met stevig mobo voor inzetten.

jo0st
24/01/06, 20:38
Hebben jullie voor dergelijke clusters een KVM over - ip oplossing? of doen jullie niet aan dingen zoals deze?

Ryan Kalkhoven
24/01/06, 20:44
LVS is onder Linux en daar zal 9 v/d 10 SSH voor gebruiken.
Indien je met windows werk is een goede optie volgens mij iets van Extern bureaublad? (Ben helaas niet zo thuis in windows).

Kortom een KVM is in geen van beide gevallen volgens mij een (handige) optie.

jo0st
24/01/06, 20:58
Meteen nog een vraag, voor de loadbalancers, die hebben twee netwerkkaarten nodig lijkt mij. Wat voor systemen nemen jullie daarvoor, want ik zat zo te kijken op Ahead-It en die goedkope sempron dingetjes hebben volgens mij geen twee netwerkkaartjes erin. Ik weet niet of jullie daar nog redelijk goedkope oplossingen voor hebben elders. Anders zou ik dat natuurlijk ook graag weten.

WouterG
25/01/06, 19:40
Die semprons op ahead-it hebben een netwerkaansluiting intern en met behulp van een riser nog een extra pci slot.

Aike
25/01/06, 20:55
Volgens mij kun je beter je webservers zelf laten loadbalancen met een software loadbalancer. Dat scheelt je weer 2 servers en kosten.