Hajautetut järjestelmät: määritelmä, ominaisuudet ja perusperiaatteet

Sisällysluettelo:

Hajautetut järjestelmät: määritelmä, ominaisuudet ja perusperiaatteet
Hajautetut järjestelmät: määritelmä, ominaisuudet ja perusperiaatteet
Anonim

Hajautettu järjestelmä yksinkertaisimmassa määritelmässään on ryhmä tietokoneita, jotka toimivat yhdessä ja jotka näkyvät yhtenä kokonaisuutena loppukäyttäjälle. Koneet jakavat yhteisen tilan, toimivat samanaikaisesti ja voivat toimia itsenäisesti vaikuttamatta koko järjestelmän käyttöaikaan. Totuus on, että tällaisten järjestelmien hallinta on monimutkainen aihe täynnä sudenkuoppia.

Järjestelmän yleiskatsaus

Hajautetut järjestelmät
Hajautetut järjestelmät

Hajautettu järjestelmä mahdollistaa verkkoon kytkettyjen resurssien (mukaan lukien ohjelmistot) jakamisen samanaikaisesti.

Esimerkkejä järjestelmän jakelusta:

  1. Perinteinen pino. Nämä tietokannat on tallennettu yhden koneen tiedostojärjestelmään. Aina kun käyttäjä haluaa saada tietoa, hän kommunikoi suoraan tämän laitteen kanssa. Tämän tietokantajärjestelmän jakamiseksi sinun on suoritettava se useissa tietokoneissa samanaikaisesti.
  2. Hajautettu arkkitehtuuri.

Hajautettu järjestelmävoit skaalata vaaka- ja pystysuunnassa. Esimerkiksi ainoa tapa käsitellä lisää liikennettä on päivittää tietokantaa käyttävä laitteisto. Tätä kutsutaan pystyskaalaukseksi. Pystyskaalaus on hyvä tiettyyn rajaan asti, jonka jälkeen parhaatkaan laitteet eivät pysty tuottamaan tarvittavaa liikennettä.

Skaalaus vaakasuunnassa tarkoittaa useiden tietokoneiden lisäämistä, ei yhden laitteiston päivittämistä. Pystysuuntainen skaalaus lisää suorituskykyä hajautettujen järjestelmien uusimpiin laitteistoominaisuuksiin. Nämä mahdollisuudet eivät riitä teknologiayrityksille, joiden työtaakka on kohtalainen tai raskas. Parasta vaakasuuntaisessa skaalauksessa on, että kokorajoituksia ei ole. Kun suorituskyky heikkenee, yksinkertaisesti lisätään toinen kone, mitä periaatteessa voidaan tehdä loputtomiin.

Yritystasolla hajautettu ohjausjärjestelmä sisältää usein useita vaiheita. Liiketoimintaprosesseissa yrityksen tietokoneverkon tehokkaimmissa paikoissa. Esimerkiksi tyypillisessä kolmiportaista hajautettua järjestelmämallia käyttävässä jakelussa tietojenkäsittely tapahtuu PC:llä käyttäjän sijainnissa, liiketoiminnan käsittely tapahtuu etätietokoneella ja tietokantaan pääsy ja tietojenkäsittely tapahtuu täysin eri tietokoneella. joka tarjoaa keskitetyn pääsyn monille yrityksille. Tyypillisesti tämän tyyppinen hajautettu laskentakäyttää asiakas-palvelin-vuorovaikutusmallia.

Päätehtävät

Päätehtävät
Päätehtävät

Hajautetun ohjausjärjestelmän päätehtävät ovat:

  1. Läpinäkyvyys - Saavuta yksi järjestelmäkuva piilottamatta sijaintia, pääsyä, siirtoa, samanaikaisuutta, vikasietoa, siirtoa, pysyvyyttä ja resurssien tietoja käyttäjille.
  2. Avoimuus – yksinkertaistaa verkon määrittämistä ja muutoksia.
  3. Luotettavuus - Verrattuna yhteen ohjausjärjestelmään sen pitäisi olla luotettava, johdonmukainen ja siinä on suuri todennäköisyys peittää virheitä.
  4. Suorituskyky – Muihin malleihin verrattuna hajautetut mallit parantavat suorituskykyä.
  5. Skaalautuva – Näiden hajautettujen ohjausjärjestelmien on oltava skaalautuvia alueen, hallinnon tai koon suhteen.

