Bekijk Volledige Versie : 1 website op meerdere webservers
Goedenavond,
Voor een uit de hand gelopen projectje zijn inmiddels meerdere servers (zeg: 3 + database) nodig om de bezoekers tevreden te kunnen houden. Nu ben ik gewoon geinteresseerd hoe een ieder dit zou oplossen.
Er zijn 5 domeinnamen welke allen naar diezelfde website doorgelinkt moeten staan.
In eerste instantie zou ik de database server ook willen gaan gebruiken als DNS ('domeinbase') & MAIL server, deze krijgt namelijk het minst te voorduren.
Verder moeten natuurlijk de bezoekers verdeeld worden over de 3 webservers. Dit is de big question in dit geval, aangezien er (nog) niet een hardwarematige-loadbalancer ingeschakeld gaat worden.
Wat zijn jullie ervaringen, suggesties en tips betreffende dit onderwerp? Ik ben erg benieuwd.
CWHosting
PS. Mocht dit al ergens staan, of heb ik het in verkeerde onderdeel geplaatst, mijn excuses. :lovewht:
Ryan Kalkhoven
07/08/06, 20:44
Kijk eens naar Linux Virtual Server of een andere oplossing in de hoek van clustering.
Als je echt geen hardware lb kunt krijgen (een heel minimaal linux doosje, desnoods met slechts een floppie voldoet), dan zou ik de server 2 en 3 verbinden met de subdomeinen www2 en www3. Vervolgens zou ik in de homepage een simpel stukje code proppen dat 1 derde van de bezoekers naar www2 en 1 derde van de bezoekers naar www3 redirect.
Op deze manier ben je wel afhankelijk van het beschikbaar zijn van je www server. Verder er even aan denken dat je in de www2 en www3 servers een robots.txt zet die robots buiten de deur houdt, ter voorkoming van duplicate content penalties, je weet immers maar nooit.
Nu maar hopen dat geen interne links hebt gemaakt waarin het domein voorkomt.
Ik zou eens een keer naar UltraMonkey.org kijken, dit biedt goede oplossingen voor LB op software matige basis.
waarom geen eenvoudig round-robin dns gebruiken?
waarom geen eenvoudig round-robin dns gebruiken?
Round Robin DNS is geen echte LB, wat UltraMonkey doet wel, stel je hebt 3 servers en server 2 is down, bij round robin wordt je alsnog gestuurd naar server 2, terwijl heartbeat het afvangt.
crazycoder
07/08/06, 21:38
Als je echt geen hardware lb kunt krijgen (een heel minimaal linux doosje, desnoods met slechts een floppie voldoet), dan zou ik de server 2 en 3 verbinden met de subdomeinen www2 en www3. Vervolgens zou ik in de homepage een simpel stukje code proppen dat 1 derde van de bezoekers naar www2 en 1 derde van de bezoekers naar www3 redirect.
Op deze manier ben je wel afhankelijk van het beschikbaar zijn van je www server. Verder er even aan denken dat je in de www2 en www3 servers een robots.txt zet die robots buiten de deur houdt, ter voorkoming van duplicate content penalties, je weet immers maar nooit.
Nu maar hopen dat geen interne links hebt gemaakt waarin het domein voorkomt.
Afhankelijk van wat er op de site gebeurt is dat mogelijk of kan het ook via DNS.
Toch zou ik maar liever voor een loadbalancer gaan. Dat bied net even iets meer zekerheid als je met dynamische content werk.
Round Robin DNS is geen echte LB, wat UltraMonkey doet wel, stel je hebt 3 servers en server 2 is down, bij round robin wordt je alsnog gestuurd naar server 2, terwijl heartbeat het afvangt.
Je kan toch met een lage TTL & monitor's gelijk in DNS geen verkeer meer sturen naar de server die plat ligt? ben je ook zeer miniem plat
Je kan toch met een lage TTL & monitor's gelijk in DNS geen verkeer meer sturen naar de server die plat ligt? ben je ook zeer miniem plat
Helaas negeren sommige (grote) providers TTL's, waardoor ze alsnog een stuk langer cachen.
Probeer een Virtual Decidated Server op een load balanced cluster...
InterNetjes
07/08/06, 23:19
is niet juist je database server de server die het meest te verduren krijgt?
Allereerst dank aan allen voor de reacties.
Het gaat om een online game, waarbij de content vrijwel geheel dynamisch is.
In eerste instantie zou je denken dat de load juist op de database ligt, maar het draait nu op een celeron2.6 als database, en een p4 3.2 als web, waarbij de web tegen het toppie aan komt als er 400+ users online zijn. De database draait dan 0.5 0.6...
De keuze hier lag ook al op het via een script (of zelfs simpele keuze in login scherm) kiezen van een server en vanaf dat moment het gebruiken van server1.xxx.com voor die login sessie.
Dit ook omdat de kennis van linux minimaal is.
Heeft iemand suggesties / tips voor het implementeren van een dergelijk systeem? In principe is het gewoon het verwijzen van server1.xxx.com -> ip van server 1?
Nogmaals bedankt :W:
Het is in eerste instantie dus prioriteit om de users te verdelen over de servers, dan de load te verdelen...
Dit had misschien even in deze context vermeld moeten worden ;)
Indien mogelijk zou ik je adviseren om met Linux bezig te gaan (bijv. Debian). Hierbij zou je een combinatie kunnen gebruiken van meerdere mogelijkheden (denk o.a. aan LinuxHA/heartbeat/virtual server/etc.). Laat je eventueel bij staan door een bedrijf dat minimaal 1 medewerker in dienst heeft welke eerder met clusters heeft gewerkt.
Het gaat in totaal om 4 servers in je huidige opstelling lees ik. Dit zou op zich voldoende moeten zijn indien je 10 IP's ter beschikking hebt kun je al wat leuke dingen doen met heartbeat bijv..
crazycoder
08/08/06, 07:44
In eerste instantie zou je denken dat de load juist op de database ligt, maar het draait nu op een celeron2.6 als database, en een p4 3.2 als web, waarbij de web tegen het toppie aan komt als er 400+ users online zijn. De database draait dan 0.5 0.6...
De keuze hier lag ook al op het via een script (of zelfs simpele keuze in login scherm) kiezen van een server en vanaf dat moment het gebruiken van server1.xxx.com voor die login sessie.
Dit ook omdat de kennis van linux minimaal is.
Je moet de gebruiker een server toewijzen, niet zelf laten kiezen.
Als er budget is doe je er misschien goed aan om iemand te zoeken die het spul kan configureren en beheren. Een cluster is namelijk een betere optie.
4 Servers moet ik zeggen, dat dat wel heel krap aan is..
Ook zul je dan zelfs aan 1 IP al voldoende hebben, omdat de rest intern afgehandeld wordt.
Je hebt 1 machine nodig voor je LB
Je hebt X static frontends nodig
Je hebt X SQL servers nodig
Je hebt X Fileserver nodig.
Je zult een extra switch nodig hebben (om intern af te koppelen), zeker als fileserver moet je minimaal op 1000mbit afkoppelen intern, omdat je zeker in de problemen komt met je performance.
Check dit eens :
http://www.inlab.de/balance.html
Kant en klare loadbalancing oplossing, software matig op linux...
Zijn twee versies van...een open source versie, wel met iets minder geavanceerde balancing algoritmes en een betaalde versie. Zelfs die is niet heel erg duur...
Linux Virtual Server (LVS) lijkt me toch echt een betere oplossing, ik gebruik dat nu al 2 jaar op toch aardig grote clusters (10 webservers) en draait echt prima.
Ik raad je toch aan daar eens naar te kijken.
NetGuardian
16/08/06, 05:51
Wat ook kan, is met PHP een systeempje knutselen wat uitvogeld hoeveel gebruikers op welke server zijn, en dan de server met de minste mensen kiezen.is -denk ik- de goedkoopste oplossing.
Correct me if i'm wrong.
Check dit eens :
http://www.inlab.de/balance.html
Kant en klare loadbalancing oplossing, software matig op linux...
Zijn twee versies van...een open source versie, wel met iets minder geavanceerde balancing algoritmes en een betaalde versie. Zelfs die is niet heel erg duur...
Dat ziet er leuk uit, lijkt me een stuk makkelijker te gebruiken dan LVS. zo te zien heeft de gratis versie alleen een soort proxy-methode, zodat de load op de loadbalancer nog wel hoger wordt dan met bijvoorbeeld LVS. *denk ik dan*
@wido: je ging toch een cursus loadbalancing geven? is deze al geweest, of komt deze nog?