Distribuované systémy: definice, vlastnosti a základní principy

Obsah:

Distribuované systémy: definice, vlastnosti a základní principy
Distribuované systémy: definice, vlastnosti a základní principy
Anonim

Distribuovaný systém ve své nejjednodušší definici je skupina počítačů spolupracujících, které se koncovému uživateli jeví jako jeden. Stroje sdílejí společný stav, běží souběžně a mohou pracovat nezávisle, aniž by to ovlivnilo dobu provozuschopnosti celého systému. Pravdou je, že správa takových systémů je složité téma plné úskalí.

Přehled systému

Distribuované systémy
Distribuované systémy

Distribuovaný systém umožňuje sdílení zdrojů (včetně softwaru) připojených k síti současně.

Příklady distribuce systému:

  1. Tradiční zásobník. Tyto databáze jsou uloženy v souborovém systému jednoho počítače. Kdykoli chce uživatel dostávat informace, komunikuje přímo s tímto strojem. Chcete-li distribuovat tento databázový systém, musíte jej spustit na více počítačích současně.
  2. Distribuovaná architektura.

Distribuovaný systémumožňuje horizontální a vertikální měřítko. Jediným způsobem, jak zvládnout větší provoz, by byl například upgrade hardwaru, který provozuje databázi. Toto se nazývá vertikální škálování. Vertikální škálování je dobré do určité hranice, po jejímž překročení si ani to nejlepší zařízení nedokáže zajistit požadovaný provoz.

Vodorovné škálování znamená přidání více počítačů, nikoli upgrade hardwaru na jednom. Vertikální škálování zvyšuje výkon na nejnovější hardwarové možnosti v distribuovaných systémech. Tyto příležitosti nestačí technologickým společnostem se střední až velkou zátěží. Nejlepší na horizontálním škálování je, že neexistují žádná omezení velikosti. Když se výkon sníží, jednoduše se přidá další stroj, což lze v zásadě dělat donekonečna.

Na podnikové úrovni distribuovaný řídicí systém často zahrnuje různé kroky. V obchodních procesech na nejefektivnějších místech podnikové počítačové sítě. Například v typické distribuci využívající třívrstvý model distribuovaného systému se zpracování dat provádí na PC v místě uživatele, obchodní zpracování se provádí na vzdáleném počítači a přístup k databázi a zpracování dat se provádí na úplně jiném počítači. který poskytuje centralizovaný přístup mnoha podnikům. Obvykle se jedná o tento typ distribuovaného počítánípoužívá model interakce klient-server.

Hlavní úkoly

Hlavní úkoly
Hlavní úkoly

Mezi hlavní úkoly distribuovaného řídicího systému patří:

  1. Transparentnost – Dosáhněte jediného obrazu systému bez skrývání umístění, přístupu, migrace, souběžnosti, převzetí služeb při selhání, přemístění, trvání a podrobností o zdrojích pro uživatele.
  2. Otevřenost – zjednodušuje nastavení sítě a změny.
  3. Spolehlivost – Ve srovnání s jedním řídicím systémem by měl být spolehlivý, konzistentní a měl by mít vysokou pravděpodobnost maskování chyb.
  4. Výkon – Ve srovnání s jinými modely poskytují distribuované modely zvýšení výkonu.
  5. Škálovatelné – Tyto distribuované řídicí systémy musí být škálovatelné z hlediska území, správy nebo velikosti.

Úkoly distribučních systémů zahrnují:

  1. Zabezpečení je velký problém v distribuovaném prostředí, zejména při používání veřejných sítí.
  2. Tolerance chyb – může být náročná, když je model postaven z nespolehlivých komponent.
  3. Koordinace a distribuce zdrojů – může být obtížné, pokud neexistují správné protokoly nebo požadované zásady.

Distribuované výpočetní prostředí

Distribuované výpočetní prostředí
Distribuované výpočetní prostředí

(DCE) je široce používaný průmyslový standard podporující takové distribuované výpočty. Na internetu poskytovatelé třetích stran nabízejí některé obecné služby,které se hodí do tohoto modelu.

Grid computing je výpočetní model s distribuovanou architekturou velkého počtu počítačů spojených s řešením složitého problému. V modelu grid computingu provádějí servery nebo osobní počítače nezávislé úkoly a jsou vzájemně volně propojeny internetem nebo nízkorychlostními sítěmi.

