Posts tagged: la subversió

Oficina de Grid Computing utilitzant entorns virtuals - Part 4

Per , divendres 4 desembre 2009 23:59

Introducció

Jo treballo en una empresa on ens trobem molts llocs de treball de processament per lots de milions de registres de dades cada dia i he estat pensant recentment sobre totes les màquines que se sentin al voltant de cada dia sense fer res durant diverses hores. No seria bo si poguéssim utilitzar aquestes màquines per reforçar la capacitat de processament 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.

A la part 3 que hem creat la nostra màquina de processament virtual i configurar màquines de les finestres per esdevenir treballadors a temps d'inactivitat.

Executar l'últim codi

Inevitablement, després de crear la lògica empresarial els treballadors canviarà, els insectes es troba, el codi més ràpid i eficient es produeix el que deixa als seus treballadors es van asseure al voltant de processament de dades mitjançant codi de olorós vell . Llavors, com ens assegurem que sempre estem usant la versió més recent i més gran dels nostres scripts de processament?

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

El primer mètode seria simplement connectar al nostre servidor de control de treball (a través de samba, FTP, o similar) i baixar l'última versió del codi. No és molt eficient, però farà el treball. Millorarem en 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 què hi ha de posar la nostra última seqüència de comandaments de transformació en la subversió revisant el codi al principi i després només l'actualització del nostre codi en cada cursa ( 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 "El treball s'està processant, la sortida"
 més
     echo "El treball no s'executa, comença ara"
     cd / camí / 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 la present mitjançant l'actualització de la nostra base de codi de temps tots i cadascun portem a terme una carrera i la reducció de trànsit de la xarxa transferint únicament les diferències d'arxius a través de la nostra xarxa.

En la meva configuració de demostració, ho vaig fer exactament com abans. Subversion s'ha instal · lat en el meu servidor de processament de la tasca i simplement va treure l'última 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 estava definitivament d'executar la seqüència de processament més avançada.

Utilitzant les últimes dades

Si el processament de la tasca fa ús de les fonts de dades a continuació, 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 el trànsit tan aviat com els treballadors començaran a portar tot a un punt mort. Per a mi solució, vaig decidir que m'agradaria moure les meves fonts de dades amb els meus màquines virtuals.

Mantingui ets cavalls allà, què passa si les meves fonts d'informació són enormes? Bé, això realment és un cas de quantitat de dades que estem parlant? Pot ser més rendible instal · lar una addicional en el disc dur de major capacitat en cada màquina de comprar un servidor de processament addicional. Es tracta d'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 dels seus treballadors. 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 reixeta tal com això pot arribar a ser poc realista per incloure en el seu entorn d'oficina. També pot ser que vostè pot mirar en altres estratègies d'execució, per exemple, només trucar als seus treballadors 8 p.m.-06 a.m. cada nit i / o de limitació de les sol · licituds d'origen de dades.

Passant diguem que les nostres dades la quantitat de fonts de 100 Gb de dades. Bé, sí que és una mica de les dades per moure per la xarxa en una actualització. Com ens assegurem que tenim 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 ben llarga) podria ser el camí a seguir:

replicació En establir cadascun 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 augment en l'activitat de xarxa (és a dir, a menys que realitzi una actualització de dades enormes i tots els treballadors entren en joc alhora). Això té avantatges respecte a rsync en què no s'obtindria d'una llarga pausa abans de cada treball, com les actualitzacions de base de dades, el 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 vaig tenir al meu treballador inital replicar el treball de control de servidors de conjunt de dades. Per cada treballador addicional dels paràmetres de replicació i el procés de treball cada vegada que la màquina virtual s'ha copiat.

Resum

En aquesta secció de l'article, hem vist el fàcil i indolor que és mantenir el codi de processament fins avui per rsync using o subverion (SVN) per fer la feina i reduir el tràfic de xarxa en la mateixa time. També parlem sobre la forma per mantenir la seva informació de la font de dades posada al dia pel que li arribin a cadascun dels seus treballadors. Així, la zona assegurant que complim amb la lògica de negoci i la informació al nostre sistema de xarxa de l'oficina. Hi haurà, òbviament, hi ha diverses alternatives per realitzar aquestes tasques, però aquí són dos exemples simples per demostrar com és fàcil é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 4 desembre 2009 23:23

Introducció

Jo treballo en una empresa on ens trobem molts llocs de treball de processament per lots de milions de registres de dades cada dia i he estat pensant recentment sobre totes les màquines que se sentin al voltant de cada dia sense fer res durant diverses hores. No seria bo si poguéssim utilitzar aquestes màquines per reforçar la capacitat de processament 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 utilitzo cada dia és a dir, Linux, MySQL , PHP, VirtualBox i Subversion (SVN). No obstant això espero que aquesta guia s'adaptarà a altres idiomes i les tecnologies igual de bé.

La solució que proporcioni serà molt vagament basada en el tipus de processament que anàvem a necessitar per assolir però això no pot ser veritat tot l'article que vaig a canviar les coses per la simplicitat, o per produir escenaris d'ús més interessants.

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

Per què implementar una xarxa de computació d'oficina?

