Az elosztott rendszer a legegyszerűbb definíciójában olyan számítógépek csoportja, amelyek együtt dolgoznak, és amelyek egyként jelennek meg a végfelhasználó számára. A gépek közös állapotúak, párhuzamosan futnak, és függetlenül működhetnek anélkül, hogy befolyásolnák a teljes rendszer üzemidejét. Az igazság az, hogy az ilyen rendszerek kezelése összetett téma, tele buktatókkal.
A rendszer áttekintése
Az elosztott rendszer lehetővé teszi a hálózathoz kapcsolódó erőforrások (beleértve a szoftvereket) egyidejű megosztását.
Példák a rendszerelosztásra:
- Hagyományos köteg. Ezeket az adatbázisokat egy gép fájlrendszerében tárolják. Amikor a felhasználó információt szeretne kapni, közvetlenül kommunikál ezzel a géppel. Az adatbázisrendszer terjesztéséhez egyszerre több számítógépen kell futtatnia.
- Elosztott architektúra.
Elosztott rendszerlehetővé teszi a vízszintes és függőleges méretezést. Például a nagyobb forgalom kezelésének egyetlen módja az adatbázist futtató hardver frissítése. Ezt vertikális skálázásnak nevezik. A függőleges skálázás egy bizonyos határig jó, utána még a legjobb berendezés sem képes megbirkózni a szükséges forgalom biztosításával.
A vízszintes méretezés több számítógép hozzáadását jelenti, nem pedig az egyik hardverének frissítését. A függőleges méretezés növeli a teljesítményt az elosztott rendszerek legújabb hardverképességeihez. Ezek a lehetőségek nem elegendőek a közepestől nagyig terjedő terhelésű technológiai cégek számára. A vízszintes méretezésben az a legjobb, hogy nincsenek méretkorlátok. Amikor a teljesítmény romlik, egyszerűen hozzáadnak egy másik gépet, ami elvileg a végtelenségig megtehető.
Vállalati szinten az elosztott vezérlőrendszer gyakran több lépésből áll. Az üzleti folyamatokban a vállalati számítógépes hálózat leghatékonyabb helyein. Például egy tipikus, háromszintű elosztott rendszermodellt használó disztribúcióban az adatfeldolgozás a felhasználó helyén lévő PC-n, az üzleti feldolgozás egy távoli számítógépen, az adatbázis-hozzáférés és az adatfeldolgozás pedig egy teljesen más számítógépen történik. amely központi hozzáférést biztosít számos vállalkozás számára. Jellemzően ez a típusú elosztott számítástechnikaa kliens-szerver interakciós modellt használja.
Fő feladatok
Az elosztott vezérlőrendszer fő feladatai a következők:
- Átláthatóság – Egyetlen rendszerképet érhet el a hely, a hozzáférés, az áttelepítés, a párhuzamosság, a feladatátvétel, az áthelyezés, a perzisztencia és az erőforrás-adatok elrejtése nélkül.
- Nyitottság – leegyszerűsíti a hálózat beállítását és módosításait.
- Megbízhatóság – Egyetlen vezérlőrendszerhez képest megbízhatónak, következetesnek kell lennie, és nagy valószínűséggel kell elfedni a hibákat.
- Teljesítmény – Más modellekhez képest az elosztott modellek teljesítménynövelést biztosítanak.
- Skálázható – Ezeknek az elosztott vezérlőrendszereknek méretezhetőnek kell lenniük terület, adminisztráció vagy méret tekintetében.
Az elosztórendszerek feladatai a következők:
- A biztonság nagy probléma elosztott környezetben, különösen nyilvános hálózatok használatakor.
- Hibatűrés – nehéz lehet, ha a modell megbízhatatlan alkatrészekből épül fel.
- Az erőforrások koordinálása és elosztása – nehéz lehet, ha nincsenek megfelelő protokollok vagy kötelező szabályzatok.
Elosztott számítási környezet
A (DCE) egy széles körben használt iparági szabvány, amely támogatja az ilyen elosztott számítástechnikát. Az interneten a külső szolgáltatók általános szolgáltatásokat kínálnak,amelyek beleillenek ebbe a modellbe.
A grid számítástechnika egy olyan számítási modell, amely egy összetett probléma megoldásához kapcsolódó, nagyszámú számítógép elosztott architektúrájával rendelkezik. A grid számítási modellben a szerverek vagy személyi számítógépek független feladatokat látnak el, és lazán csatlakoznak egymáshoz az interneten vagy a kis sebességű hálózatokon keresztül.
A legnagyobb grid számítástechnikai projekt a SETI@home, amelyben az egyes számítógép-tulajdonosok önként vállalják a többfeladatos feldolgozási ciklusok egy részét számítógépükkel a Földönkívüli intelligencia keresése (SETI) projektben. Ez a számítógépes probléma több ezer számítógépet használ a rádióteleszkóp adatok letöltésére és keresésére.
A grid számítástechnika egyik első felhasználási módja az volt, hogy feltörje a kriptográfiai kódot egy csoport által, amelyet ma Distributed.net néven ismernek. Ez a csoport a modelljüket elosztott számítástechnikaként írja le.
Adatbázis skálázás
Az új információk terjesztése a mestertől a szolgáig nem történik meg azonnal. Valójában van egy időablak, amelyen belül elavult információkhoz juthat. Ha ez nem így lenne, az írási teljesítmény csökkenne, mivel az elosztott rendszereknek szinkronban kell várniuk az adatok terjedésére. Néhány kompromisszumot tartalmaznak.
A slave adatbázis-megközelítés használatával bizonyos mértékig ki lehet skálázni az olvasási forgalmat. Itt sok lehetőség van. De csak az írási forgalmat több részre kell osztaniaszervereket, mert nem tudja kezelni. Az egyik módja a több főkiszolgálós replikációs stratégia használata. Ott a rabszolgák helyett több fő csomópont van, amelyek támogatják az olvasást és az írást.
Egy másik módszer az úgynevezett sharding. Ezzel a szerver több kisebb szerverre, úgynevezett shardra van felosztva. Ezek a szilánkok különböző bejegyzésekkel rendelkeznek, szabályok jönnek létre, hogy melyik bejegyzés melyik szilánkba kerül. Nagyon fontos egy ilyen szabály létrehozása, hogy az adatok egyenletesen oszlanak el. Ennek egy lehetséges megközelítése a tartományok meghatározása bizonyos rekordinformációk alapján.
Ezt a szilánkos kulcsot nagyon körültekintően kell kiválasztani, mivel a terhelés nem mindig egyenlő a tetszőleges oszlopok alapjaival. Az egyetlen szilánkot, amely több kérést kap, mint a többi, hotspotnak nevezik, és megpróbálják megakadályozni, hogy kialakuljon. A felosztás után az újrakalibrálási adatok hihetetlenül megdrágulnak, és jelentős leállást eredményezhetnek.
Adatbázis-konszenzus-algoritmusok
A DB-ket nehéz megvalósítani az elosztott biztonsági rendszerekben, mert minden csomópontnak meg kell tárgyalnia a megfelelő megszakítási vagy véglegesítési műveletet. Ezt a minőséget konszenzusnak nevezik, és alapvető probléma az elosztórendszer felépítésében. A "commit" problémához szükséges típusú megállapodás elérése egyszerű, ha az érintett folyamatok és a hálózat teljesen megbízható. A valódi rendszerekre azonban számos dolog vonatkozika hálózati folyamatok lehetséges meghibásodásai, elveszett, sérült vagy duplikált üzenetek.
Ez problémát jelent, és nem garantálható, hogy egy megbízhatatlan hálózaton korlátozott időn belül megfelelő konszenzus születik. A gyakorlatban vannak olyan algoritmusok, amelyek meglehetősen gyorsan konszenzusra jutnak egy megbízhatatlan hálózatban. A Cassandra valójában könnyű tranzakciókat biztosít az elosztott konszenzus Paxos algoritmusának használatával.
Az elosztott számítástechnika a kulcsa az elmúlt években alkalmazott big data feldolgozás beáramlásának. Ez egy módszer arra, hogy egy hatalmas feladatot, például az összesített 100 milliárd rekordot, amelyből egyetlen számítógép sem képes egyedül elvégezni, sok kisebb, egyetlen gépbe elférő feladatra bontsuk. A fejlesztő hatalmas feladatát sok kisebbre bontja, sok gépen párhuzamosan hajtja végre, megfelelően összegyűjti az adatokat, akkor az eredeti probléma megoldódik.
Ez a megközelítés lehetővé teszi a vízszintes méretezést – ha nagy feladat van, csak adjon hozzá több csomópontot a számításhoz. Ezeket a feladatokat évek óta a MapReduce programozási modell végzi el, amely a párhuzamos feldolgozás megvalósításához és nagy adathalmazok generálásához kapcsolódik elosztott algoritmussal egy klaszteren.
Jelenleg a MapReduce kissé elavult, és problémákat vet fel. Más architektúrák is megjelentek, amelyek ezeket a problémákat kezelik. Mégpedig a Lambda Architecture for distributedáramlásfeldolgozó rendszerek. Az ezen a területen elért fejlődés új eszközöket hozott: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.
Fájltároló és replikációs rendszerek
Az elosztott fájlrendszereket elosztott adattárolóknak tekinthetjük. Ez ugyanaz, mint a koncepció – nagy mennyiségű adat tárolása és elérése egyetlen entitást képező gépcsoporton keresztül. Általában kéz a kézben járnak az elosztott számítástechnikával.
A Yahoo például arról ismert, hogy 2011 óta HDFS-t futtat több mint 42 000 csomóponton 600 petabájt adat tárolására. A Wikipédia abban határozza meg a különbséget, hogy az elosztott fájlrendszerek a helyi fájlokkal megegyező interfészekkel és szemantikával teszik lehetővé a fájlokhoz való hozzáférést, nem pedig egyéni API-n keresztül, például Cassandra Query Language (CQL) segítségével.
A Hadoop Distributed File System (HDFS) a Hadoop infrastruktúrán keresztüli számítástechnikai rendszer. Elterjedt, nagy fájlok (GB vagy TB méretű) tárolására és replikálására használják számos gépen. Architektúrája főleg NameNodes-okból és DataNodes-okból áll.
NameNodes felelős a fürtre vonatkozó metaadatok tárolásáért, például arról, hogy melyik csomópont tartalmaz fájlblokkokat. Hálózati koordinátorként működnek, kitalálják, hol lehet a legjobban tárolni és másolni a fájlokat, nyomon követve a rendszer állapotát. A DataNodes egyszerűen tárolja a fájlokat, és olyan parancsokat hajt végre, mint a fájlreplikáció, új írás ésmások.
Nem meglepő módon a HDFS a legjobb a Hadooppal használható számítástechnikai célokra, mivel ez biztosítja a feladatok információinak felismerését. A megadott jobok ezután az adatokat tároló csomópontokon futnak. Ez lehetővé teszi az adatok helyének használatát – optimalizálja a számításokat és csökkenti a hálózaton keresztüli forgalom mennyiségét.
Az Interplanetary File System (IPFS) egy izgalmas új peer-to-peer protokoll/hálózat az elosztott fájlrendszerekhez. A Blockchain technológiát alkalmazva teljesen decentralizált architektúrával büszkélkedhet, egyetlen tulajdonos vagy hibapont nélkül.
Az IPFS (a DNS-hez hasonló) elnevezési rendszert kínál, az úgynevezett IPNS-t, és lehetővé teszi a felhasználók számára az információk egyszerű lekérését. A fájlt történeti verziókezeléssel tárolja, hasonlóan a Githez. Ez lehetővé teszi a hozzáférést a fájl összes korábbi állapotához. Még mindig komoly fejlesztésen megy keresztül (a cikk írásakor a v0.4), de már láttak olyan projekteket, amelyek érdekeltek az építésében (FileCoin).
Üzenetküldő rendszer
Az üzenetküldő rendszerek központi helyet biztosítanak az üzenetek tárolására és elosztására egy közös rendszeren belül. Lehetővé teszik az alkalmazáslogikának elkülönítését a más rendszerekkel való közvetlen kommunikációtól.
Ismert méretarány – A LinkedIn Kafka-fürtje napi 1 billió üzenetet dolgozott fel, 4,5 millió üzenet csúcsértékével másodpercenként.
Egyszerűen fogalmazva az üzenetküldő platform így működik:
- Üzenetaz azt potenciálisan létrehozó alkalmazástól, amelyet gyártónak neveznek, bekerül a platformba, és több alkalmazásból, úgynevezett fogyasztókból olvassa be.
- Ha egy bizonyos eseményt több helyen kell tárolnia, például felhasználót kell létrehoznia egy adatbázishoz, tároláshoz vagy e-mail küldő szolgáltatáshoz, akkor az üzenetküldő platform a legtisztább módja az üzenet terjesztésének.
Több népszerű, csúcsminőségű üzenetküldő platform létezik.
A RabbitMQ egy üzenetközvetítő, amely lehetővé teszi a pályáik vezérlésének pontosabb beállítását az útválasztási szabályok és más könnyen konfigurálható paraméterek segítségével. Azért nevezhetjük "okos" brókernek, mert sok logikával rendelkezik, és szorosan figyeli a rajta áthaladó üzeneteket. Lehetőségeket biztosít a CAP-ból származó AP-k és CP-k számára.
A Kafka egy üzenetközvetítő, amely egy kicsit kevésbé működőképes, mivel nem követi nyomon, hogy mely üzeneteket olvasta el, és nem teszi lehetővé az összetett útválasztási logikát. Elképesztő teljesítményt nyújt, és a legnagyobb ígéretet képviseli ezen a téren az elosztott rendszerek nyílt forráskódú közösség általi aktív fejlesztésével és a Confluent csapatának támogatásával. A Kafka a legnépszerűbb a high-tech cégek körében.
Gépi interakciós alkalmazások
Ez az elosztórendszer olyan számítógépek csoportja, amelyek együtt dolgoznak, hogy külön számítógépként jelenjenek meg a végfelhasználó számára. A gépek általános állapotúak, működőképesekegyszerre, és függetlenül is működhet anélkül, hogy az egész rendszer üzemidejét befolyásolná.
Ha az adatbázist elosztottnak tekinti, csak akkor, ha a csomópontok kölcsönhatásba lépnek egymással, hogy összehangolják tevékenységeiket. Ebben az esetben ez olyasmi, mint egy alkalmazás, amely belső kódját egy peer-to-peer hálózaton futtatja, és elosztott alkalmazásnak minősül.
Példák ilyen alkalmazásokra:
- Ismert lépték – A BitTorrent 193 000 csomópontot gyűjt a Game of Thrones epizódhoz.
- Az elosztott Blockchain rendszerek alapregisztertechnológiája.
Az elosztott főkönyveket megváltoztathatatlan, csak alkalmazásokat tartalmazó adatbázisnak tekinthetjük, amely replikálódik, szinkronizálódik és meg van osztva a terjesztési hálózat összes csomópontja között.
A jól ismert skála - az Ethereum hálózat - napi 4,3 millió tranzakciót bonyolított le 2018. január 4-én. Az Event Sourcing mintát használják, amely lehetővé teszi az adatbázis állapotának bármikor történő visszaállítását.
A blokklánc az elosztott főkönyvekhez használt jelenlegi mögöttes technológia, és valójában ezek kezdetét jelentette. Ez a legújabb és legnagyobb innováció az elosztott térben létrehozta az első valóban elosztott fizetési protokollt, a bitcoint.
A Blockchain egy elosztott főkönyv, amely a hálózatán valaha lezajlott összes tranzakció rendezett listáját tartalmazza. Az ügyletek csoportosítva és blokkokban vannak tárolva. A teljes blokklánc lényegében a blokkok összekapcsolt listája. Meghatározott blokkoklétrehozása költséges, és kriptográfia révén szorosan kapcsolódnak egymáshoz. Egyszerűen fogalmazva, minden blokk tartalmaz egy speciális hash-t (amely X számú nullával kezdődik) az aktuális blokk tartalmának (Merkle-fa formájában), plusz az előző blokk hash-ét. Ez a hash sok CPU-teljesítményt igényel.
Példák elosztott operációs rendszerekre
A rendszertípusok azért jelennek meg a felhasználó számára, mert egyfelhasználós rendszerek. Megosztják a memóriájukat, a lemezüket, és a felhasználónak nem okoz gondot az adatok közötti navigáció. A felhasználó eltárol valamit a számítógépén, és a fájl több helyen, például csatlakoztatott számítógépeken tárolódik, így az elveszett adatok könnyen visszaállíthatók.
Példák elosztott operációs rendszerekre:
- Windows Server 2003;
- Windows Server 2008;
- Windows Server 2012;
- UbuntuLinux (Apache szerver).
Ha bármely számítógép magasabban indul, vagyis ha sok kérés cserélődik az egyes PC-k között, akkor így történik a terheléselosztás. Ebben az esetben a kérések a szomszédos PC-re továbbítják. Ha a hálózat terheltebbé válik, akkor további rendszerekkel bővíthető. A hálózati fájlok és mappák szinkronizálva vannak, és elnevezési konvenciókat alkalmaznak, hogy ne forduljanak elő hibák az adatok lekérésekor.
A gyorsítótárazás az adatok manipulálásakor is használatos. Minden számítógép ugyanazt a névteret használja a fájlok elnevezésére. Dea fájlrendszer minden számítógépen érvényes. Ha vannak frissítések a fájlhoz, akkor az egy számítógépre íródik, és a változtatások az összes számítógépre terjesztésre kerülnek, így a fájl ugyanúgy néz ki.
A fájlok az olvasási/írási folyamat során zárolva vannak, így nincs holtpont a különböző számítógépek között. Munkamenetek is előfordulnak, például olvasás, fájlok írása egy munkamenetben és a munkamenet bezárása, majd egy másik felhasználó megteheti ugyanezt és így tovább.
Használat előnyei
Operációs rendszer, amelyet az emberek mindennapi életének megkönnyítésére terveztek. A felhasználói előnyök és igények érdekében az operációs rendszer lehet egyfelhasználós vagy elosztott. Egy elosztott erőforrás-rendszerben sok számítógép kapcsolódik egymáshoz, és megosztja erőforrásaikat.
Ennek előnyei:
- Ha egy ilyen rendszerben az egyik számítógép hibás vagy sérült, akkor egy másik csomópont vagy számítógép gondoskodik róla.
- További erőforrások egyszerűen hozzáadhatók.
- Az olyan erőforrások, mint a nyomtatók, több számítógépet is kiszolgálhatnak.
Ez egy rövid ismertető az elosztási rendszerről, annak használatáról. Néhány fontos dolog, amit érdemes megjegyezni: összetettek, méretük és áruk alapján lettek kiválasztva, és nehezebb velük dolgozni. Ezek a rendszerek több tárolási kategóriába sorolhatók: számítástechnika, fájl- és üzenetküldő rendszerek, regiszterek, alkalmazások. És mindez csak nagyon felületes egy összetett információs rendszerről.