Categoria: Computació Grid

Oficina de Grid Computing utilitzant entorns virtuals - Part 4

Per , divendres 4 desembre 2009 23:59

Introducció

Jo treballo en una empresa en què ens trobem molts llocs de treball de processament per lots de milions de registres de dades de cada dia i he estat pensant darrerament sobre totes les màquines que se sentin al voltant de cada un i cada dia sense fer res durant diverses hores. No seria bo si poguéssim utilitzar aquestes màquines per reforçar el poder de transformació dels nostres sistemes? En aquest conjunt d'articles que vaig a veure els beneficis potencials de l'ocupació d'una oficina de la xarxa utilitzant entorns virtualitzats.

En la part 3 que hem creat la nostra màquina de processament virtual i configurar les màquines de les finestres per convertir-se en temps d'inactivitat dels treballadors.

L'execució de l'últim codi

Inevitablement, després de crear la lògica de negoci de treballadors canviarà, els errors es troben, el codi més ràpida i eficient es produeix el que deixa als seus treballadors es van asseure al voltant de processament de dades utilitzant el codi vell pudent . Llavors, com ens assegurem que sempre estem utilitzant la versió més recent i més gran dels nostres scripts de processament?

Hi ha unes quantes formes senzilles molt fàcil que poguéssim fer això, el truc, però, és reduir la potència de processament i el tràfic de xarxa per aconseguir això. Anem a començar amb el més simple de les solucions i millorar a poc a poc més d'un parell d'iteracions.

El primer mètode seria simplement connectar al nostre servidor de control de treballs (a través de samba, FTP, o similar) i baixar l'última versió del codi. No és molt eficient, però farà el treball. Permet millorar això una mica, què hi ha de la creació d'un script de rsync i l'ús que cada vegada que en el seu lloc? D'altra banda això de posar el nostre últim guió de transformació en la subversió revisant el codi inicialment i després simplement actualitzar el codi a cada execució ( svn update )?

Al final, podria acabar amb un script bash (anomenat per cron cada 10 minuts), que sembla tan simple com això:

  #! / Bin / sh
 si ps ax | grep-v grep | grep php > / dev / null
 llavors
     echo "Job està processant, la sortida"
 més
     echo "El treball no s'executa, comença ara"
     cd / ruta / a / treball / còpia
     svn update
     php yourJobProcessingScript.php
 fil 

Ara podem estar segurs que amb cada carrera que definitivament estem executant el codi més recent. Estem garantint això actualitzant la nostra base de codi cada vegada que realitzem una carrera i la reducció de trànsit de la xarxa només la transferència de les diferències d'arxius a través de la nostra xarxa.

En la meva configuració de demostració, vaig fer exactament com abans. Subversion ha instal lat en el meu servidor de processament dels treballs i jo simplement va treure la darrera versió del codi d'un "treballador" Poder utilitzar 'svn update'. També he afegit una etiqueta de nombre de versió del meu script de transformació que va ser retornat a la base de dades com a part de la devolució de resultats. D'aquesta manera vaig poder veure que el meu codi s'actualitza cada vegada que he copiat el meu tronc en la branca dels treballadors, és a dir que jo era definitivament l'execució del script de processament més avançada.

Utilitzant les últimes dades

Si el processament dels treballs fa ús de fonts de dades llavors en algun moment aquests seran actualitzat també. A menys que vostè truqui a les seves fonts de dades sobre una base molt poc freqüent que va a inundar la xarxa amb un trànsit tan aviat com els seus treballadors començaran a portar tot a un punt mort. Per a mi solució, vaig decidir que m'agradaria passar els meus fonts de dades amb els meus màquines virtuals.

Mantingui vostè està cavalls allà! Què passa si les meves fonts de dades són enormes? Bé, això és realment un cas de com les dades de quant estem parlant? Pot ser més rendible que instal lar una addicional en el disc dur de major capacitat en cada màquina de comprar un servidor de processament addicional. Aquesta és una qüestió de pressupost i correspon a l'empresa per decidir. És potser que les seves fonts de dades són tan grans que és només factible per mantenir aquesta quantitat de dades en les màquines del seu treballador. En aquest cas, què faries? Bé podríem considerar trucar a un servidor de dades local, però això podria causar problemes a la xarxa. En aquest cas, un sistema de xarxa d'aquest tipus pot arribar a ser poc realista que inclogui en el seu entorn d'oficina. També pot ser que vostè pot mirar en estratègies alternatives de funcionament, per exemple, només trucant als seus treballadors 8 p.m.-06 a.m. cada nit i / o limitació de peticions origen de dades.

Passant permet dir que la nostra quantitat de dades de fonts de 100 GB de dades. Doncs sí que és una mica de dades per moure per la xarxa en una actualització. Com ens assegurem de tenir l'última còpia de les dades en aquest cas? Rsync és una possibilitat, però personalment crec que mitjançant l'execució de la seva última font de dades al servidor de processament de la tasca i configurar-lo com un mestre en la replicació (amb un registre de bin llarga i bonica) podria ser el camí a seguir:

