Toon posts:

HW-loadbalancing + Sessies (LINUX)

Pagina: 1
Acties:
  • 509 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben een plan aan het uitdenken voor clustering achter een HW-loadbalancer maar kom op een probleem met PHP-sessies uit.

Wanneer je een LoadBalancer gebruikt kun je er geen pijl op trekken op welke achterliggende server te terrecht komt. Dit kan dus een probleem zijn wanneer je met PHP-applicaties werkt die gebruik maken van sessies.

Omdit probleem uit de weg te gaan wil ik de sessies "clusteren". Dit kan op een aantal manieren:
  • Via session.save_handler in de php.ini met een MySQL-DB erachter en tussen alle servers een MySQL-replicatie.
  • /tmp mounten op een NAS, alleen niet echt redundant... of je moet een dubbele NAS hebben met rsync :? Niet echt de oplossing
  • De ZEND Session Clustering Module
Mijn idee is dat de MySQL replicatie te langzaam is, /tmp op een NAS niet redundant is en met een dubbele NAS met rsync ook te traag en de oplossing van ZEND zal wel VEEL geld kosten.

Iemand een ander idee toevallig ?

edit:


Ik bedenk met net dat ik ook SSL wil kunnen gebruiken.... erg tricky volgens mij. Daar ga ik even over zoeken, als iemand een idee heeft...graag !




Andere vraag, niet echt gerelateerd:

Zouden jullie de loadbalanced servers een intern (10.0.0.x) of een extern adres geven ? Extern lijkt mij het makkerlijkste waarbij de DNS naar het IP van de LoadBalancer point.

[ Voor 8% gewijzigd door Verwijderd op 22-12-2005 02:35 ]


  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
De fijnste oplossing is dat 1 client steeds op dezelfde server terrecht komt ipv per request kijken waar die gebruiker nu weer heen moet. Al je sessie data blijft dan mooi lokaal. Database of NAS leverd weer een spof of performance knelpunt op.

Regelen op je loadbalancer dus.

  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 23-12-2025
Wat jij wilt is een loadbalancing naar een cluster, geen gewone loadbalancing. Op een of andere manier (is het nu via een proxy, loadbalancer, apache of sql) ga je toch je sessies moeten centraliseren om ze terug op te halen.

Ik denk dat dit het best (gemakkelijkst) via MySQL gebeurt en met de nieuwe versies zie ik zeker geen probleem qua snelheid of zo. Je gaat natuurlijk altijd ergens inboeten op snelheid hierdoor. Je kunt het ook met een filesysteem doen die zichzelf automatisch repliceert (zoals coda of iets gelijkaardigs).

Ik zie je probleem als je met een loadbalancer alle requests van een bepaald IP naar een bepaalde server stuurt dan kan het zijn dat je een overload hebt op de ene server omdat een IP meerdere personen kan betekenen alsook kan die downgaan en dan heb je alsnog je sessie verloren.

Pandora FMS - Open Source Monitoring - pandorafms.org


Verwijderd

Topicstarter
Ik wil de sessies op beide servers hebben ivm met het feit dat er een server uit kan vallen.

Natuurlijk kan een IP meerdere personen betekenen, dit probleem heb je ook op een single-server met bezoekers die achter dezelfde proxy hangen.

Beide punten om overna te denken.

  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 23-12-2025
Zoals ik zeg kan MySQL dit doen. Je hebt op beide servers een instance draaien en een draait er master en een slave. Op de slave kan je evengoed query's doen. Valt de master uit, dan wordt alles bijgehouden op de slave totdat de master terug online komt. Sommige netwerk-bestandssystemen kunnen dit ook. Anders kun je ook een NAS of SAN nemen die dubbel uitgevoerd is (hardwarematig)

Pandora FMS - Open Source Monitoring - pandorafms.org


Verwijderd

Topicstarter
Guru Evi schreef op donderdag 22 december 2005 @ 03:19:
Zoals ik zeg kan MySQL dit doen. Je hebt op beide servers een instance draaien en een draait er master en een slave. Op de slave kan je evengoed query's doen. Valt de master uit, dan wordt alles bijgehouden op de slave totdat de master terug online komt. Sommige netwerk-bestandssystemen kunnen dit ook. Anders kun je ook een NAS of SAN nemen die dubbel uitgevoerd is (hardwarematig)
Ja, kan ik bijkomen, kan een goede oplossing zijn... echter jouw IP-probleem?

Overigens vind ik de sessie-replicatie op "fileniveau" of Zend toch mooier, safer.

[ Voor 8% gewijzigd door Verwijderd op 22-12-2005 03:45 ]


  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 16-02 14:14
watvoor loadbalancer ga je gebruiken?

aangezien je daarmee vaak persistent binding kan opzetten en daarmee je sessie probleem oplost ;)

Valt de server uit waar de sessie op stond, dan wordt je automagisch doorgestuurd naar een volgende server, mits goed geconfigged.

  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 05-01 14:41
Dat is geen oplossing want dan is je sessie alsnog kwijt :)

Je zult idd je sessies moeten centraliseren en het gebruiken van een database daarvoor is gemakkelijk, veeeeeeeel gebruikt (en dus goed ondersteund en stabiel) en veilig. Je draait dan idd twee databases (waardoor je dus niet eens aan snelheid hoeft in te boeten) en ik neem aan dat je toch al twee databases hebt als je zo gebrand bent op redundancy.

Als de sessies gecentraliseerd zijn dan maakt het niet meer uit op welke server een client terecht komt en dan maakt het ook niet meer uit of er een server uitvalt. Of ja, behalve als je flink aan caching doet, dan is het idd handig om een client 'vast' te zetten op een bepaalde server maar dat kan vrijwel iedere loadbalancer. Neem trouwens aan dat je de loadbalancer ook redundant uit gaat voeren en je netwerk ook?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op donderdag 22 december 2005 @ 02:31:
Omdit probleem uit de weg te gaan wil ik de sessies "clusteren". Dit kan op een aantal manieren:
  • Via session.save_handler in de php.ini met een MySQL-DB erachter en tussen alle servers een MySQL-replicatie.
Lijkt mij de beste manier, maar dan met maar een DB. Die eventueel repliceren, maar dan alleen voor failoverdoeleinden.
Zouden jullie de loadbalanced servers een intern (10.0.0.x) of een extern adres geven ? Extern lijkt mij het makkerlijkste waarbij de DNS naar het IP van de LoadBalancer point.
Kan allebei, ligt aan hoe je je netwerk in elkaar zet. Ik heb zelf externe IP-adressen met MAC-Address substitution (Direct Routing in LVS-taal), met interne IP-adressen moet je NAT gaan doen op je LB. 't heeft allebei voor- en nadelen.

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
Het gaat er alleen om dat 2 machines redundant zijn, ja en hier is een reden voor.

Voor deze machines ga ik toch maar een extern adres gebruiken, kan met mijn applicatie het makkelijkste overweg.

Ik ga een Alteon gebruiken denk ik, deze kan ook het IP aan een sessie cachen als het goed is. De vraag is alleen of je geen problemen gaat krijgen met sessies en mensen achter een proxie... Zou je zonder LB-er ook moeten hebben dan maar dat heb je ook niet.

Ik ben blij dat iedereen de MySQL-oplossing een goede kans geeft. Zal dit veel load bezorgen aan de server ?

[ Voor 11% gewijzigd door Verwijderd op 23-12-2005 22:02 ]


  • HunterPro
  • Registratie: Juni 2001
  • Niet online
ik zou afhankelijk van toepassing en eisen een eigen session handler die databasewise haar data opslaat optrekken. Zullen ook vast al gestandariseerde oplossingen voor zijn. :) Dat zou per pageview een paar selects meer opleveren, maar neem aan dat je machine dat wel moet kunnen hebben, anders heb je al schaalproblemen. :)

[ Voor 30% gewijzigd door HunterPro op 23-12-2005 22:11 ]


Verwijderd

Topicstarter
HunterPro schreef op vrijdag 23 december 2005 @ 22:09:
Dat zou per pageview een paar selects meer opleveren, maar neem aan dat je machine dat wel moet kunnen hebben, anders heb je al schaalproblemen. :)
Ligt aan de oplossing die je gaat gebruiken. Bij DB-syncronisatie moet je dat toch extra in de berekening mee nemen vind ik.

Verwijderd

Topicstarter
OK, er is een plan, dat was er al deels, maar ik heb het idee dat dit een probleem kan gaan opleveren.

Er zijn dus 2 servers. Deze servers draaien beide een website en een andere applicatie met een SSL-certificaat.

Beide servers hebben 2 NIC's.

Het idee is om de nic's te bundelen via "bonding" en op beide poorten waar de server op de LB-er is aangesloten hetzelfde IP aan de poort te koppelen.

Dus stel dat

Site: 123.456.789.1
SSL-app: 123.456.789.2

En ik deze server op de LB-er connect aan Poort 1 en Poort 2 dan zal beide IP's aan beide poorten opgeven.

Dit exact hetzelfde voor Server2 met .3 en .4 en beide aan poort 3 en poort 4.

Volgens mij ga ik hier ergens een probleem krijgen. Het verhaal "bonding" zal wel niet gaan ben ik bang.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Waarom bonding? Overigens maak je daarmee van twee fysieke netwerkverbindingen (of meer) één logische. Dus meerdere IP-adressen is nogal nutteloos daar.

Met SSL zou ik trouwens in je loadbalancer persistent binding aanzetten. Anders moet je elke keer dat je van server verandert (oftewel waarschijnlijk elke request) opnieuw de complete SSL handshake doorlopen, en da's traag.

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
Ik heb die 2 addressen nodig ivm SSL voor een applicatie. SSL heeft zoals je weet zijn eigen IP nodig.

Die persistent binding ben ik mee bezig. Ik heb de optie om Layer3 ipv Layer4 te enabelen zodat de sessies gelijk worden gehouden. Ik lees dit nu al 10x maar moet de zinnen en alineas hier even goed van doornemen, opzich wel duidelijk.