Jakelujärjestelmien tehtäviin kuuluu:

  1. Turvallisuus on suuri ongelma hajautetussa ympäristössä, varsinkin kun käytetään julkisia verkkoja.
  2. Vikasietoisuus – voi olla vaikeaa, kun malli on rakennettu epäluotettavia komponentteja käyttäen.
  3. Resurssien koordinointi ja jakaminen - voi olla vaikeaa, jos ei ole asianmukaisia protokollia tai vaadittuja käytäntöjä.

Hajautettu laskentaympäristö

Hajautettu laskentaympäristö
Hajautettu laskentaympäristö

(DCE) on laaj alti käytetty alan standardi, joka tukee tällaista hajautettua tietojenkäsittelyä. Internetissä kolmannen osapuolen palveluntarjoajat tarjoavat joitain yleisiä palveluita,jotka sopivat tähän malliin.

Grid computing on laskentamalli, jossa on hajautettu arkkitehtuuri useille tietokoneille, jotka liittyvät monimutkaisen ongelman ratkaisemiseen. Grid-laskentamallissa palvelimet tai henkilökohtaiset tietokoneet suorittavat itsenäisiä tehtäviä ja ovat löyhästi yhteydessä toisiinsa Internetin tai hitaiden verkkojen kautta.

Suurin grid-laskentaprojekti on SETI@home, jossa yksittäiset tietokoneen omistajat vapaaehtoisesti suorittavat osan moniajoprosessointijaksoistaan käyttämällä tietokonetta SETI (Search for Extraterrestrial Intelligence) -projektissa. Tämä tietokoneongelma käyttää tuhansia tietokoneita radioteleskooppitietojen lataamiseen ja etsimiseen.

Yksi ensimmäisistä grid-laskennan käyttötavoista oli salauskoodin murtaminen ryhmässä, joka tunnetaan nykyään nimellä Distributed.net. Tämä ryhmä kuvailee malliaan myös hajautetuksi tietojenkäsittelyksi.

Tietokannan skaalaus

Tietokannan skaalaus
Tietokannan skaalaus

Uuden tiedon levittäminen isännältä orjalle ei tapahdu hetkessä. Itse asiassa on olemassa aikaikkuna, jossa voit saada vanhentuneita tietoja. Jos näin ei ole, kirjoitussuorituskyky kärsisi, koska hajautettujen järjestelmien olisi odotettava synkronisesti tietojen leviämistä. Ne sisältävät muutamia kompromisseja.

Käyttämällä orjatietokantalähestymistapaa on mahdollista skaalata lukuliikennettä jossain määrin. Tässä on monia vaihtoehtoja. Mutta sinun tarvitsee vain jakaa kirjoitusliikenne useisiinpalvelimia, koska se ei voi käsitellä sitä. Yksi tapa on käyttää usean isännän replikointistrategiaa. Siellä on orjien sijasta useita pääsolmuja, jotka tukevat lukemista ja kirjoittamista.

Toista menetelmää kutsutaan shardingiksi. Sen avulla palvelin jaetaan useisiin pienempiin palvelimiin, joita kutsutaan sirpaleiksi. Näillä sirpaleilla on erilaisia merkintöjä, luodaan säännöt siitä, mitkä merkinnät menevät mihinkin sirpaleeseen. On erittäin tärkeää luoda sellainen sääntö, että tiedot jakautuvat tasaisesti. Yksi mahdollinen lähestymistapa tähän on määrittää alueet joidenkin tietuetietojen mukaan.

Tämä sirpaleavain tulee valita erittäin huolellisesti, koska kuorma ei aina vastaa mieliv altaisten sarakkeiden kantaa. Ainoa sirpale, joka saa enemmän pyyntöjä kuin muut, kutsutaan hotspotiksi, ja he yrittävät estää sen muodostumisen. Kun uudelleenkalibrointitiedot on jaettu, niistä tulee uskomattoman kalliita ja ne voivat aiheuttaa merkittäviä seisokkeja.

Tietokantojen konsensusalgoritmit

Tietokannan konsensusalgoritmit
Tietokannan konsensusalgoritmit

DB:itä on vaikea toteuttaa hajautetuissa suojausjärjestelmissä, koska ne edellyttävät jokaisen solmun neuvottelevan oikeasta keskeytyksestä tai toimenpiteestä. Tämä laatu tunnetaan konsensuksena ja on perustavanlaatuinen ongelma jakelujärjestelmän rakentamisessa. "Commit"-ongelmaan tarvittavan sopimuksen saavuttaminen on helppoa, jos siihen liittyvät prosessit ja verkko ovat täysin luotettavia. Todellisiin järjestelmiin sovelletaan kuitenkin useitamahdolliset verkkoprosessien epäonnistumiset, kadonneet, vioittuneet tai päällekkäiset viestit.

