Als je nu meerder webservers in een cluster hebt zitten waarover een website verspreid staat. En je wil je PHP sessies sharen over de meerdere servers.
Wat is dan de beste manier hiervoor? session_save path op NFS, sessies doen via MySQL, ...?
Als je nu meerder webservers in een cluster hebt zitten waarover een website verspreid staat. En je wil je PHP sessies sharen over de meerdere servers.
Wat is dan de beste manier hiervoor? session_save path op NFS, sessies doen via MySQL, ...?
Hier altijd via nfs of iets dergelijks gedaan. (Ook DRBD in andere setups)
Deze link is er vermoedelijk toch al('home' folders) en is het eenvoudigste te gebruiken.
Wat ik wel graag zou hebben is dat de sessions niet in een single-point-of-failure zitten. Bij NFS bijvoorbeeld, als de NFS server stilvalt kunnen er geen sessies gemaakt/gelezen worden. Wat uiteraard voor problemen zorgt in de applicaties.
Ik had zitten lezen over memcached, wat hiervoor volgens velen de beste oplossing zou zijn, facebook en dergelijke grote projecten werken er ook mee. Maar dan zit je toch nog steeds met een single point of failure, tenzij je dan met DRBD verschillende memcached servers realtime synct.
Wie zegt dat je NFS server standaard een SPOF zou zijn dan? Je kunt ook je NFS via DRDB dupliceren, of in geval van een enterprise NAS oplossing zijn daar vaak ook standaard modules en mogelijkheden voor. Maar heb je dan ook:
2 uplinks naar verschillende coreswitches bij je provider
2 firewalls in HA
2 switches in HA
etc?
Dat is waar, maar ik was eigenlijk opzoek naar de meest performante manier, en aangezien een memcached server alles in het geheugen zet zal dat ongetwijfeld performanter zijn dan NFS. Je kan inderdaad oneindig ver gaan wat HA betreft, jammer genoeg ook oneindig ver in budget .
waarom NFS met DRDB doen? kun je net zo goed die webbakken zelf laten DRDB'en.. dan heb je ook geen NFS link er tussen.. en kun je met 2 bakken minder af..
"Zo zijn ook wij één leverancier. Dé leverancier in gedegen Linux kennis, wanneer jij dat nodig hebt."
Boek je admin vandaag nog via : www.admin.nu
Gevestigd in Nederland en Moldavië
Lees hier de webhostingtalk.nl forum regels en voorwaarden!
Tuurlijk, maar dat ligt natuurlijk volledig aan hoe schaalbaar het moet zijn.. en wat het budget is je kan natuurlijk beginnen met 2 bakken DRDB en later daar een redundante storage achter plakken met NFS..
Ligt eraan wat je huidige setup is.
Maakt de website nu ook al gebruik van een database?
Als die afhankelijkheid er toch al is, kan je daar net zo goed meteen de sessies in stoppen.
Website maakt idd gebruik van een database (mysql).
Dan lijkt me dat toch het simpelste.
Het is ook relatief makkelijk om een multimaster setup met meerdere MySQL servers te maken, mits je daar in je database ontwerp rekening mee houd (met name m.b.t. auto increment velden).
DRBD tussen webservers gaat niet zondermeer werken.
Bij DRBD in combinatie met een "normaal" bestandssysteem kan er maar 1 node tegelijk het bestandssysteem gemount hebben.
Als alle webservers in je cluster tegelijk in gebruik zijn, en sessiedata willen kunnen wegschrijven, is dat dus een probleem.
Alleen met speciale cluster bestandssystemen is dat mogelijk, maar die hebben (IMHO) een nogal experimenteel karakter.
Bij Memcached worden alle gegevens in het geheugen opgeslagen en zijn deze weg op het moment dat de server waarop het draait down gaat.
Is dan ook alleen bedoeld voor het cachen van gegevens, die opnieuw gegenereerd kunnen worden.
Bij het ontwerpen van de database en applicatie is er rekening gehouden met schaalbaarheid, bij het ontwerpen van de applicatie ook. Zo is het geen probleem om mysql servers bij te plaatsen en meteen in gebruik te nemen. Voor sommige dingen zijn we zelf in onze applicatie voorbereid op database sharding.
Ben toevallig nu bezig met een memcache server te installeren.
Deze zal voorlopig wel SPOF zijn, maarja, de gebruikers moeten er maar genoegen mee nemen.