replicació Mitjançant l'establiment de cada un dels seus treballadors com un esclau de les actualitzacions del servidor de control de treball a les seves fonts de dades tinguin un efecte positiu molt bé als seus treballadors sense un gran increment en l'activitat de xarxa (és a dir, llevat que realitzi una actualització de dades de grans dimensions i tots els seus treballadors un cop de peu a al mateix temps). Això té avantatges sobre rsync en què no tindria una llarga pausa abans de cada treball, com les actualitzacions de base de dades, mysql dimoni en el seu treball contínuament actualitzar les seves dades, mentre que el procés continua.

Així és com puc configurar el meu servidor de demostració. Per configurar la replicació he seguit la guia en el lloc de MySQL ( Configuració de la replicació ) i en 20 minuts tenia el meu treball Inicial replicar el control del treball els servidors de dades. Per cada treballador addicional de la configuració de la replicació i el procés de treball cada vegada que la màquina virtual s'ha copiat.

Resum

En aquesta secció de l'article que hem vist el fàcil i indolor que és mantenir el codi de processament fins a la data per rsync using o subverion (SVN) per fer la feina i reduir el trànsit de xarxa en el mateix archivo.Una També parlem sobre com per mantenir la seva informació de la font de dades posada al dia pel que li arribin a cadascun dels seus treballadors. Així, zona que permet que mantinguem amb la lògica de negoci i la informació en el nostre sistema de xarxa d'oficines. Hi haurà, òbviament, innombrables alternatives per realitzar aquestes tasques, però en aquest cas van ser dos exemples simples per demostrar el fàcil que és una solució d'aconseguir.

La propera vegada

A la part final d'aquesta sèrie, ben anomenada la part 5 , anem a parlar de la implementació d'aquest sistema. Vaig a resumir el que s'ha après i el que he aconseguit crear.

Oficina de Grid Computing utilitzant entorns virtuals - Part 1

Per , Divendres 04 de desembre 2009 23:23

Introducció

Jo treballo en una empresa en què ens trobem molts llocs de treball de processament per lots de milions de registres de dades de cada dia i he estat pensant darrerament sobre totes les màquines que se sentin al voltant de cada un i cada dia sense fer res durant diverses hores. No seria bo si poguéssim utilitzar aquestes màquines per reforçar el poder de transformació dels nostres sistemes? En aquest conjunt d'articles que vaig a veure els beneficis potencials de l'ocupació d'una oficina de la xarxa utilitzant entorns virtualitzats.

Com PHP desenvolupador que vaig a utilitzar les eines que ús cada dia és a dir, Linux, MySQL , PHP, VirtualBox i Subversion (SVN). No obstant això, espero que aquesta guia s'han d'adaptar a altres idiomes i les tecnologies igual de bé.

La solució que proporcioni serà molt vagament basada en el tipus de processament que havia necessitat d'aconseguir però, això no pot ser cert tot l'article que vaig a canviar les coses per la simplicitat, o per produir escenaris d'ús més interessant.

Aquests entorns virtualitzats es poden executar en màquines Windows, ja que això és el que la majoria de les oficines d'executar. El tractament que les màquines d'oficina no ha d'interferir amb el personal amb les màquines, que no requereixen manteniment en la màquina, i ser fàcil d'implementar per les noves màquines a mesura que estiguin disponibles. A més, les noves màquines virtuals no han d'exigir cap tipus de configuració addicional, ja que redueix en gran manera l'escalabilitat i la facilitat amb què pot ser el sistema de xarxa estesa.

Per què implementar una Oficina de Grid Computing?

