Innledning
Jeg jobber i et selskap hvor vi kjøre mange satsvise jobber behandling millioner av poster av data hver dag, og jeg har tenkt nylig om alle maskinene som sitter rundt hver eneste dag gjør ingenting for flere timer. Ville det ikke være bra hvis vi kunne bruke disse maskinene til å styrke behandlingskapasiteten til våre systemer? I dette settet av artikler jeg skal se på de potensielle fordelene ved å ansette et kontor rutenett med virtualiserte miljøer.
I del 2 har vi sett på de jobbene en server vil kjøre, og hvordan arbeidsplasser bør være konfigurert for å oppnå størst mengde behandling samtidig sikre at hver jobb blir behandlet uten å lykkes.
Sette opp arbeidstaker - eller limp server
Det neste trinnet i prosessen er å sette opp din virtuelle arbeidere. For dette jeg kommer til å bruke en installasjon av CentOS bruker VirtualBox. Jeg kommer til å installere mySQL og PHP på serveren, også kjent som en limp (Li Nux, m ySQL, P HP) Servera (jeg har kanskje gjort det navnet opp).
- Installer VirtualBox på Windows-maskinen (følg link)
- Last ned og installer CentOS (nåværende versjon 5.3) innenfor et skapt virtuell maskin
Det er ingen vits meg å gå til denne er det sannsynligvis 1000 's flotte tutorials der ute (ok, her er ett: Lage og Managing CentOS virtuelle maskinen under VirtualBox ). Det viktige punkt å merke jeg antar er at jeg ringte min virtuell maskin GridMachine.
Såvidt mitt valg av virtualisering klient og operativsystem går er det ingen stor overbevisende grunn for hvert valg. VirtualBox er noe jeg bruker på min hjemme maskin og er støttet av de tre store operativsystemene. Jeg valgte CentOS som sin en god stabilt OS og jeg bruker det på min egen web server. Jeg er en stor tro på de riktige verktøyene for jobben (selv om jeg søker 'bruk den raskeste og enkleste for deg' mentalitet her), så hvis operativsystemet X kjører koden din raskere og mer effektivt bruke den i stedet:)
Viktigere sørge for at VM bruker DHCP, ellers for hver ny virtuell maskin ville må konfigureres separat som er noe vi ikke want.By bruker DHCP vi ikke trenger å konfigurere nettverksinnstillinger individuelt for arbeideren maskiner, vil DHCP hånd ut IP for deg. Derfor kan du kopiere den virtuelle maskinen rundt i kontoret uten å bekymre deg om å sette hver og en opp (dette forbedrer skalerbarhet og reduserer arbeideren administrasjon).
Prosessen du bør sikte på å oppnå ville være å skaffe en ny fysisk maskin, installere VirtualBox, og deretter ganske mye distribuere virtuelt bilde uten mye annet. Det kan være lurt å sette alle dine arbeidere på et annet subnett, slik at du kan i det minste se hvor mange maskiner kjører. Du trenger også å sette opp maskinene på en lang leieavtale eller ubegrenset lease DHCP.
Hvordan kjøre jobber på arbeideren
Dette er et interessant område og det er flere gyldige metoder for prosessering jobber på arbeideren. Her skal jeg bare diskutere de to mest åpenbare:
- Stadig kjører script: Et skript, det være seg et skall skript eller et PHP-script kjøres en gang på arbeideren og løper som en del av en uendelig loop. Jeg har diskontert denne metoden som et krasj av skriptet og potensielt dine arbeidere vil slutte å kjøre uten noen form for intervensjon.
- Cron baserte skript gjennomføring: Hver X minutter cron daemon starter en samtale til skript for å få ting i gang. Uten noen sjekker dette kan føre til mange mange kopier av arbeideren skript.
Min beslutning var å gå med cron som starter et skall skript hver 10 minutes. My shell script utfører følgende oppgaver:
- Få en prosess liste og grep dette for 'php'. Hvis ikke fant deretter fortsette.
- Ring jobben din kode, i mitt tilfelle dette skulle bli noe PHP baseres
- Worker skript fullfører sin løpe
- Klar til å gå igjen på neste passende kaller
Min bash script ser omtrent ut som følgende:
#! / Bin / sh
hvis ps ax | grep-v grep | grep php> / dev / null
deretter
echo "Job er for tiden behandling, exit"
ellers
echo "Job ikke kjører, starter nå"
php yourJobProcessingScript.php
fi Merk: echo-er er nesten helt meningsløs, men kan bidra til den neste personen som kommer sammen for å prøve og redigere dem.
Det konkluderer oppsett av arbeideren virtuell maskin, rask, enkel og lett å kopiere til hver ny maskinvare som er mottatt. The 'klokskap' av bæresystemet er virkelig ikke i visualiseres OS, alt å gjøre med koden opprettet for å behandle jobber, jobben konfigurasjon, og i å sørge for at jobben går når det er hensiktsmessig (dvs. når verten er inaktiv ).
Sette opp Windows til å initialisere Workers
Den første oppgaven er å arbeide ut kommandoen kreves for å kjøre den virtuelle maskinen fra windows kommandolinjen. Hvis du har installert VirtualBox på standard plassering, og du har gitt arbeidstakeren GridMachine deretter kommandoen som kreves for å laste opp arbeideren er:
"C: \ Program Files \ sø \ VirtualBox \ VBoxManage.exe" startvm GridMachine
Men å kjøre skriptet i en "hodeløs" state vi trenger å bruke:
"C: \ Program Files \ sø \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off
Dette vil starte den virtuelle maskinen uten GUI og la den for å spare staten grasiøst. Det andre argumentet slår av RDP så det ikke kommer i konflikt med vinduer RDP, eller gi deg en beskjed om å lytte på port 3389. Den virtuelle maskinen navn er store og små bokstaver!
Deretter må vi sette vinduene opp til kick off våre arbeideren VM når maskinen er uvirksom. For å gjøre dette (på Windows XP) du trenger for å gå Start -> Alle Programmer -> Tilbehør -> Systemverktøy -> Planlagte oppgaver som følger:
Neste klikk på "Legg til planlagt oppgave" etterfulgt av bla å legge til et egendefinert program. Naviger til VBoxManage skriptet og trykk ok. Planlegg din oppgave for noen av alternativene (vi kommer til å endre dette i ett minutt) og fortsette. Etter å hoppe over det neste skjermbildet windows vil spørre deg hvem du vil kjøre denne oppgaven, vil jeg foreslå enten 'Administrator' eller opprette en ny privilegert bruker. Husk at vi ikke ønsker å forstyrre standard personalet konto på maskinen på noe punkt. Klikk Neste og sjekk viser avanserte alternativer for denne oppgaven.
Til slutten av oppkjøringen tekstboksen legge vår "startvm GridMachine 'streng og sørge for at bare kjøre når du er innlogget er igjen merket av. Besøk planlegge oppgaven neste og endre planen falle ned til alternativet 'når idle ", velge hvor mye tid du ønsker at maskinen skal være inaktiv før du går videre til neste fane.
Endelig fjern merket det alternativet som sier stopp oppgaven hvis den har kjørt X tid, men merk muligheten til å stoppe oppgave hvis maskinen er ikke lenger ledig.
Det er det da for windows host setup!
Oppsummering
I denne delen har vi satt opp en virtuell maskin til å fungere som en arbeidstaker, samt måten vi kaller og gjennomføre vår jobb behandling skript (for meg et PHP-script). Herfra ser vi på hvordan du setter opp vår kopier av vinduene for å starte opp den virtuelle maskinen i hodeløse modus når maskinen blir inaktiv, og lagre tilstanden når brukeren gjenopptar bruken av maskinen. Forhåpentligvis på dette punktet du ser hvor enkelt det er å sette opp et slikt system, og er spent på å få noen eksperimenter gang selv!
Neste gang
I Del 4 vil vi se på bruk av verktøy for å sikre at du kjører den nyeste versjonen av koden og datakilder, slik at oppnådde resultater er alltid up-to-date med de nyeste forretningsinformasjon og logikk.