Kategorie: Linux

Úřad výpočetních sítí pomocí virtuálních prostředí - Část 4

Tím, Steven Lloyd Watkin , pátek 04.12.2009 23:59

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové úlohy zpracování miliony záznamů dat každý den a já jsem byl nedávno přemýšlel o všech strojích, které sedí kolem každého a každý den nedělá nic pro několik hodin. Nebylo by dobré, kdybychom mohli využít těchto strojů pro posílení výpočetního výkonu našich systémů? V tomto souboru článků Jdu se podívat na potenciální výhody zaměstnávání úřadu sítě pomocí virtualizovaných prostředích.

V části 3 jsme vytvořili virtuální zpracování a nastavit počítače se systémem Windows, aby se stal nečinnosti-úvazek.

Nainstalována nejnovější kód

Nevyhnutelně po vytvoření vašich pracovníků obchodní logiky se bude měnit, bude se nacházejí chyby, účinnější kód bude rychlejší vyrábět tak opouštět vaši zaměstnanci seděli zpracování dat pomocí starý smradlavý kód . Jak tedy zajistíme, že jsme vždy používat nejnovější a nejlepší verzi našeho zpracování skriptů?

Existuje několik jednoduchých způsobů, jak snadno jsme mohli udělat to, trik, nicméně, je snížení výpočetního výkonu a síťový provoz v dosažení tohoto cíle. Začněme s nejjednodušší řešení a zlepšit to pomalu přes několik iterací.

První metoda by se jednoduše připojit k našemu serveru kontroly práce (přes Sambu, FTP, nebo podobné) a strhnout nejnovější verzi kódu. Ne velmi výkonný, ale to bude dělat svou práci. Umožňuje zlepšit na tom něco, jak se o vytvoření a použití rsync skript, že pokaždé, když místo toho? Jinak, co se o uvedení našich nejnovějších zpracování skriptu do podvracení odhlašování kód zpočátku a pak už jen aktualizovat náš kód na každém spuštění ( svn update )?

V závěru jsme mohli skončit s bash skript (nazvaný cron každých 10 minut), který vypadá stejně jednoduché jako tento:

  #! / Bin / sh
 pokud ps ax | grep-v grep | grep php > / dev / null
 pak
     echo "práce je v současné době zpracování, exit"
 jiného
     echo "práce není spuštěna, spusťte nyní"
     cd / cesta / k / pracovní / copy
     svn update
     php yourJobProcessingScript.php
 fi 

Nyní můžeme být jisti, že s každým spuštění jsme definitivně spuštěn poslední kód. Jsme to zajistit, že se aktualizuje základní kód každé době provádíme běh a omezit provoz v síti pouze přenos souborů rozdíly mezi naší sítě.

V mém demonstrace nastavení, udělal jsem přesně, jak je uvedeno výše. Subversion je nainstalován na svém serveru zpracování zakázek a já jsem prostě vytáhl poslední kód z 'pracovník' pobočka pomocí 'svn update'. Také jsem přidal číslo verze značku můj zpracování skript, který byl vrácen do databáze jako součást výsledků návratu. Tímto způsobem jsem mohl vidět, že můj kód byl aktualizován pokaždé, když jsem kopíroval můj kufr do tj. pracovník pobočky, že jsem byl rozhodně běh nejnovější zpracování skriptu.

Použití nejnovějších údajů

Pokud je vaše práce zpracování využívá zdroje údajů pak v určitém okamžiku se jedná bude aktualizován také. Pokud jste zavolat své zdroje dat na velmi řídké základě budete povodňové vaší sítě s provozem, jakmile si pracovníci začnou přinášet všechno, co ke klidu. Pro mé řešení, jsem se rozhodl, že bych chtěl přesunout své zdroje dat kolem s mou VM.

Hold jsi tam koně! Co když je moje zdroje dat jsou obrovské? No to je opravdu případ, kolik dat je řeč? To může být více efektivní z hlediska nákladů na instalaci další větší pevný disk na každém stroji, než na nákup další zpracování serveru. To je otázka rozpočtu a je na podniku, aby rozhodl. Je možná, že vaše zdroje dat jsou tak velké, že je to jen proveditelné, aby toto množství dat ve vašem pracovník stroje. V tomto případě to, co byste dělali? Tak jsme se mohli podívat na volání místní datový server, ale může to způsobit problémy se sítí. V tomto případě distribuční soustavy, jako je tento, se může stát nereálné zahrnout do kancelářského prostředí. To může také být, že se můžete podívat na alternativní běh strategií, například pouze volání vaši zaměstnanci mezi dvacet hodin a 6 hodin ráno každou noc a / nebo škrtící zdroj dat žádostí.

Pohybující se na řekněme našich datových zdrojů činí 100 GB dat. No ano, to je docela dost dat se pohybovat po síti na aktualizaci. Jak bychom zajistit, že máme poslední kopie dat v tomto případě? Rsync je možné, ale osobně si myslím, spuštěním své nejnovější zdroje dat na serveru místo zpracování a toto nastavení jako mistr v replikaci (s velmi dlouho bin log) by mohl být způsob, jak jít:

replikace Při nastavení každého z vašich zaměstnanců se jako otrok do práce aktualizace ovládání serveru do zdroje dat budou pěkně stéká do svého zaměstnance, aniž by k obrovskému nárůstu činnosti sítě (která je, pokud budete provádět obrovské množství dat aktualizovat a všechny své zaměstnance kop ve najednou). To má výhody oproti rsync v tom, že by nedostal dlouhá pauza před každou práci, jako je aktualizace databáze, mysql na váš zaměstnanec bude daemon průběžně aktualizovat své údaje, zatímco zpracování pokračuje.

To je, jak mám nastavit svůj server demonstrace. Chcete-li nastavit replikace Sledoval jsem návod na stránkách mySQL ( Nastavení replikace ) a do 20 minut jsem měl inital pracovník kopírující kontroly práce servery datového souboru. Za každý další pracovník nastavení replikace a proces pracoval pokaždé, kdy byl zkopírován VM.

Shrnutí