Ik maak overigens gebruik van een Alteon nu, niet de nieuwste maar prima voor mijn doeleinden.

Hoe zit dat eigenlijk met sessies en een proxy waar iemand achter hangt ? Normaal bij een single server heb je daar ook geen last van. Hoe krijg je dan toch je sessie weer terug ? Je ziet bij sommige checks dat ookal hang je achter een proxy, je Hostname wordt toch wel achterhaald. Misschien is dat het wel, nooit in verdiept eigenlijk O-)

[ Voor 22% gewijzigd door Verwijderd op 25-12-2005 01:13 . Reden: extra info ! ]


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zondag 25 december 2005 @ 00:56:
Ik heb die 2 addressen nodig ivm SSL voor een applicatie. SSL heeft zoals je weet zijn eigen IP nodig.
Nee hoor. Tenminste, niet als je maar een SSL-website hebt. Pas als je meerdere websites hebt (meerdere namen, om precies te zijn), heb je meerdere IP-adressen nodig.
Die persistent binding ben ik mee bezig. Ik heb de optie om Layer3 ipv Layer4 te enabelen zodat de sessies gelijk worden gehouden. Ik lees dit nu al 10x maar moet de zinnen en alineas hier even goed van doornemen, opzich wel duidelijk.

Ik maak overigens gebruik van een Alteon nu, niet de nieuwste maar prima voor mijn doeleinden.
* CyBeR heeft er ook een. Ik gebruik overigens 'Direct Server Return' (Alteon-speak) ofwel Direct Routing (LVS-speak). Wat er op neerkomt dat de alteon alleen MAC-adressen substitute in packets, en de servers hun antwoord direct naar de client terugsturen.
Hoe zit dat eigenlijk met sessies en een proxy waar iemand achter hangt ? Normaal bij een single server heb je daar ook geen last van. Hoe krijg je dan toch je sessie weer terug ? Je ziet bij sommige checks dat ookal hang je achter een proxy, je Hostname wordt toch wel achterhaald. Misschien is dat het wel, nooit in verdiept eigenlijk O-)
Ligt er een beetje aan hoe je persistent binding doet. Ik weet niet of jouw Alteon 't kan (ik gebruik 't niet, dus niet echt onderzocht), maar je kunt dat op grofweg twee manieren doen:

• Op basis van IP-adres en tijd.
• Op basis van een cookie

Met de eerste manier kom je achter een proxy dus ook steeds op dezelfde server uit (hoeft niet per see een probleem te zijn), met de tweede manier heb je op de client cookies nodig (mag geen probleem zijn) en kun je geen DSR gebruiken maar alleen soorten load balancing waarbij alle packets door de LB heen gaan. (Die accepteert ook feitelijk de connecties, leest headers uit, en gaat dan eens kijken waar de verbinding naartoe moet.)

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
CyBeR schreef op zondag 25 december 2005 @ 01:29:
[...]


Nee hoor. Tenminste, niet als je maar een SSL-website hebt. Pas als je meerdere websites hebt (meerdere namen, om precies te zijn), heb je meerdere IP-adressen nodig.
Ah, was dus niet duidelijk, staan 2 sites op, 1x SSL en een niet SSL :) Dus zit ik toch aan 2 vast. Maar duidelijk voor iemand die dit leest en het ook weten wil ! :)
[...]


* CyBeR heeft er ook een. Ik gebruik overigens 'Direct Server Return' (Alteon-speak) ofwel Direct Routing (LVS-speak). Wat er op neerkomt dat de alteon alleen MAC-adressen substitute in packets, en de servers hun antwoord direct naar de client terugsturen.
/me schudt CyBeR met het Alteon-handshaking protocol :9

Kan volgens mij wel, is bij mij "Direct client access to real servers" (zie ik in de legenda, moet nog even lezen, dus weet nu 1,2,3 niet wat het doet ;))
[...]


Ligt er een beetje aan hoe je persistent binding doet. Ik weet niet of jouw Alteon 't kan (ik gebruik 't niet, dus niet echt onderzocht), maar je kunt dat op grofweg twee manieren doen:

• Op basis van IP-adres en tijd.
• Op basis van een cookie

Met de eerste manier kom je achter een proxy dus ook steeds op dezelfde server uit (hoeft niet per see een probleem te zijn), met de tweede manier heb je op de client cookies nodig (mag geen probleem zijn) en kun je geen DSR gebruiken maar alleen soorten load balancing waarbij alle packets door de LB heen gaan. (Die accepteert ook feitelijk de connecties, leest headers uit, en gaat dan eens kijken waar de verbinding naartoe moet.)
Helemaal geen probleem van die zelfde server, de load wordt namelijk met "wght" (jaja, Alteon-taal) bepaald of de server het te druk heeft. Dus opzich kan dat geen probleem zijn zoals je zelf al zegt, maar goede opmerking !

Ik type het hele stuk wel even over uit de manual anders, als je die toevallig wel hebt wilje wellicht even kijken op pagina 7-36 voor dat "layr3" verhaal, best interresant.

Welk type heb jij als ik vragen mag ? Een 180 ?

[ Voor 3% gewijzigd door Verwijderd op 25-12-2005 01:43 ]


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zondag 25 december 2005 @ 01:42:
[...]


Ah, was dus niet duidelijk, staan 2 sites op, 1x SSL en een niet SSL :) Dus zit ik toch aan 2 vast. Maar duidelijk voor iemand die dit leest en het ook weten wil ! :)
Nee ik was niet duidelijk :) Als je meerdere SSL websites hebt, heb je meerdere IP-adressen nodig. Een (1) SSL website kan samen met 5000 non-SSL website op hetzelfde IP-adres, zogewild.
/me schudt CyBeR met het Alteon-handshaking protocol :9

Kan volgens mij wel, is bij mij "Direct client access to real servers" (zie ik in de legenda, moet nog even lezen, dus weet nu 1,2,3 niet wat het doet ;))
Da's weer iets anders, heeft weer te maken met de andere vorm van loadbalancing. Met DSR kun je per definitie bij de realservers omdat ze op de normale manier bereikbaar zijn. De alteon zit gewoon in hetzelfde LAN segment en switched packets die ontvangen worden voor het VIP weer terug datzelfde LAN op.
Ik type het hele stuk wel even over uit de manual anders, als je die toevallig wel hebt wilje wellicht even kijken op pagina 7-36 voor dat "layr3" verhaal, best interresant.
Pagina 8-13 bij mij, maar heb je zo te zien weinig aan. Waar je wel iets aan hebt is 'pbind'.
Welk type heb jij als ik vragen mag ? Een 180 ?
Ik heb een 180, ja :) Tweedehands, wel. Gewoonlijk doe ik dat niet maar voor apparatuur die nieuw 15000+ euro kost maak ik wel een uitzondering :P

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
Ik zie het, pbind ga ik eens fijn mee aan de gang :) Ik moet even snel een workaround bedenken voor het feit dat je volgens mij in een VLAN maar 1x een poort aan een servergroep kunt hangen ookal gebruik je 2 verschillende "virtual servers". Beetje laat dus ik moet even kijken of ik een extra VLAN hiervoor ga gebruiken of dat er een andere omweg is :)

Voor dit soort apparatuur kun je dat best doen, niets mis mee... zijn voldoende bedrijven die dat doen met dergelijke apparatuur.

Ik mag hopen dat het ding wel aan Rokscom hangt gezien je AS-nummer waar je achter zit, en niet een niet nader te noemen andere partij ;)

[ Voor 7% gewijzigd door Verwijderd op 25-12-2005 02:14 ]


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zondag 25 december 2005 @ 02:13:
Ik mag hopen dat het ding wel aan Rokscom hangt gezien je AS-nummer waar je achter zit, en niet een niet nader te noemen andere partij ;)
Hrm?

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
Weet je wel.... Doet er verder niet toe :)

Maar gebruik jij hem omdat je echt veel hoge load hebt of voor redudancy van servers wat je niet met RoundRobin wil doen ?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zondag 25 december 2005 @ 02:22:
[...]


Weet je wel.... Doet er verder niet toe :)
Ik begrijp niet welke andere niet nader te noemen partij je bedoelt :P Noem 's nader :P En waarom hoop je dat?[/]
Maar gebruik jij hem omdat je echt veel hoge load hebt of voor redudancy van servers wat je niet met RoundRobin wil doen ?
Beide. Op dit moment wordt er nog maar een server 'gebalanced' omdat we net begonnen zijn 't echt op te zetten en de tweede server nog gereinstalled moet worden.
Alteon doet dus wel voor een aantal websites (de rest is er qua software nog niet op voorbereid) de afhandeling, maar stuurt 't dus maar naar een server door.

RoundRobin (DNS neem ik aan dat je bedoelt) is geen redundancy maar puur simpele load balancing. Als er een server kwijt is gaan afhankelijk van de client software ongeveer de helft van de requests mis of werken ze pas na een timeout.

[ Voor 13% gewijzigd door CyBeR op 25-12-2005 02:28 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
Ik ga geen namen noemen want dat vind ik flauw op Forums. Maar OK, raadseltje... het is meer Down dan Up, en vogels horen toch echt te vliegen.

Nou, begin moet ergens zijn toch ? Als je hem kwijt wil dan heb ik wel intresse :9

Ja, RoundRobinDNS bedoelde ik inderdaad. Redundant, nee, maarja... sommige mensen denken van wel :) Ik heb er eens voor de grap mee getest om te kijken hoe het gebruikt wordt. Je krijgt er meer timeouts van dan dat je op één van de servers uit komt. Aangezien ik nu wat wilde spelen met "nieuwe" hardware dacht ik... dat heb ik nog niet gehad :)

