Inlägg taggade: idle

Office Grid Computing använder virtuella miljöer - Del 3

Genom att , fredag ​​4 dec 2009 23:37

Införandet

Jag arbetar i ett företag där vi köra många batchjobb behandla miljontals skivor av data varje dag och jag har funderat nyligen om alla de maskiner som sitter runt varje dag gör ingenting i flera timmar. Skulle det inte vara bra om vi kunde använda dessa maskiner för att stärka processorkraften i våra system? I denna uppsättning artiklar jag kommer att titta på de potentiella fördelarna med att anställa ett kontor galler med virtualiserade miljöer.

I del 2 tittade vi på de jobb en server kommer att köra, och hur jobben ska konfigureras för att uppnå största möjliga behandling och samtidigt säkerställa att varje jobb behandlas utan att misslyckas.

Ställa in arbetare - eller halta server

Nästa steg i processen är att ställa in dina virtuella anställda. För detta jag kommer att använda en installation av CentOS med VirtualBox. Jag ska installera mySQL och PHP på servern, även känd som börjar halta (Li Nux, m ySQL, P HP) Servera (jag kan ha gjort det namnet upp).

  • Installera VirtualBox på din Windows-maskin (följ länk)
  • Ladda ner och installera CentOS (nuvarande version 5,3) i en skapad virtuell maskin

Det är ingen idé jag gå till denna finns det nog 1.000-tals stora tutorials där ute (ok, här är ett: Skapa och Managing CentOS virtuella maskinen under VirtualBox ). Det viktiga att notera antar jag är att jag ringde min virtuell maskin GridMachine.

När det gäller mina val av virtualisering klient och operativsystem åka dit är ingen stor övertygande skäl för att varje val. VirtualBox är något jag använder på mitt hem maskinen och stöds av de tre stora operativsystemen. Jag valde CentOS som det är en bra stabil OS och jag använder det på min egen webbserver. Jag är en stor anhängare av rätt verktyg för jobbet (även om jag ansöker "använda den snabbaste och enklaste för dig" mentalitet här), så om operativsystem X körs din kod snabbare och mer effektivt utnyttja den istället :)

Viktigt att din VM använder DHCP, annars för varje ny virtuell maskin skulle behöva konfigureras separat vilket är något vi inte want.By använder DHCP vi inte behöver konfigurera nätverksinställningar individuellt för arbetsdatorer kommer DHCP lämna ut IP-adresser för dig. Därför kan du kopiera din virtuella maskin om Office utan att oroa om hur var och en upp (detta förbättrar skalbarheten och minskar arbetare administration).

Processen bör du sträva efter att uppnå skulle vara att få en ny fysisk maskin, installera VirtualBox och sedan ganska mycket distribuera den virtuella bild utan mycket annat. Det kan vara klokt att ställa alla dina anställda på ett annat subnät så att du åtminstone kan se hur många maskiner igång. Du måste också ställa in dina maskiner på ett långt hyreskontrakt eller obegränsad leasing DHCP.

Hur man kör jobb på arbetstagaren

Detta är ett intressant område och det finns flera giltiga metoder för bearbetning jobb på arbetstagaren. Här ska jag bara diskutera de två mest uppenbara:

  • Ständigt köra skript: Ett skript, antingen det är en skalskript eller ett PHP-skript körs en gång på arbetstagaren och körs som en del av en oändlig slinga. Jag har diskonterat denna metod som ett kraschen manuset och potentiellt dina anställda kommer att upphöra att köras utan någon form av intervention.
  • Cron-baserade skript utförande: Var X minuter cron-demonen startar ett samtal till ditt manus för att få saker och ting. Utan någon kontroll kan detta leda till många, många kopior av arbetstagarens skript som körs.

Mitt beslut var att gå med cron som drar igång ett script var 10 minutes. mitt skal skript utför följande uppgifter:

  1. Få en process lista och grep detta för "php". Om den inte hittas sedan fortsätta.
  2. Ring ditt jobb koden, i mitt fall skulle detta vara något PHP baserade
  3. Arbetare script slutför loppet
  4. Redo att gå igen på nästa lämpliga samtal

Min bash script ser ut ungefär så här:

  #! / Bin / sh
 om PS AX | grep-v grep | grep php> / dev / null
 därefter
     echo "Job närvarande bearbetar, avfart"
 annars
     echo "Job inte körs, starta nu"
     php yourJobProcessingScript.php
 fi 

OBS: ECHO: s är nästan helt meningslöst, men kan hjälpa nästa person som kommer med till försöka redigera dem.

Som avslutar uppsättningen av arbetstagaren virtuella maskinen, snabbt, enkelt och lätt att kopiera till varje ny maskinvara som tas emot. Den "skicklighet" av nätet är egentligen inte i visualiseras OS, dess alla att göra med koden skapades för att processen jobb, jobb konfiguration, och i att se till att jobbet körs när så är lämpligt (dvs när värden är inaktiv ).

Ställa in Windows för att initiera arbetare

