Inleiding
Ik werk in een bedrijf waar we lopen veel batch jobs verwerking miljoenen records van de gegevens elke dag en ik heb onlangs na te denken over alle machines die zitten elke dag niets te doen voor enkele uren. Zou het niet goed zijn als we zouden kunnen gebruiken om systemen die machines versterking van de rekenkracht van onze? In deze reeks van artikelen die ik ben gaan kijken naar de potentiële voordelen van het gebruik van een kantoor raster met behulp van gevirtualiseerde omgevingen.
In deel 2 hebben we gekeken naar de banen van een server wordt uitgevoerd, en hoe werkgelegenheid moet worden geconfigureerd om te mislukken bereiken grootste hoeveelheid van de verwerking tegelijkertijd voor te zorgen dat elke taak wordt verwerkt zonder.
Het opzetten van uw werknemer - of "limp-server
De volgende stap in het proces is het opzetten van uw virtuele werknemers. Voor dit ga ik een installatie van CentOS met behulp van VirtualBox te gebruiken. Ik ga te installeren mySQL en PHP op de server, ook wel bekend als een slap (Li nux, m ySQL, P PK) Servera (Misschien heb ik die naam up).
- VirtualBox installeren op je Windows machine (volg link)
- Download en CentOS (huidige versie 5.3) te installeren in een virtuele machine gemaakt
Het heeft geen zin mij gaat dit er waarschijnlijk 1,000 's van grote tutorials die er zijn (ok, hier is een: maken en Managing CentOS virtuele machine onder virtualbox ). Het belangrijkste punt om op te merken denk ik is dat ik belde mijn virtuele machine GridMachine.
Zover gaat mijn keuzes van virtualisatie-client en het besturingssysteem is er geen grote dwingende reden voor elke keuze. VirtualBox is iets wat ik op mijn eigen machine en wordt ondersteund door de drie grote besturingssystemen. Ik koos voor CentOS als een goede stabiele OS en ik gebruik het op mijn eigen webserver. Ik ben een groot voorstander van het juiste gereedschap voor de job (hoewel ik het toepassen van 'gebruik maken van de snelste en makkelijkste voor jou' mentaliteit hier), dus als het besturingssysteem X-code, voert je sneller en efficiënter te gebruiken in plaats dat:)
Belangrijk Zorg ervoor dat uw VM DHCP gebruikt, anders is voor elke nieuwe virtuele machine zou moeten apart worden geconfigureerd dat is iets wat we niet want.By via DHCP we hoeven niet individueel te configureren netwerkinstellingen voor werknemer machines, zal DHCP hand uit IP's voor je. Dus u kunt uw virtuele machine over het kantoor zonder zich te bekommeren over het instellen van een ieder up (dit verbetert de schaalbaarheid en vermindert de werknemer administratie).
Het proces dat je moet streven te bereiken zou zijn om een nieuwe fysieke machine te verkrijgen, VirtualBox installeren, en vervolgens vrij veel het virtuele beeld te zetten zonder veel anders. Het is misschien verstandig om setup al uw werknemers op een ander subnet, zodat u kunt tenminste zien hoeveel machines draaien. U moet ook het opzetten van uw machines op een erfpacht of een onbeperkte lease DHCP.
Hoe te Jobs draaien op de werknemer
Dit is een interessant gebied en er zijn diverse geldige methoden voor de verwerking van banen op de werknemer. Hier zal ik gewoon bespreken de twee meest voor de hand liggende:
- Voortdurend het uitvoeren van scripts: Een script, zij het een shell-script, of een PHP-script wordt een keer uitgevoerd op de werknemer en loopt als onderdeel van een oneindige lus. Ik heb scherp geprijsde deze methode als een crash van het script en mogelijk uw werknemers zullen ophouden te lopen zonder enige vorm van interventie.
- Cron gebaseerd script execution: Elke x minuten de cron daemon start een oproep om uw script op gang te krijgen. Zonder enige controle kan dit leiden tot vele, vele kopieën van uw werknemer script draait.
Mijn besluit was om te gaan met cron die start een shell-script om de 10 minutes. Mijn shell script voert de volgende taken:
- Hier krijg je een lijst met processen en grep dit voor 'php'. Als deze niet gevonden dan verder.
- Bel uw taak-code, in mijn geval zou dit iets zijn gebaseerd op PHP
- Werknemer script voltooit zijn run
- Klaar om opnieuw te gaan op de volgende geschikte oproep
Mijn bash-script ziet er als volgt uit:
#! / Bin / sh
Als ps ax | grep-v grep | grep php> / dev / null
dan
echo "Job is momenteel de verwerking, de afslag"
anders
echo "Job is niet draait, start nu"
php yourJobProcessingScript.php
fi Opmerking: de echo's zijn bijna volledig zinloos, maar kan hen helpen de volgende persoon die langs komt om te proberen te bewerken en.
Dat concludeert de set-up van de werknemer virtuele machine, snel, eenvoudig en gemakkelijk te kopiëren naar elke nieuwe stuk hardware dat wordt ontvangen. De 'slimheid' van het net niet echt in de gevisualiseerde OS, zijn alle te maken met de code die te verwerken banen, de baan configuratie, en ervoor te zorgen dat het werk wordt uitgevoerd wanneer nodig (dat wil zeggen wanneer de host inactief is ).
Het opzetten van Windows Werknemers Initialise
De eerste taak is te werken buiten de opdracht nodig zijn om de virtuele machine van de Windows command line uit te voeren. Als u hebt geïnstalleerd VirtualBox in de standaard locatie en je hebt de naam van uw werknemer GridMachine vervolgens de opdracht nodig is om te laden van uw werknemer:
"C: \ Program Files \ zon \ VirtualBox \ VBoxManage.exe" startvm GridMachine
Maar om het script in een 'headless' staat die we moeten gebruiken uit te voeren:
"C: \ Program Files \ zon \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off
Dit start de virtuele machine zonder dat de GUI en laat het netjes op te slaan staat. Het tweede argument gaat uit RDP, zodat het niet in strijd is met windows RDP, of geeft u een boodschap over luisteren op poort 3389. De virtuele machine naam is hoofdlettergevoelig!
Vervolgens moeten we naar windows opgezet om kick off van onze werknemer VM zodra de machine inactief is geweest. Om dit te doen (op Windows XP) je nodig hebt om te gaan Start -> Alle Programma's -> Bureau-accessoires -> Systeemwerkset -> Geplande Taken als volgt:
Klik vervolgens op 'Geplande taak toevoegen ", gevolgd door bladeren naar een aangepast programma toe te voegen. Navigeer naar uw VBoxManage script en klik op OK. Plan uw taak voor een van de opties (we zullen deze verandering in een minuut) en ga verder. Na het overslaan van het volgende scherm Windows zal u vragen wie je deze taak wilt uitvoeren, zou ik stel ofwel 'Administrator' of het creëren van een nieuwe bevoorrechte gebruiker. Onthouden we willen niet te bemoeien met de standaard personeel account op de machine op elk punt. Klik op Volgende en controle blijkt geavanceerde opties voor deze taak.
Naar het einde van de run tekstvak toe te voegen onze 'startvm GridMachine' string en ervoor zorgen dat alleen wordt uitgevoerd wanneer ingelogd wordt overgelaten afgevinkt. Bezoek het schema taak de volgende keer op en neer te veranderen het schema vallen op de optie 'idle', de hoeveelheid tijd die u wilt de machine inactief moet kiezen voordat u naar het volgende tabblad.
Ten slotte uitvinken van de optie die staten stoppen met de taak als deze is het draaien van X hoeveelheid tijd, maar vink de optie om de taak te stoppen als de machine is niet meer actief is.
Dat is het dan voor de Windows host setup!
Samenvatting
In dit deel hebben we het opzetten van een virtuele machine op te treden als een werknemer, alsook de manier waarop we bellen en uit te voeren onze taak de verwerking van scripts (voor mezelf een PHP-script). Vanaf hier kijken we naar hoe het opzetten van onze exemplaren van Windows om het opstarten van de virtuele machine in headless mode wanneer de computer inactief, en sla de staat wanneer de gebruiker hervat gebruik van de machine. Hopelijk op dit punt je ziet hoe eenvoudig het is om een dergelijk systeem en staan te popelen om wat experimenten te gaan jezelf!
Volgende keer
In deel 4 zullen we kijken naar het gebruik hulpmiddelen om ervoor te zorgen dat je de logica de nieuwste versie van de code en gegevensbronnen zodat de verkregen zijn resultaten altijd up-to-date met de nieuwste zakelijke informatie en.