En primer lloc vostè pot estar pensant, per què no utilitzar un recurs de computació en el núvol com plataforma EC2 d'Amazon ? 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 certes 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 tancament i tenir un control total sobre el maquinari massa
  • 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 t'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 xarxa de computació d'Office

Bé, anem a fer alguns les matemàtiques (i en cert estil de la física li permet fer algunes suposicions d'escombrat). Imagina que tens gran servidor de processament fornit córrer 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% tan poderós com el processament de Sever fornit. (Tots els resultats aquí s'arrodoneixen a subestimar augment de rendiment).

Per tant, una màquina d'energia * 10% * 2/3 = 0,067 és a dir, el temps de processament d'un escriptori en el temps d'inactivitat podria processar 6 llocs de treball complets per dia.

Si ara escalar això es requereixen 15 ordinadors d'escriptori d'inactivitat per realitzar tasques de la major quantitat per dia que el servidor de processament principal ho fa.

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

Noteu, la inversió en nou maquinari de l'empresa acaba d'augmentar la seva capacitat de processament per lots 4 vegades! Potencialment, vostè va a augmentar el seu consum d'energia, sinó de la majoria d'entorns d'oficina que he estat a les màquines en general a l'esquerra en la nit de totes maneres, de manera que podria veure això com una iniciativa verda.

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

Tecnologies