Největším projektem grid computingu je SETI@home, ve kterém jednotliví vlastníci počítačů dobrovolně provádějí některé ze svých multitaskingových cyklů zpracování pomocí svého počítače v rámci projektu Search for Extraterrestrial Intelligence (SETI). Tento problém s počítačem využívá tisíce počítačů ke stahování a vyhledávání dat radioteleskopů.

Jedním z prvních použití grid computingu bylo prolomení kryptografického kódu skupinou nyní známou jako distribution.net. Tato skupina také popisuje svůj model jako distribuované výpočty.

Škálování databáze

Škálování databáze
Škálování databáze

Šíření nových informací z mastera na slave neproběhne okamžitě. Ve skutečnosti existuje časové okno, ve kterém můžete získat zastaralé informace. Pokud by tomu tak nebylo, utrpěl by výkon zápisu, protože distribuované systémy by musely synchronně čekat na šíření dat. Přicházejí s několika kompromisy.

Pomocí přístupu slave databáze je možné do určité míry škálovat provoz při čtení. Zde je mnoho možností. Ale stačí rozdělit provoz zápisu do několikaservery, protože to nezvládne. Jedním ze způsobů je použití strategie replikace s více hlavními servery. Tam je místo otroků několik hlavních uzlů, které podporují čtení a zápis.

Další metoda se nazývá sharding. Díky tomu je server rozdělen na několik menších serverů, které se nazývají shardy. Tyto útržky mají různé položky, jsou vytvořena pravidla o tom, které položky jdou do kterého útržku. Je velmi důležité vytvořit takové pravidlo, aby byla data distribuována rovnoměrně. Možným přístupem k tomu je definovat rozsahy podle některých informací o záznamu.

Tento zlomkový klíč by měl být vybrán velmi pečlivě, protože zatížení není vždy stejné jako základna libovolných sloupců. Jediný fragment, který dostává více požadavků než ostatní, se nazývá hotspot a snaží se zabránit jeho vytvoření. Po rozdělení se rekalibrační data neuvěřitelně prodraží a mohou způsobit značné prostoje.

Databázové konsensuální algoritmy

Databázové konsensuální algoritmy
Databázové konsensuální algoritmy

DB je obtížné implementovat v distribuovaných bezpečnostních systémech, protože vyžadují, aby každý uzel vyjednal správnou akci přerušení nebo potvrzení. Tato kvalita je známá jako konsensus a je základním problémem při budování distribuční soustavy. Dosažení typu dohody potřebné pro problém „závazku“je jednoduché, pokud jsou příslušné procesy a síť naprosto spolehlivé. Skutečné systémy však podléhají řaděmožná selhání síťových procesů, ztracené, poškozené nebo duplicitní zprávy.

To představuje problém a nelze zaručit, že na nespolehlivé síti bude během omezené doby dosaženo správného konsenzu. V praxi existují algoritmy, které v nespolehlivé síti dosáhnou konsensu poměrně rychle. Cassandra ve skutečnosti poskytuje odlehčené transakce pomocí algoritmu Paxos pro distribuovaný konsensus.

Distribuovaná výpočetní technika je klíčem k přílivu zpracování velkých dat, které se v posledních letech používá. Je to metoda, jak rozložit obrovský úkol, jako je kumulativních 100 miliard záznamů, z nichž žádný počítač není schopen dělat prakticky nic sám, na mnoho menších úkolů, které se vejdou do jediného stroje. Vývojář rozdělí svůj obrovský úkol na mnoho menších, provede je paralelně na mnoha strojích, vhodně shromáždí data, pak bude původní problém vyřešen.

Tento přístup vám umožňuje horizontální měřítko – když máte velký úkol, přidejte do výpočtu více uzlů. Tyto úkoly již řadu let provádí programovací model MapReduce spojený s implementací pro paralelní zpracování a generování velkých souborů dat pomocí distribuovaného algoritmu na clusteru.

V současné době je MapReduce poněkud zastaralé a přináší určité problémy. Objevily se další architektury, které tyto problémy řeší. Jmenovitě, Lambda Architecture pro distribuovanésystémy zpracování toku. Pokrok v této oblasti přinesl nové nástroje: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.

Systémy ukládání a replikace souborů

Systémy ukládání a replikace souborů
Systémy ukládání a replikace souborů

Distribuované systémy souborů lze považovat za distribuovaná úložiště dat. To je stejné jako koncept – ukládání a přístup k velkému množství dat v klastru strojů, které jsou jedinou entitou. Obvykle jdou ruku v ruce s Distributed Computing.