Tämä aiheuttaa ongelmia, eikä ole mahdollista taata, että oikeaan yksimielisyyteen päästään rajoitetun ajan kuluessa epäluotettavassa verkossa. Käytännössä on algoritmeja, jotka pääsevät yhteisymmärrykseen melko nopeasti epäluotettavassa verkossa. Cassandra tarjoaa itse asiassa kevyitä tapahtumia käyttämällä hajautettua konsensusta Paxos-algoritmia.

Hajautettu laskenta on avain viime vuosina käytetyn big datan käsittelyyn. Se on menetelmä, jolla v altava tehtävä, kuten kumulatiiviset 100 miljardia tietuetta, joista yksikään tietokone ei pysty tekemään käytännössä mitään, hajotetaan moniin pienempiin tehtäviin, jotka mahtuvat yhteen koneeseen. Kehittäjä jakaa v altavan tehtävänsä moniin pienempiin, suorittaa ne useissa koneissa rinnakkain, kerää tiedot asianmukaisesti, niin alkuperäinen ongelma ratkeaa.

Tämän lähestymistavan avulla voit skaalata vaakasuunnassa - kun on suuri tehtävä, lisää vain lisää solmuja laskelmaan. Näitä tehtäviä on suoritettu useiden vuosien ajan MapReduce-ohjelmointimallilla, joka liittyy rinnakkaiskäsittelyn toteutukseen ja suurten tietojoukkojen generointiin käyttämällä hajautettua algoritmia klusterissa.

Tällä hetkellä MapReduce on jokseenkin vanhentunut ja tuo mukanaan ongelmia. On syntynyt muita arkkitehtuureja, jotka ratkaisevat nämä ongelmat. Nimittäin Lambda-arkkitehtuuri hajautetullevirtauksen käsittelyjärjestelmät. Edistys tällä alalla on tuonut uusia työkaluja: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.

Tiedostojen tallennus- ja replikointijärjestelmät

Tiedostojen tallennus- ja replikointijärjestelmät
Tiedostojen tallennus- ja replikointijärjestelmät

Hajautettuja tiedostojärjestelmiä voidaan pitää hajautetuina tietovarastoina. Tämä on sama kuin konsepti - suuren tietomäärän tallentaminen ja pääsy koneklusterissa, jotka muodostavat yhden kokonaisuuden. Ne kulkevat yleensä käsi kädessä hajautetun tietojenkäsittelyn kanssa.

Esimerkiksi Yahoo on tunnettu siitä, että se käyttää HDFS:ää yli 42 000 solmussa 600 petatavun datan tallentamiseen vuodesta 2011 lähtien. Wikipedia määrittelee eron siinä, että hajautetut tiedostojärjestelmät sallivat tiedostojen käytön samoilla käyttöliittymillä ja semantiikkalla kuin paikalliset tiedostot, eikä mukautetun API:n, kuten Cassandra Query Language (CQL) kautta.

Hadoop Distributed File System (HDFS) on järjestelmä, jota käytetään Hadoop-infrastruktuurin yli tapahtuvaan laskemiseen. Laajalle levinnyt, sitä käytetään suurten tiedostojen (GB tai TB koko) tallentamiseen ja monistamiseen monilla koneilla. Sen arkkitehtuuri koostuu pääasiassa NameNodesista ja DataNodesista.

NameNodes vastaa klusterin metatietojen tallentamisesta, kuten siitä, mikä solmu sisältää tiedostolohkoja. He toimivat verkkokoordinaattoreina ja selvittävät, missä tiedostot on parasta tallentaa ja kopioida, ja seurataan järjestelmän kuntoa. DataNodes yksinkertaisesti tallentaa tiedostoja ja suorittaa komentoja, kuten tiedostojen replikointi, uusi kirjoitus jamuut.

Ei ole yllättävää, että HDFS:ää käytetään parhaiten Hadoopin kanssa tietojenkäsittelyssä, koska se tarjoaa tehtävätietotietoisuuden. Määritetyt työt suoritetaan sitten solmuissa, jotka tallentavat tiedot. Näin voit käyttää tietojen sijaintia - optimoi laskelmat ja vähentää liikenteen määrää verkon yli.

Interplanetary File System (IPFS) on jännittävä uusi vertaisprotokolla/verkko hajautettua tiedostojärjestelmää varten. Blockchain-teknologiaa käyttämällä siinä on täysin hajautettu arkkitehtuuri, jossa ei ole yhtä omistajaa tai vikakohtaa.