[ Voor 4% gewijzigd door Verwijderd op 25-12-2005 02:34 ]


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zondag 25 december 2005 @ 02:33:
Nou, begin moet ergens zijn toch ? Als je hem kwijt wil dan heb ik wel intresse :9
Ik wil deze niet kwijt, nee ;) Ik heb er op kantoor nog wel een maar die doet niet aan SLB :P
Ja, RoundRobinDNS bedoelde ik inderdaad. Redundant, nee, maarja... sommige mensen denken van wel :) Ik heb er eens voor de grap mee getest om te kijken hoe het gebruikt wordt. Je krijgt er meer timeouts van dan dat je op één van de servers uit komt. Aangezien ik nu wat wilde spelen met "nieuwe" hardware dacht ik... dat heb ik nog niet gehad :)
Mja 't is iig beter dan niets als je echte LB niet kunt regelen. En sommige client software gaat er wel goed mee om door een volgende server te proberen bij een timeout. (Of er ook software is die onthoudt dat een bepaalde server een timeout had weet ik niet.. Mag 't wel hopen eigenlijk.)

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
CyBeR schreef op zondag 25 december 2005 @ 02:38:
[...]


Ik wil deze niet kwijt, nee ;) Ik heb er op kantoor nog wel een maar die doet niet aan SLB :P
Ah, wel intresse :9 Niet de goede firmware erop ?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zondag 25 december 2005 @ 02:40:
[...]


Ah, wel intresse :9 Niet de goede firmware erop ?
Firmware is 't probleem niet. (Hoewel die ook wat ouder is). Het probleem is dat met de oudere modellen Alteons, je speciale license keys nodig had om SLB + WCR (Server LoadBalancing + Web Cache Redirection) of GSLB (Global SLB) te enablen. Dat wist ik niet toen ik 'm kocht, dus heb ik er niet op gelet. Maar hij doet wel aan 4 default gateways + failover dus er valt wel wat mee te doen :P

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
Heb je er al aan gedacht om die firmware van de "goede" te downloaden en te flashen op die andere ?

Of dat was zeker weer niet compatible :?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Kan niet en zou ook niet helpen :)

All my posts are provided as-is. They come with NO WARRANTY at all.


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 07:43

LauPro

Prof Mierenneuke®

Er bestaan load balancers die dit voor je kunnen doen. Die onthouden (aan de hand van bijv. TCP packetnummer/IP-adres) vanaf welk IP-adres een sessie binnen komt en naar welke server dat moet. Als iemand in een sessie zit, en de server in kwestie valt uit dan is er alsnog een probleem natuurlijk, maar hiermee hoef je niet het hele sessiesysteem te herschrijven. Daarbij is het telkens heen en weer fietsen van sessiegegevens naar de DB een relatief tijdrovende klus.

Ik weet niet precies wat het budget is, maar als je snel een oplossing nodig hebt neem dan 2 van die dingen en dan kan het bwvs volgende week al draaien. (moet even het merk/type navragen, maar op deze setup draait de WTH-wiki bijvoorbeeld. De P4 waar het eerst op draaide ging over z'n nek door de load die veroorzaakt werd door de wereldwijde aandacht namelijk ;) .

Zelf ben ik van plan om een OS-pakket te gaan maken voor HTTP-load balacing (ik heb ook een situatie waar ik sessies ism een cluster wil gebruiken met SSL e.d.). Er bestaan al wel OS-reverse proxy's maar deze zijn vaak niet echt praktisch voor het gebruik met sessies's e.d.. Voor zover ik heb gezocht heb ik nog geen OS-pakket gezien dat software loadbalancing doet met sessiebeheer en de hele mikmak. Natuurlijk wel oplossingen van o.a. SUN of 3com maar dan gaat je wel voor de volle bak vaak.

De setup zoals ik hem zou doen: 2 load balancers met dezelfde IP-adressen welke layer 2 wordt load balanced door de switch/router waar die op zit. Onder load balancer versta ik in dit geval gewoon een machine met een distro naar smaak met een 2.6.*-kernel. Op die load balancers zet je de software die de requests behandeld en naar de juiste servers door stuurt. Beetje dom doorgeefluik eigenlijk, min of meer reversed NAT als ik er zo over nadenk.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Verwijderd

Topicstarter
Deels hardwarematige zaak dus. Beetje vervelend, mag hopen dat je er geen € 2500,- voor betaald hebt toen ?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zondag 25 december 2005 @ 02:52:
Deels hardwarematige zaak dus. Beetje vervelend, mag hopen dat je er geen € 2500,- voor betaald hebt toen ?
Neuh, EUR 600-nogwat ofzo, excl. shipping. Zelfde voor die tweede.

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
CyBeR schreef op zondag 25 december 2005 @ 02:54:
[...]


Neuh, EUR 600-nogwat ofzo, excl. shipping. Zelfde voor die tweede.
Oh, doe je goed, als je ebay er nu op na kijkt :)

edit:


Of komt hij uit de US ? Powerconverter er tussen ?

[ Voor 14% gewijzigd door Verwijderd op 25-12-2005 02:56 ]


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zondag 25 december 2005 @ 02:56:
[...]


Oh, doe je goed, als je ebay er nu op na kijkt :)

edit:
Of komt hij uit de US ? Powerconverter er tussen ?
Komt uit de US ja, maar is auto-switching. Draait op 220V zowel als 110V.

lauPro:
Op zich een goede oplossing, maar TS heeft al een hardware loadbalancer. Dan is 't dus vrij nutteloos om er nog twee linux dozen bij te hangen :)

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
CyBeR schreef op zondag 25 december 2005 @ 02:58:
[...]


Komt uit de US ja, maar is auto-switching. Draait op 220V zowel als 110V.

lauPro:
Op zich een goede oplossing, maar TS heeft al een hardware loadbalancer. Dan is 't dus vrij nutteloos om er nog twee linux dozen bij te hangen :)
Geen probleem dus. Die andere moet je gewoon als monitor stand gebruiken, altijd leuk :)

Overigens, wellicht nog een keer 2 dozen als extra backup in een andere groep, dat is wel een erg mooie feature !

[ Voor 13% gewijzigd door Verwijderd op 25-12-2005 03:03 ]


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 07:43

LauPro

Prof Mierenneuke®

Blijkbaar is er behoorlijk wat over het hoofd gezien bij de aanbesteding van de hardware voor loadbalancing. Maar ik kan me nauwelijks voorstellen dat er HW-'loadbalancers' zijn die geen sessies's ondersteunen, dan praat je imo meer over een reversed proxy dan over loadbalancing. Wat zijn de specs van de huidige loadbalancing hardware?

Maargoed, alsnog. Wanneer het omproggen van het huidige sessie-management meer tijd kost dan het aanschaffen van ander type loadblancer moet je dat zeker als mogelijkheid aan houden imo.

Om even startschot te geven hoe je dit in PHP op zou kunnen lossen, speudo code:
• kijk of de client een sessie-ID mee geeft bijv. in $_COOKIE['GLOBAL_SID'].
• wanneer dit niet het geval is maak een nieuwe sessie aan in de database met een unieke id, geef deze id middels een koekje als global sessie-id terug.
• start daarna een reguliere PHP-sessie ($_SESSION), welke je vult met alle benodigde vars uit de database-sessie
• nomale code (opbouw pagina etc.)
• aan het einde van de pagina bewaar je alle waarden uit ($_SESSION) in de database (match met global session id weer)

Op deze manier work-a-round je rond het PHP-sessie verhaal, je gebruikt (misbruikt) het alleen nog per request als tijdelijke opslag. Probleem is dat het je 2 á 3 extra queries kost per pagina en afhankelijk van de hoeveelheid data extra load. (mocht je gekke dingen doen met hele icons in de sessie oid.)

Waar je op moet letten is dat je redirect op tijd af vangt en eerst de sessie bewaart, en natuurlijk ook even kijken hoe je met exit() en die() om moet gaan. Daar zul je ook in sommige gevallen wrappers voor moeten schrijven.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Verwijderd

Topicstarter
Er is best nagedacht over de Loadbalancer. Waarom ? Hij was goedkoop en kan wat ik wil :)

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 07:43

LauPro

Prof Mierenneuke®

Als hij doet wat jij wil, waar is dit topic voor nodig dan ;) .

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Verwijderd

Topicstarter
LauPro schreef op zondag 25 december 2005 @ 12:00:
Als hij doet wat jij wil, waar is dit topic voor nodig dan ;) .
Niet te bijdehand he :9 Om toch even wat info te sharen. Als de de manual hebt kom je er wel uit, die heb ik ook overigens. Maar als je zonder enige commando te weten op google gaat zoeken krijg je te weinig informatie.

  • bakkerl
  • Registratie: Augustus 2001
  • Laatst online: 20-01 20:59

bakkerl

Let there be light.

Verwijderd schreef op donderdag 22 december 2005 @ 02:31:
Ik ben een plan aan het uitdenken voor clustering achter een HW-loadbalancer maar kom op een probleem met PHP-sessies uit.

Wanneer je een LoadBalancer gebruikt kun je er geen pijl op trekken op welke achterliggende server te terrecht komt. Dit kan dus een probleem zijn wanneer je met PHP-applicaties werkt die gebruik maken van sessies.
Afhankelijk van het merk/type is dit wel te zeggen.
Omdit probleem uit de weg te gaan wil ik de sessies "clusteren". Dit kan op een aantal manieren:
  • Via session.save_handler in de php.ini met een MySQL-DB erachter en tussen alle servers een MySQL-replicatie.
  • /tmp mounten op een NAS, alleen niet echt redundant... of je moet een dubbele NAS hebben met rsync :? Niet echt de oplossing
  • De ZEND Session Clustering Module