Například společnost Yahoo je známá tím, že od roku 2011 provozuje HDFS na více než 42 000 uzlech pro uložení 600 petabajtů dat. Wikipedia definuje rozdíl v tom, že distribuované systémy souborů umožňují přístup k souborům pomocí stejných rozhraní a sémantiky jako místní soubory, spíše než prostřednictvím vlastního API, jako je Cassandra Query Language (CQL).

Hadoop Distributed File System (HDFS) je systém používaný pro výpočetní techniku přes infrastrukturu Hadoop. Je široce rozšířený a používá se k ukládání a replikaci velkých souborů (velikosti GB nebo TB) na mnoha počítačích. Jeho architektura se skládá hlavně z NameNodes a DataNodes.

NameNodes je zodpovědný za ukládání metadat o clusteru, například který uzel obsahuje bloky souborů. Fungují jako síťoví koordinátoři, zjišťují, kam nejlépe ukládat a kopírovat soubory, a sledují stav systému. DataNodes jednoduše ukládají soubory a provádějí příkazy, jako je replikace souborů, nový zápis aostatní.

Nepřekvapivě se HDFS nejlépe používá s Hadoopem pro výpočetní techniku, protože poskytuje povědomí o úkolech. Zadané úlohy jsou pak spuštěny na uzlech, které ukládají data. To vám umožňuje používat umístění dat – optimalizuje výpočty a snižuje objem provozu v síti.

Interplanetary File System (IPFS) je vzrušující nový protokol/síť typu peer-to-peer pro distribuovaný systém souborů. Díky technologii Blockchain se může pochlubit plně decentralizovanou architekturou bez jediného vlastníka nebo bodu selhání.

IPFS nabízí systém pojmenování (podobný DNS) nazvaný IPNS a umožňuje uživatelům snadno získávat informace. Ukládá soubor prostřednictvím historické verze, podobně jako to dělá Git. To umožňuje přístup ke všem předchozím stavům souboru. Stále prochází těžkým vývojem (v 0.4 v době psaní), ale již zaznamenal projekty, které se zajímaly o jeho vybudování (FileCoin).

Systém zasílání zpráv

systém zasílání zpráv
systém zasílání zpráv

Systémy zasílání zpráv poskytují centrální místo pro ukládání a distribuci zpráv v rámci společného systému. Umožňují vám oddělit aplikační logiku od přímé komunikace s jinými systémy.

Známé měřítko – cluster Kafka na LinkedIn zpracoval 1 bilion zpráv za den s maximem 4,5 milionu zpráv za sekundu.

Zjednodušeně řečeno, platforma pro zasílání zpráv funguje takto:

  1. Zprávapředán z aplikace, která jej potenciálně vytváří, tzv. producent, přejde do platformy a je načten z více aplikací nazývaných spotřebitelé.
  2. Pokud potřebujete uložit určitou událost na více místech, jako je vytvoření uživatele pro databázi, úložiště nebo službu odesílání e-mailů, pak je platforma pro zasílání zpráv nejčistším způsobem distribuce této zprávy.

Existuje několik oblíbených špičkových platforem pro zasílání zpráv.

RabbitMQ je zprostředkovatel zpráv, který vám umožňuje lépe vyladit řízení jejich trajektorií pomocí pravidel směrování a dalších snadno konfigurovatelných parametrů. Dá se mu říkat „chytrý“broker, protože má spoustu logiky a bedlivě sleduje zprávy, které přes něj procházejí. Poskytuje možnosti pro AP a CP z CAP.

Kafka je zprostředkovatel zpráv, který je o něco méně funkční, protože nesleduje, které zprávy byly přečteny, a neumožňuje složitou logiku směrování. Pomáhá dosáhnout úžasného výkonu a představuje největší příslib v tomto prostoru s aktivním vývojem distribuovaných systémů open-source komunitou a podporou týmu Confluent. Kafka je nejoblíbenější u high-tech společností.

Aplikace pro interakci se strojem

Tento distribuční systém je skupina počítačů, které spolupracují, aby se koncovému uživateli jevily jako samostatný počítač. Tyto stroje jsou v celkovém stavu, funkčnísoučasně a může pracovat nezávisle, aniž by to ovlivnilo dobu provozuschopnosti celého systému.

