Indledning
Jeg arbejder i en virksomhed, hvor vi køre mange batchjob forarbejdning af millioner af optegnelser over data hver dag, og jeg har tænkt for nylig om alle de maskiner, der sidder rundt om hver eneste dag at gøre noget i flere timer. Ville det ikke være godt, hvis vi kunne bruge disse maskiner til at styrke den regnekraft af vores systemer? I dette sæt af artikler jeg har tænkt mig at se på de potentielle fordele ved at ansætte et kontor gitter ved hjælp af virtualiserede miljøer.
I del 2 ser vi på de job, en server vil køre, og hvordan job skal konfigureres for at opnå størst forarbejdningsstøtte samtidig sikre, at hvert job er behandlet, uden at mislykkes.
Opsætning af din arbejdsplads - eller halte server
Det næste skridt i processen er at oprette din virtuelle medarbejdere. For denne jeg har tænkt mig at bruge en installation af CentOS bruge VirtualBox. Jeg har tænkt mig at installere mySQL og PHP på serveren, også kendt som en slatten (Li nux, m ySQL, P HP) Servera (jeg kan have gjort dette navn op).
- Installer VirtualBox på din Windows-maskine (følg link)
- Hent og installer CentOS (nuværende version 5.3) inden for en oprettet virtuel maskine
Der er ingen mening mig at gå til dette er der nok 1.000 'er af stor tutorials derude (ok, her er en: Oprettelse og Managing CentOS virtuel maskine under VirtualBox ). Det vigtige punkt at bemærke Jeg formoder, er, at jeg ringede til min virtuelle maskine GridMachine.
For så vidt angår mit valg af virtualisering klient og operativsystem gå der ikke er nogen stor tvingende grund for hvert valg. VirtualBox er noget, jeg bruger på min hjemme maskine, og er støttet af de tre store operativsystemer. Jeg valgte CentOS som sin et godt stabilt OS og jeg bruger det på min egen webserver. Jeg er en stor tilhænger af det rigtige værktøj til opgaven (selvom jeg anvender 'brug den hurtigste og nemmeste for dig' mentalitet her), så hvis styresystemet X kører din kode hurtigere og mere effektivt bruge dette i stedet:)
Det er vigtigt at sikre, at din VM bruger DHCP, ellers for hver ny virtuel maskine vil skulle konfigureres særskilt hvilket er noget, vi ikke want.By bruger DHCP vi behøver ikke at konfigurere netværksindstillinger individuelt for arbejdstager maskiner, vil DHCP hånd ud IP'er for dig. Derfor kan du kopiere din virtuelle maskine om kontoret uden at bekymre sig om opsætning hver en op (Dette forbedrer skalerbarhed og reducerer arbejdstager administration).
Den proces, du bør sigte på at opnå ville være at få en ny fysisk maskine, installere VirtualBox, og derefter stort set installere virtuelle billede uden meget andet. Det kan være klogt at sætte alle dine medarbejdere på et andet subnet, så du kan i det mindste se, hvor mange maskiner kører. Du skal også oprette dine maskiner på en lang lejekontrakt eller ubegrænset lejemål DHCP.
Sådan køres job på arbejdstageren
Dette er et interessant område, og der er flere gyldige metoder til behandling af jobs på arbejdstageren. Her Jeg vil bare diskutere de to mest oplagte:
- Bestandigt at køre script: Et script, det være sig en shell script, eller et PHP script udføres én gang på arbejdstageren og kører som en del af en uendelig løkke. Jeg har diskonteret denne metode som et brag af manuskriptet og potentielt dine medarbejdere vil ophøre med at køre uden en form for intervention.
- Cron baseret script udførelse: Hvert X minutter cron daemon starter et opkald til dit script til at få tingene i gang. Uden en vis kontrol af dette kan føre til mange mange kopier af dine arbejdstager scriptet kører.
Min beslutning var at gå med cron, som starter en shell script hver 10 minutes. Mit shell script, udfører følgende opgaver:
- Få en proces liste og grep dette for 'php'. Hvis den ikke findes derefter fortsætte.
- Ring til dit job kode, i mit tilfælde ville det være noget, der bygger PHP
- Worker scriptet afslutter sit løb
- Klar til at gå igen på det næste passende kalder
Min bash script ser ud som følger:
#! / Bin / sh
hvis ps ax | grep-v grep | grep php> / dev / null
Derefter
echo "Job er i øjeblikket behandling, frakørsel"
andet
echo "Job ikke kører, skal du starte nu"
php yourJobProcessingScript.php
fi Bemærk: ECHO er næsten fuldstændigt meningsløst, men det kan hjælpe den næste person, der kommer sammen for at prøve og redigere dem.
Hermed er opsætningen af arbejderen virtuelle maskine, hurtig, enkel og nem at kopiere til hvert nyt stykke hardware, der er modtaget. Den 'dygtighed' af elnettet er virkelig ikke i visualiseret OS, det hele at gøre med den kode, der oprettes til at behandle job, jobbet konfiguration, og i at sikre, at jobbet kører når det er relevant (dvs. når værten er inaktiv ).
Opsætning af Windows for at initialisere Workers
Den første opgave er at arbejde ud af den kommando kræves for at køre den virtuelle maskine fra vinduerne kommandolinjen. Hvis du har installeret VirtualBox på standardplaceringen, og du har kaldt dit arbejdstager GridMachine derefter kommandoen kræves for at indlæse dine arbejdstager er:
"C: \ Programmer \ søn \ VirtualBox \ VBoxManage.exe" startvm GridMachine
Men at køre script i en "hovedløs" state vi er nødt til at bruge:
"C: \ Programmer \ søn \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off
Dette vil starte den virtuelle maskine uden GUI og gør det muligt at spare staten yndefuldt. Det andet argument slukker RDP, så det ikke i konflikt med Windows RDP, eller give dig en besked om at lytte på port 3389. Den virtuelle maskine navn er store og små bogstaver!
Dernæst vil vi nødt til at sætte vinduer på op til kick off vores arbejdstager VM, når maskinen har været inaktiv. For at gøre dette (på Windows XP) Du bliver nødt til at gå Start -> Alle Programmer -> Tilbehør -> Systemværktøjer -> Planlagte Opgaver som nedenfor:
Klik derefter på 'Tilføj Scheduled Task "efterfulgt af Gennemse for at tilføje et brugerdefineret program. Navigere til din VBoxManage script og klik ok. Planlæg din opgave for nogen af de muligheder (vi vil ændre dette i et minut) og fortsætte. Efter at springe det næste skærmbillede Windows vil spørge dig, hvem du vil køre denne opgave, ville jeg foreslå enten 'Administrator' eller oprette en ny bruger med rettigheder. Husk at vi ikke ønsker at blande sig med den standard personalet konto på maskinen på noget tidspunkt. Klik på Næste og kontrol viser, avancerede indstillinger for denne opgave.
Til slutningen af kørslen tekstfeltet tilføje vores 'startvm GridMachine' snor og sikre, at der kun kører, når logget ind er tilbage unticked. Besøg tidsplanen opgaven næste og ændre tidsplanen drop ned til indstillingen ', når tomgang', vælge den tid, du ønsker at maskinen skal være ledig, før man går videre til næste fane.
Endelig Fjern markeringen den mulighed, der hedder at stoppe den opgave, hvis den har kørt X tid, men kryds mulighed for at stoppe den opgave, hvis maskinen ikke længere er ledig.
Det var det så for Windows host setup!
Resumé
I denne del har vi oprettet en virtuel maskine til at fungere som en arbejdstager, samt den måde, hvorpå vi kalder og udføre vores job behandling scripts (for mig selv en PHP script). Herfra ser vi på, hvordan du opsætter vores kopier af Windows til at starte den virtuelle maskine i hovedløse tilstand, når computeren bliver ledig, og gemme dens tilstand, når brugeren genoptager brugen af maskinen. Forhåbentlig på dette punkt du ser hvor nemt det er at etablere et sådant system og er kløe at få nogle eksperimenter gang selv!
Næste gang
I Kapitel 4 vil vi se på ved hjælp af værktøjer til at sikre, at du kører den nyeste version af kode og data kilder, så opnåede resultater er altid up-to-date med de nyeste forretningsoplysninger og logik.