Mijn idee is dat de MySQL replicatie te langzaam is, /tmp op een NAS niet redundant is en met een dubbele NAS met rsync ook te traag en de oplossing van ZEND zal wel VEEL geld kosten.
Waarom MySQL replicatie. Haal de MySQL service van de webserver machine af en maak hiervan ook eigen redunantie oplossing voor. Dan heb je vanuit je webservers maar 1 database aan te spreken en heb je niets met replicatie (vanaf de webservers gezien) te maken.
Wil je toch persee op elke webserver een MySQL server hebben draaien, kijk dat eens naar MySQL- MAXDB. Deze heeft ook een engine welke bedoelt is voor replicatie over verschillende servers en alle tabellen in-memory heeft (wel denken aan het geheugen in de machines). Maar deze zouden heel geschikt zijn voor (tijdelijke) sessie data met replicatie.
Ik bedenk met net dat ik ook SSL wil kunnen gebruiken.... erg tricky volgens mij. Daar ga ik even over zoeken, als iemand een idee heeft...graag !
Hoeft geen probleem te zijn, zolang je op elke server maar het zelfde ceritficaat gebruikt.
Zouden jullie de loadbalanced servers een intern (10.0.0.x) of een extern adres geven ? Extern lijkt mij het makkerlijkste waarbij de DNS naar het IP van de LoadBalancer point.
Afhankelijk van je opzet van de LoadBalancer. Er zijn situaties waar het makkelijker is om een intern ip adres te geven, er zijn situaties waar een extern ip verplicht is. Dus helemaal afhankelijk van jou opzet.

Verwijderd

Topicstarter
bakkerl schreef op zondag 25 december 2005 @ 12:10:
[...]

Afhankelijk van het merk/type is dit wel te zeggen.
Alteon, 110. pbind optie heb ik, kan ik mee wat ik wil volgens mij.
[...]

Waarom MySQL replicatie. Haal de MySQL service van de webserver machine af en maak hiervan ook eigen redunantie oplossing voor. Dan heb je vanuit je webservers maar 1 database aan te spreken en heb je niets met replicatie (vanaf de webservers gezien) te maken.
Wil je toch persee op elke webserver een MySQL server hebben draaien, kijk dat eens naar MySQL- MAXDB. Deze heeft ook een engine welke bedoelt is voor replicatie over verschillende servers en alle tabellen in-memory heeft (wel denken aan het geheugen in de machines). Maar deze zouden heel geschikt zijn voor (tijdelijke) sessie data met replicatie.
Niet meer nodig met pbind zeg ik zo even uit mijn hoofd.
[...]

Hoeft geen probleem te zijn, zolang je op elke server maar het zelfde ceritficaat gebruikt.
Ja kwam ik ook uit na wat denkwerk. Het probleem wat zich voor kon doen was volgens mij SSL+Sessies. Lijkt me ook uit de wereld geholpen.
[...]

Afhankelijk van je opzet van de LoadBalancer. Er zijn situaties waar het makkelijker is om een intern ip adres te geven, er zijn situaties waar een extern ip verplicht is. Dus helemaal afhankelijk van jou opzet.
Extern zit ik gewoon aanvast. Iig, het makkelijkste met mijn applicatie.

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 07:43

LauPro

Prof Mierenneuke®

Erhm, wat ik kan vinden over de Alteon 110 is dat hij EOL is :? . Vandaar dat ze ook zo goedkoop waren dus ;) .

Wat ik zou adviseren is om voor een goede degelijke oplossing te gaan. Want om nu te werken met deze machines die dateren uit '98 lijkt me nou niet bepaald een betrouwbare en stabiele situatie.

Mijn advies is: zoek uit hoeveel werk het kost om de bestaande codebase om te bouwen. Volgens mij praat je (als het over de site gaat waar ik denk dat het over gaat) dan al snel over 2 weken werk (incl testen e.d.). Ik weet niet of je betaald krijgt maar dat kan al snel oplopen in de duizenden euro's in dat geval.

Dan zou ik zeggen: begin met een schone lei. Zorg ervoor dat dit niet oplossing nummer zoveel wordt waarmee je de zaak aan elkaar aan het tapen bent. De machines die je eventueel in moet zetten voor load balancers hoeven echt geen top-specificaties te hebben, als er maar garantie op zit (of je moet voldoende spare-parts hebben).

Trouwens met SSL kan je niet zoveer elke server hetzelfde IP-adres geven en dat dan load balancen. Voor zover ik weet wordt er voor elke SSL-sessie een aparte key gebruikt. Dus als je eerst een SSL-verbinding maakt met server A, en daarna wijst de load balancer server B toe dan loopt die verbinding volgens mij gewoon stuk (of je krijgt een warning bij de client). In principe is dit namelijk hetzelfde als 'man in the middle' attack, waarbij je van serverhost wisselt zonder dat de gebruiker het merkt, en dat kan niet met SSL. (tenzij je SSL op de loadbalancer regelt.)

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Verwijderd

Topicstarter
Sorry LauPro, je praat echt erg veel over zaken wata je niet alles van weet.
LauPro schreef op zondag 25 december 2005 @ 12:52:
Erhm, wat ik kan vinden over de Alteon 110 is dat hij EOL is :? . Vandaar dat ze ook zo goedkoop waren dus ;) .
Dus, als jij mij sponsort vind ik het geen probleem. Jij kocht zeker ook een Posrche toen je net je rijbewijs had ? Komop dit gaat erg nergens over.
Wat ik zou adviseren is om voor een goede degelijke oplossing te gaan. Want om nu te werken met deze machines die dateren uit '98 lijkt me nou niet bepaald een betrouwbare en stabiele situatie.
Dat je het beter weet en het topic niet volgt weten we nu wel.
Mijn advies is: zoek uit hoeveel werk het kost om de bestaande codebase om te bouwen. Volgens mij praat je (als het over de site gaat waar ik denk dat het over gaat) dan al snel over 2 weken werk (incl testen e.d.). Ik weet niet of je betaald krijgt maar dat kan al snel oplopen in de duizenden euro's in dat geval.
Codebase ? Welke Codebase ? Je bedoelt misschien dat ik de sessies wilde syncen via een MySQL replicatie ;)
Dan zou ik zeggen: begin met een schone lei. Zorg ervoor dat dit niet oplossing nummer zoveel wordt waarmee je de zaak aan elkaar aan het tapen bent. De machines die je eventueel in moet zetten voor load balancers hoeven echt geen top-specificaties te hebben, als er maar garantie op zit (of je moet voldoende spare-parts hebben).
Reken maar dat daar wel voor gezorgd is ;) En wie zegt dat er niet iets anders gebruikt gaat worden.... Jij wilde leren sleutelen en kocht een SL-55 om het blok er maar meteen eens even uit te lepelen ;)
Trouwens met SSL kan je niet zoveer elke server hetzelfde IP-adres geven en dat dan load balancen. Voor zover ik weet wordt er voor elke SSL-sessie een aparte key gebruikt. Dus als je eerst een SSL-verbinding maakt met server A, en daarna wijst de load balancer server B toe dan loopt die verbinding volgens mij gewoon stuk (of je krijgt een warning bij de client). In principe is dit namelijk hetzelfde als 'man in the middle' attack, waarbij je van serverhost wisselt zonder dat de gebruiker het merkt, en dat kan niet met SSL. (tenzij je SSL op de loadbalancer regelt.)
Ja, dacht ik ook over, maar als je nu eerst eens even op termen als pbind gaat zoeken kun je kijken wat het doet ;)


No Offence hoor, je bedoelt het goed, Coden kun je ook, dat weet ik, maar ik denk dat je wat slaaptekort hebt (of niet goed leest).

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

LauPro schreef op zondag 25 december 2005 @ 12:52:

Trouwens met SSL kan je niet zoveer elke server hetzelfde IP-adres geven en dat dan load balancen. Voor zover ik weet wordt er voor elke SSL-sessie een aparte key gebruikt. Dus als je eerst een SSL-verbinding maakt met server A, en daarna wijst de load balancer server B toe dan loopt die verbinding volgens mij gewoon stuk (of je krijgt een warning bij de client). In principe is dit namelijk hetzelfde als 'man in the middle' attack, waarbij je van serverhost wisselt zonder dat de gebruiker het merkt, en dat kan niet met SSL. (tenzij je SSL op de loadbalancer regelt.)
Een warning zul je niet krijgen zolang je certificate goed is, aangezien http stateless is. Maar wel moet je dan bij elke keer dat je van server wisselt weer opnieuw een SSL handshake doen. Dat komt de snelheid van het geheel niet ten goede.

Sommige loadbalancers kunnen persistent binding doen aan de hand van een ssl id (vraag me niet hoe), maar in principe volstaan andere vormen van persistent binding ook. Het gaat er om dat je steeds bij dezelfde server uitkomt zodat je je SSL id kunt hergebruiken ipv steeds een nieuwe handshake te moeten doen.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 07:43

LauPro

Prof Mierenneuke®