IPFS tarjoaa IPNS-nimisen nimeämisjärjestelmän (samanlaisen kuin DNS:n), jonka avulla käyttäjät voivat helposti hakea tietoja. Se tallentaa tiedoston historiallisen versioinnin kautta, aivan kuten Git tekee. Tämä mahdollistaa pääsyn tiedoston kaikkiin aikaisempiin tiloihin. Sitä kehitetään edelleen voimakkaasti (v0.4 kirjoitettaessa), mutta se on jo nähnyt projekteja, jotka ovat kiinnostuneita sen rakentamisesta (FileCoin).

Viestijärjestelmä

viestintäjärjestelmä
viestintäjärjestelmä

Viestijärjestelmät tarjoavat keskeisen sijainnin viestien tallentamista ja jakelua varten yhteisessä järjestelmässä. Niiden avulla voit erottaa sovelluslogiikan suorasta yhteydenpidosta muiden järjestelmien kanssa.

Tunnettu mittakaava – LinkedInin Kafka-klusteri käsitteli 1 biljoonaa viestiä päivässä, huippujen ollessa 4,5 miljoonaa viestiä sekunnissa.

Yksinkertaisesti sanottuna viestintäalusta toimii näin:

  1. Viestisiirretty sovelluksesta, joka mahdollisesti luo sen, jota kutsutaan tuottajaksi, siirtyy alustalle ja luetaan useista sovelluksista, joita kutsutaan kuluttajiksi.
  2. Jos sinun on tallennettava tietty tapahtuma useisiin paikkoihin, kuten luotava käyttäjä tietokantaan, tallennustilaa tai sähköpostin lähetyspalvelua varten, viestinvälitysalusta on siistein tapa jakaa viesti.

On olemassa useita suosittuja huippuluokan viestialustoja.

RabbitMQ on viestivälittäjä, jonka avulla voit hienosäätää niiden lentoratojen ohjausta reitityssääntöjen ja muiden helposti konfiguroitavien parametrien avulla. Sitä voidaan kutsua "älykkääksi" välittäjäksi, koska sillä on paljon logiikkaa ja se seuraa tarkasti sen läpi kulkevia viestejä. Tarjoaa vaihtoehtoja CAP:n tukipisteille ja CP:ille.

Kafka on viestivälittäjä, joka on hieman vähemmän toimiva, koska se ei seuraa, mitä viestejä on luettu, eikä salli monimutkaista reitityslogiikkaa. Se auttaa saavuttamaan hämmästyttävän suorituskyvyn ja edustaa suurinta lupausta tässä tilassa avoimen lähdekoodin yhteisön aktiivisella hajautettujen järjestelmien kehittämisellä ja Confluent-tiimin tuella. Kafka on suosituin korkean teknologian yritysten keskuudessa.

Machine Interaction Applications

Tämä jakelujärjestelmä on ryhmä tietokoneita, jotka toimivat yhdessä näyttääkseen loppukäyttäjälle erillisenä tietokoneena. Nämä koneet ovat yleiskunnossa, toimivatsamanaikaisesti ja voi toimia itsenäisesti vaikuttamatta koko järjestelmän käyttöaikaan.

Jos pidät tietokantaa hajautettuna, vain jos solmut ovat vuorovaikutuksessa toistensa kanssa koordinoidakseen toimintaansa. Tässä tapauksessa se on vähän kuin sovellus, joka käyttää sisäistä koodiaan vertaisverkossa, ja se on luokiteltu hajautetuksi sovellukseksi.

Tunnettu mittakaava - BitTorrent
Tunnettu mittakaava - BitTorrent

Esimerkkejä tällaisista sovelluksista:

  1. Tunnettu mittakaava – BitTorrent-parvi 193 000 solmua Game of Thrones -jaksolle.
  2. Hajautettujen Blockchain-järjestelmien perusrekisteritekniikka.

Hajautetut pääkirjat voidaan ajatella muuttumattomina, vain sovelluksille tarkoitettuina tietokantaina, jotka replikoidaan, synkronoidaan ja jaetaan jakeluverkon kaikkien solmujen kesken.

Tunnetulla mittakaavalla – Ethereum-verkostolla – oli 4,3 miljoonaa tapahtumaa päivässä 4. tammikuuta 2018. He käyttävät Event Sourcing -mallia, jonka avulla voit palauttaa tietokannan tilan milloin tahansa.

