Kantoor Grid Computing met behulp van virtuele omgevingen - Deel 3
Introductie
Ik werk in een bedrijf waar lopen we een groot aantal batch-taken die worden verwerkt miljoenen records van de gegevens elke dag en ik heb onlangs na te denken over alle machines die zitten elke dag niets doen voor meerdere uren. Zou het niet goed zijn als we zouden kunnen gebruiken die machines voor de verwerking kracht van onze systemen te versterken? In deze reeks artikelen ga ik kijken naar de potentiële voordelen van het gebruik van een kantoor rooster met behulp van gevirtualiseerde omgevingen.
In deel 2 hebben we gekeken naar de banen een server draait, en hoe banen moet worden geconfigureerd om de grootste hoeveelheid van de verwerking te bereiken tegelijkertijd voor te zorgen dat elke opdracht wordt verwerkt zonder mankeren.
Het opzetten van uw werknemer - of slap server
De volgende stap in het proces is het opzetten van uw virtuele werknemers. Voor deze ga ik een installatie van CentOS met behulp van VirtualBox te gebruiken. Ik ga installeren MySQL en PHP op de server, ook wel bekend als een slappe (Li nux, m ySQL, P HP) Servera (ik heb die naam up).
- Installeer VirtualBox op uw Windows-machine (volg link)
- Download en CentOS (huidige versie 5.3) te installeren in een virtuele machine gemaakt
Het heeft geen zin me gaan dit is er waarschijnlijk 1000 's van de grote tutorials die er zijn (ok, hier is een: maken en Managing CentOS virtuele machine onder virtualbox ). Het belangrijkste punt om op te merken Ik neem aan dat ik belde mijn virtuele machine GridMachine.
Wat als mijn keuzes van virtualisatie client-en besturingssysteem te gaan is er geen grote dwingende reden voor elke keuze. VirtualBox is iets wat ik gebruik op mijn home machine en wordt ondersteund door de drie grote besturingssystemen. Ik heb gekozen voor CentOS als een goede stabiele OS en ik gebruik het op mijn eigen webserver. Ik ben een groot voorstander van de juiste tools voor het werk (hoewel ik het toepassen van hier 'de snelste en eenvoudigste te gebruiken voor je' mentaliteit), dus als besturingssysteem X draait je code sneller en efficiënter gebruik dat in plaats daarvan:)
Belangrijk is ervoor te zorgen dat uw VM DHCP gebruikt anders, voor elke nieuwe virtuele machine zou moeten apart geconfigureerd worden dat is iets wat we niet want.By gebruik van DHCP we hoeven niet individueel te configureren netwerkinstellingen voor werknemers machines, zal DHCP hand uit IP's voor je. Daarom kunt u kopieert uw virtuele machine over het kantoor zonder zorgen te maken over het instellen van een ieder op (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 kan verstandig zijn om al uw werknemers setup op een ander subnet, zodat u kunt in ieder geval zien hoeveel machines draaien. U moet ook het instellen 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 verschillende valide methoden voor de verwerking van banen op de werknemer. Hier heb ik maar gewoon bespreken de twee meest voor de hand liggende:
- Voortdurend draaien script: Een script, zij het een shell script, of een PHP-script wordt eenmalig 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 zal ophouden te draaien zonder enige vorm van interventie.
- Cron op basis van script execution: Elke x minuten de cron daemon start een oproep om je script om dingen te gaan. Zonder enige controle dit kan leiden tot heel veel kopieën van uw werknemer script draait.
Mijn besluit was om te gaan met cron, die start een shell script iedere 10 minutes. Mijn shell script voert de volgende taken:
- Hier krijg je een lijst met processen en grep dit voor 'php'. Indien niet gevonden ga dan verder.
- Bel uw job-code, in mijn geval zou dit op basis van wat PHP
- Werknemer script voltooid zijn run
- Klaar om weer op de eerstvolgende oproep
Mijn bash script ziet er ongeveer als volgt uit:
#! / Bin / sh Als ps ax | grep-v grep | grep php> / dev / null dan echo "Job is op dit moment verwerkt, afslag" anders echo "Job niet wordt uitgevoerd, nu beginnen" php yourJobProcessingScript.php fi
Let op: de echo's zijn bijna volledig zinloos, maar kan de volgende persoon, die komt langs om te proberen en te bewerken hen te helpen.
Dat concludeert de opzet van de werknemer virtuele machine, snel, eenvoudig en gemakkelijk te kopiëren naar elk nieuw stuk hardware die wordt ontvangen. De 'slimheid' van het net is niet echt in de gevisualiseerde OS, zijn alle te maken met de code het leven geroepen om banen, de baan configuratie, en in ervoor te zorgen dat het werk wordt uitgevoerd indien van toepassing (dwz wanneer de host is niet actief proces ).
Het instellen van Windows voor werknemers initialiseren
De eerste taak is om samen de opdracht uit die nodig om de virtuele machine te lopen vanaf de windows command line. 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 uit te voeren in een 'headless' staat moeten we gebruiken:
"C: \ Program Files \ zon \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off Dit start de virtuele machine zonder dat de GUI en laat het elegant op te slaan staat. Het tweede argument gaat uit RDP, zodat het niet in strijd is met ramen RDP, of geven u een bericht over het luisteren op poort 3389. De virtuele machine is hoofdlettergevoelig!
Vervolgens moeten we naar windows opgezet om kick-off onze werknemer VM nadat de machine is inactief is. Om dit te doen (op Windows XP) je nodig hebt om te gaan Start -> Alle Programma's -> Bureau-accessoires -> Systeemwerkset -> Geplande taken, zoals hieronder:
Klik vervolgens op 'nieuwe 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 zal Windows je vragen wie je deze taak wilt uitvoeren, zou ik stel voor ofwel 'Administrator' of het creëren van een nieuwe bevoorrechte gebruiker. Denk eraan dat we willen niet met de standaard personeel account op de machine interfereren op elk gewenst moment. Klik op Volgende en controleer show geavanceerde opties voor deze taak.
Naar het einde van de run tekstvak toe te voegen onze 'startvm GridMachine' string en zorg ervoor dat alleen wordt uitgevoerd wanneer ingelogd wordt gelaten uitgevinkt. Bezoek de planning taak volgende en verander het schema naar beneden vallen om de optie 'als idle', kies de hoeveelheid tijd die u wilt dat de machine inactief worden voordat u naar het volgende tabblad.
Eindelijk de optie uitvinken waarin staat stoppen met de taak als deze is het draaien van X hoeveelheid tijd, maar de optie om de taak te stoppen vinkje als de machine is niet meer actief.
Dat is het dan voor de ramen host setup!
Overzicht
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 hoe het opzetten van onze kopieën van Windows op te starten van de virtuele machine in headless modus wanneer de computer inactief, en sla de staat wanneer de gebruiker hervat gebruik van de machine. Hopelijk op dit punt ben je zien hoe eenvoudig het is om een dergelijk systeem en staan te popelen om nog wat experimenten gaan zelf!
Volgende keer
In deel 4 zullen we kijken naar het gebruik van gereedschap om ervoor te zorgen dat u de meest recente versie van de code en gegevensbronnen draaien zodat de verkregen resultaten zijn altijd up-to-date met de nieuwste zakelijke informatie en logica.




















































[...] Deel 3 gaan we creëren onze virtuele machine en het opzetten van onze Windows-machines te worden [...]
[...] Deel 3 hebben we onze virtuele machine en het opzetten van Windows-machines aan idle-time worden [...]
U bent een zeer ervaren blogger, je hebt de kwaliteit begrip van wat je het hebt over of je wel een aantal fantastische onderzoek. Bedankt voor deze uitstekende post.