Verwijderd schreef op zondag 25 december 2005 @ 13:08:
Sorry LauPro, je praat echt erg veel over zaken wata je niet alles van weet.
Ik denk dat we meer langs elkaar heen praten. Jij ziet in dit geval de Alteon 110 als een oplossing, ik niet. Maargoed die discussie is even gesloten, ik neem aan dat er dan wel in oogschouw is genomen dat je hiermee redelijk wat zaken moet wijzigen aan de codebase.
Dus, als jij mij sponsort vind ik het geen probleem. Jij kocht zeker ook een Posrche toen je net je rijbewijs had ? Komop dit gaat erg nergens over.
Doe maar een voorstel zou ik zeggen (zie profiel verder) en ik had zelf idd geen Porsche toen ik net mijn rijbewijs had, maar ik reed er of en toe wel in B) (eentje uit 1980 welliswaar ;) , 2L 180 pk :9 ).
Dat je het beter weet en het topic niet volgt weten we nu wel.
Als ik betweterig over kom mijn excuses, wat ik er alleen maar mee wil aangeven is dat je jezelf wel moet indekken tot op zekere hoogte. Blijkbaar ben jij niet verantwoordelijk voor deze load balancers in kwestie. Maar als ik aan kom met machines uit '98 als spof om een aantal webservers te clusteren dan zou ik niet weten hoe ik me moet verantwoorden. Stel dat er een voeding stuk gaat, hoop ik dat je nog een adresje hebt waar je die kan halen. Voordat je het weet ben je zo weer 48 uur down omdat je nergens even snel een load balancer vandaan kan halen of een andere voeding. Ik zie zoveel om mij heen dat men voor de snelle, tijdelijke oplossing gaat. Het is waarschijnlijk langzamerhand zo ingeslopen en misschien wel een bedrijfscultuur, maar nogmaals: zet jezelf daarboven, pak het professioneel aan en ga niet van work-a-round naar work-a-round. Als er geen geld is dan is daar altijd wel een oplossing voor te vinden imo. Maargoed, min of meer andere disucssie.
Codebase ? Welke Codebase ? Je bedoelt misschien dat ik de sessies wilde syncen via een MySQL replicatie ;)
De sessies worden al in de database opgeslagen? Dat had ik even niet meegekregen mijn excuses. Als dat niet zo is (voor zover ik kan lezen in het topic) dan zul je bij het anders afhandelen van sessies toch alles goed moeten testen, zoals ik al aan gaf, hoe ga je bijv. met redirects om?
Reken maar dat daar wel voor gezorgd is ;) En wie zegt dat er niet iets anders gebruikt gaat worden.... Jij wilde leren sleutelen en kocht een SL-55 om het blok er maar meteen eens even uit te lepelen ;)
Dus ik neem aan dat je nu 2 van die load balancers in gebruik heb en er nog 2 hele met spare parts op de plank hebt liggen? Overigens wil ik helemaal geen dure oplossing aandragen, juist een goedkopere (zie verwijzing richting IBM, 3Com e.d.).
Ja, dacht ik ook over, maar als je nu eerst eens even op termen als pbind gaat zoeken kun je kijken wat het doet ;)
Voor zover ik weet kan je onder sommige unixes met pbind een proces aan een bepaalde processor koppelen, ik snap niet helemaal wat het verband is in dit geval met load balancing op serverniveau.
No Offence hoor, je bedoelt het goed, Coden kun je ook, dat weet ik, maar ik denk dat je wat slaaptekort hebt (of niet goed leest).
Slaaptekort zou kunnen, lag er pas om 5:30 en moest er 10:30 weer uit ;) maar los daarvan zou ik toch eens kritisch kijken naar de huidige oplossing, voordat je nu de codebase (alle code mbt sessieafhandeling) gaat aanpassen op deze situatie, terwijl misschien uiteindelijk blijkt dat het helemaal niet zo lekker werkt. Maargoed wie ben ik in deze, zoals je al aan geeft probeer ik alleen maar een goed advies te geven.

@CyBeR: volgens mij is dat een beetje afhankelijk van de implementatie van de browser. Handshaking zou imo alleen maar aan het begin van sessie mogen gebeuren, en niet tussentijds. Dus ik kan me zo voorstellen dat er implementaties zijn waarin dit als een warning naar boven komt drijven. Het achterhalen van het sessie-id is niet zo moeilijk. Je kan aan de hand van (wat ik al zei) TCP window size/packet number in combinatie met het ip-adres precies achterhalen welke over TCP-connectie het ging of gaat. Alleen wanneer men of een dual load balanced internetverbinding (middels NAT) naar buiten gaat kan je problemen verwachten, maar het is dan eigenlijk aan de load balancer op locatie om ook die sessies goed af te handelen en telkens over dezelfde verbinding door te sturen.

[ Voor 16% gewijzigd door LauPro op 25-12-2005 14:01 ]

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

LauPro schreef op zondag 25 december 2005 @ 13:48:
Voor zover ik weet kan je onder sommige unixes met pbind een proces aan een bepaalde processor koppelen, ik snap niet helemaal wat het verband is in dit geval met load balancing op serverniveau.
pbind in dit geval staat voor Persistent Binding. Wat inhoudt dat 'ie bijhoudt welke sessie naar welke server gestuurd werd, en dat dus ook zo blijft doen tot de server uitvalt of de sessie verloopt.
@CyBeR: volgens mij is dat een beetje afhankelijk van de implementatie van de browser. Handshaking zou imo alleen maar aan het begin van sessie mogen gebeuren, en niet tussentijds.
Heb je gelijk in, maar in HTTP zelf bestaat er niet zoiets als een sessie. Je maakt een verbinding met een HTTP server, vraagt op wat je wilt hebben, en je verbinding wordt weer gesloten (of open gehouden met keepalive, maar dan wordt er nog altijd geen session bijgehouden in de httpd). Alle sessie-gebaseerde meuk op HTTP is afhankelijk van het op de een of andere manier heen en weer sturen van een session id (meestal via een cookie), en wordt vervolgens afgehandeld door een scripting engine a la php. Sessions liggen een laagje hoger dan HTTP.

[ Voor 3% gewijzigd door CyBeR op 25-12-2005 14:05 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


  • bakkerl
  • Registratie: Augustus 2001
  • Laatst online: 20-01 20:59

bakkerl

Let there be light.

CyBeR schreef op zondag 25 december 2005 @ 14:04:
[...]
pbind in dit geval staat voor Persistent Binding. Wat inhoudt dat 'ie bijhoudt welke sessie naar welke server gestuurd werd, en dat dus ook zo blijft doen tot de server uitvalt of de sessie verloopt.
pbind is echt zo'n oplossing voor ontwikkelaars welke niet kunnen zorgen dat hun sessie gedeeld wordt over verschillende machines. Dit is geheel mijn mening.

pbind lijkt een mooie oplossing en is ook mooi voor een eerste overzetting als je applicatie er nog niet voor gemaakt is om te werken met een loadbalancer, maar geen uiteindelijke oplossing. Doormiddel van pbind kan het voorkomen dat er als nog een server overbelast raakt, terwijl een andere geheel staat te idlen. Maar dit is geheel afhankelijk van je applicatie en gebruikt ervan.
Het is daarom naar mijn mening geen eind oplossing.

Even nagekeken wat die machine doet aan pbinding:
- Hash : leuk voor als je veel aanvragen krijgt van mensen achter een getNATte verbinding. Die gaan dan allemaal naar de zelfde machine, ook al staan er andere te idleen.
- Minimum Misses : zelfde als hash, wordt alleen intern anders verwerkt.
- SSL Session Tracking : dan moet je de gehele site onder SSL plaatsen wil dit werken.
- Cookie-based : Dan moet elke client wel cookies accepteren. is dit niet het geval dan gaat het dus mis om elke keer bij de zelfde server uit te komen (zo anno 1998).

[ Voor 25% gewijzigd door bakkerl op 25-12-2005 14:48 . Reden: pbinding mogelijkheden commentaar ]


Verwijderd

Topicstarter
@ LauPro. Het is duidelijk dat je het goed bedoelt, dat weet ik wel, waardeer ik ook :) Ik zet er waarschijnlijk even 2 in testopstelling om later in productie andere te gaan gebruiken wellicht. Technisch zijn ze 100% te ondersteunen dus dat zou nog niet eens een probleem zijn. Maar het gaat even om de tests en te kijken hoe goed het functioneert.

@bakkerl: Volgens mij weten weinig mensen dat pbind is. Je kunt de sessies tussen de servers wel delen maar dit is extra tricky en kost je waarschijnlijk wat load. Een LB-er is er niet voor niets mee uitgerust.

@Cyber: Volgens mij kunnen wij wat anders over die LB-er denken omdat we zelf zien in de CLI wat mogelijk is :?

Verwijderd

Topicstarter
Jammer dat de veel gebruikte 180-ers dat ook zo doen he ;)

Overigens kun je niet eens vertellen hoe je met "wght" dit soort zaken weer verder op kunt lossen.