En primer lloc vostè pot estar pensant, per què no fer servir un recurs de computació en el núvol com la plataforma d'Amazon EC2 ? Bé les raons poden ser diverses, per exemple:

  • No va a confiar a certes dades a un entorn de cloud computing
  • No es pot posar algunes dades en un entorn de cloud computing per raons legals (per exemple, dades d'abandonar el país), el que pot per raons legals, per exemple, els registres de l'NHS.
  • Vostè vol mantenir les seves unitats de processament de prop i tenir un control total sobre el maquinari també
  • No té els fons del projecte a executar instàncies de núvols
  • La seva oficina no té una connexió a Internet i per tant, que no és possible utilitzar un recurs de núvols
  • No li agrada la pluja, els núvols suggereixen la pluja, per tant, mantenir-se ben lluny

Estic segur que la llista podria continuar, però crec que és suficient per ara.

Avantatges d'una Oficina de Grid Computing

Bé, farem alguna cosa de matemàtiques (i en cert estil de la física li permet fer algunes suposicions d'escombrat). Imagini que té gran servidor de processament fornit funcionament 100 llocs de treball per dia. A la seva oficina té 50 màquines que estan inactius 16 hores al dia, cadascuna d'aquestes màquines és de 10% més potent que el processament de trencar fornit. (Tots els resultats aquí s'arrodoneixen a subestimar augmentar el rendiment).

Per tant, una potència de la màquina * 10% * 2 / 3 = 0,067 és a dir, el temps de processament d'un escriptori en el temps d'inactivitat podria procés de sis llocs de treball per jornada.

Si ja escala això es requereixen 15 ordinadors d'escriptori ociosa per processar tants llocs de treball per dia, com el seu servidor de processament principal ho fa.

Així que a la nostra oficina pretendre de 50 màquines podríem augmentar la nostra capacitat de processament d'un servidor de fins a 4 servidors de processament complet, o podríem estar processant 400 llocs de treball per dia en lloc de 100.

Cal notar, per no invertir en nou maquinari de la seva empresa acaba d'augmentar la seva capacitat de processament per lots 4 vegades! Possiblement augmentarà el seu consum d'energia, sinó de la majoria d'entorns d'oficina que han estat en les màquines són generalment a l'esquerra en la nit de tota manera, així que podeu veure això com una iniciativa ecològica.

Altres avantatges també significa que la inversió en nous (o actualitzats) els servidors de processament es pot retardar si els ordinadors d'oficina són suficients i que a mesura que millora la potència de les seves màquines de l'oficina de la seva xarxa d'oficines es torna més poderosa de forma automàtica.

Tecnologies

El que vostè necessita? (O més aviat el que va fer que jo faig servir):

  • Màquines d'oficina d'inactivitat (en el meu cas un recanvi velles finestres portàtil XP)
  • VirtualBox (o qualsevol altre programari de client de virtualització)
  • Una màquina virtual amb PHP, MySQL running executant un sistema operatiu reduït, estic trucant a aquests servidors de la meva coixesa:)
  • Els treballs s'executin
  • Treball del servidor (pot ser una altra màquina virtual en algun lloc)

Treballs típics

Els tipus de treballs que aquest sistema està dissenyat per funcionar és la següent:

  • Sistema rep una llista de dades sobre els que hem de coincidir i retornar els resultats
  • La coincidència consisteix en la comprovació / recerca de diversos (força estàtica) de fonts de dades
  • Els resultats de les fonts de dades poden requerir una major validació, la fusió, el control de les fonts de dades addicionals en resposta als resultats
  • Les dades es retornen amb els registres que coincideixen plenament validats i processats
  • Cada registre en un lloc de treball és independent de la resta

Així que bàsicament estem veient executar treballs que requereixen una combinació de cerques de bases de dades i un càlcul de nombres, un escenari bastant comú en un entorn empresarial.

Solucions de xarxes no només són avantatjoses per al processament de treballs d'aquest tipus. Bàsicament, qualsevol procés que pot ser dividit en unitats independents es poden executar en paral.lel. Veure aquesta wikipedia per veure exemples i més informació: Grid Computing , però un parell d'exemples famosos són Seti @ Home i BIONC . Existeixen marcs per al funcionament de les xarxes informàtiques, i que aquests estan ben val la pena analitzar.

Què podem fer?

Al final d'aquests articles espero demostrar que el desplegament d'una xarxa d'oficina no té per què ser molt costós o que consumeixen temps. Vaig a parlar:

  • Establir el sistema de control de treball, treball de configuració
  • La creació d'una màquina de processament virtual corresponent
  • Com configurar el sistema en una màquina Windows
  • Assegurar que utilitzeu la darrera versió del codi i les dades
  • Implementació i avaluació comparativa
  • Amb vista al futur

Vaig a ser la construcció (bé he construït, llavors per escriure això) una aplicació d'exemple per posar a prova els conceptes en un equip local amb Windows XP i el meu 'GridMachine "màquina virtual. El meu servidor de control de treball serà el meu màquina principal que corre Fedora 11 .

Això és de cap manera la intenció de demostrar un sistema totalment funcional robusta, el seu significat més d'una demostració i discussió que demostra que aquestes coses es pot aconseguir en un espai relativament curt de temps ia un baix cost. Si us plau, no dubteu a enviar-nos els seus comentaris, correccions o millores i que vaig a fer el meu millor esforç per mantenir aquest article actualitzat per a que coincideixi.

La propera vegada

En la part 2 vaig a començar a mirar en el sistema de control de treball, i buscar la manera com els treballs han de ser configurades per tal d'aconseguir la major quantitat de processament alhora que garanteix que cada treball es processa sense falta.

Oficina de Grid Computing utilitzant entorns virtuals - Part 2

Per , Divendres 04 de desembre 2009 23:23

Introducció

Jo treballo en una empresa en què ens trobem molts llocs de treball de processament per lots de milions de registres de dades de cada dia i he estat pensant darrerament sobre totes les màquines que se sentin al voltant de cada un i cada dia sense fer res durant diverses hores. No seria bo si poguéssim utilitzar aquestes màquines per reforçar el poder de transformació dels nostres sistemes? En aquest conjunt d'articles que vaig a veure els beneficis potencials de l'ocupació d'una oficina de la xarxa utilitzant entorns virtualitzats.

En la part 1 em va donar una visió general del sistema i les tecnologies que utilitzarà, així com es discuteix algunes de les possibles raons per les quals es vol crear una xarxa d'oficines.

Treball de control

Si vostè estarà executant treballs, llavors anem a necessitar alguna forma de manejar-los. El seu sistema de control de treballs (en el servidor de treball) ha de ser molt ben pensat, fins i tot abans d'intentar executar una xarxa d'oficines. Així que en primer lloc, quines són les tasques d'un sistema de control de treball:

  • Treballs de la mà a terme a petició dels treballadors
  • Digueu als treballadors quin tipus de treballs s'executin
  • Seguiment dels treballs
  • Assegurar que els treballs només s'executen una vegada
  • Proporcionar les dades del treball als treballadors, o si més no dir on aconseguir-

El sistema també ha de ser extensible, una solució que funciona per ara en un sol cas es pot estendre per executar diversos tipus de treballs com el negoci veu la pena en una solució de xarxa. Per exemple, els treballs poden guanyar les prioritats, més d'un tipus de treball pot existir (és a dir, diverses bases de codi), amb el temps pot fins i tot executar diverses màquines diferents treballadors que estan optimitzades per a cada tipus de treball (tot i que s'allunya dels treballadors "genèrics 'idea). Sempre intento pensar en el futur en el desenvolupament de sistemes, una visió a curt termini pot conduir a la frustració a llarg termini i el temps de desenvolupament més gran.

Servidor de tasques de

Anem a necessitar un lloc per al control dels nostres llocs de treball a partir de, aquest ha de ser l'únic sistema de la xarxa que compta amb un localitzador de recursos fixos, ja sigui una adreça IP, nom de host, l'adreça URL (utilitzant DNS intern), etc Això es deu a els treballadors necessiten saber on buscar feina, els treballadors necessiten per trobar el sistema de control de treball (no el sistema de control de treball trobar als treballadors).

El servidor de treball en si no té realment una tasca complicada (en un sistema bàsic de tota manera), que necessita per emmagatzemar una llista de llocs de treball, lliurar treballs, rebre els resultats, i posteriorment emmagatzemar per a la seva posterior recuperació. Com aquestes parts (com ara "mà llocs de treball") es defineixen poden ser molt bàsiques. Més endavant es pot ampliar el sistema per incloure una interfície d'administració per afegir, editar, esborrar, suspendre treballs, però això està més enllà d'aquest exercici.

No hi ha cap raó llavors que el servidor de treball no podia ser una màquina virtual que s'executa al servidor de processament principal, sempre que no drena massa recursos de la mateixa. El servidor de treball però cal una alta disponibilitat, si es cau en un divendres a la nit vostè va a perdre un cap de setmana de tractament, el que podria costar-li un parell de setmanes de temps de processament (en comparació amb el servidor de processament principal només) . És possible que vulgueu considerar la possibilitat del seu servidor de treball en un entorn d'equilibri de càrrega d'alta disponibilitat.

Configuració bàsica

La configuració bàsica del nostre servidor de treball consistirà en el que estic trucant a un dels meus servidors Bizkit (que és Linux Li, m ySql, P HP). El codi que s'executa en els treballadors thea realment esbrinar quins treballs es poden executar mitjançant la interacció amb bases de dades amb el treball del sistema de control. Més endavant es podria crear un servei web i la mà en realitat a llocs de treball en lloc que els treballadors fan la feina dura sí, però per ara seguirem utilitzant el principi KISS (Keep It Simple, Estúpid!).

Per tant, anem a crear tres mySQL per fer front a les taules de llocs de treball. Aquests treballs es ``, `jobRecords` i el `jobResults`.

llocs de treball de taula Aquí estic usant SQL Buddy una gran alternativa a poc a phpMyAdmin només perquè és més fàcil d'instal lar en CentOS (per a altres veure: 10 grans alternatives a phpMyAdmin )

Aquesta taula es compon de 5 camps de simple,

  • Identificació: identifiquen el treball
  • Nom: Podria ser una referència de client, o qualsevol nombre d'altres identificadors
  • Estat: Vostè necessita saber que el treball és, per exemple,
    • 0: No s'ha iniciat
    • 1: Recollit
    • 2: Completat
  • started_by: Qui va començar a fer la feina? Això no és del tot necessari, però és un agradable de tenir. Et suggereixo que els treballadors de seguiment per la seva adreça IP a la xarxa
  • started_at: Quan el treballador iniciar el treball? Mitjançant el seguiment dels treballs que no hagin completat dins de X quantitat de temps que sabem que hem de recollir el treball de nou i començar a processar per un altre treballador. Els treballadors podrien deixar de processar / fora de línia per a qualsevol nombre de raons, manca de llum, caiguda, pèrdua de xarxa, etc

És fàcil com aquesta taula podria ser ampliat amb un uns pocs camps addicionals per permetre el seguiment de les estadístiques, una columna de temps d'arribada per veure quant temps va prendre el treball, un comptador per veure quants treballadors va prendre el treball (òbviament això ha de tendeixen a 1), prioritat dels treballs, la llista pot seguir i seguir. En els escenaris de treball més complex que seria possible especificar la quantitat de memòria que el treballador hauria de tenir accés a (i per tant, només l'ús adequat de treballadors), o fins i tot quin tipus de treball seria necessari.

Permet afegir un exemple alguns treballs:

treballs d'exemple

La taula següent de nou és bastant senzill d'entendre, aquests són els nostres registres de treballs. Estan vinculats a la taula de treball principal per una columna `jobs_id`. La composició d'aquesta taula depèn molt de les dades que ha de proporcionar als seus treballadors, permet fer un exemple molt simple, on tenim quatre columnes:

  • id: identificador del registre
  • Nom: nom de la persona
  • Direcció: Direcció de la Persona
  • jobs_id: 'Identificador de la tasca que aquest registre està vinculat a

La taula de la tercera i última consisteix en una taula de resultats, té molt de la mateixa marca fins a la nostra taula, com els registres, i amb l'addició d'algunes columnes poden ser part de la taula de registres:

  • job_record_id: Enllaç el resultat a la taula de treball
  • Resultats: Les dades de resultat

... I això és tot el que necessita per al control de treball! (Encara que a un nivell molt bàsic) En el meu cas em va assenyalar a una altra taula en la que les meves dades de procés es troba, però això podria molt fàcilment ser un arxiu, els paràmetres per executar el codi de simulació, el que sigui.

Selecció d'un treball

Com es va esmentar anteriorment, els treballadors a fer la nostra gestió de treball per nosaltres, per ara, així que tot el que necessitem realment és trobar una feina que les necessitats de processament i obtenir la informació. Com fem això? Així recollir els criteris de selecció d'ocupació i buscar feina en SQL vaig fer el següent:

  1. Tenir treballs que no estan marcats com completa, però a partir dels nostres treballadors i recuperar els (substitut __ME__ amb un identificador més fàcil, seria l'adreça IP):
      ACTUALITZACIÓ `llocs de treball` SET `estat` = 0 on `status` I `= 1 started_by` = __ME__; 
  2. Utilitzant els criteris de selecció de tasques, seleccioneu un treball i dir-li al sistema de control que aquest treballador es tracta que:
      ACTUALITZACIÓ `llocs de treball` SET `estat` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `estat` = 0 o
     (`Status` I `= 1 started_at`> DATE_SUB (NOW (), interval d'una hora X)) ORDER BY `id` ASC; 

    Per l'acaparament dels treballs que no han donat resultats en X quantitat de temps que ens assegurem que tots els treballs s'executen en el cas d'un treballador de xocar o anar sense permís.

  3. A continuació prendre les dades de llocs de treball seguit pels mateixos registres:
      SELECT * FROM `llocs de treball` WHERE `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

Un cop finalitzat el treball d'inserir els nostres registres de resultats i marcar el treball el més complet. Recordeu que treballs es poden suspendre / reprendre en qualsevol moment, permetre certa solidesa en el seu guió. És possible que la tasca es suspèn la meitat del camí a través de l'actualització del sistema de control de treballs per comprovar el nombre de registres en un lloc de treball i el nombre de resultats torna a guardar en el sistema de control de treball seria un encert.

A més, si bé això demostra com els treballs poden ser seleccionats i administrats des d'un marc de consulta SQL que realment hauria de ser l'abstracció del seu control sobre el treball de manera que si vostè decideix passar a utilitzar un servei web, un sistema de fitxers basat en XML , o qualsevol altre nombre de sistemes que no afectarà el codi per sobre d'ella.

Treball de configuració

El següent aspecte a considerar és la grandària del treball i la configuració. En jugar amb la configuració de treball que pot aconseguir un alt equilibri entre la velocitat, la duplicació de processos, i la fiabilitat. Prengui un parell d'escenaris de A:

  1. Llocs de treball prengui un dia per a executar cada un: Això significa que els seus treballadors necessiten 15 dies per processar cada treball (recordeu que el 10% de l'energia per 2/3rds de l'època). Això clarament no és una bona configuració, la mida del seu treball és massa gran! Es necessitaria com a mínim el doble de temps per aconseguir un treball processat si el treballador s'absenten sense permís inicial (temps per recollir que no ha tornat un resultat més el temps de reprocessament). En un ideal que li agradaria tenir almenys una feina de jornada completa fàcilment aclarit pel final de cada període d'inactivitat llarga, d'aquesta manera a mantenir els llocs de treball marcant més i en el pitjor cas, un treball que prendria dos dies per al procés si el primer faltaran.
  2. Llocs de treball prengui un minut per córrer: Això significa que els treballadors prenen uns 15 minuts per executar cada treball. Si bé aquest principi pot semblar ideal, el guany de processament de treball addicional durant l'hora de dinar, coffee break, reunions, etc aquest escenari posa la tensió en altres àrees del seu sistema i presenta els seus propis problemes. Per exemple, en primer lloc la configuració / processament relació de temps que anirà a la dreta cap avall, per tant perdre l'eficiència del sistema. La xarxa serà constant flux d'informació de treball per al personal dels treballadors de diversos frustrants que estan dong seu dia a dia. També vas a posar més pressió sobre el servidor de processament de treball, ja que ha de repartir munts i munts de petites peces de treball sobre una base regular. Finalment, en aquesta situació si el servidor de treball de baixa que crearà un registre de tornada enorme de treball no realitzat, mentre que més llocs de treball podrien continu de processament feliçment ignorant que el servidor de treball estava experimentant dificultats.

En realitat no hi haurà una configuració ideal per a la configuració de la xarxa, moltes coses depenen dels recursos disponibles, tipus d'ocupació, els requisits de treball de temps de resposta, capacitat de xarxa, i així successivament. No obstant això, algunes directrius serien:

  • Treballs de mida de manera que cada treballador pot obtenir a través de llocs de treball almenys 3.4 en un període de 15 hores (el període més llarg possible el temps d'inactivitat)
  • Jugar amb la mida del treball per tal que el temps d'instal lació es converteix en bastant insignificant en comparació amb el temps de processament (tenint en compte el punt anterior).
  • Si un treball no acaba en el doble de la quantitat de temps (potser menys) que espera que es completi de suposar que el seu passat sense permís i començar a processar amb un altre treballador. Això significa que vostè pot haver d'esperar fins a tres vegades la durada normal d'un lloc de treball a què es completi (possiblement més si el treball de fallar). És possible que vulgueu reduir aquest temps, però vagi amb compte de no reduir massa, ja que pot començar a duplicar les tasques de processament en una base regular.
  • Llocs de treball ha de ser independent de les necessitats externes, tant com sigui possible. El servidor de treball, per exemple, només s'ha de contactar a l'inici i al final de cada treball.
  • No saturi la seva xarxa, això té dos efectes negatius, al seu personal durant el dia es troba amb la xarxa de frustració i els problemes es poden experimentar amb les connexions s'esgoti el temps un problema que només va a empitjorar a mesura que l'escala de la seva xarxa.
  • Garantir llocs de treball es pot executar en els seus treballadors. Si els treballs es tornen massa espai de memòria llocs de treball intensiu o intensiu del disc començarà a avortar i l'únic que notarà és una caiguda en el nombre de treballs processats sense cap raó real de per què.

Resultats de la presentació d'un treball

En presentar els resultats d'un treball és important comprovar que els resultats no han estat presentats per un altre treballador, especialment si el treball actual ha estat inactiu des de fa algun temps.

Quan els resultats es presenten perquè el nombre de resultats coincideix amb el nombre de registres en el treball.

Com es va indicar anteriorment, i no està de més insistir, construir la tolerància a fallades en la recuperació de llocs de treball i presentació de resultats. Els treballadors poden (i el més probable és que) entrar en la manera de suspensió en la majoria dels inconvenients dels temps i això ha de ser atesos. A més, un cop més abstracció de la seva presentació resultats ajudaran a atendre futurs canvis en el seu sistema de control de treball molt més fàcil de tractar.

Resum

En aquest seccion_a hem vist què és un servidor de control de treball que ha de fer i com arribar a un sistema molt bàsic establert. Parlem de com recuperar un lloc de treball del sistema de control i de la millor manera de configurar llocs de treball per aprofitar al màxim el nostre sistema de xarxa de la seva oficina. Per finalitzar, un paràgraf o dos sobre la presentació dels resultats al servidor de control de treball va ser presentat.

  • Un servidor de control de treball administra els treballs i assegura que totes les unitats de treball es completen
  • Mitjançant l'abstracció del seu treball de selecció / resultats de la presentació que podem canviar la tecnologia del servidor de control sense problemes molt
  • Configuri el seu treball per assegurar-se que s'executi de forma ràpida i eficient, sense posar massa pressió sobre la seva infraestructura de xarxa, i sense duplicar les tasques de processament en una base regular.
  • Assegureu-vos de construir la tolerància a fallades i checking error en la seva rutina, els treballadors poden suspendre i reprendre la majoria dels inconvenients dels temps. Recordeu verificar si els resultats han estat presentats per un altre treballador.

La propera vegada

En la part 3 crearem la nostra màquina de processament virtual i configurar les finestres de les nostres màquines per convertir-se en temps d'inactivitat dels treballadors.

Oficina de Grid Computing utilitzant entorns virtuals - Part 5

Per , divendres 4 desembre 2009 23:03

Introducció

Jo treballo en una empresa en què ens trobem molts llocs de treball de processament per lots de milions de registres de dades de cada dia i he estat pensant darrerament sobre totes les màquines que se sentin al voltant de cada un i cada dia sense fer res durant diverses hores. No seria bo si poguéssim utilitzar aquestes màquines per reforçar el poder de transformació dels nostres sistemes? En aquest conjunt d'articles que vaig a veure els beneficis potencials de l'ocupació d'una oficina de la xarxa utilitzant entorns virtualitzats.

En la Part 4 es va observar l'ús d'eines per assegurar que estem executant l'última versió de les fonts de codi i dades, de manera que els resultats obtinguts estan sempre al dia amb l'última informació de negoci i la lògica.

Abans del desplegament

Abans d'implementar el seu sistema de xarxa si hi ha una cosa que fer i només una cosa és comparar el seu sistema actual! No importa el que diuen els seus col.legues sobre la quantitat de treball addicional que el seu sistema es farà a no ser que tingui els números que l'recolzin les seves garanties no són una altra cosa. Per tant,

  • nombre de registres que es poden processar en l'actualitat? Per dia? Per hora?
  • Quant de temps solen trigar en donar volta a un treball?
  • Quant més capacitat té?

També hi ha altres preguntes:

  • Si el seu servidor de processament (o un dels servidors de processament) es cau, com afecta això a les seves capacitats, serà esguerrat?
  • Quins avantatges esperança / espera obtenir d'un sistema de xarxa?
  • Hi ha les màquines d'oficina capaç d'executar els treballs?
  • Són els seus (o llocs de treball pot ser convertit) per treballar en aquest estil de córrer?

El punt principal és passat a portar un temps en qualsevol canvi d'aquesta envergadura. Actualitzeu el codi de processament per treballar amb la nova metodologia de referència, una vegada més. És possible configurar el servidor de processament per executar una màquina virtual, després de tots els servidors de processament sigui simplement un altre treballador (a només un molt poderós relativament). Deixeu que el nou procés per resoldre.

Desplegament

El meu suggeriment seria fer esclatar a l'oficina d'un cap de setmana realitzarà totes les instal.lacions i posada en marxa. És això just abans de vacances de dues setmanes i deixar la resta pobre home per fer front a les conseqüències ... potser no ...

D'implementació d'un sistema com aquest ha de ser lent. Tot i ser relativament fàcil de configurar aquest sistema afecta la infraestructura de tota l'oficina (i el digital). En primer lloc, llançar un parell de màquines a la vegada, controlar el tràfic de xarxa, com els amfitrions dels treballadors realitzen en el dia a dia. Podria ser necessari modificar la configuració del seu treball en resposta a les troballes.

Una vegada que el sistema s'ha instal lat amb unes poques màquines (diguem el 10% de totes les màquines d'oficina, és a dir, 5) mantenir la vigilància del tràfic de xarxa i màquina host de referència performance. Següent de nou, ara s'ha de processar els treballs d'un 33% més que els seus punts de referència en primer lloc. Comproveu això és així, o que està almenys en aquest estadi. Si no és així, investigar el que està passant abans de continuar. Repetiu aquest cicle fins que feliçment té totes les màquines d'oficina funcionant sense matar rendiment de la màquina individual o de mòlta de la xarxa a un punt mort.

Mantenir en tot moment l'avaluació comparativa, fins i tot després que totes les implementacions es fan. Comprovar com les noves actualitzacions de codi afecten a la velocitat del seu sistema, revisi tots els treballadors d'informes i treballs de processament. A poc a poc (molt lentament) l'increment de la seva configuració de treball per obtenir el millor dels seus treballadors i de la xarxa.

¡Alto!

Què passa si vostè vol deixar als seus treballadors que s'executi en algun moment? Tots ells estan per aquí corrent, la regeneració, i fent tot el possible per processar les dades com els insectes famolencs. La resposta pot semblar òbvia, però val la pena afegir en cas del seu passat per alt. Només cal editar el script de processament amb un exit (0) or die () o una altra declaració de matar al seu treball de processament. Una raó important per la qual sempre intentem actualitzar a la última seqüència d'ordres de processament abans de córrer!

Demostració del sistema

Per escriure aquesta sèrie d'articles curts que he creat una xarxa molt petita per demostrar les tecnologies i metodologies. He llegit un munt d'articles, tutorials, i utilitzen diverses eines per configurar i controlar el que estava passant. De cap manera m'he sortit i saturat d'una oficina tot el trànsit i ni he tingut accés a un personal permanent dels membres del PC per veure com el rendiment d'acollida es va veure afectada.

El meu sistema de demostració era molt humil per cert. Vaig utilitzar el meu escriptori normal configurat com un servidor de control de treball. En aquesta havia instal lat MySQL server instal configurat com un mestre en la replicació, PHP , Â i SVN vinculats a través de apache (per a l'accés a través dels treballadors VM).

Llavors va crear una màquina de treball CentOS en VirtualBox en un fill de 6 anys portàtil amb Windows XP. Puc configurar les tasques programades com s'especifica després de copiar la màquina virtual a la màquina i la va deixar anar.

La màquina virtual creada amb PHP, la subversió, i mySQL. He comprovat una branca anomenada "treballador" del meu treball de control dels servidors de dipòsit i es va assegurar que pogués ser actualitzat amb "svn update '. La propera configuració de MySQL com un esclau i comprovar que les dades es replica de MySQL al servidor de control de treballs fins el VM dels treballadors. Després de tot això he de instal lar l'script i el treball de cron.

El meu script de processament, bàsicament, va ser al llarg de les línies d'aquesta (cosa molt simple):

  • Llegir en el camp de nom
  • Va comptar el nombre de noms similars en una taula de la font de les dades emmagatzemades a la màquina virtual
  • Va comptar el nombre de noms que l'anterior però dividint el nom per espais (és a dir, nom, mitjà, cognom)
  • Repeteix aquest procés 1.000 vegades

Cada lloc de treball va prendre aproximadament 20 minuts en executar-se. En un moment em va obrir diverses còpies de la màquina virtual de treball a l'ordinador portàtil finestres i observar els treballs es va marcar per cadascuna de les adreces IP dels treballadors. En aquest punt, també va confirmar que la replicació es reiniciarà automàticament.

Deixant el portàtil al ralentí com a resultat un treballador comença a realitzar tasques des del servidor de control de treball. Quan es reprèn l'ús d'ordinador portàtil es va produir un retard d'uns 30-60 segons, es tracta d'una bona quantitat de temps i el personal hauria de ser conscients que el vostre ordinador permet fer una pausa per un curt temps en tornar a la màquina. Les màquines més modernes poden no tenir una pausa de tant de temps. El benefici de la quantitat de processament realitzat per aquestes màquines durant períodes d'inactivitat que més que compensen els membres del personal que hagi d'esperar un període curt (1 minut), en arribar a les seves màquines del matí (que sovint esperar més que això per a un Windows Defensar actualització tingui lloc), sempre i quan es van assabentar d'això (el temps útil per prendre un cafè al matí!).

En general em sento segur que m'han demostrat les tecnologies que podrien utilitzar-se per crear un sistema. M'han demostrat que aquest sistema funciona en una escala de (molt) petit i amb una mica més l'experimentació podria ser ampliat a utilitzar els recursos de les màquines d'una oficina. Si no ho faig arribar al punt de fer això jo estaria molt interessat a saber / veure si algú més ho fa.

Conclusions / avaluació

El següent pas lògic seria fer que un exemple del món real i començar a implementar un sistema d'aquest tipus dins d'un ambient d'oficina i veure què passa. Demanar-li a un negoci que es comprometin a això sense una companyia d'obrir camins per provar la tecnologia i l'eficàcia pot ser una mica difícil. La xarxa / computació distribuïda és molt popular entre alguns cercles és i té algunes aplicacions de grans dimensions (BIONC, SETI @ Home, Folding @ Home, etc.) No obstant això, trobar una escala més petita i simple sistema d'aquest tipus en les meves recerques que podria ser llançat dins d'un entorn d'oficina.

He creat un sistema bàsicament lliure amb programari de codi obert en la seva majoria i les eines disponibles en gairebé qualsevol oficina. Les tecnologies es va demostrar, bàsicament, mostrar i dur a terme i funciona com s'esperava. Esperem que han demostrat que amb el treball no és molt i amb una configuració molt senzilla es pot implementar una xarxa d'oficines del sistema de còmput que és de gran abast, barat, A i escalable, tot al mateix temps.

Una vegada que el sistema està funcionant gairebé no hi ha fi a la quantitat de personalització i millores que pot fer. Per exemple, les estadístiques / benchmarking es poden afegir fàcilment mostrant el valor d'aquest sistema cada dia. Les noves màquines es poden afegir de forma ràpida i amb la mateixa facilitat i quan arriben amb les actualitzacions per al maquinari existent reforçar el seu poder de processament.

Espero que hagis gaudit de la lectura d'aquesta sèrie d'articles i el seu fet pensar en el funcionament d'un sistema de xarxa d'oficines. La solució que aquí es presenta no necessàriament funcionarà en totes les situacions, però ha de ser adaptable perquè pugui obtenir el seu tractament de les dades fa ús de la seva pròpia solució.

Si us plau, no dubteu a enviar-nos els seus comentaris, correccions o millores i que vaig a fer el meu millor esforç per mantenir aquest article actualitzat per a que coincideixi.













Panorama Tema per Themocracy

7 visitants en línia ara
6 persones, 1 bots, 0 membres
Max visitants d'avui: 22 am a les 06:15 UTC
Aquest mes: 23 a 2011.08.24 05:40 UTC
Aquest any: 130 en 2011.03.28 22:40 UTC
En total: 130 en 2011.03.28 22:40 UTC