V této části článku jsme se podíval na to, jak snadné a bezbolestné je, aby vaše zpracování kódu v aktuálním stavu pomocí rsync nebo using subverion (SVN) dělat práci a snížit provoz v síti ve stejnou time. Mluvili jsme také o tom, jak , aby vaše informace o zdroji dat se-to-data tím, že mu dostaly až ke každému z vašich pracovníků. Tak jsme oblast zajištění toho, že jsme se držet krok s obchodní logiky a informace v našem systému kanceláři sítě. K dispozici budou samozřejmě nespočet alternativ k plnění těchto úkolů, ale tady byly dva jednoduché příklady ukazují, jak snadné je řešení přijít.

Příště

V závěrečné části tohoto seriálu, příhodně pojmenovaný Část 5 , budeme diskutovat o nasazení tohoto systému pro. Budu shrnout to, co jsme se naučili a co se mi podařilo vytvořit.

Úřad výpočetních sítí pomocí virtuálních prostředí - Část 3

Tím, Steven Lloyd Watkin , pátek 04.12.2009 23:37

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové úlohy zpracování miliony záznamů dat každý den a já jsem byl nedávno přemýšlel o všech strojích, které sedí kolem každého a každý den nedělá nic pro několik hodin. Nebylo by dobré, kdybychom mohli využít těchto strojů pro posílení výpočetního výkonu našich systémů? V tomto souboru článků Jdu se podívat na potenciální výhody zaměstnávání úřadu sítě pomocí virtualizovaných prostředích.

V části 2 jsme se podívali na pracovní místa server poběží, a jak pracovních míst by měl být nakonfigurován tak, aby bylo dosaženo co největší množství zpracování a zároveň zajistit, že každá práce je zpracována bez výjimky.

Nastavení pracovník - nebo nouzový server

Dalším krokem v tomto procesu je nastavit virtuální pracovníků. Pro tento budu používat instalace CentOS pomocí VirtualBoxu. Jdu k instalaci MySQL a PHP na serveru, také známý jako kulhat (Li nux, m ySQL, P HP) Servera (Možná jsem se, že název se).

  • Instalovat VirtualBox na váš počítač se systémem Windows (následovat odkaz)
  • Stáhnout a nainstalovat CentOS (aktuální verze 5.3) v rámci vytvořený virtuální stroj

Neexistuje žádný bod, abych bude to tam asi 1.000 's velkou cvičení venku (ok, tady je jedna: Vytvoření a Managing CentOS virtuální stroj pod VirtualBox ). Důležité poznamenat, myslím, že jsem zavolala virtuální stroj GridMachine.

Co se týče mé volby virtualizace klientů a operační systém tam není žádný velký závažný důvod pro každou volbu. VirtualBox je něco, co jsem se používat na svém domácím počítači a je podporována třemi hlavními operačními systémy. Vybrala jsem si CentOS jako dobrý stabilní OS, a používám ho na vlastní webový server. Jsem velkým zastáncem správné nástroje pro práci (i když já jsem použití 'použití nejrychlejší a nejjednodušší pro vás' mentalita zde), takže pokud operační systém X spouští svůj kód rychleji a efektivněji využít, že místo toho:)

Důležité je, aby vaše VM používá DHCP, jinak pro každého nového virtuálního stroje by bylo nutné konfigurovat samostatně, které je něco, co nemáme want.By pomocí DHCP nepotřebujeme pro konfiguraci síťových nastavení individuálně pro pracovníka stroje, bude DHCP ruce z IP pro vás. Proto je možno zkopírovat vaše virtuální stroj o kanceláři bez obav o nastavení každé z nich se (to zvyšuje škálovatelnost a sníží pracovník správy).

Proces byste měli za cíl dosáhnout, by bylo získat nový fyzický stroj, nainstalovat VirtualBox a pak do značné míry nasadit virtuální obraz, aniž by mnoho jiného. To by mohlo být moudré nastavit všechny své zaměstnance na jiné podsíti, takže si můžete alespoň vidět, kolik strojů se systémem. Budete také muset nastavit stroje na dlouhodobý pronájem nebo leasing neomezené DHCP.

Jak spustit práce na pracovníka

Jedná se o zajímavou oblast a tam je několik ověřených metod pro zpracování práce na pracovníka. Zde jsem si jen diskutovat dva nejzřetelnější:

  • Trvale spuštění skriptu: Skript, ať už je to shell skript, nebo PHP skriptu je proveden jednou na pracovníka a běží jako součást nekonečné smyčky. Já jsem tuto metodu diskontovaných jako jeden pád skript a potenciálně vaši zaměstnanci přestanou běžet, aniž by nějaký zásah.
  • Cron na základě skriptu: každých x minut cron démona začíná volání skriptu dát věci do pohybu. Bez nějaké kontroly by to mohlo vést k mnoha mnoha kopií pracovníka skript běží.

Moje rozhodnutí bylo jít s cron, který odstartuje skript každých 10 minutes. Můj skript provede následující úkoly:

  1. Získat seznam procesů a grep to pro 'php'. Pokud nebyl nalezen pak pokračovat.
  2. Zavolejte svou práci kód, v mém případě by to bylo něco, co PHP na základě
  3. Pracovník skript dokončí jeho běh
  4. Připraven jít zase na další příslušné výzvy

Moje bash skript vypadá takto:

  #! / Bin / sh
 pokud ps ax | grep-v grep | grep php> / dev / null
 pak
     echo "práce je v současné době zpracování, exit"
 jiného
     echo "práce není spuštěna, spusťte nyní"
     php yourJobProcessingScript.php
 fi 

Poznámka: echo jsou téměř úplně zbytečné, ale může pomoci další osoba, která přijde, aby se pokusila upravit.

Tím končí nastavit pracovníka virtuálního stroje, rychlý, jednoduchý a snadno kopírovat pro každý nový kus hardwaru, který je přijal. 'Chytrost' distribuční soustavy opravdu není v OS zviditelnit, jeho vše dělat s kódem vytvořených pracovních míst pro zpracování, práce konfigurace, a ujistěte se, že práce spustí v případě potřeby (tj. když hostitel je nečinný ).

Nastavení systému Windows pro inicializaci pracovníků

Prvním úkolem je vypracovat příkazu potřebné ke spuštění virtuálního stroje z okna příkazového řádku. Pokud jste nainstalovali VirtualBox ve výchozím umístění a jste jmenoval svého pracovníka GridMachine pak příkaz požaduje, aby zatížení vašeho pracovníka je:

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

