Distribuované systémy: definícia, vlastnosti a základné princípy

Obsah:

Distribuované systémy: definícia, vlastnosti a základné princípy
Distribuované systémy: definícia, vlastnosti a základné princípy
Anonim

Distribuovaný systém vo svojej najjednoduchšej definícii je skupina počítačov spolupracujúcich, ktoré sa koncovému používateľovi javia ako jeden. Stroje zdieľajú spoločný stav, bežia súbežne a môžu fungovať nezávisle bez ovplyvnenia doby prevádzkyschopnosti celého systému. Pravdou je, že správa takýchto systémov je zložitá téma plná nástrah.

Prehľad systému

Distribuované systémy
Distribuované systémy

Distribuovaný systém umožňuje zdieľanie zdrojov (vrátane softvéru) pripojených k sieti súčasne.

Príklady distribúcie systému:

  1. Tradičný zásobník. Tieto databázy sú uložené v súborovom systéme jedného počítača. Vždy, keď chce používateľ dostávať informácie, komunikuje priamo s týmto strojom. Ak chcete distribuovať tento databázový systém, musíte ho spustiť na viacerých počítačoch súčasne.
  2. Distribuovaná architektúra.

Distribuovaný systémumožňuje horizontálne a vertikálne škálovanie. Jediným spôsobom, ako zvládnuť väčšiu návštevnosť, by bola napríklad inovácia hardvéru, ktorý riadi databázu. Toto sa nazýva vertikálne škálovanie. Vertikálne škálovanie je dobré do určitého limitu, po ktorom sa ani to najlepšie vybavenie nedokáže vyrovnať so zabezpečením požadovanej prevádzky.

Vodorovné škálovanie znamená pridávanie ďalších počítačov, nie inováciu hardvéru na jednom. Vertikálne škálovanie zvyšuje výkon na najnovšie hardvérové možnosti v distribuovaných systémoch. Tieto príležitosti nestačia technologickým spoločnostiam s miernym až ťažkým pracovným zaťažením. Najlepšie na horizontálnom škálovaní je, že neexistujú žiadne obmedzenia veľkosti. Keď sa výkon zníži, jednoducho sa pridá ďalší stroj, čo sa v princípe dá robiť donekonečna.

Na podnikovej úrovni distribuovaný riadiaci systém často zahŕňa rôzne kroky. V podnikových procesoch na najefektívnejších miestach podnikovej počítačovej siete. Napríklad v typickej distribúcii používajúcej trojvrstvový distribuovaný systémový model sa spracovanie údajov vykonáva na PC v mieste používateľa, obchodné spracovanie sa vykonáva na vzdialenom počítači a prístup k databáze a spracovanie údajov sa vykonáva na úplne inom počítači. ktorý poskytuje centralizovaný prístup mnohým podnikovým procesom. Zvyčajne ide o tento typ distribuovaných výpočtovpoužíva model interakcie klient-server.

Hlavné úlohy

Hlavné úlohy
Hlavné úlohy

Hlavné úlohy distribuovaného riadiaceho systému zahŕňajú:

  1. Transparentnosť – Dosiahnite jeden obraz systému bez skrývania umiestnenia, prístupu, migrácie, súbežnosti, prepnutia, premiestnenia, trvalosti a podrobností o zdrojoch pre používateľov.
  2. Otvorenosť – zjednodušuje nastavenie siete a zmeny.
  3. Spoľahlivosť – V porovnaní s jedným riadiacim systémom by mal byť spoľahlivý, konzistentný a mal by mať vysokú pravdepodobnosť maskovania chýb.
  4. Výkon – V porovnaní s inými modelmi poskytujú distribuované modely zvýšenie výkonu.
  5. Škálovateľné – Tieto distribuované riadiace systémy musia byť škálovateľné z hľadiska územia, správy alebo veľkosti.