Blockchain on nykyinen taustalla oleva tekniikka, jota käytetään hajautetuissa kirjanpidossa ja joka itse asiassa merkitsi niiden alkua. Tämä hajautetun tilan uusin ja suurin innovaatio loi ensimmäisen todella hajautetun maksuprotokollan, bitcoinin.

Blockchain on hajautettu pääkirja, jossa on järjestetty luettelo kaikista sen verkossa koskaan tapahtuneista tapahtumista. Tarjoukset ryhmitellään ja tallennetaan lohkoihin. Koko lohkoketju on pohjimmiltaan linkitetty lohkoluettelo. Määritetyt lohkotovat kalliita luoda ja ne on kytketty tiiviisti toisiinsa kryptografian avulla. Yksinkertaisesti sanottuna jokainen lohko sisältää erityisen tiivisteen (joka alkaa X nollien lukumäärällä) nykyisen lohkon sisällöstä (Merkle-puun muodossa) plus edellisen lohkon tiiviste. Tämä hash vaatii paljon suorittimen tehoa.

Esimerkkejä hajautetuista käyttöjärjestelmistä

Esimerkkejä hajautetuista käyttöjärjestelmistä
Esimerkkejä hajautetuista käyttöjärjestelmistä

Järjestelmätyypit näkyvät käyttäjälle, koska ne ovat yhden käyttäjän järjestelmiä. He jakavat muistinsa, levynsä, eikä käyttäjällä ole vaikeuksia selata tietoja. Käyttäjä tallentaa jotain tietokoneeseensa ja tiedosto on tallennettu useisiin paikkoihin eli yhdistettyihin tietokoneisiin, jotta kadonneet tiedot voidaan palauttaa helposti.

Esimerkkejä hajautetuista käyttöjärjestelmistä:

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

Jos jokin tietokone käynnistyy korkeamm alta, eli jos useita pyyntöjä vaihdetaan yksittäisten tietokoneiden välillä, kuormituksen tasapainotus tapahtuu näin. Tässä tapauksessa pyynnöt välitetään naapuritietokoneeseen. Jos verkko kuormittuu, sitä voidaan laajentaa lisäämällä verkkoon lisää järjestelmiä. Verkkotiedostot ja kansiot synkronoidaan ja nimeämiskäytäntöjä käytetään, jotta virheitä ei tapahdu, kun tietoja haetaan.

Välimuistia käytetään myös tietojen käsittelyssä. Kaikki tietokoneet käyttävät samaa nimiavaruutta tiedostojen nimeämiseen. Muttatiedostojärjestelmä on voimassa jokaisessa tietokoneessa. Jos tiedostoon on päivityksiä, se kirjoitetaan yhdelle tietokoneelle ja muutokset siirretään kaikkiin tietokoneisiin, joten tiedosto näyttää sam alta.

Tiedostot lukitaan luku-/kirjoitusprosessin aikana, joten eri tietokoneiden välillä ei ole lukkiutumista. Myös istuntoja esiintyy, kuten lukeminen, tiedostojen kirjoittaminen yhdessä istunnossa ja istunnon sulkeminen, minkä jälkeen toinen käyttäjä voi tehdä saman ja niin edelleen.

Käyttämisen edut

Käyttöjärjestelmä, joka on suunniteltu helpottamaan ihmisten jokapäiväistä elämää. Käyttäjien etujen ja tarpeiden vuoksi käyttöjärjestelmä voi olla yhden käyttäjän tai hajautettu. Hajautetussa resurssijärjestelmässä monet tietokoneet ovat yhteydessä toisiinsa ja jakavat resurssinsa.

Tämän tekemisen edut:

  1. Jos yksi tietokone tällaisessa järjestelmässä on viallinen tai vaurioitunut, toinen solmu tai tietokone huolehtii siitä.
  2. Lisää resursseja on helppo lisätä.
  3. Resurssit, kuten tulostimet, voivat palvella useita tietokoneita.

Tämä on lyhyt kuvaus jakelujärjestelmästä, miksi sitä käytetään. Joitakin tärkeitä asioita muistaa: ne ovat monimutkaisia ja ne on valittu mittakaavan ja hinnan perusteella, ja niiden kanssa on vaikeampi työskennellä. Nämä järjestelmät on jaettu useisiin tallennusluokkiin: tietojenkäsittely, tiedosto- ja viestintäjärjestelmät, rekisterit, sovellukset. Ja kaikki tämä on vain hyvin pinnallista monimutkaisen tietojärjestelmän os alta.

Suositeltava: