PDA

Bekijk Volledige Versie : Cluster en Cronjobs



Toon
01/12/07, 18:28
Hi,

Ik zit momenteel met de gedachtes over een cluster.
Hoe zit dit met cronjobs?

Als een hostingpakket een cronjob heeft, en deze over alle cluster nodes in de crontab staat, dan zal die dus 5 keer gestart worden, niet echt de bedoeling.
Je zou 1 server alle cronjobs kunnen laten afhandelen, maar wat als die uitvalt?
Of zouden 2 servers met cronjobs moeten draaien die elkaar opvangen middels heartbeat?

Heeft iemand hier ervaring mee, of beter nog, een oplossing voor gemaakt?

SF-Jeroen
01/12/07, 19:00
De cronjob wordt toch maar op 1 server gedraait? Een cluster werkt alsnog maar met 1 Storage server naar mijn weten...

Jurian
01/12/07, 19:02
Cronjobs gewoon mee replicaten naar alle servers, alleen netjes een check er in bouwen of de server waar de cronjob op gestart wordt, wel de master is. Zo ja, draait 't script gewoon, zo nee, gebeurt er niets.

AlexanderOnline
01/12/07, 19:27
De cronjob wordt toch maar op 1 server gedraait? Een cluster werkt alsnog maar met 1 Storage server naar mijn weten...
Nee, de storage server is puur voor opslag. Je laat andere servers in het clustur de pagina's serveren en ook crons verwerken.

Toon
01/12/07, 20:19
Cronjobs gewoon mee replicaten naar alle servers, alleen netjes een check er in bouwen of de server waar de cronjob op gestart wordt, wel de master is. Zo ja, draait 't script gewoon, zo nee, gebeurt er niets.

Die oplossing zou wel kunnen, maar denk dat je dan te moeilijk gaat denken.
Het lijkt me eerder dat hier een makkelijkere oplossing voor is.

masterpe
01/12/07, 20:25
Ik zou in eerste instantie gewoon 1 server gebruiken. Als het nodig voor bijvoorbeeld extra zekerheid, dan kan je later een tweede server gaan gebruiken.

Wat je kan toen bij een cronjob die elke vijf minuten moet lopen, server cronjob1 op de even tientallen laten werken en op cronjob2 de oneven tientallen laten werken. Hierdoor is bij uitval van altijd een server die de cronjobs draait maar dan minder vaak.

Toon
03/12/07, 18:19
Misschien dat Wido van PCX wil reageren, dat is toch een bekende partij met een Clustertechniek, en Byte zit (zover ik weet) niet op WHT.

bami82
03/12/07, 18:40
Hoe cluster jij, wat voor cluster software gebruik je en hoe repliceer jij je data?

Toon
03/12/07, 18:42
Ehm, meerdere Linux servers (slackware) en in repliceer niets, er is gewoon 1 fileserver.
Maar dat lijkt me totaal niet relevant voor dit probleem.

bami82
03/12/07, 18:58
Alles wat je in je cronjob heb zitten, kan je ook gewoon vanuit 1 script opstarten (BASH, Ruby, php cli whatever). Vervolgens is het vrij eenvoudig om te checken of een cronjob wel heeft gelopen en zoniet alsnog uit te voeren. Eigenlijk zoals Jurian al aangeeft. Vrij eenvoudig te doen allemaal.

masterpe
03/12/07, 19:36
Zo kan je het inderdaad ook doen.Je moet er ook aandenken wat je doet als het script langer loopt dan de interval van de cronjob. Of je moet alle opdrachten paralel starten.

Wido
03/12/07, 19:48
Misschien dat Wido van PCX wil reageren, dat is toch een bekende partij met een Clustertechniek, en Byte zit (zover ik weet) niet op WHT.Ja hoor!

Onze Shell servers zijn allemaal gevirtualiseerd in een Xen omgeving. Daar hebben we weer een failover in.

Je wil namelijk je klanten niet opzadelen met het feit dat zei een check maken in hun cron om te voorkomen dat hij 10x wordt uitgevoerd, dat werkt niet.

In je cluster moet je ook taken uitbesteden.

Stel je hebt 7 servers:
- 4x webserver
- 1x FTP-server
- 1x SSH-server
- 1x SQL-server

De webservers kan je gewoon draaien, die hebben geen crons nodig.

De andere 3 servers kan je weer virtualiseren en een failover op doen, door middel van Xen en iSCSI.

Op je storage draai je dan NFS voor de webservers en de websites en iSCSI voor de virtuele machine's.

Je moet het je zelf niet te moelijk gaan maken met allemaal checks e.d., dat maakt de boel allemaal zo complex dat er daardoor fouten gaan optreden.

phreak
03/12/07, 21:36
Wij hebben recentelijk een cluster online gebracht,

hierin is onze configuratie:

6 x Webserver (Handling)
1 x NFS (Filesystem)
2 x MySQL
1 x Control server

Vanuit de Control server schrijven we per Handling server die in use is een file uit met een (serie) commando(s) als er iets gedaan moet worden op een bepaalde server gewoon met command`<serverid>`.sh bestand op de handling server draait er een cronjob elke 5 minuten die kijkt of het bestand bestaat, zoja, dan voert hij de handelingen uit die in het bestand staan uit, en verwijderd het bestand daarna weer.

De control server monitored ondertussen ook de health van de machines qua temperatuur, processes e.d.

Loadbalancing wordt gedaan dmv Cisco Localdirectors (die in failover met elkaar draaien).