Úlohy distribučných systémov zahŕňajú:

  1. Bezpečnosť je veľký problém v distribuovanom prostredí, najmä pri používaní verejných sietí.
  2. Tolerancia chýb – môže byť náročná, keď je model vyrobený z nespoľahlivých komponentov.
  3. Koordinácia a distribúcia zdrojov – môže byť náročná, ak neexistujú žiadne správne protokoly alebo požadované zásady.

Distribuované počítačové prostredie

Distribuované výpočtové prostredie
Distribuované výpočtové prostredie

(DCE) je široko používaný priemyselný štandard podporujúci takéto distribuované výpočty. Na internete poskytovatelia tretích strán ponúkajú niektoré všeobecné služby,ktoré sa hodia do tohto modelu.

Grid computing je výpočtový model s distribuovanou architektúrou veľkého počtu počítačov spojených s riešením zložitého problému. V modeli grid computingu vykonávajú servery alebo osobné počítače nezávislé úlohy a sú navzájom voľne prepojené internetom alebo nízkorýchlostnými sieťami.

Najväčším projektom grid computingu je SETI@home, v ktorom jednotliví vlastníci počítačov dobrovoľne vykonávajú niektoré zo svojich cyklov spracovania viacerých úloh pomocou svojho počítača v rámci projektu Hľadanie mimozemskej inteligencie (SETI). Tento problém s počítačom používa tisíce počítačov na sťahovanie a vyhľadávanie údajov rádioteleskopov.

Jedným z prvých použití grid computingu bolo prelomenie kryptografického kódu skupinou teraz známou ako distribution.net. Táto skupina tiež popisuje svoj model ako distribuované výpočty.

Škálovanie databázy

Škálovanie databázy
Škálovanie databázy

Šírenie nových informácií z mastera na slave neprebehne okamžite. V skutočnosti existuje časové okno, v ktorom môžete získať neaktuálne informácie. Ak by to tak nebolo, utrpel by výkon zápisu, pretože distribuované systémy by museli synchrónne čakať na šírenie údajov. Prichádzajú s niekoľkými kompromismi.

Pomocou prístupu podriadenej databázy je možné do určitej miery zmenšiť objem čítania. Možností je tu veľa. Ale stačí rozdeliť zápisovú prevádzku na niekoľkoservery, pretože to nedokáže zvládnuť. Jedným zo spôsobov je použitie stratégie replikácie s viacerými mastermi. Tam je namiesto otrokov niekoľko hlavných uzlov, ktoré podporujú čítanie a písanie.

Ďalšia metóda sa nazýva sharding. Vďaka tomu je server rozdelený na niekoľko menších serverov, ktoré sa nazývajú fragmenty. Tieto zlomky majú rôzne položky, sú vytvorené pravidlá o tom, ktoré položky idú do ktorej časti. Je veľmi dôležité vytvoriť také pravidlo, aby sa údaje distribuovali rovnomerne. Možným prístupom k tomu je definovať rozsahy podľa niektorých informácií o zázname.

Tento zlomkový kľúč by sa mal vyberať veľmi opatrne, pretože zaťaženie nie je vždy rovnaké ako základňa ľubovoľných stĺpcov. Jediný fragment, ktorý dostáva viac požiadaviek ako ostatné, sa nazýva hotspot a snažia sa zabrániť jeho vzniku. Po rozdelení sa rekalibračné údaje stanú neuveriteľne drahými a môžu spôsobiť značné prestoje.

Algoritmy konsenzu databázy

Databázové konsenzuálne algoritmy
Databázové konsenzuálne algoritmy

DB sa ťažko implementujú v distribuovaných bezpečnostných systémoch, pretože vyžadujú, aby každý uzol vyjednal správnu akciu prerušenia alebo potvrdenia. Táto kvalita je známa ako konsenzus a je základným problémom pri budovaní distribučnej sústavy. Dosiahnutie typu dohody potrebnej pre problém „zaviazania“je jednoduché, ak sú príslušné procesy a sieť úplne spoľahlivé. Skutočné systémy však podliehajú mnohýmmožné zlyhania sieťových procesov, stratené, poškodené alebo duplicitné správy.