Nicméně spustit skript v 'bezhlavého' stavu musíme použít:

  "C: \ Program Files \ ne. \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = off 

Tím se spustit virtuální počítač bez grafického uživatelského rozhraní a nechte ji zachránit státní elegantně. Druhý argument se vypne RDP tak to není v rozporu s okny RDP, nebo vám zprávu o naslouchání na portu 3389. Název virtuálního stroje je malá a velká písmena!

Dále budeme muset nastavit okna až k nastartování našeho pracovníka VM, jakmile stroj byl nečinný. Chcete-li to (na Windows XP), budete muset jít Start -> Programy -> Příslušenství -> Systémové nástroje -> Naplánované úlohy jak je uvedeno níže:

naplánovaných úloh

Další klikněte na 'Přidat naplánovanou úlohu' následované procházet přidat vlastní program. Navigovat do VBoxManage skript a klepněte na tlačítko OK. Rozvrh váš úkol pro některou z možností (budeme změnit v minutě) a pokračujte. Po přeskočení na další obrazovku Windows se vás zeptá, kdo chcete spustit tento úkol, tak bych navrhnout buď 'správce' nebo vytvoření nového privilegovaný uživatel. Pamatujte, nechceme zasahovat do standardní zaměstnanci účet na stroji, na jakémkoli místě. Klepněte na tlačítko Další a zkontrolujte zobrazit pokročilé možnosti pro tento úkol.

Na konci běhu textového pole přidat naše 'startvm GridMachine' řetězec, a zajistí, že běží pouze při přihlášení je vlevo unticked. Navštivte harmonogram úkolů a další změny rozvrhu rozbalovacího na volbu 'při nečinnosti', vyberte dobu, po kterou chcete, aby byl stroj nečinnosti před přechodem na další záložku.

Nakonec zrušte zaškrtnutí volby v němž se uvádí zastavit úkol, pokud byl spuštěn X množství času, ale zaškrtněte možnost zastavit úkol, pokud je stroj již není nečinný.

plán

To je to pak pro Windows Host nastavení!

Shrnutí

V této části jsme vytvořit virtuální stroj působit jako dělník, stejně jako způsob, který nazýváme a spouštět skripty naše práce zpracování (pro sebe PHP skriptu). Odtud se podíváme na to, jak nastavit naše kopie oken nastartovat virtuální počítač v režimu bezhlavý, když je počítač nečinný stane, a uložit svůj stav, když uživatel obnoví využití stroje. Doufejme, že v tuto chvíli vidíte, jak jednoduché je vytvořit takový systém, a jsou svědění získat nějaké pokusy jít sami!

Příště

V části 4 se budeme se dívat na používání nástrojů, aby zajistila, že používáte nejnovější verzi kódu a datových zdrojů tak, aby získané výsledky jsou vždy up-to-date s nejnovějšími obchodních informací a logiky.

Úřad výpočetních sítí pomocí virtuálních prostředí - Část 1

Tím, Steven Lloyd Watkin , pátek 04.12.2009 23:23

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové úlohy zpracování miliony záznamů dat každý den a já jsem byl nedávno přemýšlel o všech strojích, které sedí kolem každého a každý den nedělá nic pro několik hodin. Nebylo by dobré, kdybychom mohli využít těchto strojů pro posílení výpočetního výkonu našich systémů? V tomto souboru článků Jdu se podívat na potenciální výhody zaměstnávání úřadu sítě pomocí virtualizovaných prostředích.

Jako PHP developer budu používat nástroje, které používám každý den a to, Linux, mySQL , PHP, VirtualBox a Subversion (SVN). Nicméně doufám, že tento průvodce bude adaptovat do jiných jazyků a technologií, stejně dobře.

Řešení, které jsem poskytují bude velmi volně založený na typu zpracování bychom třeba dosáhnout však to nemusí být pravda, přes celý článek, jak budu měnit věci pro jednoduchost, nebo produkovat více zajímavých scénářů použití.

Tyto virtualizovaných prostředích poběží na Windows strojích, protože to je to, co většina úřadů běhu. Zpracování, kancelářské stroje se nemělo zasahovat pracovníky pomocí těchto strojů, by měla vyžadovat žádnou údržbu na stroji, a musí být snadno nasadit na nové stroje, které budou k dispozici. Také by nové virtuální stroje nevyžaduje žádné další nastavení, protože to výrazně snižuje škálovatelnost a snadné, při které může distribuční systém rozšířen.

Proč Nasazení Office Computing Grid?

Za prvé si mohou myslet, proč ne právě použití cloud computing zdroje, jako je Amazon EC2 platforma ? No důvodů může být několik, například:

  • Nebudete svěřit některé údaje na životní prostředí cloud computing
  • Nemůžete dát některé údaje v prostředí cloud computingu pro právní důvody (např. údaje výjezdu ze země), případně z právních důvodů, např. NHS záznamů.
  • Chcete, aby vaše zpracovatelských jednotek blízko a mít plnou kontrolu nad hardwarem příliš
  • Nemáte projekt finanční prostředky ke spuštění instancí cloud
  • Váš úřad nemá připojení k internetu, a proto není možné jeho použití cloud zdroje
  • Nemáte jako déšť, mraky naznačují déšť, proto budete mít daleko

Jsem si jistý, seznam by mohl pokračovat, ale myslím, že by pro začátek stačilo.

Výhody gridové výpočetní Office

Dobře, pojďme udělat nějaký matematiky (a fyziky v pravém stylu umožňuje provést některé rozsáhlé předpokladů). Představte si, že máte velký svalnatý zpracování server běžící 100 pracovních míst za den. Ve vaší kanceláři máte 50 strojů, které jsou nečinnosti 16 hodin denně, každý z těchto strojů je 10% jak silný jako svalnatý zpracování sever. (Všechny výsledky zde jsou zaokrouhleny na podceňovat zvýšení výkonu).

Takže stroj * 10% energie * 2 / 3 = 0,067 času, tj. o 1 pracovní ploše zpracování v nečinnosti by mohlo 1 proces, 6 plný úloh za den.

Pokud nyní měřítko to až za 15 nečinnosti stolních počítačů až po proces co nejvíce pracovních míst za den jako hlavní server pro zpracování dělá.

Takže v naší kanceláři předstírat 50 strojů bychom mohli zvýšit náš výkon zpracování od 1 do 4 server plný zpracování servery, nebo bychom mohli být zpracování 400 pracovních míst za den namísto 100.