Pokud považujete databázi za distribuovanou, pouze pokud uzly vzájemně spolupracují za účelem koordinace svých akcí. V tomto případě je to něco jako aplikace, která provozuje svůj interní kód v síti peer-to-peer a je klasifikována jako distribuovaná aplikace.

Známá škála - BitTorrent
Známá škála - BitTorrent

Příklady takových aplikací:

  1. Známé měřítko – BitTorrent nashromáždil 193 000 uzlů pro epizodu Game of Thrones.
  2. Základní registrační technologie distribuovaných blockchainových systémů.

Distribuované účetní knihy lze považovat za neměnnou databázi pouze pro aplikace, která je replikována, synchronizována a sdílena napříč všemi uzly v distribuční síti.

Známá škála – síť Ethereum – měla 4. ledna 2018 4,3 milionu transakcí denně. Používají vzorec Event Sourcing, který vám umožňuje kdykoli obnovit stav databáze.

Blockchain je současná základní technologie používaná pro distribuované účetní knihy a ve skutečnosti znamenala jejich začátek. Tato nejnovější a největší inovace v distribuovaném prostoru vytvořila první skutečně distribuovaný platební protokol, bitcoin.

Blockchain je distribuovaná účetní kniha s uspořádaným seznamem všech transakcí, které kdy v jeho síti proběhly. Nabídky jsou seskupeny a uloženy v blocích. Celý blockchain je v podstatě propojený seznam bloků. Specifikované blokyjejich vytvoření je nákladné a jsou navzájem úzce propojeny prostřednictvím kryptografie. Jednoduše řečeno, každý blok obsahuje speciální hash (který začíná X počtem nul) obsahu aktuálního bloku (ve formě Merkleho stromu) plus hash předchozího bloku. Tento hash vyžaduje hodně výkonu CPU.

Příklady distribuovaných operačních systémů

Příklady distribuovaných operačních systémů
Příklady distribuovaných operačních systémů

Typy systémů se uživateli zobrazují, protože se jedná o systémy pro jednoho uživatele. Sdílejí svou paměť, disk a uživatel nemá problém se v datech orientovat. Uživatel něco uloží do svého PC a soubor je uložen na více místech, tj. v připojených počítačích, takže ztracená data lze snadno obnovit.

Příklady distribuovaných operačních systémů:

  1. Windows Server 2003;
  2. Windows Server 2008;
  3. Windows Server 2012;
  4. UbuntuLinux (server Apache).

Pokud některý počítač bootuje výše, to znamená, že si mezi jednotlivými počítači vyměňuje mnoho požadavků, dochází k vyrovnávání zátěže tímto způsobem. V tomto případě jsou požadavky šířeny na sousední PC. Pokud se síť více zatíží, lze ji rozšířit přidáním dalších systémů do sítě. Síťový soubor a složky jsou synchronizovány a používají se konvence pojmenování, aby při načítání dat nedocházelo k žádným chybám.

Ukládání do mezipaměti se také používá při manipulaci s daty. Všechny počítače používají k pojmenovávání souborů stejný jmenný prostor. Alesouborový systém je platný pro každý počítač. Pokud jsou v souboru aktualizace, zapíše se do jednoho počítače a změny se rozšíří do všech počítačů, takže soubor vypadá stejně.

Soubory jsou během procesu čtení/zápisu uzamčeny, takže mezi různými počítači nedochází k uváznutí. Dochází také k relacím, jako je čtení, zápis souborů v jedné relaci a uzavření relace, a poté může totéž udělat jiný uživatel a tak dále.

Výhody používání

Operační systém navržený tak, aby lidem usnadnil každodenní život. Pro uživatelské výhody a potřeby může být operační systém jednouživatelský nebo distribuovaný. V systému distribuovaných zdrojů je mnoho počítačů vzájemně propojeno a sdílejí své zdroje.

Výhody toho:

  1. Pokud je jeden počítač v takovém systému vadný nebo poškozený, postará se o to jiný uzel nebo počítač.
  2. Snadno lze přidat další zdroje.
  3. Prostředky, jako jsou tiskárny, mohou sloužit více počítačům.

Toto je stručný popis distribučního systému, proč se používá. Je třeba si zapamatovat některé důležité věci: jsou složité a jsou vybírány pro rozsah a cenu a je těžší s nimi pracovat. Tyto systémy jsou distribuovány v několika kategoriích úložiště: výpočetní technika, systémy souborů a zpráv, registry, aplikace. A to vše je o komplexním informačním systému jen velmi povrchní.

Doporučuje: