Úř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ň jeden celý pracovní snadno schváleny do konce každého dlouhé nečinnosti období, tak budete mít práci přes tikání a v nejhorším případě zaměstnání trvalo dva dny proces by měl jít první chybí.
  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.

Jedna reakce na "Office gridu s použitím virtuálního prostředí - Část 2"

  1. Hydrolyzovat říká:

    Heja! Dobrý koncept, ale může to opravdu dělat svou práci?

Dovolená jeden Namítat













Panorama Téma, které Themocracy

10 návštěvníků online nyní
6 osob, 4 boty, 0 členů
Max návštěvníků dnes: 17 v 12:28 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