Všimněte si, bez investice do nového hardwaru vaše firma právě zvýšila dávkové zpracování kapacita 4 krát! Potenciálně se chystáte zvýšit spotřebu energie, ale z většiny kancelářských prostředích Byl jsem na stroje jsou obvykle vlevo na přes noc stejně, takže jste mohli vidět jako zelenou iniciativu.

Další výhody také znamená, že investice do nových (či aktualizované) zpracování servery mohou být odloženo, pokud vaše kancelářských strojů, jsou dostatečné a že, jak si vylepšit výkon vašeho kancelářských strojů kanceláře síť stala silnější automaticky.

Technologie

Co budete potřebovat? (Nebo více správně to, co jsem použití):

  • Nečinnosti kancelářské stroje (v mém případě náhradní starých oken notebook XP)
  • VirtualBox (nebo jiný virtualizační klientský software)
  • Virtuální stroj s PHP, mySQL running běží kácet OS, volám těchto mých LIMP servery:)
  • Pracovních míst pro spuštění
  • Zaměstnání server (může být jiný virtuální stroj někde)

Typická práce

Typy úloh, které tento systém je navržen tak, aby je takto:

  • Systém obdrží seznam údaje, na kterých musíme zápas a vrátit výsledky
  • Odpovídající zahrnuje kontrolu / vyhledávání několik (poměrně statické) zdroje dat
  • Výsledky ze zdrojů dat mohou vyžadovat další validace, slučování, ověřování dalších datových zdrojů v reakci na výsledky
  • Data se vrací s odpovídající záznamy, plně ověřen a zpracován
  • Každý záznam v zaměstnání je nezávislá na zbytku

Takže v podstatě se díváme na běžící úlohy, které vyžadují směs vyhledávání v databázích a nějaké číslo drtit, poměrně typický scénář v podnikatelském prostředí.

Mřížka řešení jsou nejen výhodné pro zpracování práce tohoto typu. V podstatě může být každý proces, který může být rozdělen do nezávislých jednotek probíhat souběžně. Viz tento wikipedia pro příklady a další informace: grid computing , ale pár známých příkladů je Seti @ Home a BIONC . Existují rámce pro provoz výpočetních sítí, a tyto jsou dobře stojí hledá do.

Co budeme dosáhnout?

Do konce těchto článků Doufám, že se ukazuje, že rozmístění úřad sítě nemusí být obrovsky nákladná a časově náročná. Jdu k projednání:

  • Nastavení práce kontrolního systému, práce konfigurace
  • Vytvoření vhodného zpracování virtuální stroj
  • Jak nastavit systém na počítač se systémem Windows
  • Zajištění, že používáte nejnovější kód a data
  • Nasazení a benchmarking
  • Výhled do budoucna

Budu budovy (ok jsem stavěl, pak napsal), příklad aplikaci pro testování koncepcí na lokální počítač v systému Windows XP a moje 'GridMachine' virtuální stroj. Mým úkolem kontroly server bude můj hlavní stroj, který běží Fedora 11 .

To je v žádném případě předvést plně funkční robustní systém, jeho znamenal více demonstraci a diskutovat o tom, že tyto věci může být dosaženo v rozumně krátké době a za malou cenu. Neváhejte a pošlete mi jakékoli připomínky, opravy, či vylepšení a já budu dělat moje nejlepší, aby tento článek aktualizován na zápas.

Příště

V části 2 Začnu se podíváme na systém kontroly práce, a podívejte se na to, jak by měla práce být nakonfigurován tak, aby bylo dosaženo co největší množství zpracování a zároveň zajistit, že každá práce je zpracována bez výjimky.

Úřad výpočetních sítí pomocí virtuálních prostředí - Část 2

Tím, Steven Lloyd Watkin , pátek 04.12.2009 23:23

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové úlohy zpracování miliony záznamů dat každý den a já jsem byl nedávno přemýšlel o všech strojích, které sedí kolem každého a každý den nedělá nic pro několik hodin. Nebylo by dobré, kdybychom mohli využít těchto strojů pro posílení výpočetního výkonu našich systémů? V tomto souboru článků Jdu se podívat na potenciální výhody zaměstnávání úřadu sítě pomocí virtualizovaných prostředích.

V části 1 jsem dal přehled o systému a technologií, budu používat, stejně jako diskutoval některé z možných důvodů, proč byste chtěli vytvořit kancelář mřížky.

Řízení práce

Pokud se chystáte být běžící úlohy pak budete potřebovat nějaký způsob, jak řídit. Vaším úkolem řídicího systému (na svou práci serveru) musí být opravdu dobře promyšlený ještě předtím, než pokoušet se spustit funkci sítě. Tak za prvé, jaké jsou úkoly pro systém kontroly práce:

  • Rozdávat práci na žádost zaměstnance
  • Řekněte pracovníků, jaký typ úloh spustit
  • Sledovat pracovních míst
  • Ujistěte se, že pracovní místa jsou poháněna pouze jednou
  • Poskytnout zaměstnání údaje na pracovníky, nebo alespoň říct, kde jej získat

Systém také musí být rozšiřitelné, řešení, které funguje zatím v jediném případě může být prodloužena spustit několik typů pracovních míst, jako obchodní vidí hodnotu v mřížce řešení. Mohou například získat práci priority, může být více než jedno zaměstnání typu existují (tj. několik základen kód), případně můžete dokonce provozovat několik různých pracovníků stroje, které jsou optimalizovány pro každý typ zaměstnání (i když to není odklon od 'obecných pracovník 'nápad). Vždy se snažím myslet na budoucnost při vývoji systémů, může krátkodobě vést k vizi dlouhodobé frustraci a zvýšený dobu vývoje.

Server práce

Budeme se muset někde kontrolovat naše práce od, mělo by to být jediný systém ve své síti, která má pevnou Resource Locator, je, že IP adresu, název hostitele, URL (pomocí interní DNS), atd. Je to proto, pracovníci musí vědět, kde hledat práci, pracovníci musí najít práci kontrolního systému (ne práce kontrolního systému naleznete pracovníků).