Je gaat bijna denken dat mensen jaloers zijn dat ze dit zelf niet als studieobject kunnen gebruiken :(

[ Voor 37% gewijzigd door Verwijderd op 25-12-2005 15:07 ]


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

bakkerl schreef op zondag 25 december 2005 @ 14:39:
[...]


pbind is echt zo'n oplossing voor ontwikkelaars welke niet kunnen zorgen dat hun sessie gedeeld wordt over verschillende machines. Dit is geheel mijn mening.
Half eens. Voor SSL is 't gewoon noodzakelijk wil je de performance een beetje op peil houden. Maar non-SSL klopt 't wel. Daarom gebruik ik gewoon round-robin zonder persistence. De oudere versies van ons CMS kunnen load balancing niet aan (zijn er niet op geschreven). De oudste (v1) draaien dus op een aparte server, de minder oude (v2) worden omgezet naar de nieuwste (v3) en die is weer volledig geschreven met load balancing (en wat andere truukjes) in het achterhoofd.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • bakkerl
  • Registratie: Augustus 2001
  • Laatst online: 20-01 20:59

bakkerl

Let there be light.

Verwijderd schreef op zondag 25 december 2005 @ 14:53:
@bakkerl: Volgens mij weten weinig mensen dat pbind is. Je kunt de sessies tussen de servers wel delen maar dit is extra tricky en kost je waarschijnlijk wat load. Een LB-er is er niet voor niets mee uitgerust.
LoadBalancers zijn er mee uitgerust omdat er applicaties zijn welke niet omkunnen gaan met het feit dat ze geloadbalanced zijn. Dat een loadbalancer het ondersteunt moet je niet gebruiken omdat het kan. Je moet het gebruiken omdat het niet anders kan.

pbind zie ik als een laatste oplossing als een applicatie echt niet anders kan werken in een loadbalance omgeving.
Je gaat bijna denken dat mensen jaloers zijn dat ze dit zelf niet als studieobject kunnen gebruiken :(
Mensjes die niet regelmatig met loadbalancers mogen spelen misschien. Mijn mening over pbind kun je hier boven lezen en daar maak ik dan ook mijn opmerkingen over
quote: Cyber
Half eens. Voor SSL is 't gewoon noodzakelijk wil je de performance een beetje op peil houden. Maar non-SSL klopt 't wel. Daarom gebruik ik gewoon round-robin zonder persistence. De oudere versies van ons CMS kunnen load balancing niet aan (zijn er niet op geschreven). De oudste (v1) draaien dus op een aparte server, de minder oude (v2) worden omgezet naar de nieuwste (v3) en die is weer volledig geschreven met load balancing (en wat andere truukjes) in het achterhoofd.
Zie daar waarvoor je eventueel pbind kunt gebruiken. Omdat v1 er gewoon niet mee om kan gaan met LB omgeving. Maar niet als structuele oplossing.

Verwijderd

Topicstarter
Ik kan met sessies alle kanten op, dus jij zou liever een replicatie over DB's zien op beide servers ? Als me dat load scheelt dan ga ik liever voor pbind.

Verder komt er niets spannends achter te draaien opzich, het gebruikt wel SSL maar verder zal er weinig content op de servers gewijzigd gaan worden door users.

Ik zit dus niet aan een CMS vast dat moet kunnen LB-en. Zie het zo: Je maakt een website, ze er "hallo" op en iedereen wil jouw "hallo" zien. Wanneer server1 het te druk krijgt moet deze kunnen ontlast worden en als hij "dood" gaat ook uiteraard.

Het pbind verhaal wil ik gebruiken voor wat PHP-sessies die opgebouwd zullen worden.

Verwijderd

Topicstarter
OK, nog steeds aan het kijken naar alle mogelijkheden. Ik weet nog niet welke LB-er ik eens in productie zou willen gaan gebruiken aangezien de 180-ers over 5 weken ook EOL zijn, maar deze voldoet prima als Studieobject !

De 110 kan helaas geen trunking/bonding doen dus zoek ik naar een andere oplossing om even wat te testen als ik de NIC1-kabel eruit trek.

De enige oplossing zal zijn om NIC2 te starten als NIC1 down gaat.

Ik denk/hoop dat de arp-table dan zo spoedig mogelijk bijgewerkt zal zijn ivm hetzelfde adres op een ander HW-adres. Opzich geen probleem, het is mar een testopstelling, maar toch eens leuk om te bekijken. Wanneer een HW-address offline is wordt hij volgens mij toch wel gereleased.

Ik zioe geen arp-opties, dus deze zullen wel niet (lang) vastgehouden worden.

Iemand hier een mening over ?

[ Voor 30% gewijzigd door Verwijderd op 26-12-2005 17:09 ]


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Trunking (vlannen) kan 'ie ws. wel. Bonding niet? Mja ik zou zelf die 180 gebruiken. Heb je er twee? Dan valt er nog wel wat te failoveren ook namelijk. En afaik zijn ze beid EOL.

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
CyBeR schreef op maandag 26 december 2005 @ 17:07:
Trunking (vlannen) kan 'ie ws. wel. Bonding niet? Mja ik zou zelf die 180 gebruiken. Heb je er twee? Dan valt er nog wel wat te failoveren ook namelijk. En afaik zijn ze beid EOL.
Je weet dat de term "Trunking" per merk verschilt toch ? Jij hebt in de 180 een menu Trunking, zit in een 110 niet. Bonding is bij Alteon dus Trunking.

Ja, ik weet dat iedereen iets anders bedoelt met Trunking/Bonding/So on... Maar Alteon bedoelt met trunking dus Bonding.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Yep, dat weet ik. Maar omdat trunking en bonding (eigenlijk Link Aggregtion) nou eenmaal verschillende dingen zijn weiger ik zelf die namen verkeerd te gebruiken :P

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
CyBeR schreef op maandag 26 december 2005 @ 17:26:
Yep, dat weet ik. Maar omdat trunking en bonding (eigenlijk Link Aggregtion) nou eenmaal verschillende dingen zijn weiger ik zelf die namen verkeerd te gebruiken :P
Ben ik wel met je eens. Doet pijn als je je google-zoekopdracht hiervoor moet wijzigens soms ;)

Maar wat was jouw idee ? Maar via een script de NIC starten ? Die 110 kan het niet in ieder geval

  • bakkerl
  • Registratie: Augustus 2001
  • Laatst online: 20-01 20:59

bakkerl

Let there be light.

Verwijderd schreef op zondag 25 december 2005 @ 15:41:
Ik kan met sessies alle kanten op, dus jij zou liever een replicatie over DB's zien op beide servers ? Als me dat load scheelt dan ga ik liever voor pbind.
Nee, ik zou de voorkeur hebben om de webservers puur als webserver te gebruiken en geheel geen database op te zetten.
De database komt/komen op andere machine(s) welke er achter staan. Deze database machines(s) is/zijn op hun eigen manier weer high-available gemaakt.

Verwijderd

Topicstarter
bakkerl schreef op maandag 26 december 2005 @ 21:59:
[...]

Nee, ik zou de voorkeur hebben om de webservers puur als webserver te gebruiken en geheel geen database op te zetten.
De database komt/komen op andere machine(s) welke er achter staan. Deze database machines(s) is/zijn op hun eigen manier weer high-available gemaakt.
Ook een idee inderdaad.

Verwijderd

Topicstarter
Zeg Cyber, waarom had jij het over WEL vlannen en GEEN bonding ? Is dit opzich een vreemde combinatie dan ?

edit:


Ik zou eens met "Frame Tagging" kunnen spelen, dit kan je ook onder servers wel gebruiken.

Ik zie bij de 180 ook alleen maar 802.1q als alternatief. Maar het ding kan wel 802.1ad :?

[ Voor 63% gewijzigd door Verwijderd op 27-12-2005 13:46 ]


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op dinsdag 27 december 2005 @ 13:20:
Zeg Cyber, waarom had jij het over WEL vlannen en GEEN bonding ? Is dit opzich een vreemde combinatie dan ?

edit:
Ik zou eens met "Frame Tagging" kunnen spelen, dit kan je ook onder servers wel gebruiken.

Ik zie bij de 180 ook alleen maar 802.1q als alternatief. Maar het ding kan wel 802.1ad :?
Ik had 't over wat die 110 zou moeten kunnen, en vlans trunken (802.1q tagging) lijkt me daar wel onder vallen. De 180 kan zowel vlan trunks als link aggregation (met Cisco EtherChannel en 802.1ad)

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
Vlans Trunken kan de 110 wel. Dus dan zou je voor iedere poort een aparte vlan moeten maken en deze dan Trunken.

Daar kwam ik tenminste op uit.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Maar daar heb je weinig aan qua failover :P

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
CyBeR schreef op dinsdag 27 december 2005 @ 23:54:
Maar daar heb je weinig aan qua failover :P
Ligt eraan of je je uplink ook weer in de Vlan gooit, kijrg je weer het probleem dat je poorten via uplink kunnen gaan communiceren wellicht (lijkt me overigens niet).

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Voor failover wil je een van de volgende twee dingen:

• meerdere verbindingen met Spanning Tree
• meerdere verbindingen met Link Aggregation (802.1ad)

In beide gevallen zal als draadje 1 uitvalt draadje 2 het overnemen. (Met Link Aggregation heb je dan ook nog het voordeel van dubbele throughput bij twee draadjes). VLAN trunking is het omgekeerde: meerdere vlans over een verbinding (fysiek draadje of 802.1ad-verbinding). Daar heb je dus voor failover an sich niets aan.

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
Klopt, stond ergens op een site wel verkeerd uitgelegd... soort wiki-page.

Maarja, ik weet mijn god niet meer waarom ik niet meer aan Spanning Tree heb gedacht... :x Zeker teveel met leuke features bezig geweest :?

edit:


Maar HW-LB-ers zijn wel super leuk om mee te spelen :D

[ Voor 16% gewijzigd door Verwijderd op 28-12-2005 01:05 ]


Verwijderd

Topicstarter
Cyber, goede vraag voor jou.

Ik ben weer lekker bezig met die LB-er, leuk hobbie-project namelijk.

Wanneer ik het apparaat aan een router knoop zie ik geen IP's van de Virtual Servers. Zet ik Layer4 LB aan, dan wel.

Om een of andere reden kan de LB-er niet connecten naar de RealServers: even een Log:

Feb 16 0:49:32 slb: cannot contact real service 192.168.1.15:22
Feb 16 0:49:33 slb: cannot contact real service 192.168.1.16:443
Feb 16 0:49:39 slb: real server 192.168.1.16 operational
Feb 16 0:49:42 slb: real server 192.168.1.15 operational

Ik krijg deze meldingen ook bij poort 80, enzovoorts.

Het maakt niet uit of er een Firewall aan staat op de Linuxbak die er achter hangt.

Bezoeken op het Virt-IP werkt dus ook niet.

Poorten staan geforward van VirtServ naar RealServ en hangen in dezelfde groep.

[ Voor 7% gewijzigd door Verwijderd op 16-02-2006 02:37 ]


  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 16-02 14:14
Verwijderd schreef op donderdag 16 februari 2006 @ 00:54:
Om een of andere reden kan de LB-er niet connecten naar de RealServers: even een Log:

Feb 16 0:49:32 slb: cannot contact real service 192.168.1.15:22
Feb 16 0:49:33 slb: cannot contact real service 192.168.1.16:443
Feb 16 0:49:39 slb: real server 192.168.1.16 operational
Feb 16 0:49:42 slb: real server 192.168.1.15 operational

Ik krijg deze meldingen ook bij poort 80, enzovoorts.
Je loadbalancer werkt met checks, krijg je deze eerste twee meldingen, dan kan ie niet bij de realserver. De laatste twee geven aan dat de health-checks zijn gedaan en dat de services up zijn.
Het maakt niet uit of er een Firewall aan staat op de Linuxbak die er achter hangt.

Bezoeken op het Virt-IP werkt dus ook niet.

Poorten staan geforward van VirtServ naar RealServ en hangen in dezelfde groep.
Dit snap ik niet. Op een alteon hoef je niets te forwarden oid en op je servers ook niet.
Je maakt realservers aan. Daarna maak je groupen aan (die kan je overigens ook vergeten) en daarna voeg je die group toe aan een VIP (virtual IP).

Wat ik nog weleens vergeet is een "enable" in de menuutjes van een alteon.

Ik vermoed dat je vergeten bent "server" aan te zetten op je poorten van je servers en "client" op de poorten via welke je probeert je servers te benaderen.

[ Voor 7% gewijzigd door JMW761 op 16-02-2006 19:09 ]


Verwijderd

Topicstarter
JMW schreef op donderdag 16 februari 2006 @ 19:08:
[...]


Je loadbalancer werkt met checks, krijg je deze eerste twee meldingen, dan kan ie niet bij de realserver. De laatste twee geven aan dat de health-checks zijn gedaan en dat de services up zijn.
Hier ben ik me van bewust. Het vreemde is dat ik op het IP van de server er zelf wel bij kan, rare kwestie dus :?
[...]


Dit snap ik niet. Op een alteon hoef je niets te forwarden oid en op je servers ook niet.
Je maakt realservers aan. Daarna maak je groupen aan (die kan je overigens ook vergeten) en daarna voeg je die group toe aan een VIP (virtual IP).

Wat ik nog weleens vergeet is een "enable" in de menuutjes van een alteon.

Ik vermoed dat je vergeten bent "server" aan te zetten op je poorten van je servers en "client" op de poorten via welke je probeert je servers te benaderen.
Volgens de manual moet ik de poort toekennen die van de virtualsever naar de realserver gaat, dit doe ik dan ook netjes. Tevens moet ik per port de state aangeven die ik dan op "server" zet in plaats van "none". Hierdoor krijg ik een timeout op die poort, reset de LB-er of start de netwerkkaart opnieuw op en het is over.

Ook vreemd is dat hij 2 live IP's niet op "health" kan checken en deze daarom in VLAN0 zet terwijl deze gewoon in VLAN staan. Het mac-adres blijf ook op 00:00:00... enz. staan.

Enable heb ik goed op gelet. Goed dat je me daar nog aan herinnert, want dit wordt inderdaad snel vergeten.

Het is zeker zo simpel als je aangeeft, maarja.. werkt helaas niet zoals ik wil :'(

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Paste eens een /cfg/dump?

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
Heeft nu weing zin eigenlijk... config is vrij leeg.

Heb je een suggestie ? Dan hebben we een punt om te beginnen.

Of ik maak even een config aan en post die hier :)

  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 16-02 14:14