Den första uppgiften är att träna kommandot krävs för att köra den virtuella maskinen från fönstren kommandoraden. Om du har installerat VirtualBox på standardplatsen och du har döpt din arbetstagarens GridMachine sedan kommandot som krävs för att ladda upp din arbetstagare:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Men för att köra skriptet i en "huvudlös" stat måste vi använda:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Detta kommer att starta den virtuella maskinen utan GUI och låt den för att spara tillståndet graciöst. Det andra argumentet stängs RDP så det inte strider mot fönster RDP, eller ge dig ett meddelande om att lyssna på port 3389. Den virtuella maskinen Namnet är skiftlägeskänsligt!

Därefter behöver vi ställa fönster upp till avspark vårt arbetstagaren VM när maskinen har varit inaktiv. För att göra detta (i Windows XP) du behöver för att gå Start -> Alla program -> Tillbehör -> Systemverktyg -> Schemalagda aktiviteter enligt nedan:

schemalagda aktiviteter

Klicka sedan på "Lägg till schemalagd aktivitet" följt av några för att lägga till ett anpassat program. Navigera till din VBoxManage manus och klicka på ok. Schemalägg din uppgift för någon av alternativen (vi kommer att ändra detta i en minut) och fortsätta. Efter att hoppa över nästa skärm fönstren kommer att fråga dig vem du vill köra den här uppgiften, skulle jag föreslå antingen "Administratör" eller skapa en ny privilegierad användare. Kom ihåg att vi inte vill störa standard personalen konto på maskinen när som helst. Klicka på Nästa och kontrollera visar avancerade alternativ för denna uppgift.

Till slutet av körningen textrutan lägga till vår "startvm GridMachine 'string och se till att löpa först när Inloggad omarkerad kvar. Besök schemat uppgiften nästa och ändra schemat falla ner till alternativet "när inaktiv", välj den tid du vill att maskinen ska vara inaktiv innan man går vidare till nästa flik.

Slutligen avmarkera det alternativ som anger stoppa aktiviteten om den har varit igång X tid, men välj alternativet för att stoppa uppgiften om maskinen inte längre ledig.

schemalägga

Det är det då för Windows Host setup!

Sammanfattning

I denna del har vi satt upp en virtuell maskin för att fungera som arbetstagare, liksom det sätt på vilket vi kallar och exekvera våra skript lönbearbetning (för mig själv ett PHP-skript). Härifrån vi tittar på hur man ställer upp våra exemplar av Windows att starta upp den virtuella maskinen i huvudlösa läge när datorn blir ledig, och spara dess tillstånd när användaren återupptar användning av maskinen. Förhoppningsvis på denna punkt du ser hur enkelt det är att inrätta ett sådant system och längtar efter att få några försök att gå själv!

Nästa gång

I del 4 kommer vi att titta på med verktyg för att se till att du kör den senaste versionen av kod och data källor så att resultaten alltid up-to-date med den senaste affärsinformation och logik.

Office Grid Computing använder virtuella miljöer - Del 1

Genom att , fredag ​​4 dec 2009 11:23

Införandet

Jag arbetar i ett företag där vi köra många batchjobb behandla miljontals skivor av data varje dag och jag har funderat nyligen om alla de maskiner som sitter runt varje dag gör ingenting i flera timmar. Skulle det inte vara bra om vi kunde använda dessa maskiner för att stärka processorkraften i våra system? I denna uppsättning artiklar jag kommer att titta på de potentiella fördelarna med att anställa ett kontor galler med virtualiserade miljöer.

Som en PHP utvecklare jag kommer att använda verktyg som jag använder varje dag, nämligen Linux, mySQL , PHP, VirtualBox och Subversion (SVN). Men jag hoppas att denna guide kommer anpassa sig till andra språk och tekniker lika bra.

Lösningen ger jag kommer att vara mycket löst baserad på den typ av behandling vi skulle behöver för att uppnå men detta kanske inte är sant genom hela artikeln som jag kommer att ändra saker och ting för enkelhetens skull, eller för att producera mer intressanta användning scenarier.

Dessa virtualiserade miljöer kommer att köras på Windows-maskiner eftersom det är vad majoriteten av kontor köras. De behandlingar som den kontorsmaskiner inte ska störa personalen att använda dessa maskiner bör kräver inget underhåll på maskinen och vara lätt att sättas på nya maskiner när de blir tillgängliga. Dessutom bör nya virtuella maskiner kräver ingen ytterligare konfiguration eftersom det kraftigt minskar skalbarhet och lätthet med vilken nätet kan förlängas.

Varför Distribuera ett Office Computing Grid?

Först kanske du tänker, varför inte bara använda en resurs cloud computing som Amazons EC2-plattform ? Väl anledningarna kan vara flera, till exempel:

  • Du kommer inte överlåta vissa uppgifter till ett moln datormiljö
  • Du kan inte ställa vissa data i ett cloud computing miljö för juridiska skäl (t.ex. uppgifter att lämna landet), eventuellt av juridiska skäl, t.ex. NHS poster.
  • Du vill behålla dina processenheter stänga och har full kontroll över hårdvaran för
  • Du har inte projektmedel för att köra moln instanser
  • Ditt kontor har inte en anslutning till Internet och därför det är inte möjligt att använda ett moln resurs
  • Du gillar inte regn, moln föreslår regn, därför du håller borta

