B4. Počítačové sítě a decentralizované systémy Jakub MÍŠA (2006)
6.
Budoucnost distribuovaného zpracování dat, komunikační infrastruktura, hardwarové a softwarové platformy.
Distribuované zpracování dat – historie Dříve bylo zpracování dat decentralizované. Později se přešlo k čistě centralizovanému zpracování. Pak se objevila architektura klient/server. Někteří odborníci si myslí, že už tato architektura je distribuovaným zpracováním (úkoly jsou rozdělené mezi server a klienty). Jsme o něco blíže, ale přesné to zdaleka není. O distribuovaném zpracování dat hovoříme především v případech splnění několika základních podmínek, mezi které patří například geografické oddělení výpočetních prostředků a jejich vzájemná komunikace (na místě výpočetních prostředků si můžete představit třeba databázové servery – a to i od různých firem). Podstatné také je, že uživatele nemusí zajímat, která část systému jeho požadavek zpracovává (či kde jsou data uložena) – měl by mít pocit, že vše probíhá na lokálním počítači (hovoříme o tzv. transparentnosti umístění). Distribuovaný systém může být homogenní či nehomogenní. Mezi hlavní výhody distribuovaného zpracování patří především umístění jednotlivých částí dat či funkcí tam, kde je jejich dostupnost pro danou skupinu uživatelů největší (například u jednotlivých poboček firmy). Systém je jako celek více odolný proti poruchám – výpadek jednoho uzlu nesmí ohrozit správnou funkčnost uzlů zbývajících (někdy hovoříme o transparentnosti vůči výpadkům systému). Svět není jen černobílý – distribuované systémy mají pochopitelně také nevýhody. K těm můžeme zařadit například nutnost zajištění synchronizace dat (hovoříme o jejich replikaci), nároky na propustnost komunikačních linek a v neposlední řadě i obtížnější výstavbu takového systému. Příkladem mohou být systémy používané v bankách – jednotlivé účty jsou zpracovávány lokálně a mohou být přístupné i z jiných poboček, registry dárců orgánů v jednotlivých okresech. Distribuované zpracování dat – popis Při klasickém centralizovaném zpracování dat, se celá datová základna nachází na jednom počítači. Je to jednoduché a má to značné výhody. Například lze snadno zajistit, aby všechna data byla ukládána jen jednou, snadno lze ošetřit přístupová práva a i konzistenci lze zajistit mechanismy, které nejsou až tak složité. Problém však nastává v okamžiku, kdy do této základny potřebujeme přistupovat z odlehlých míst, nebo dokonce z přenosných počítačů. V době rozmachu dálkových počítačových sítí to sice lze zařídit, ale přenos většího množství dat může zabrat poměrně dlouhou dobu. Je také krajně podivné, aby si uživatel z nějaké pobočky musel vždy přenést všechna data, která potřebuje, a to i v případě, že se jedná o stejná data, se kterými pracoval naposledy, a nebo dokonce z jejich povahy vyplývá, že s nimi může pracovat pouze on sám. V tomto případě přichází čas pro distribuované zpracování. To spočívá v tom, že část dat dislokujeme na pobočky, popřípadě centrálu úplně zrušíme a distribuujeme všechna data. Na pobočky můžeme uložit buďto celé tabulky, nebo jejich části. Tabulky pak dělíme buďto podle řádků, nebo podle sloupců.
B4-06
1/6
K tomu, aby uživatel mohl přistupovat i k datům, která jsou umístěna i jinde než na jeho pobočce slouží takzvané distribuované databázové a transakční systémy. To jsou databázové systémy, na které jsou kladeny následující požadavky: průhlednost umístění – pro uživatele je jedno, kde jsou data fyzicky umístěna průhlednost replikací – uživatel se nestará o to, kdy probíhá replikace průhlednost distribuce – uživatel se nestará o distribuci dat průhlednost chyb Uživatel se tedy nemusí starat o to, jak jsou data fyzicky umístěna a přistupuje k nim, jako kdyby byla všechna na jeho počítači. Při tomto způsobu uložení dat se však objevuje nový problém. V případě výpadku jednoho z databázových serverů, nebo přenosové linky je vyřazen celý zbytek systému. Navíc je stále nutné přenášet při každém požadavku uživatele velké množství dat. K řešení těchto problémů slouží replikace. Replikace Replikace je jednoduše okopírování dat na další počítač, tj. data, která vznikla na jedné pobočce budou uložena i na jiné pobočce. Je však nutno zajistit, že uživatel přistupuje k aktuálním datům a že data v celém systému jsou konzistentní. Požadavky na replikace jsou následující : vysoký výkon vysoká dostupnost dat – data musí být rychle přístupná doručení konzistentních informací – nesmí například docházet k tomu, že jeden uživatel updatuje staré informace a přemazává jimi nové flexibilní architektura – systém se musí přizpůsobovat realitě a ne realita systému jednoduchá centralizovaná administrace Replikace se používají především k řešení následujících situací: distribuce dat na síťové servery, včetně mobilních a připojených jen příležitostně sjednocení dat s centrálním serverem rozdělení procesů na více než jeden server informační tok z jednoho serveru na další sdílení dat mezi více místy V praxi je také nutno rozhodnout, zda všechny pobočky potřebují aktuální informace, nebo zda některým stačí třeba informace ze včerejšího dne. Musíme zkrátka posoudit, kdo a kdy potřebuje které informace, kdo a kdy je aktualizuje a vytváří. Replikační strategie Konečně jsme se přes všechny nutné definice a vysvětlení dostali až k jádru problému. Replikační strategie je vlastně plán, podle kterého budou data replikována, který zároveň určuje, jak bude s kopiemi nakládáno (zda je bude možno aktualizovat, popřípadě za jakých podmínek). Replikační strategie vlastně odpovídá na otázky z posledního odstavce minulé části. Určujeme, kdy replikace proběhne, kdo bude mít právo na vkládání a aktualizaci kterých dat a za jakých podmínek. Distribuované souborové systémy často umožňují replikaci souborů, tj. udržování více kopií všech nebo jen některých souborů na více fileserverech. To má několik dobrých důvodů: spolehlivost – při výpadku jednoho serveru nejsou ztracena data dostupnost – k souborům lze přistupovat i v případě výpadku jednoho nebo několika serverů výkon – lze přistupovat k nejbližším datům, výkon fileserveru je rozdělen mezi několik serverů Rozlišujeme několik druhů replikačních mechanismů: explicitní replikace – uživatel se sám stará o udržování konzistence odložená replikace – zápis do primární repliky, aktualizace sekundárních replik později skupinová replikace – zápisy jsou simultánně zasílány všem dostupným replikám B4-06
2/6
explicitní replikace
odložená replikace
skupinová replikace
Třídění podle okamžiku replikace: Synchronní replikace Replikace probíhá zároveň s vkládáním dat. Data jsou zároveň vkládána do všech replik a replikace je vlastně součástí transakce. Nejčastěji je používán tzv. dvoufázový commit, kdy je transakce ukončena až poté, co je provedena aktualizace všech replik. V první fázi tedy vkládající proces čeká, až dostane odpověď od všech replik, že vložení proběhlo v pořádku (první fáze commitu) a teprve potom udělá commit (druhá fáze). Značnou nevýhodou této metody je to, že při výpadku kteréhokoliv stroje nemohou být do systému vkládána žádná data (transakce je ukončena až když je komitována všemi replikami). Asynchronní replikace V tomto případě neprobíhá replikace zároveň s vkládáním, ale proběhne až poté, co nastane nějaká událost. Touto událostí může být například uplynutí určitého času, dokončení nějaké transakce, příkaz uživatele, a lze vymyslet ještě mnohé další. Asynchronní replikace mohou probíhat metodou pull nebo push. Metoda pull znamená, že replikaci vyžaduje stroj, na který jsou data kopírována. To se ukazuje jako nevýhodné, protože tento stroj nemůže vědět, o tom, zda se data v originále změnila. Proto je častější používána metoda push, kdy o okamžiku replikace rozhoduje stroj, který vlastní originál dat. V případě výpadku systému proběhne replikace po znovunavázání spojení. Další materiály: skripta z Informačních systémů (Kajzar), 3. ročník – distribuované zpracování dat v informačních systémech, replikace atd. soubor B4-06b.pdf referát Sun Grid Engine (Milan Schwarz) soubor B4-06c.pdf
Gridy jako klíčový fenomén informačních technologií nového tisíciletí Zdroj: http://www.ics.muni.cz/bulletin/issues/vol16num02/kmunicek/kmunicek.html Již několik let se stále častěji a ve větší míře setkáváme s pojmem Grid. Proto je na místě ujasnit si, je-li tento trend pouze marketingový "hype" nebo skrývá-li se za ním něco skutečně přelomového. Následující text byl sepsán v naději, že vás přesvědčí o tom druhém. Původ a stručná historie Původ Gridů lze nalézt v počátcích distribuovaného clusterového počítání. Jako cluster přitom rozumíme spojení dvou a více počítačů (ve vztahu k softwaru i hardwaru) takovým způsobem, že se chovají jako jediný počítač. Clusterová řešení umožňují paralelní zpracování výpočetních úloh, vyrovnávání zátěže jednotlivých individuálních výpočetních zdrojů a toleranci chyb. Gridové počítání vychází z distribuovaného clusterového řešení, ale současně jej povyšuje na novou kvalitativně vyšší úroveň. V Gridu lze propojit clustery (a nejen je, výpočetním elementem mohou být i individuální superpočítače), které jsou geograficky vzdálené, a to takovým způsobem, aby poskytovaly široký fond výpočetní síly a úložného prostoru.
B4-06
3/6
Co je to Grid? Podat krátkou a přitom zcela vyčerpávající definici pojmu Grid není trivální úkol, neboť existuje velká řada různých Gridů. Nicméně obecně lze říct, že Grid je rozsáhlý distribuovaný systém organizačně samostatných elementů, kterými mohou být individuální počítače (paměti, pevné disky) a informační systémy vzájemně propojeny počítačovou sítí. Všeobecně lze Grid vnímat podobně jako Internet. Internet spojuje miliony počítačů v celém světě a zpřístupňuje uživatelům informace dostupné na veřejných webových stránkách, umožňuje e-mailovou komunikaci, instant messaging, apod. Oproti tomu Grid (neexistuje jeden uniformní Grid, nýbrž celá řada cíleně orientovaných specifických Gridů) umožňuje uživatelům pomocí specifických mechanismů (bezpečnost, plánování zdrojů, autentizace, autorizace, účtování, správa dat, monitorování, ...) využít výpočetní síly a diskové kapacity, které jsou nezbytné pro běh výpočetně náročných aplikací. Pravděpodobně jedinou správnou možností, jak obecně popsat Grid, resp. provést základní charakteristiku gridového prostředí, je uvést jednu z prvních definic pojmu Grid (výpočetní Grid), kterou použili I. Foster a C. Kesselman ve své knize, která se posléze stala neoficiální biblí gridového počítání: „Výpočetní grid je hardwarová a softwarová infrastruktura, která poskytuje spolehlivý, standardizovaný, všudypřítomný a levný přístup ke špičkovým výpočetním službám.“ Výraz výpočetní Grid ("computational grid") byl víceméně použit jako analogie výrazu "power grid", tj. elektrické rozvodné soustavy. Oba autoři srovnávali stav počítačů v roce 1999 se stavem elektřiny kolem roku 1910. Došli k závěru, že obdobně jako v roce 1910, kdy každá budova měla vlastní generátor elektřiny, její zavedení bylo drahé, využití neefektivní a skutečný rozvoj způsobilo až zavedení elektráren a rozvodné sítě, tak analogicky (v roce 1999) měla každá organizace vlastní výpočetní prostředky, ale neuměla je efektivně sdílet. Tato definice byla následně zpřesněna o další klíčové vlastnosti, které musí prostředí, jež má být Gridem, vykazovat: koordinuje zdroje nepodléhající centralizované správě používá standardní, otevřené, obecné protokoly a rozhraní poskytuje netriviální kvalitu i kvantitu služeb (více než jednotlivé části každá zvlášť) Gridy jsou často mylně intepretovány stejným způsobem jako standardní distribuované prostředí pro paralelní zpracování výpočetních úloh. Principiálně se však Grid/Gridy od distribuovaného prostředí liší především tím, že distribuované aplikace jsou vesměs chápany jako specializované systémy pro jediný cíl nebo skupinu uživatelů, zatímco Gridy jsou univerzální platforma. Ačkoliv Gridy staví na distribuovaném prostředí, tak jak je známe např. z homogenních výpočetních clusterů, přináší ovšem kvalitativně nové vlastnosti. Gridy rozšiřují původní distribuované aplikace o nové vlastnosti: různé druhy zdrojů není vyžadován striktně stejný hardware, data a aplikace různé druhy interakcí různé uživatelské skupiny a aplikace interagují s Gridem různě dynamická povaha (zdroje a uživatelé často přibývají/ubývají/mění se) Nejjednodušeji se lze dívat na Grid jako na dynamický, virtuální, výpočetní, informační nebo znalostní systém, tj. soustavu především výkonných počítačů propojených vysokorychlostní sítí, určených pro řešení nejnáročnějších výpočetních a datových problémů.
B4-06
4/6
Charakteristika gridového prostředí Mezi základní vlastnosti charakterizující gridové prostředí patří zejména to, že Gridy (výpočetní) obsahují velmi početné výpočetní zdroje, které jsou heterogenní geograficky oddělené spojeny heterogenními sítěmi plně pod kontrolou jejich vlastníků (tj. vlastněny vzájemně nezávislými organizacemi a jedinci) Pro přístup k výše uvedeným zdrojům jsou vyžadována různá bezpečnostní opatření a různá pravidla správy zdrojů. Současně ovšem může dojít i k zahrnutí potenciálně vadných zdrojů. Princip využívání Gridu je obdobný představě, že uživatelé si z Gridu budou brát prostředky, které zrovna potřebují, a to tehdy, když je potřebují, a zrovna tam, kde je potřebují. Takovými prostředky mohou být procesory resp. jejich výkon, diskový prostor, přenosová kapacita sítí nebo speciální hardware (mikroskopy, senzory, ...). Grid naopak zajistí unifikovaný bezpečný přístup k těmto prostředkům, spolehlivou dodávku požadovaných služeb a následné vyúčtování za spotřebu. Proto, aby principy byly reálně použitelné, bylo třeba uvést v život koncept "virtuálních organizací", tj. dynamických asociací sdružujících dostupné výpočetní zdroje a jejich uživatele z různých administrativních domén s určitým specifickým společným cílem. Typy Gridů Principiálně lze rozlišit tři základní kategorie Gridů: Výpočetní Grid Datový Grid Informační/Znalostní Grid Výpočetní Grid Grid poskytující výpočetní servis je nazýván výpočetní Grid. Takový Grid poskytuje zabezpečené služby pro spouštění aplikací na distribuovaných výpočetních zdrojích. Jistým způsobem se jedná o virtuální superpočítač pro řešení náročných aplikací, který dynamicky agreguje výpočetní kapacitu velkého počtu individuálních počítačů s cílem poskytnout platformu pro řešení náročných aplikací, které není možno řešit pomocí jediného systému. Datový Grid Zpracování rozsáhlých datových sad pomocí služeb výpočetního Gridu se často nazývá datovým Gridem. Datový grid je charakterizován sdílením velkého množství dat, poskytováním zabezpečeného přístupu k těmto datům a umožněním jejich následné správy. To vše je řešeno formou replikovaných datových katalogů vytvářejících iluzi jednotného hromadného datového úložiště. Informační/Znalostní Grid Tento typ Gridů (často také nazýván jako kolaborativní či aplikační Grid) je charakterizován snahou o rozšíření možností datových Gridů o poskytování kategorizace dat, ontologií, sdílení znalostí a tvorby workflow. Nedílnou součástí tohoto typu Gridů jsou virtuální prostředí pro spolupráci resp. virtuální laboratoře umožňující vzdálenou kontrolu a správu vybavení, senzorů a zařízení. Gridové projekty To, že rozvoj gridových technologií je brán poměrně vážně, dokazuje podpora celého spektra různých gridových projektů ze strany Evropské Unie (EU). Počet podporovaných projektů, ať v pátem nebo šestém rámcovém programu EU, je poměrně impozantní. Obecně lze říct, že EU investuje nemalé finanční zdroje jak do infrastrukturních projektů (Damien, DataTAG, DEISA, SEE-GRID, EGEE) s cílem vytvořit jednotnou gridovou infrastrukturu; výzkumných projektů, jejichž cílem je rozvoj gridového middlewaru a gridových nástrojů (GRIP, Eurogrid, GridLab, DataGrid), tak i projektů aplikačně orientovaných (GRIA, EGSO, Crossgrid).
B4-06
5/6
Gridové aplikace Neméně zajímavou informací je přehled aplikačních oblastí, pro něž Gridy představují onen magický "grál", který otevírá cestu k doposud nerealizovatelným aplikačním úlohám (ať již z důvodu náročnosti na hardware či množství dat). Obecně platí, že Gridy jsou vhodné pro paralelní (současné) zpracování úloh. Paralelní výpočetní úlohy jsou takové úlohy, jejichž zpracování na jediném procesoru trvá neúnosně dlouho nebo takové, jejichž celkové paměťové nároky jsou příliš velké. Gridy jsou aplikačně určeny jak pro velké množství malých, navzájem nezávislých úloh (např. parametrické studie), tak pro zpracování rozsáhlých datových souborů (např. digitální vyhlazení satelitních snímků). Kromě řešení extrémně výpočetně náročných problémů slouží gridová prostředí jako řešení datových úložišť, umožňují přístup ke speciálnímu hardwaru a především zprostředkovávají efektivní využití dostupných zdrojů. Pomineme-li nasazení gridových řešení v komerční sféře především k proprietárním řešením datově a výpočetně náročných operací (např. zpracování komplexních finančních a investičních modelů a jejich analýza, vládní aplikace apod.), existuje široké spektrum aplikačních oblastí v nichž může být právě gridově orientované řešení velmi vhodné. Z široké škály možností lze jako klíčové vybrat následující (poslední z nich spíše jako ukázku možností): 1.
2. 3.
4.
5. 6.
7.
8. 9.
Chemie a biologie Využití Gridů pro analýzů a modelování chemických a biologických informací. Jedná se především o realizaci výpočetních úloh z oblasti výpočetní chemie a molekulového modelování (např. generování 3D molekulárních struktur, molekulárně mechanické a kvantově chemické výpočty vlastností molekul a molekulárních deskriptorů) včetně zpracování bioinformatických dat. Částicová fyzika Distribuce dat z urychlovačů částic a jejich následná analýza. Inženýrství a design Výpočet a analýza modelů pomocí technik fluidní dynamiky a výpočetní pevné mechaniky včetně materiálových simulací. Lékařství Produkce interaktivních medicínských simulací, analýza a správa lékařských obrazů, podpora virtuální spolupráce v e-nemocnicích. Astronomie Analýza terabajtů astronomických dat z teleskopů. Životní prostředí Příprava modelů a vyhodnocování monitorování znečištění prostředí, ukládání jaderného odpadu a předpovědi počasí. Média Produkce, vysílání a přehrávání interaktivního mediálnío obsahu (audio, video, obraz) v reálném čase. Spolupráce ve výzkumu Budování virtuálních laboratoří umožňujících pokročilý, datově a výpočetně intenzivní výzkum. Kolaborativní hry Jako náhrada existujících serverů pro on-line hry za vysoce paralelní, masivně multiplayerové servery.
Je naprosto zřejmé, že Gridy a technologie za nimi stojící jsou jedním z fenoménů IT nastupujícího tisíciletí. Zdá se, že po překonání dětských nemocí nastává nyní čas skutečného zúročení potenciálu, který v sobě Gridy skrývají. Jestli a v jaké míře se to po opravdu podaří, je již na uživatelích.
B4-06
6/6