El que vostè necessita? (O més correctament, què puc utilitzar):

  • Màquines d'oficina Idle (en el meu cas un recanvi vell ordinador portàtil Windows XP)
  • VirtualBox (o un altre programari de client de virtualització)
  • Una màquina virtual amb PHP, MySQL running executant un sistema operatiu de tall cap avall, vaig a trucar a aquests servidors meva coixesa :)
  • Els treballs s'executin
  • Servidor de treball (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 el 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ó / buscar diverses fonts de dades (bastant estàtic)
  • Els resultats de les fonts de dades poden requerir una major validació, la fusió, el control de fonts de dades addicionals en resposta als resultats
  • Les dades es retornen amb els registres que coincideixen, plenament validada i processada
  • Cada registre dins d'un treball és independent de la resta

Així que, bàsicament estem veient els treballs en execució que requereixen d'una barreja de cerques de bases de dades i alguns processament de nombres, un escenari bastant típic en un entorn empresarial.

Solucions de xarxes no només són avantatjoses per realitzar tasques 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 de computació, i aquests estan bé val la pena analitzar.

Què podem fer?

Al final d'aquests articles espere demostrar que el desplegament d'una xarxa d'oficina no ha de ser molt costós o que consumeix temps. Vaig a parlar:

  • Configuració del sistema de control de treball, configuració del treball
  • Creació d'una màquina de processament virtual corresponent
  • Com configurar el sistema en una màquina Windows
  • Vetllar per que utilitzeu l'últim codi i les dades
  • Implementació i avaluació comparativa
  • Amb vista al futur

Vaig a ser la construcció (ok he construït, a continuació, 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à la meva màquina principal que corre Fedora 11 .

Això és de cap manera la intenció de demostrar un sistema complet de treball robusta, el seu significat més d'una manifestació i discussió de mostrar que aquestes coses es pot aconseguir en un espai de temps raonablement curt ia un baix cost. Si us plau, no dubti a enviar els seus comentaris, correccions o millores i faré el meu millor esforç per mantenir aquest article actualitzat per a que coincideixi.

La propera vegada

A la part 2 vaig a començar a mirar en el sistema de control de treball, i buscar en la quantitat de llocs de treball s'ha de configurar per tal d'aconseguir la major quantitat de processament mentre garanteix que cada treball es processa sens falta.

Oficina de Grid Computing utilitzant entorns virtuals - Part 5

Per , divendres 4 desembre 2009 23:03

Introducció

Jo treballo en una empresa on ens trobem molts llocs de treball de processament per lots de milions de registres de dades cada dia i he estat pensant recentment sobre totes les màquines que se sentin al voltant de cada dia sense fer res durant diverses hores. No seria bo si poguéssim utilitzar aquestes màquines per reforçar la capacitat de processament 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 s'està executant la última versió de les fonts de codi i les dades perquè els resultats obtinguts són sempre al dia amb la informació de negoci i la lògica.

Pre-Desplegament

Abans d'implementar el sistema de xarxa, si hi ha una cosa que fer i una sola cosa és comparar vostre sistema! No importa el que diuen els seus col · legues sobre la quantitat de treball extra que el seu sistema es farà si no és que tingui els números per donar suport al que les seves garanties no són res més. Així,

  • nombre de registres que pot processar en l'actualitat? Per dia? Per hora?
  • Quant de temps solen trigar a fer la volta un lloc de treball?
  • Quant més la capacitat té?

També hi ha preguntes addicionals:

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

El principal punt últim és portar un temps en qualsevol canvi d'aquesta envergadura. Actualitzeu el codi de processament per treballar amb la nova metodologia de referència, un cop més. És possible que configurar el servidor de processament per executar una màquina virtual, després del seu processament de tots els servidors acaba de ser un altre treballador (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 la configuració. És això just abans de quinze dies de vacances i deixar per a un altre pobre home per fer front a les conseqüències potser no ......

Implementació d'un sistema com aquest ha de ser lenta. Tot i ser relativament fàcil de configurar aquest sistema afectarà a la infraestructura de tota l'oficina (i el digital). En primer lloc, llançar un parell de màquines al mateix temps, el tràfic de monitor de xarxa, com els amfitrions dels treballadors realitzen en el dia a dia. Potser haureu de modificar la configuració del seu treball en resposta a les troballes.

Un cop el sistema s'ha assentat 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ànsit 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 ets si més no en aquest estadi. Si no és així, investigar el que està passant abans de seguir endavant. Repetiu aquest cicle fins que feliçment han 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.

En tot moment mantingui l'avaluació comparativa, fins i tot després de totes les implementacions es fan. Consulteu com les noves actualitzacions de codi afecten la velocitat del seu sistema, comprovi tots els treballadors estan informant i realitzar tasques. A poc a poc (molt lentament) Increment de la configuració del seu treball per obtenir el millor dels seus treballadors i de la xarxa.

Atura't!

Què passa si vostè vol evitar que els seus treballadors s'executin en algun moment? Tots ells estan corrent per aquí, la regeneració, i fent tot el possible per processar les dades com els insectes famolencs. La resposta pot semblar obvi, però val la pena afegir en cas del seu passat per alt. Només cal editar el script de processament amb una sortida (0) or die () o una altra declaració de matar al seu treball de processament. Una raó important per la qual sempre intentem actualitzar a l'última seqüència de comandaments 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 utilitza diverses eines per configurar i monitoritzar el que estava passant. De cap manera he sortit i saturat d'una oficina sencera amb el trànsit i ni he tingut accés a un personal permanent dels membres de 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 de configurar com un servidor de control de treball. En aquesta havia instal · lat MySQL server instal · lat configura com un mestre en la replicació, PHP , Â i SVN vinculats a través d' apatxe (per l'accés a través de VM dels treballadors).

Llavors va crear una màquina de treball CentOS en VirtualBox a 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 es va crear amb PHP, la subversió, i mySQL. Vaig revisar una branca anomenada "treballador" del meu repositori de control de treball de servidors i es va assegurar que podria ser actualitzada amb 'svn update'. A continuació he de instal · lar MySQL com un esclau i comprovar que les dades es replica de MySQL al servidor de control de treball fins a la màquina virtual dels treballadors. Després de tot això he de instal · lar el script i el treball de cron.

El meu script de processament, bàsicament, es va anar al llarg de les línies d'aquest material (molt simple):

  • Llegir al camp Nom
  • Va comptar el nombre de noms similars en una taula de la font d'informació que obri en la màquina virtual
  • Va comptar el nombre de noms que l'anterior però la divisió del 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 per córrer. En un moment vaig obrir diverses còpies de la màquina virtual de treball al 'ordinador portàtil finestres i va observar als llocs de treball pot realitzar la sessió per cadascuna de les adreces IP dels treballadors. En aquest punt, també va confirmar que la replicació es reiniciarà.

Deixar l'ordinador portàtil al ralentí com a resultat un treballador de començar a realitzar tasques des del servidor de control de treball. En reprendre l'ús de l'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 noves màquines no poden tenir una pausa d'aquest 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 han hagut d'esperar un període curt (per exemple 1 minut) en arribar a les seves màquines del matí (jo sovint esperar més que això per a un Windows Defensar actualitzar a tenir lloc), sempre que es van fer conscients (temps útil per prendre un cafè al matí!).

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

Conclusions i avaluació

El següent pas lògic seria fer que un exemple del món real i començar a implementar un sistema com aquest dins d'un entorn 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. Grid / 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 un format més petit i simple sistema com aquest en les meves recerques que hauran de posar en marxa dins d'un entorn d'oficina.

He creat un sistema bàsicament gratuïts utilitzant programari de codi obert i les eines disponibles en gairebé qualsevol oficina. Les tecnologies van ser demostrades i mostrar bàsicament per realitzar i treballar com s'esperava. Espero que demostren que amb el treball no és molt i amb una configuració molt simple que vostè pot implementar una xarxa d'oficines del sistema de computació que és de gran abast, una barata i escalable, tot alhora.

Quan el sistema està en marxa i funcionant gairebé no hi ha fi a la quantitat de personalització i millores que pot fer. Per exemple les estadístiques / avaluació comparativa es poden afegir fàcilment que mostra 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 la seva potència 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 es van realitzar amb la seva pròpia solució.

Si us plau, no dubti a enviar els seus comentaris, correccions o millores i faré el meu millor esforç per mantenir aquest article actualitzat per a que coincideixi.













Panorama Theme by Themocracy

4 visitants en línia ara
3 persones, 1 bots, 0 usuari
Capacitat màxima de visitants d'avui: 10 a 01:58 UTC
Aquest mes: 56 a 2012.04.25 08:41 UTC
Aquest any: 69 a 2012.02.27 09:56 UTC
En total: 130 en 2011.03.28 22:40 UTC