To predstavuje problém a nie je možné zaručiť, že sa správny konsenzus dosiahne v obmedzenom časovom období na nespoľahlivej sieti. V praxi existujú algoritmy, ktoré dosiahnu konsenzus pomerne rýchlo v nespoľahlivej sieti. Cassandra v skutočnosti poskytuje ľahké transakcie pomocou algoritmu Paxos pre distribuovaný konsenzus.

Distribuovaná výpočtová technika je kľúčom k prílevu spracovania veľkých dát, ktoré sa používa v posledných rokoch. Ide o metódu rozloženia obrovskej úlohy, akou je kumulatívnych 100 miliárd záznamov, z ktorých žiadny počítač nie je schopný robiť prakticky nič sám, na množstvo menších úloh, ktoré sa zmestia do jedného stroja. Vývojár rozdelí svoju obrovskú úlohu na mnoho menších, vykoná ich paralelne na mnohých strojoch, vhodne zhromaždí údaje a potom sa pôvodný problém vyrieši.

Tento prístup vám umožňuje horizontálne škálovanie – keď máte veľkú úlohu, pridajte do výpočtu viac uzlov. Tieto úlohy už mnoho rokov vykonáva programovací model MapReduce spojený s implementáciou paralelného spracovania a generovania veľkých dátových súborov pomocou distribuovaného algoritmu na klastri.

V súčasnosti je MapReduce trochu zastarané a prináša určité problémy. Objavili sa ďalšie architektúry, ktoré riešia tieto problémy. Konkrétne, Lambda Architecture pre distribuovanésystémy spracovania toku. Pokrok v tejto oblasti priniesol nové nástroje: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.

Systémy na ukladanie a replikáciu súborov

Systémy na ukladanie a replikáciu súborov
Systémy na ukladanie a replikáciu súborov

Distribuované súborové systémy možno považovať za distribuované úložiská údajov. Je to rovnaké ako koncept – ukladanie a prístup k veľkému množstvu údajov cez klaster strojov, ktoré sú jednou entitou. Zvyčajne idú ruka v ruke s Distributed Computing.

Napríklad spoločnosť Yahoo je známa tým, že od roku 2011 spúšťa HDFS na viac ako 42 000 uzloch na uloženie 600 petabajtov dát. Wikipedia definuje rozdiel v tom, že distribuované súborové systémy umožňujú prístup k súborom pomocou rovnakých rozhraní a sémantiky ako lokálne súbory, a nie cez vlastné API, ako je Cassandra Query Language (CQL).

Hadoop Distributed File System (HDFS) je systém používaný na prácu s počítačmi cez infraštruktúru Hadoop. Je rozšírený a používa sa na ukladanie a replikáciu veľkých súborov (veľkosť GB alebo TB) na mnohých počítačoch. Jeho architektúra pozostáva hlavne z NameNodes a DataNodes.

NameNodes je zodpovedný za ukladanie metadát o klastri, napríklad ktorý uzol obsahuje bloky súborov. Pôsobia ako sieťoví koordinátori, ktorí zisťujú, kde je najlepšie ukladať a kopírovať súbory, pričom sledujú stav systému. DataNodes jednoducho ukladajú súbory a vykonávajú príkazy, ako je replikácia súborov, nový zápis aostatné.

Nie je prekvapením, že HDFS sa najlepšie používa s Hadoopom na výpočtovú techniku, pretože poskytuje informovanosť o úlohách. Zadané úlohy sa potom spúšťajú na uzloch, ktoré uchovávajú údaje. To vám umožňuje použiť polohu údajov – optimalizuje výpočty a znižuje objem prevádzky v sieti.