als je er niet uitkomt kan ik je de nortel site aanraden.

Staan allerlei PDF bestanden op die je zo kan downen met live voorbeelden.

ik vind het niet echt PNS om je een config te geven, of uitgebreide voorbeelden te posten.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op donderdag 16 februari 2006 @ 20:10:
[...]


Heeft nu weing zin eigenlijk... config is vrij leeg.
Maar d'r staat iets in dat volgens jou zou moeten werken maar dat niet doet. Als je mensen vraagt wat er mis is met je config is 't vaak goed om ze ook te laten weten hoe die config (of iig de relevante delen) er uit ziet (of zien).

All my posts are provided as-is. They come with NO WARRANTY at all.


  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 16-02 14:14
Verwijderd schreef op donderdag 16 februari 2006 @ 19:56:
Hierdoor krijg ik een timeout op die poort, reset de LB-er of start de netwerkkaart opnieuw op en het is over.
Resettende LB....klinkt als hardware error....tenminste, neem niet aan dat je er een paar gig overheen blaast als je aan het testen bent :)

Verwijderd

Topicstarter
JMW schreef op donderdag 16 februari 2006 @ 20:32:
[...]


Resettende LB....klinkt als hardware error....tenminste, neem niet aan dat je er een paar gig overheen blaast als je aan het testen bent :)
Nee, geen GIEGS nee :), gelukkig niet.

Eigenlijk is het meestal zo dat het hele IP niet meer te benaderen is op die port + state.


Ik ga even wat citeren uit de Manual, even wat typewerk :)

(dit is voor 3 servers, ik doe er 2)

# /cfg/ip
# addr 192.168.1.100

# /cfg/slb/real 1
# rip 192.168.1.2
# ena
# ../real 2
# rip 192.168.1.3
# ena
# ../real 3
# rip 192.168.1.4
# ena

# /cfg/slb/group 1
# add 1
# add 2
# add 3

# /cfg/slb/virt 1
# vip 192.168.1.1
# add http 1
# ena

# /cfg/slb/port 1
# state server
# ../port 2
# state server
# ../port 3
# state server

# /cfg/slb
# on
# apply
#save

en dan krijg ik inderdaad info bij /info/slb

(er zitten dacht ik geen typo's in.)

Dit is de meest simpele manier van LoadBalancen op een Alteon volgens mij en zou ook prima moeten werken.

Ik zal het ook eens inkloppen en dan de dump even posten.

  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 16-02 14:14
Verwijderd schreef op donderdag 16 februari 2006 @ 21:00:
[...]

# /cfg/slb/port 1
# state server
# ../port 2
# state server
# ../port 3
# state server
zet je ook even een poort op client...en dan preferable de poort waarvandaan je de VIP probeert te benaderen O-)

Verwijderd

Topicstarter
JMW schreef op donderdag 16 februari 2006 @ 21:46:
[...]


zet je ook even een poort op client...en dan preferable de poort waarvandaan je de VIP probeert te benaderen O-)
He, dat is handig :) Eens proberen... ik denk al...clients... wat nou dan O-)


edit:


Zet geen zoden aan de dijk :/

[ Voor 9% gewijzigd door Verwijderd op 16-02-2006 22:06 ]


  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 16-02 14:14
en nou echt een configdump ! :O

Verwijderd

Topicstarter
JMW schreef op donderdag 16 februari 2006 @ 22:10:
[...]


en nou echt een configdump ! :O
Ik was door het getest de VirtualServer en de Groep nu vergeten. Ik dacht dat ik ze er nog in had staan en zag het bij de DUMP. (was half 6 vannacht namelijk :))

De port/state/client deed hem het dus !!

Ik ben jou dankbaar JMW !!

[ Voor 5% gewijzigd door Verwijderd op 16-02-2006 22:20 ]


  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 16-02 14:14
no problem, 't is m'n werk :)

Verwijderd

Topicstarter
:)

Opzich is dat LB-en niet zo moeilijk, goed in te stellen enzovoorts.

Van die "state client" staat wel uitgelegd in die sample, maar was niet geheel duidelijk waarom die clients gezet moesten worden, ik dacht namelijk alleen voor die Vlan met aangesloten "local" clients.

Ach... eens wist jij het ook niet (neem ik aan) ;) Perfect de man !

[ Voor 7% gewijzigd door Verwijderd op 16-02-2006 22:29 ]


Verwijderd

Topicstarter
Nou de Alteon wordt bedankt, wat een stom ding :( Hij wisselt de IP's om in vergelijking met de HW-adressen waar ze op staan.

clear arp werkt niet... ding is gewoon EOL >:)

[ Voor 4% gewijzigd door Verwijderd op 20-02-2006 00:59 ]


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

:?

Ik heb er twee, en beide hebben nog nooit een MAC-adres bij een verkeerd IP-adres bedacht... Software versies 6 en 8.

[ Voor 12% gewijzigd door CyBeR op 20-02-2006 01:05 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
CyBeR schreef op maandag 20 februari 2006 @ 01:03:
:?

Ik heb er twee, en beide hebben nog nooit een MAC-adres bij een verkeerd IP-adres bedacht...
Alteon is bij mij vrij exit aan het worden, moet niet gekker worden...

Ik ga voor F5 denk ik, hoewel die Alteons wel super handig te configgen zijn.

Jammer dat de 180 nu ook EOL is... had een alternatief kunnen zijn... tenzij jij, Cyber, me weet te overtuigen :)

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

F5 is op zich gewoon een software bakje, afaik. Dan is 't beter om naar LVS te kijken volgens mij. Kost niets :)

Anyway ik heb twee 180's, waarvan een met SLB enabled. Die laatste doet z'n werk prima in de colo, voor die eerste heb ik nog wat andere plannen op kantoor.

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
LVS is leuk, maar misschien is een NetApp ook wel leuk ? LVS zit je weer met die kernels die je moet aanpassen (als ik het geheel goed heb). LVS is wel erg handig en uitbreidbaar.

Voor een NetApp moet ik eens gaan zoeken hoe dat met licenties zit als je zo'n ding niet nieuw zou kopen.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

LVS zit op zich gewoon in de kernel, dus je hoeft 't alleen maar mee te compilen (of de module te inserten), en daarna kun je met ipvsadm dingen doen.

All my posts are provided as-is. They come with NO WARRANTY at all.


Verwijderd

Topicstarter
CyBeR schreef op maandag 20 februari 2006 @ 01:45:
LVS zit op zich gewoon in de kernel, dus je hoeft 't alleen maar mee te compilen (of de module te inserten), en daarna kun je met ipvsadm dingen doen.


Het leek even goed te gaan, de IP's en mac's kwamen overeen. Helaas maar voorkorte duur :(




Nader onderzoek ingesteld :) (naar LVS)

Ik moet me eens gaan beraden wat leuk en handig is.

[ Voor 7% gewijzigd door Verwijderd op 20-02-2006 01:51 ]


  • eborn
  • Registratie: April 2000
  • Laatst online: 11-02 20:05