Jag är säker på listan skulle kunna fortsätta, men jag tror det räcker för nu.

Fördelar med ett Office Computing Grid

Tja, kan göra några matte (och i sann fysik stil kan göra några svepande antaganden). Tänk dig att du har stora biffiga bearbetning server som kör 100 jobb per dag. På kontoret har du 50 maskiner som är tomgång 16 timmar om dagen, är vart och ett av dessa maskiner 10% så kraftfull som din biffiga behandling Sever. (Alla resultat här är rundade underskatta prestandaökning).

Så 1 maskin * 10% effekt * 2/3 tid = 0,067 dvs 1 skrivbordet bearbetning i viloläge tiden kunde bearbeta 6 fulla jobb per dag.

Om du nu skala upp detta tar det 15 lediga skrivbord för att bearbeta så många jobb per dag som din huvudsakliga behandlingen server gör.

Så i vårt låtsas kontor 50 maskiner vi kunde öka vår processorkraft från 1 server upp till 4 fulla bearbetning servrar, eller vi kan behandla 400 jobb per dag istället för 100.

Lägg märke till att inga investeringar i ny hårdvara företaget har just ökat sin batch-bearbetning kapacitet 4 gånger! Potentiellt du kommer att öka din elförbrukning utan från de flesta kontorsmiljöer Jag har varit i maskiner i allmänhet kvar på natten ändå, så du kan se detta som en grön initiativ.

Andra fördelar innebär också att investeringar i nya (eller uppdaterad) bearbetning servrar kan fördröjas om dina kontorsmaskiner är tillräckliga och att när du förbättrar kraften i dina kontorsmaskiner kontoret nätet blir mer kraftfull automatiskt.

Technologies

Vad du behöver? (Eller mer korrekt vad gjorde jag använder):

  • Idle kontorsmaskiner (i mitt fall en extra gammalt Windows XP laptop)
  • VirtualBox (eller en annan virtualisering klientprogram)
  • En virtuell maskin med PHP, MySQL running kör en skära ner OS, jag ringer dessa mina Limp servrar :)
  • Jobb för att köra
  • Job server (kan vara en annan virtuell maskin någonstans)

Typiska jobb

De typer av jobb som detta system är konstruerat att köras är följande:

  • Systemet får en förteckning över uppgifter på vilka vi måste matcha och ger resultat
  • Matchande innebär kontroll / söka flera (ganska statisk) datakällor
  • Resultat från datakällor kan kräva ytterligare validering, sammanslagning, kontroll av ytterligare datakällor som svar till resultat
  • Data tillbaka med matchande poster som är fullt validerade och bearbetas
  • Varje post inom ett jobb är oberoende av de övriga

Så i princip vi tittar på kör jobb som kräver en blandning av databas uppslagningar och några siffertuggande, en ganska typiskt scenario i en företagsmiljö.

Grid lösningar är inte bara fördelaktigt för behandling av arbeten av denna typ. I princip kan varje process som kan delas upp i självständiga enheter köras parallellt. Se denna Wikipedia för exempel och mer information: Grid Computing , men ett par kända exempel är Seti @ Home och BIONC . Det finns ramar för att köra datorer galler, och dessa är väl värda att titta närmare på.

Vad ska vi uppnå?

Vid slutet av dessa artiklar hoppas jag att visa att distribuera ett kontor nätet behöver inte vara enormt dyrt eller tidskrävande. Jag kommer att diskutera:

  • Koppla in systemet kontroll över arbetet, jobbet konfiguration
  • Skapa en lämplig behandling virtuell maskin
  • Hur man ställer in systemet på en Windows-dator
  • Se till att du använder den senaste koden och data
  • Deployment och benchmarking
  • Blickar framåt

Jag är huset (ok jag byggde, så skrev) ett exempel för att testa begreppen på en lokal dator med Windows XP och min "GridMachine" virtuell maskin. Mitt jobb kontrollen servern kommer att vara min huvudsakliga dator som kör Fedora 11 .

Detta är inte på något sätt tänkt att visa en fullt fungerande robust system, innebar det mer av en demonstration och diskutera visar att dessa saker kan uppnås på ett relativt kort tid och till låg kostnad. Du får gärna skicka mig kommentarer, korrigeringar eller förbättringar och jag kommer göra mitt bästa för att hålla den här artikeln uppdateras för att matcha.

Nästa gång

I del 2 kommer jag börja med att titta på jobbet styrsystemet, och se i hur arbete ska konfigureras för att uppnå största möjliga behandling och samtidigt säkerställa att varje jobb behandlas utan att misslyckas.













Panorama Tema av Themocracy

3 besökare online nu
2 gäster, 1 bots, 0 medlemmar
Max besökare idag: 9 på 12:52 am UTC
Denna månad: 56 kl 25-04-2012 08:41 am UTC
I år: 69 vid 27-02-2012 09:56 am UTC
Tiderna: 130 kl 28-03-2011 10:40 UTC