Zaměstnání server sám o sobě nemá opravdu složitý úkol (v základním systému v každém případě), je třeba uložit seznam míst, ruku pracovních míst, obdrží výsledky, a následně uložit pro pozdější použití. Jak jsou tyto součásti (například 'ruku pracovních míst') definován může být velmi jednoduchý. Později můžeme rozšířit systém zahrnuje administrační rozhraní přidávat, upravovat, mazat, pozastavit pracovních míst, ale to je nad rámec tohoto cvičení.

Není žádný důvod vůbec pak, že vaše práce server nemohl být virtuální stroj běžící ve Vašem hlavním zpracování server předpokladu, že nedojde mozků příliš mnoho prostředků z ní. Zaměstnání server však nemá potřebu vysoké dostupnosti, pokud to jde dolů v pátek večer budete ztrácet celý víkend zpracování, případně vás to stálo za pár týdnů v hodnotě čas zpracování (ve srovnání s hlavním zpracování server sám) . Můžete chtít, aby zvážila své práci na serveru zatížení vyvážené prostředí pro vysokou dostupnost.

Základní nastavení

Základní nastavení pro náš server práce se bude skládat z toho, co jsem volat jeden z mých serverů LIMP (to je Li nux, m ySql, P HP). Kód běžící na thea zaměstnanců bude skutečně fungovat, jaké zaměstnání to může běžet v interakci s databázemi práce s řídícím systémem. Později bychom mohli vytvořit webové služby, a skutečně ruku pracovní místa spíše než mít pracovníci dělat těžkou práci sám, ale teď budeme pokračovat v používání principu KISS (Keep It Simple, Stupid!).

Takže, umožňuje vytvořit tři mySQL tabulky se zabývat pracovních míst. Ty budou "pracovních míst", `jobRecords` a `` jobResults.

pracovních míst tabulky Zde jsem pomocí SQL Buddy velký malý alternativa k phpMyAdmin jen proto, že jeho snadnější instalaci na CentOS (pro ostatní viz: 10 Velké alternativy k phpMyAdmin )

Tato tabulka se skládá z 5 jednoduchých polí,

  • id: Jedinečná identifikace práce
  • Jméno: Mohl by to být klientem odkaz, nebo libovolný počet jiných identifikátorů
  • Stav: Musíte vědět, kde je práce na např.
    • 0: Není začal
    • 1: Vyzvedli jsme
    • 2: Dokončeno
  • started_by: Kdo je začal dělat práci? To není úplně nutné, ale je hezké mít. Já bych navrhnout sledování zaměstnanců podle jejich IP adresy ve vaší síti
  • started_at: Kdy se pracovník start práci? Do sledování pracovních míst, která nejsou dokončena do množství X čas víme, že je třeba vyzvednout práci znovu a začít zpracování jiným pracovníkem. Pracovníci by mohly zastavit zpracovávání / go offline pro libovolný počet důvodů, výpadku napájení, havárie, ztráta sítě, atd.

Je to snadné, jak by to mohlo být rozšířeno tabulku s několika dalších oblastech s cílem umožnit sledování statistik, konečný čas sloupce vidět, jak dlouho zaměstnání trvalo, počítadlo, kolik pracovníků zvedl práci (samozřejmě to musí obvykle 1), pracovní priority, může do seznamu pokračovat dál a dál. Ve složitějších pracovních scénářů, že by bylo možné určit, kolik paměti pracovník by potřebují přístup k (a tedy použít pouze vhodných pracovníků), nebo dokonce jaký typ pracovníka, by bylo zapotřebí.

Umožňuje přidat několik příkladů pracovních míst:

Například práce