CyBeR schreef op maandag 20 februari 2006 @ 01:45:
LVS zit op zich gewoon in de kernel, dus je hoeft 't alleen maar mee te compilen (of de module te inserten), en daarna kun je met ipvsadm dingen doen.
En als je een beetje recente distro pakt (bijv. Debian) dan zit het er volgens mij allemaal al in. Dus dan is het puur een kwestie van de juiste settings en gaan :)

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 09:49

killercow

eth0

LVS is echt niet zo ingewikkeld als jij nu denkt, en de mailling-lists en IRC zijn altijd goed bevolkt, ik heb zelf ook vanuit de blue redelijk snel een redundante load balancer met 5 nodes +local_nodes kunnen opzetten.

echt ingewikkelde dingen als database en file replicatie heb je zowiezo mee te maken. of je nu een hardware of een software (lvs) oplossing kiest.

Deze machines zijn ook LVS gebaseerd, zijn niet TE duur, en de eigenaar van dat bedrijf zit vaak op de maillist van LVS, waar hij af en toe best een leuke donatie doet aan de ontwikkelaars, heb je alsnog geen hassels, en heb je wel de voordelen van 2 redelijke simpele uitbreidbare LVS servers.

http://www.loadbalancer.org/

openkat.nl al gezien?


  • LEiPiE
  • Registratie: Juni 2001
  • Laatst online: 12:09

LEiPiE

... (ing. van weinig woorden)

Wij hebben een simpel (en niet al te keurig) nood-PHP script voor het geval een user bij ons op een andere webserver terug komt (bijvoorbeeld in het geval dat men ingelogged is, naar een externe betaalsite gaat en vandaar wordt teruggeredirect, wij hebben helaas niet de luxe van een echte loadbalancer, dus gaat bij ons met het simpele principe van 2 A records voor een domein).
We houden in de sessie het server-ip bij en in het geval dat dat niet matched of de sessie leeg is maar er wel een sessieid is, dan wordt aan de zusterserver de sessie opgevraagd door hard de sessiefile uit te lezen uit PHP's session dir*. De inhoud parsen we om naar PHP-serialized formaat en sturen dat door. Op de 'nieuwe' server worden de ontvangen gegevens geunserialized en in de sessie gezet. Sessie krijgt meteen ook een nieuw ID mee.
Maar goed, dat is voornamelijk om een gat te dichten in een structuur die al niet lekker is, maar waar geen geld beschikbaar is (c.q. men geen geld wil vrijmaken) om 't te veranderen helaas.
LVS lijkt mij inderdaad interessant.

* het zou ook mogelijk moeten zijn om dat via PHP's session management te doen, maar dat wilde niet in de beschikbare tijd op dat moment, staat nog op de planning dat nader te bekijken, tot die tijd voldoet dit goed (u weet wel, het standaard management praatje: "het werkt toch?" ;))

[ Voor 14% gewijzigd door LEiPiE op 07-03-2006 14:56 ]

Papa x3, PHP-progger, Citrofiel, import-Tukker, muziekliefhebber


Verwijderd

Topicstarter
Leipie, misshien is het leuk als je een voorbeeld ergens online kan zetten met een stuk code of heb je dit ook weer ergens van een website ?

lk heb gisteren een Alteon 180 gekocht met Loadbalancing enabled, ik kom er voorlopig dus wel mee vooruit :)

Verwijderd

Topicstarter
Ik ben er trouwens ook achter dat die dingen, of eigenlijk samen met de server, vreselijk veel van RDNS houden :)

Werkt een stukkie beter.

Verwijderd

Topicstarter
Tock weer lekker aan het spelen. Het LB-en dat werkt, hiha !! >:)

Chapter 2 -> De sessies:

Om te beginnen, dit is een probleem.... OM verder te gaan, maar wel op te lossen (denk ik) !

Het idee was om de sessies in de MySQL database op te slaan en deze te repliceren naar de 2e server en andersom. Er zijn wat nadelen hieraan:
  • Master <> Master replicatie is niet zo vreselijk stabiel onder MySQL (zover ik begrijp).
  • Niet alle applicaties als phpMyAdmin kunnen hun sessie in een DB opslaan.
Ik denk er dus over om de sessies gewoon als file op te gaan slaan en met een real-time rsync iets achtigs de sessies op beide systemen gelijk te kunnen houden.

Er zal ongetwijfeld geopperd worden om een extra dedicated box te gebruiken als NFS of hier een MySQL-sessie-DB op te draaien. Ik ben hier van mening dat je het stukje redundancy wat je met LoadBalancen ook creëert weer wegneemt.

Mijn doel is dus 2 systemen die onafhankelijk van elkaar kunnen werken mocht er één falen. een HW-loadbalancer haalt de falende serer direct uit de pool, dus mocht de sessie-data op beide servers op dat moment gelijk zijn zou er geen probleem om moeten treden.

De vraag van deze post is dus eigenlijk of ik realtime de sessie-directory zou kunnen rsyncen om het sessie-probleem op te kunnen lossen.

Andere iedeeën zijn ook welkom, echter moeten deze van 2 systemen gebruik maken, en er mag geen 3e bij.

Wie weet komen we er wel uit :)

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

AFAIK kun je php alle sessies in je database laten opslaan door dat met wat code en je php.ini te regelen.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • HunterPro
  • Registratie: Juni 2001
  • Niet online
je zou idd een NFS mount kunnen gebruiken voor je sessies - maar ik vraag me af of dat wel is wat je wilt. Je zit al zo specifiek qua eisen, dat ik persoonlijk er voor zou kiezen een volledig database-gebaseerde session-engine te bouwen in php. Dan ben je van alle onmogelijkheden van de PHP sessiemanager af en kun je een hoop dingen een stuk beter regelen. Ik schat het in op twee a drie mandagen werk, op zich het dus wel waard ook.

[ Voor 10% gewijzigd door HunterPro op 20-03-2006 15:40 ]


Verwijderd

Topicstarter
HunterPro schreef op maandag 20 maart 2006 @ 15:39:
je zou idd een NFS mount kunnen gebruiken voor je sessies - maar ik vraag me af of dat wel is wat je wilt. Je zit al zo specifiek qua eisen, dat ik persoonlijk er voor zou kiezen een volledig database-gebaseerde session-engine te bouwen in php. Dan ben je van alle onmogelijkheden van de PHP sessiemanager af en kun je een hoop dingen een stuk beter regelen. Ik schat het in op twee a drie mandagen werk, op zich het dus wel waard ook.
Opzich is het het vast wel waard, het vreemde is alleen dat er te weinig mensen zijn op i-net die dit zelf ook al bedacht hebben. Dit zet me aan het denken... is het wel handig, stabiel genoeg, zo verder.

  • eborn
  • Registratie: April 2000
  • Laatst online: 11-02 20:05
Verwijderd schreef op maandag 20 maart 2006 @ 17:11:
Opzich is het het vast wel waard, het vreemde is alleen dat er te weinig mensen zijn op i-net die dit zelf ook al bedacht hebben. Dit zet me aan het denken... is het wel handig, stabiel genoeg, zo verder.
Ik denk dat de meeste mensen gewoon een database als backend gebruiken, eventueel gecombineerd met persistent verbindingen, zodat je een eventuele replicatievertraging voorkomt.

Verwijderd

Topicstarter
eborn schreef op maandag 20 maart 2006 @ 19:37:
[...]
Ik denk dat de meeste mensen gewoon een database als backend gebruiken, eventueel gecombineerd met persistent verbindingen, zodat je een eventuele replicatievertraging voorkomt.
Bedoel jij voor globaal PHP of per applicatie ? phpMyAdmin heeft bijvoorbeeld standaard geen MySQL-sessionhandler.

  • eborn
  • Registratie: April 2000
  • Laatst online: 11-02 20:05
Verwijderd schreef op maandag 20 maart 2006 @ 19:47:
Bedoel jij voor globaal PHP of per applicatie ? phpMyAdmin heeft bijvoorbeeld standaard geen MySQL-sessionhandler.
Globaal voor PHP. Door middel van de eerder genoemde auto_prepend ini regel. Hiermee zet je alle PHP sessies sowieso om. Applicaties die een database sessiemanagement hebben zullen toch al blijven werken. Hou je enkel de applicaties over die een eigen file-based sessiemanagement hebben. Daar zul je dan nog iets voor moeten verzinnen.

Verwijderd

Topicstarter
Ik wil deze discussie graag nog een keer aanzwengelen.

Ik ben hier weer eens in gedoken en het blijkt dat het niet makkelijk is om een sever letterlijk als mirror zonder bijkomst van een NFS of dedicated MySQL Sever te laten draaien. Dit zeker niet als master<>master opstelling.

De meest voor de hand liggende opstelling is master > slave > master > slave.

Dit geldt dan voor MySQL en data-replicatie op een partitie met drbd.

Drbd is een geschikt pakket hiervoor om dat je echt realtime je data kan syncen, alleen weer van Master > Slave en niet van Master > Master.

Ik heb een pakket gezien dat zelf uit kan maken wat de master en wat de slave is, ik ben de naam hier even van vergeten, die komt wel terug.

Ik had als idee om met heartbeat van een slave een master te maken wanneer de master uit valt.

Even een discussie-uitgangspunt: Het beste is dus Master > Slave > Master(of)Slave >Slave te gebruiken denk ik dan. Het probleem dat je met losse NFS-servers en MySQL servers hebt is dat je een Single-Point-Of Failure creeert, tuurlijk kan hier dezelfde constructie op toegepast worden zoals ik nu van server naar server zou willen doen, Slave maken met een replicatie, ik zie alleen niet in waarom je dat niet lokaal op de server zou draaien.

In dat geval heb je echt een cluster dat uit nodes bestaat en dat niet afhankelijk is van een Backend.

Het probleem dat zich wel voordoet is dat je van node2 geen sessie-data kan opslaan op node2 en kan transporteren naar Node1, wel naar naar beneden, node3 en node4.

Dat is even het punt waar ik op vast loop. Ik weet bijna zeker dat het zo moet kunnen gewoon.
Pagina: 1