Interplanetary File System (IPFS) je vzrušujúci nový peer-to-peer protokol/sieť pre distribuovaný súborový systém. Vďaka technológii Blockchain sa môže pochváliť plne decentralizovanou architektúrou bez jediného vlastníka alebo bodu zlyhania.

IPFS ponúka systém názvov (podobný DNS) nazývaný IPNS a umožňuje používateľom jednoducho získavať informácie. Ukladá súbor prostredníctvom historickej verzie, podobne ako to robí Git. To umožňuje prístup ku všetkým predchádzajúcim stavom súboru. Stále prechádza intenzívnym vývojom (v0.4 v čase písania), ale už zaznamenal projekty, ktoré sa zaujímali o jeho vytvorenie (FileCoin).

Systém na odosielanie správ

systém zasielania správ
systém zasielania správ

Systémy na odosielanie správ poskytujú centrálne miesto na ukladanie a distribúciu správ v rámci spoločného systému. Umožňujú vám oddeliť aplikačnú logiku od priamej komunikácie s inými systémami.

Známa miera – klaster Kafka na LinkedIn spracoval 1 bilión správ denne s maximom 4,5 milióna správ za sekundu.

Zjednodušene povedané, platforma na odosielanie správ funguje takto:

  1. Správaprechádza z aplikácie, ktorá ho potenciálne vytvára, nazývanej producent, prechádza na platformu a číta sa z viacerých aplikácií nazývaných spotrebitelia.
  2. Ak potrebujete uložiť určitú udalosť na viacerých miestach, ako je vytvorenie používateľa pre databázu, úložisko, službu odosielania e-mailov, potom je platforma na odosielanie správ tým najčistejším spôsobom, ako túto správu distribuovať.

Existuje niekoľko populárnych špičkových platforiem na odosielanie správ.

RabbitMQ je sprostredkovateľ správ, ktorý vám umožňuje presnejšie vyladiť riadenie ich trajektórií pomocou pravidiel smerovania a iných ľahko konfigurovateľných parametrov. Možno ho nazvať „inteligentným“brokerom, pretože má veľa logiky a pozorne sleduje správy, ktoré cez neho prechádzajú. Poskytuje možnosti pre AP a CP z CAP.

Kafka je sprostredkovateľ správ, ktorý je o niečo menej funkčný, pretože nesleduje, ktoré správy boli prečítané, a neumožňuje zložitú logiku smerovania. Pomáha dosiahnuť úžasný výkon a predstavuje najväčší prísľub v tomto priestore s aktívnym vývojom distribuovaných systémov komunitou open-source a podporou tímu Confluent. Kafka je najpopulárnejší u špičkových spoločností.

Aplikácie na interakciu so strojom

Tento distribučný systém je skupina počítačov, ktoré spolupracujú, aby sa koncovému používateľovi javili ako samostatný počítač. Tieto stroje sú v celkovom stave, funkčnésúčasne a môže pracovať nezávisle bez ovplyvnenia prevádzkyschopnosti celého systému.

Ak považujete databázu za distribuovanú, iba ak uzly navzájom spolupracujú pri koordinácii svojich akcií. V tomto prípade je to niečo ako aplikácia, ktorá prevádzkuje svoj interný kód v sieti peer-to-peer a je klasifikovaná ako distribuovaná aplikácia.

Známa mierka - BitTorrent
Známa mierka - BitTorrent

Príklady takýchto aplikácií:

  1. Známa škála – BitTorrent má 193 000 uzlov pre epizódu Game of Thrones.
  2. Základná technológia registrácie distribuovaných systémov Blockchain.

Distribuované účtovné knihy si možno predstaviť ako nemennú databázu určenú len pre aplikácie, ktorá je replikovaná, synchronizovaná a zdieľaná naprieč všetkými uzlami v distribučnej sieti.

Známa škála – sieť Ethereum – mala 4. januára 2018 4,3 milióna transakcií denne. Používajú vzorec Event Sourcing, ktorý vám umožňuje kedykoľvek obnoviť stav databázy.