Následující tabulka opět je docela jednoduchý na pochopení, to jsou naše práce záznamů. Ty jsou napojeny na hlavní pracovní místa tabulky sloupec `jobs_id". Tvoří z této tabulky velmi závisí na typu dat, které musíte zadat do svého zaměstnance, nechá udělat velice jednoduchý příklad, kde máme čtyři sloupce:

  • id: ID záznamu
  • jméno: jméno osoby
  • adresa: osoby adresa
  • jobs_id: ID zaměstnání, že tento záznam je spojena

Třetí a poslední stůl se skládá z výsledků tabulky, to má hodně stejný tvoří jako naše záznamy stůl, a s přidáním některých sloupců by mohlo být součástí záznamů tabulky:

  • job_record_id: Odkaz výsledek práce stolu
  • Výsledek: Výsledkem data

... A to je vše, co potřebujete pro práci kontrolou! (I když na velmi základní úrovni) V mém případě já jsem uvedl do jiné tabulky, kde se nachází moje osobní údaje ke zpracování, ale toto mohlo právě jak snadno být soubor, parametry pro spuštění simulace kód, co si jen vzpomenete.

Výběr práce

Jak již bylo uvedeno dříve, budou pracovníci dělat naši práci vedení pro nás teď, takže musíme opravdu udělat, je najít si práci, která potřebuje zpracování a získat informace. Jak bychom to udělat? No vyzvednout naše kritéria výběru zaměstnání a hledat práci v SQL jsem následující:

  1. Vezměte všechny úlohy, které nejsou označeny jako kompletní, ale z našeho pracovníka, a reset je (náhradní __ME__ s identifikátorem, bude nejjednodušší je IP adresa):
      UPDATE `` SET `zaměstnání status" = 0, kde `status` = 1 `A` = started_by __ME__; 
  2. Pomocí našich kritérií výběru povolání, zvolte práce a říct kontrolní systém, který tento pracovník se zabývá se:
      UPDATE `` SET `míst status = 1`, `started_by` = __ME__, `started_at` = NOW (), KDE `status` = 0 nebo
     (`Status` = 1 A `` started_at> DATE_SUB (NOW (), INTERVAL X HOUR)) ORDER BY `id` ASC; 

    Tím, že chytne úlohy, které nejsou vráceny výsledky ve výši X jsme zajistit, že všechny úlohy jsou spouštěny v případě pracovníka shazovat nebo jít AWOL.

  3. Další uchopit zaměstnání podrobnosti následuje záznamů sami:
      SELECT * FROM `pracovních míst", jestliže `` = started_by __ME__ LIMIT 1;
     SELECT * FROM `` job_records Kde `id` = __JOBID__; 

Po dokončení práce vložíme náš výsledek záznamy a označit práci jako kompletní. Pamatujte si, jak pracovních míst může pozastavit / obnovit kdykoliv počítat s nějakou robustnost ve skriptu. To by mohlo být, že úkol odloží půli aktualizace práci kontrolního systému, takže kontrola počtu záznamů v zaměstnání a počet výsledků uloží zpět do systému kontroly práce by moudrý tah.

Kromě toho, i když to ukazuje, jak lze pracovní místa být vybrány a řízeny z SQL-query rámec, který by měl být opravdu oddělovat vaše práce kontrolu tak, že pokud se rozhodnete přejít na používání webových služeb, souborů založený systém, XML , nebo jakékoli jiné řada systémů to nebude mít vliv na kód, nad ní.

Konfigurace práce

Dalším aspektem je, aby zvážila velikosti úlohy a konfigurace. Tím, že hraje s konfigurací práci můžeme nalézt vynikající rovnováhu mezi rychlostí, proces replikace a spolehlivost. Vezměte pár OFA scénáře:

  1. Pracovních míst trvat 1 den každý spustit: To znamená, že vaši zaměstnanci potřebují 15 dnů na zpracování jednotlivých zaměstnání (pamatujte 10% energie pro 2/3rds času). To je jasně není moudré konfiguraci, vaše práce je velikost příliš velká! To by trvalo minimálně dvakrát čas, aby si práci zpracovaných měla původní pracovník jít AWOL (čas zvednout to, že není vrácen výsledek plus přepracování času). V ideálním byste mít alespoň jedno celé práci snadno schváleny do konce roku každý dlouhý volnoběhu, tak budete mít pracovních míst a přes tikání v nejhorším případě zaměstnání by trvat dva dny, proces by měl první zmizí.
  2. Pracovních míst trvat 1 minutu běžet: To znamená, že vaši zaměstnanci trvat asi 15 minut běžet každé pracovní místo. I když to zpočátku může zdát ideální, můžete získat další práci pro zpracování v době oběda, přestávek na kávu, schůzky, atd. tento scénář klade nároky na další oblasti vašeho systému a zavádí své vlastní problémy. Například, nejprve si setup / doba zpracování je poměr jít přímo dolů, proto ztrácí účinnost systému. Vaše síť bude neustále streamování pracovních informací mezi různými pracovníky frustrující zaměstnanci, kteří jsou dong jejich každodenní práci. Vy jste také chystá dát více napětí na vašem serveru, zpracování zakázek, jak to má naservírovat spousty malých kousků práce na pravidelném základě. Konečně, v této situaci, pokud vaše práce serveru jde dolů se chystáte vytvořit obrovské zadní protokol o nedokončenou práci vzhledem k tomu, větší zaměstnanost by mohlo dalšího zpracování blažené nevědomosti, že práce byla server potíže.

Ve skutečnosti tam bude nikdo ideální sestavu pro vaši síť nastavení, hodně závisí na dostupné zdroje, druh zaměstnání, pracovní požadavky doba obrátky, možnost práce v síti, a tak dále. Nicméně některé pokyny by měly mít:

  • Velikost pracovních míst tak, aby každý zaměstnanec může dostat přes alespoň 3-4 pracovních míst v období 15 hodin (pravděpodobně nejdelší doby nečinnosti období)
  • Hrajte s velikosti úlohy, takže nastavení času stává docela zanedbatelné ve srovnání s dobu zpracování (s přihlédnutím k výše uvedenému bodu).
  • Pokud práce není kompletní dvojnásobné množství času (možná méně) můžete očekávat, že na jeho dokončení předpokládat, že jeho pryč dezertoval a začít zpracovávat to s jiným pracovníkem. To znamená, že budete muset počkat až na trojnásobek běžné délky práce pro to, aby kompletní (možná i déle, pokud následné práci se nezdaří). Možná budete chtít zkrátit tuto lhůtu, ale dávejte pozor, aby ho snížit příliš mnoho, jak si může zahájit rozmnožovací zpracování úloh na pravidelném základě.
  • Pracovních míst by měly být nezávislé na vnější požadavky, co nejvíce. Pracovní server, například, by měly být kontaktován na začátku a na konci každé pracovní místo.
  • Nepoužívejte nasycení síti, bude to mít dva negativní dopady, bude vaše denní zaměstnance najít pomocí sítě frustrující a problémy mohou být zkušenosti s připojením časového limitu problém, který se bude jen zhoršovat, jak si měřítko své sítě.
  • Zajištění pracovních míst může běžet na vašich zaměstnanců. Pokud pracovních míst příliš náročné na paměť nebo prostor na disku intenzivní práce začne končím a jediné, co si všimnete, je pokles počtu pracovních míst zpracovány žádný skutečný důvod, proč.

Pošlete výsledky práce

Při předkládání výsledků práce je důležité zkontrolovat, že výsledky nebyly předloženy jiným pracovníkem, a to zejména v případě, že stávající pracovník byl spící na nějakou dobu.

Když výsledky jsou předloženy, aby počet výsledků utkání počet záznamů v práci.

Jak již bylo uvedeno, a nemůže být více než zdůraznit, budovat odolnost proti chybám v práci a výsledky vyhledávání podání. Pracovníci mohou (a pravděpodobně bude) jít do režimu spánku nanejvýš nevhodné časů, a to musí být pro zajištěný. Také opět odstraní pryč vaše výsledky podání pomohou uspokojit budoucí změny systému kontroly práce mnohem jednodušší řešení.

Shrnutí

V tomto section jsme se zaměřili na to, co kontroly práce server musí udělat a jak se dostat velmi základní systém nastavit. Diskutovali jsme o tom, jak získat práci z řídicího systému, a jak nejlépe nastavit pracovní místa, aby co nejvíce našich vašeho systému úřadu sítě. Až do konce, nebo dva odstavce o předkládání výsledků zpět na server kontroly práce byla prezentována.

  • Kontroly práce server spravuje pracovních míst a zajišťuje, že všechny pracovní jednotky jsou dokončeny
  • Tím, že odstraní svou práci vybrat / výsledky podávání můžeme změnit technologii ovládání serveru bez velké problémy
  • Sestavte si svůj pracovní místa, aby bylo zajištěno, že jsou provozovány rychle a efektivně, aniž by příliš velký tlak na vaší síťové infrastruktury, a nedochází ke zdvojování úkolů zpracování na pravidelném základě.
  • Ujistěte se, že budete stavět tolerance chyb a omylů checking do rutiny, mohou pracovníci pozastavit a obnovit a při nejnepříznivějším časů. Nezapomeňte zkontrolovat, zda výsledky již byly předloženy jiným pracovníkem.

Příště

V části 3 , budeme vytvářet naše virtuální zpracování a nastavit naše okna strojů, aby se stal nečinnosti-úvazek.

Úřad výpočetních sítí pomocí virtuálních prostředí - Část 5

Tím, Steven Lloyd Watkin , pátek 04.12.2009 23:03

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové úlohy zpracování miliony záznamů dat každý den a já jsem byl nedávno přemýšlel o všech strojích, které sedí kolem každého a každý den nedělá nic pro několik hodin. Nebylo by dobré, kdybychom mohli využít těchto strojů pro posílení výpočetního výkonu našich systémů? V tomto souboru článků Jdu se podívat na potenciální výhody zaměstnávání úřadu sítě pomocí virtualizovaných prostředích.

V části 4 se podíval na používání nástrojů, aby zajistila, že jsme používají nejnovější verzi kódu a datových zdrojů tak, aby získané výsledky jsou vždy up-to-date s nejnovějšími obchodních informací a logiky.

Pre-nasazení

Před nasazením své distribuční soustavy, pokud je tu ještě jedna věc, kterou uděláte, a jednu věc, jen je to benchmark váš současný systém! Bez ohledu na to, co řeknete kolegy o tom, kolik práce navíc je váš systém bude dělat, pokud jste čísla by toto vaše záruky jsou nic. Tak,

  • kolik záznamů můžete zpracovat v současné době? Za den? Za hodinu?
  • Jak dlouho to obvykle trvá otočit práci?
  • Kolik větší kapacitu máte?

K dispozici je také doplňující otázky:

  • Pokud váš zpracování server (nebo jeden z vašich zpracování serverů) jde dolů, jak to ovlivní vaše schopnosti, budete mrzák?
  • Jaké výhody vám naději / očekávat, že si z distribuční soustavy?
  • Jsou vaše kancelářské stroje schopné provozovat pracovní místa?
  • Jsou vaše (nebo si můžete práci převést) pro práci v tomto stylu běhu?

Poslední hlavní bod, je vzít si čas na žádné velké změny, jako je tento. Aktualizujte svůj operační kód pro práci s použitím nové metodiky, benchmark znovu. Možná nastavit zpracování server spustit virtuální stroj, po všech těch zpracování server bude jen dalším pracovníkem (jen velmi silnou, poměrně). Umožnit nový proces se usadit.

Nasazení

Můj návrh by byl pop do kanceláře jeden víkend provádět veškeré instalace a nastavení. Udělejte to těsně předtím, než čtrnáctidenní dovolenou a nechat tak ostatní chudák se vypořádat s následky ... možná taky ne ...

Nasazení systému, jako je tento musí být pomalé. Ačkoliv se jedná o relativně jednoduché nastavení tohoto systému bude mít vliv na celou vaši kancelářskou infrastrukturu (i digitální). Za prvé, dojezdu do několika strojů najednou, sledovat provoz v síti, jak pracovník hostí hrát na den-to-denní bázi. Možná budete muset změnit své práci konfigurace v reakci na vaše nálezy.

Jakmile je systém usadil se několik strojů (řekněme 10% všech kancelářských strojů, tj. 5) držet monitorování síťového provozu a hostitelského počítače performance. Další benchmark znovu, měli byste být nyní zpracování o 33% více pracovních míst než vaše první měřítek. Zkontrolujte, zda tomu tak je, nebo že jste alespoň v tomto ballpark. Pokud ne, zkoumat, co se děje předtím, než přejde. Opakujte tento cyklus, dokud spokojeně mít všechny kancelářské stroje běží bez zabíjení individuální výkon stroje nebo broušení síti ke klidu.

Po celou dobu držet benchmarking, a to i poté, co jsou všechny nasazení. Zkontrolovat, jak nový kód aktualizace ovlivňují rychlost systému, zkontrolujte, zda všichni pracovníci jsou v hlášení a zpracování pracovních míst. Pomalu (velmi pomalu) přírůstek vaším úkolem konfiguraci k dosažení toho nejlepšího z vašich pracovníků a sítě.

Stop!

Co když chcete zastavit své pracovníky v běhu na nějaký čas? Všichni jsou tam běží, regenerace, a snaží jejich nejlepší pro zpracování dat, jako je hlad hmyz. Odpověď se může zdát zřejmé, ale nutno dodat, jen v případě, že jeho přehlíženy. Stačí upravit svůj zpracování skriptu s exit (0) nebo die () nebo některé další údaj, zabít svého zpracování práce. Důležitým důvodem, proč se vždy snažíme aktualizovat na nejnovější zpracování skriptu před utíkej!

Demonstrace systému

Aby bylo možné psát tento soubor krátkých článků jsem vytvořil velmi malé sítě k prokázání technologií a metod. Četl jsem spoustu článků, návodů, a používá různé nástroje pro nastavení a sledovat, co se děje. V žádném případě jsem šel ven a nasycených celou kancelář s provozem a ani jsem měl přístup k pravidelným PC zaměstnance, aby viděli, jak byl ovlivněn výkon hostitele.

Moje demonstrace systém byl velmi pokorný opravdu. Použil jsem běžné stolní nastavit jako server kontroly práce. Na tomto jsem měl nainstalovaný MySQL server nainstalován nastavit jako master replikace, PHP , Â a SVN spojený přes apache (pro přístup přes pracovníka VM).

Pak jsem vytvořil CentOS pracovník stroj na VirtualBox na 6 roků starých oken notebook XP. I nastavení naplánovaných úloh, jak je uvedeno po zkopírování VM na stroj a nechte ho jít.

Virtuální stroj byl zřízen s PHP, podvratné činnosti, a mySQL. Ověřil jsem si větev s názvem 'pracovník' z mých serverů zaměstnání kontrolu úložiště a ujistili se, že by mohla být aktualizován pomocí 'svn update'. Dále jsem nastavení MySQL jako otrok a ověřil, že data byla replikace z MySQL na serveru kontroly práce se na pracovníka VM. Po tom všem jsem setup bash skript a cron.

Moje zpracování skriptu v podstatě šlo v duchu této (velmi jednoduché věci):

  • Přečtěte si v názvu pole
  • Počítá se počet podobných jmen v tabulce ze zdroje dat se konalo ve dnech VM
  • Počítal počet jmen jako výše, ale rozdělení na název mezerami (tj. jméno, střední, příjmení)
  • Opakoval tento proces 1.000 krát

Každá práce se přibližně 20 minut běžet. V jednu chvíli jsem otevřel několik kopií pracovníka VM na oknech notebooku a sledoval, jak pracovních míst odškrtnout každý pracovníka IP adres. Na tomto místě bych také potvrdil, že replikace se automaticky restartuje.

Odchod z notebooku na volnoběh za následek pracovník zahájením zpracování úloh ze serveru kontroly práce. Při obnovení laptop využití došlo ke zpoždění asi 30 až 60 sekundy, to je slušné množství času a personálu by muselo být vědomi, že jejich stroj může pozastavit na krátkou dobu při návratu do stroje. Novějších strojů nesmí mít pauzu tak dlouho. Ve prospěch výše zpracování vykonávané v rámci těchto strojů během nečinnosti období by více, že převažují zaměstnanci museli čekat krátkou dobu (řekněme 1 minuta) při příjezdu na jejich stroje ráno (jsem často déle čekat, že to pro Windows Defender Aktualizace se konat) za předpokladu, že byli informováni o této (užitečné čas chytit ranní kávu!).

Celkově mám pocit jistoty, že jsem demonstroval technologie, které by mohly být použity k vytvoření takového systému. Ukázal jsem, že takový systém funguje na (velmi), v malém měřítku a některé další experimentování může být zmenšen až využívat zdroje z úřadu strojů. Pokud nemám dostat do bodu, jak toho dosáhnout byl bych velmi zajímalo, / vidět, když to udělá někdo jiný.

Závěry / ​​hodnocení

Další zjevné krokem by bylo skutečně dostat reálného světa příkladem a začít nasazení systému, jako je to v prostředí kanceláře a uvidíme, co se stane. Kladení podnikání, aby se zavázaly to bez průkopnictví společnost prokázat technologii a účinnost může být trochu obtížné. Mřížky / Distribuované výpočty je velmi populární, je několik kruhů a má několik velkých aplikací (BIONC, SETI @ Home, Folding @ Home, atd.). Nechtěl jsem, nicméně, najít menšího rozsahu a jednoduchého systému, jako je to v mém hledání, které by mohly být válí v kancelářském prostředí.

Vytvořil jsem v podstatě bez systému, s použitím převážně open source software a nástroje k dispozici v téměř každé kanceláře. Technologie byly v podstatě prokázat, a ukázat, aby fungovaly a fungují podle očekávání. Doufám, že jsem se ukázat, že se nebude moc práce a velmi jednoduché nastavení můžete nasadit kancelář grid computing systém, který je silný, levný, Â a škálovatelné všechny ve stejnou dobu.

Jakmile je systém v provozu není téměř žádný konec výše úprav a vylepšení můžete udělat. Například statistiky benchmarkingu lze snadno přidat ukazovat hodnotu takového systému každý den. Nové stroje mohou být přidány rychle a snadno, jak a kdy dorazí s modernizace stávající hardware posílení svého výpočetního výkonu.

Doufám, že jste si užil čtení této sérii článků a vám dal k zamyšlení na provoz kanceláře distribuční soustavy. Toto řešení zde nebude nutně fungovat ve všech situacích, ale měly by být schopny se přizpůsobit vám umožní dostat své zpracování dat provádí pomocí vlastního řešení.

Neváhejte a pošlete mi jakékoli připomínky, opravy, či vylepšení a já budu dělat moje nejlepší, aby tento článek aktualizován na zápas.

[Oznámení] dítě pid XXXX výstupu signál Chyba segmentace (11)

Tím, Steven Lloyd Watkin , v neděli 11.10.2009 18:09

Pokud jste nedávno upgrade PHP nebo Apache jste možná naráží na problematiku svůj webový server vracet prázdné stránky, a házet chybové zprávy do protokolů s netuším, proč, tady je jeden možný způsob, jak opravit ...

Já jsem měl tento problém několikrát v poslední době po aktualizaci Apache nebo PHP na virtuální stroj. Poprvé jsem si všiml, chybu jsem se prostě vrátil k zálohování mých VM, ale podruhé jsem si uvědomil, že bych se podívat do problematiky.

Poprvé jsem si všiml, vydat některé z mých webových stránek byly sloužil jako prázdné soubory, zatímco jiní pracovali naprosto v pořádku. Po nějaké šetření, všiml jsem si, že apache psal se do / var / log / http / error_log s následující zprávou repeatidly:

[Oznámení] dítě pid XXXX výstupu signál Chyba segmentace (11)

Tam není přidělit jít o on-line, a většina stránek o tom stezka pryč na nic. Řekl, že jsem zúžil na otázku PHP zřítilo při pokusu o nepotřebné dynamické knihovny.

Při pohledu na můj php.ini (/ etc / php.ini) jsem zakomentovaný všechny dynamické knihovny naložené plánování na komentování je zpět v požadované. Tyto dva jsem musel vzít ven, kde pdo.so a mysql . tak.

Jakmile budou tyto byly odstraněny všechny mé webové stránky byly podávány v pořádku, stejně jako před PHP / update Apache.

Bezdrátové o 5002 WLMi Acer na Linuxu (Fedora 11)

Tím, Steven Lloyd Watkin , v sobotu 11.7.2009 21:48

Jak jsem strávil další pár hodin dnes nemají přístup k internetu Myslela jsem, že lépe si to napsáno tak, že příště mi nepořádek můj notebook se informace je možné snadno opravit.

V podstatě se dostat bezdrátové řidiči, kteří pracují pro Acer 5002 WLMi, budete muset použít b43-fwcutter. Instrukce lze nalézt zde: Linux Bezdrátové B43 .

Snadno, jakmile se informace nachází.













Panorama Téma, které Themocracy

5 návštěvníci online nyní
2 osoby, 3 roboty, 0 členů
Max návštěvníků dnes: 14 v 07:34 UTC
Tento měsíc: 26 na 07.05.2011 00:35 UTC
Tento rok: 130 v 28-03-2011 22:40 UTC
Všechny čas: 130 v 28-03-2011 22:40 UTC