Blockchain je súčasná základná technológia používaná pre distribuované účtovné knihy a v skutočnosti znamenala ich začiatok. Táto najnovšia a najväčšia inovácia v distribuovanom priestore vytvorila prvý skutočne distribuovaný platobný protokol, bitcoin.

Blockchain je distribuovaná účtovná kniha s usporiadaným zoznamom všetkých transakcií, ktoré kedy prebehli v jeho sieti. Ponuky sú zoskupené a uložené v blokoch. Celý blockchain je v podstate prepojený zoznam blokov. Špecifikované blokyich vytvorenie je nákladné a sú navzájom pevne spojené prostredníctvom kryptografie. Jednoducho povedané, každý blok obsahuje špeciálny hash (ktorý začína X počtom núl) obsahu aktuálneho bloku (vo forme Merkleho stromu) plus hash predchádzajúceho bloku. Tento hash vyžaduje veľa výkonu procesora.

Príklady distribuovaných operačných systémov

Príklady distribuovaných operačných systémov
Príklady distribuovaných operačných systémov

Typy systémov sa používateľovi zobrazujú, pretože ide o systémy s jedným používateľom. Zdieľajú svoju pamäť, disk a používateľ nemá problém s navigáciou v dátach. Používateľ si niečo uloží do svojho počítača a súbor sa uloží na viacerých miestach, t. j. pripojených počítačoch, takže stratené údaje možno ľahko obnoviť.

Príklady distribuovaných operačných systémov:

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

Ak sa niektorý počítač zavedie vyššie, teda ak sa medzi jednotlivými počítačmi vymieňa veľa požiadaviek, dochádza k vyrovnávaniu záťaže týmto spôsobom. V tomto prípade sa požiadavky prenesú do susedného PC. Ak sa sieť viac zaťaží, možno ju rozšíriť pridaním ďalších systémov do siete. Sieťový súbor a priečinky sú synchronizované a používajú sa konvencie pomenovania, aby sa pri získavaní údajov nevyskytli žiadne chyby.

Ukladanie do vyrovnávacej pamäte sa používa aj pri manipulácii s údajmi. Všetky počítače používajú na pomenovanie súborov rovnaký priestor názvov. alesúborový systém je platný pre každý počítač. Ak sú v súbore aktualizácie, zapíše sa do jedného počítača a zmeny sa rozšíria do všetkých počítačov, takže súbor vyzerá rovnako.

Súbory sú počas procesu čítania/zápisu uzamknuté, takže medzi rôznymi počítačmi nedochádza k zablokovaniu. Vyskytujú sa aj relácie, ako je čítanie, zapisovanie súborov v jednej relácii a zatvorenie relácie, a potom môže to isté urobiť iný používateľ atď.

Výhody používania

Operačný systém navrhnutý tak, aby ľuďom uľahčil každodenný život. Pre užívateľské výhody a potreby môže byť operačný systém jednoužívateľský alebo distribuovaný. V systéme distribuovaných zdrojov je veľa počítačov navzájom prepojených a zdieľajú svoje zdroje.

Výhody tohto:

  1. Ak je jeden počítač v takomto systéme chybný alebo poškodený, postará sa o to iný uzol alebo počítač.
  2. Je možné jednoducho pridať ďalšie zdroje.
  3. Zdroje, ako sú tlačiarne, môžu slúžiť viacerým počítačom.

Toto je stručný popis distribučného systému, prečo sa používa. Niektoré dôležité veci na zapamätanie: sú zložité a sú vyberané pre rozsah a cenu a ťažšie sa s nimi pracuje. Tieto systémy sú distribuované v niekoľkých kategóriách úložísk: výpočtová technika, systémy súborov a správ, registre, aplikácie. A to všetko je o komplexnom informačnom systéme len veľmi povrchné.

Odporúča: