Hajutatud süsteem on selle kõige lihtsamas definitsioonis rühm koos töötavaid arvuteid, mis lõppkasutajale näivad ühtsena. Masinad jagavad ühist olekut, töötavad samaaegselt ja võivad töötada iseseisv alt, ilma et see mõjutaks kogu süsteemi tööaega. Tõde on see, et selliste süsteemide haldamine on keeruline teema, mis on täis lõkse.
Ülevaade süsteemist
Hajutatud süsteem võimaldab korraga jagada võrku ühendatud ressursse (sh tarkvara).
Süsteemi jaotuse näited:
- Traditsiooniline virn. Need andmebaasid on salvestatud ühe masina failisüsteemi. Kui kasutaja soovib teavet saada, suhtleb ta otse selle masinaga. Selle andmebaasisüsteemi levitamiseks peate seda samaaegselt käivitama mitmes arvutis.
- Hajutatud arhitektuur.
Hajutatud süsteemvõimaldab skaleerida horisontaalselt ja vertikaalselt. Näiteks on ainus viis suurema liikluse haldamiseks uuendada andmebaasi käitavat riistvara. Seda nimetatakse vertikaalseks skaleerimiseks. Vertikaalne skaleerimine on hea kuni teatud piirini, pärast mida ei suuda isegi parimad seadmed vajaliku liikluse tagamisega hakkama.
Horisontaalne skaleerimine tähendab rohkemate arvutite lisamist, mitte ühe riistvara uuendamist. Vertikaalne skaleerimine suurendab jõudlust hajutatud süsteemide uusimate riistvaravõimalusteni. Nendest võimalustest ei piisa mõõduka kuni suure töökoormusega tehnoloogiaettevõtetele. Parim asi horisontaalse skaleerimise juures on see, et suurusele pole piiranguid. Kui jõudlus halveneb, lisatakse lihts alt teine masin, mida põhimõtteliselt saab teha lõputult.
Ettevõtte tasandil hõlmab hajutatud juhtimissüsteem sageli erinevaid samme. Äriprotsessides ettevõtte arvutivõrgu kõige tõhusamates kohtades. Näiteks tüüpilises distributsioonis, mis kasutab kolmetasandilist hajutatud süsteemi mudelit, toimub andmetöötlus arvutis kasutaja asukohas, äritöötlus kaugarvutis ning andmebaasidele juurdepääs ja andmetöötlus täiesti erinevas arvutis. mis pakub tsentraliseeritud juurdepääsu paljudele ettevõtetele. Tavaliselt on seda tüüpi hajutatud andmetöötluskasutab kliendi ja serveri interaktsiooni mudelit.
Peamised ülesanded
Hajutatud juhtimissüsteemi peamised ülesanded on järgmised:
- Läbipaistvus – saavutage ühtne süsteemikujutis ilma asukohta, juurdepääsu, migratsiooni, samaaegsust, tõrkesiirde, ümberpaigutamise, püsivuse ja ressursi üksikasju kasutajate ees peitmata.
- Avatus – lihtsustab võrgu seadistamist ja muudatusi.
- Usaldusväärsus – ühe juhtimissüsteemiga võrreldes peaks see olema töökindel, järjepidev ja suure tõenäosusega varjata vigu.
- Jõudlus – võrreldes teiste mudelitega pakuvad hajutatud mudelid jõudlust.
- Skaleeritav – need hajutatud juhtimissüsteemid peavad olema skaleeritavad territooriumi, halduse või suuruse osas.
Jaotussüsteemide ülesannete hulka kuuluvad:
- Turvalisus on hajutatud keskkonnas suur probleem, eriti avalike võrkude kasutamisel.
- Tõrketaluvus – võib olla raske, kui mudel on ehitatud ebausaldusväärsete komponentidega.
- Ressursside koordineerimine ja jaotamine – võib olla keeruline, kui puuduvad korralikud protokollid või nõutavad poliitikad.
Hajutatud arvutuskeskkond
(DCE) on laialdaselt kasutatav tööstusstandard, mis toetab sellist hajutatud andmetöötlust. Internetis pakuvad kolmandatest osapooltest pakkujad mõningaid üldteenuseid,mis sobivad sellesse mudelisse.
Grid-arvutus on arvutusmudel, millel on paljude arvutite hajutatud arhitektuur, mis on seotud keeruka probleemi lahendamisega. Võrkarvutusmudelis täidavad serverid või personaalarvutid iseseisvaid ülesandeid ja on üksteisega lõdv alt ühendatud Interneti või väikese kiirusega võrkude kaudu.
Suurim võrguarvutusprojekt on SETI@home, mille käigus üksikud arvutiomanikud teevad vabatahtlikult osa oma multitegumtöötlemise tsüklitest, kasutades oma arvutit projekti Search for Extraterrestrial Intelligence (SETI) jaoks. See arvutiprobleem kasutab raadioteleskoobi andmete allalaadimiseks ja otsimiseks tuhandeid arvuteid.
Üks esimesi võrgustiku andmetöötluse kasutusviise oli krüptograafilise koodi murdmine rühma poolt, mida praegu tuntakse distributed.net nime all. See rühm kirjeldab oma mudelit ka hajutatud andmetöötlusena.
Andmebaasi skaleerimine
Uue teabe levitamine peremehelt alluvale ei toimu koheselt. Tegelikult on olemas ajaaken, mille jooksul saate aegunud teavet hankida. Kui see nii ei oleks, kannataks kirjutamise jõudlus, kuna hajutatud süsteemid peaksid ootama sünkroonselt andmete levikut. Nendega kaasnevad mõned kompromissid.
Kasutades alamandmebaasi lähenemisviisi, on võimalik lugemisliiklust mingil määral skaleerida. Siin on palju valikuid. Kuid peate lihts alt jagama kirjutamisliikluse mitmeks osaksservereid, sest see ei saa sellega hakkama. Üks võimalus on kasutada mitme peamise replikatsioonistrateegiat. Seal on orjade asemel mitu peamist sõlme, mis toetavad lugemist ja kirjutamist.
Teist meetodit nimetatakse killustamiseks. Sellega jagatakse server mitmeks väiksemaks serveriks, mida nimetatakse killudeks. Nendel kildudel on erinevad kirjed, luuakse reeglid selle kohta, millised kanded millisesse kildu lähevad. Väga oluline on luua selline reegel, et andmed jaguneksid ühtlaselt. Selle võimalikuks lähenemisviisiks on vahemike määratlemine mõne kirje teabe alusel.
See killuvõti tuleks valida väga hoolik alt, kuna koormus ei ole alati võrdne suvaliste veergude alustega. Ainsat kildu, mis saab teistest rohkem taotlusi, nimetatakse levialaks ja selle tekkimist püütakse takistada. Pärast jagamist muutuvad ümberkalibreerimisandmed uskumatult kalliks ja võivad põhjustada märkimisväärseid seisakuid.
Andmebaasi konsensusalgoritmid
DB-sid on hajutatud turbesüsteemides keeruline rakendada, kuna need nõuavad, et iga sõlm lepiks kokku õige katkestamise või toimingu sooritamise. Seda kvaliteeti tuntakse konsensusena ja see on jaotussüsteemi ülesehitamise põhiprobleem. Pühendumise probleemi jaoks vajaliku kokkuleppe saavutamine on lihtne, kui kaasatud protsessid ja võrk on täiesti töökindlad. Reaalsetele süsteemidele kehtivad aga mitmedvõrguprotsesside võimalikud tõrked, kadunud, rikutud või dubleeritud sõnumid.
See tekitab probleeme ja ei ole võimalik tagada, et ebausaldusväärses võrgus jõutakse piiratud aja jooksul õigele konsensusele. Praktikas on algoritme, mis saavutavad ebausaldusväärses võrgus üsna kiiresti konsensuse. Cassandra pakub tegelikult kergeid tehinguid, kasutades hajutatud konsensuse saavutamiseks Paxose algoritmi.
Hajutatud andmetöötlus on viimastel aastatel kasutatud suurandmete töötlemise võti. See on meetod tohutu ülesande, näiteks kumulatiivse 100 miljardi kirje, millest ükski arvuti ei suuda üksi praktiliselt midagi teha, jaotamiseks paljudeks väiksemateks ülesanneteks, mis mahuvad ühte masinasse. Arendaja jagab oma tohutu ülesande paljudeks väiksemateks, täidab neid paralleelselt paljudes masinates, kogub andmed vastav alt, siis algne probleem lahendatakse.
See lähenemisviis võimaldab teil skaleerida horisontaalselt – kui on suur ülesanne, lisage lihts alt arvutusse rohkem sõlme. Neid ülesandeid on aastaid täitnud programmeerimismudel MapReduce, mis on seotud paralleeltöötluse ja suurte andmehulkade genereerimisega, kasutades klastris hajutatud algoritmi.
Praegu on MapReduce mõnevõrra aegunud ja toob kaasa probleeme. Neid probleeme lahendavad teised arhitektuurid. Nimelt Lambda Architecture for distributedvoolu töötlemise süsteemid. Edusammud selles valdkonnas on toonud kaasa uusi tööriistu: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.
Failide salvestus- ja replikatsioonisüsteemid
Hajutatud failisüsteeme võib pidada hajutatud andmesalvedeks. See on sama, mis kontseptsioon – suure hulga andmete salvestamine ja juurdepääs masinate klastris, mis on üks tervik. Tavaliselt käivad need käsikäes hajutatud andmetöötlusega.
Näiteks Yahoo on alates 2011. aastast tuntud selle poolest, et töötab HDFS-i enam kui 42 000 sõlmes, et salvestada 600 petabaiti andmeid. Wikipedia määratleb erinevuse selles, et hajutatud failisüsteemid võimaldavad juurdepääsu failidele, kasutades samu liideseid ja semantikat nagu kohalikud failid, mitte läbi kohandatud API, nagu Cassandra Query Language (CQL).
Hadoopi hajutatud failisüsteem (HDFS) on süsteem, mida kasutatakse Hadoopi infrastruktuuri kaudu andmetöötluseks. Lai alt levinud, seda kasutatakse suurte failide (GB või TB suurus) salvestamiseks ja paljundamiseks paljudes masinates. Selle arhitektuur koosneb peamiselt nimesõlmedest ja andmesõlmedest.
NameNodes vastutab klastri metaandmete salvestamise eest, näiteks selle eest, milline sõlm sisaldab failiplokke. Nad tegutsevad võrgukoordinaatoritena, selgitades välja, kus on kõige parem faile salvestada ja kopeerida, ning jälgides süsteemi seisundit. DataNodes lihts alt salvestab faile ja täidab selliseid käske nagu faili replikatsioon, uus kirjutamine jateised.
Ei ole üllatav, et HDFS-i on kõige parem kasutada koos Hadoopiga andmetöötluseks, kuna see annab ülesanneteabe teadvustamise. Määratud tööd käivitatakse seejärel andmeid salvestavates sõlmedes. See võimaldab kasutada andmete asukohta – optimeerib arvutusi ja vähendab võrguliiklust.
Planeetidevaheline failisüsteem (IPFS) on põnev uus peer-to-peer protokoll/võrk hajutatud failisüsteemi jaoks. Kasutades Blockchaini tehnoloogiat, on sellel täielikult detsentraliseeritud arhitektuur, millel pole ühte omanikku ega tõrkekohta.
IPFS pakub nimesüsteemi (sarnast DNS-ile) nimega IPNS ja võimaldab kasutajatel hõlpsasti teavet hankida. See salvestab faili ajaloolise versioonimise kaudu, sarnaselt Gitile. See võimaldab juurdepääsu faili kõikidele varasematele olekutele. See on endiselt raskes arenduses (v0.4 selle kirjutamise ajal), kuid on juba näinud selle ehitamisest huvitatud projekte (FileCoin).
Sõnumite süsteem
Sõnumisüsteemid pakuvad keskse asukoha sõnumite salvestamiseks ja levitamiseks ühises süsteemis. Need võimaldavad teil eraldada rakendusloogika otsesuhtlusest teiste süsteemidega.
Teadatav ulatus – LinkedIni Kafka klaster töötles 1 triljonit sõnumit päevas, tipptasemel 4,5 miljonit sõnumit sekundis.
Lihtsam alt öeldes töötab sõnumsideplatvorm järgmiselt:
- Sõnumsaadud rakendusest, mis selle potentsiaalselt loob (nimetatakse tootjaks), läheb platvormile ja loetakse mitmest rakendusest, mida nimetatakse tarbijateks.
- Kui teil on vaja salvestada teatud sündmus mitmesse kohta, näiteks luua kasutaja andmebaasi, salvestusruumi või meili saatmisteenuse jaoks, siis on sõnumiplatvorm kõige puhtam viis selle sõnumi levitamiseks.
On mitmeid populaarseid tipptasemel sõnumsideplatvorme.
RabbitMQ on sõnumite vahendaja, mis võimaldab marsruutimisreeglite ja muude kergesti konfigureeritavate parameetrite abil nende trajektoore täpsemini reguleerida. Seda võib nimetada "targaks" maakleriks, kuna tal on palju loogikat ja ta jälgib hoolik alt seda läbivaid sõnumeid. Pakub valikuid CAP-i AP-de ja CP-de jaoks.
Kafka on sõnumite vahendaja, mis on veidi vähem funktsionaalne, kuna see ei jälgi, milliseid sõnumeid on loetud, ega võimalda keerulist marsruutimisloogikat. See aitab saavutada hämmastavat jõudlust ja kujutab endast selle ruumi suurimat lubadust avatud lähtekoodiga kogukonna aktiivse hajutatud süsteemide arendamisega ja Confluenti meeskonna toel. Kafka on kõrgtehnoloogiaettevõtete seas kõige populaarsem.
Masininteraktsioonirakendused
See jaotussüsteem on rühm arvuteid, mis töötavad koos, et kuvada lõppkasutajale eraldi arvutina. Need masinad on üldseisukorras, töökorrassamaaegselt ja saab töötada iseseisv alt, ilma et see mõjutaks kogu süsteemi tööaega.
Kui arvate, et andmebaas on hajutatud, siis ainult siis, kui sõlmed suhtlevad üksteisega oma tegevuste koordineerimiseks. Sel juhul on see midagi sellist, nagu rakendus, mis töötab oma sisemist koodi peer-to-peer võrgus ja on klassifitseeritud hajutatud rakenduseks.
Selliste rakenduste näited:
- Tuntud skaala – BitTorrenti sülem 193 000 sõlmest Game of Thrones'i episoodi jaoks.
- Hajutatud Blockchaini süsteemide põhiregistritehnoloogia.
Hajutatud pearaamatuid võib pidada muutumatuks, ainult rakenduste jaoks mõeldud andmebaasiks, mis on paljundatud, sünkroonitud ja jagatud kõigi turustusvõrgu sõlmede vahel.
Tuntud skaalal – Ethereumi võrgustikul – oli 4. jaanuaril 2018 4,3 miljonit tehingut päevas. Nad kasutavad sündmuste allika mustrit, mis võimaldab teil andmebaasi oleku igal ajal taastada.
Blockchain on praegu hajutatud pearaamatute aluseks olev tehnoloogia, mis tegelikult tähistas nende algust. See uusim ja suurim uuendus hajutatud ruumis lõi esimese tõeliselt hajutatud makseprotokolli, bitcoini.
Blockchain on hajutatud pearaamat, kus on järjestatud loend kõigist selle võrgus kunagi toimunud tehingutest. Pakkumised on rühmitatud ja salvestatud plokkidesse. Kogu plokiahel on sisuliselt lingitud plokkide loend. Määratud plokidon kallid luua ja on omavahel krüptograafia kaudu tihed alt seotud. Lihtsam alt öeldes sisaldab iga plokk spetsiaalset räsi (mis algab X arvu nullidega) praeguse ploki sisust (Merkle puu kujul) pluss eelmise ploki räsi. See räsi nõuab palju protsessori võimsust.
Hajutatud operatsioonisüsteemide näited
Süsteemitüübid ilmuvad kasutajale, kuna need on ühe kasutaja süsteemid. Nad jagavad oma mälu, ketast ja kasutajal pole raskusi andmetes navigeerimisega. Kasutaja salvestab midagi oma arvutisse ja faili hoitakse mitmes kohas, st ühendatud arvutites, nii et kaotatud andmeid saab hõlpsasti taastada.
Hajutatud operatsioonisüsteemide näited:
- Windows Server 2003;
- Windows Server 2008;
- Windows Server 2012;
- UbuntuLinux (Apache server).
Kui mõni arvuti käivitub kõrgem alt, st kui üksikute arvutite vahel vahetatakse palju päringuid, toimub koormuse tasakaalustamine. Sel juhul edastatakse päringud naaberarvutisse. Kui võrk muutub koormatumaks, saab seda laiendada, lisades võrku rohkem süsteeme. Võrgufailid ja kaustad sünkroonitakse ning kasutatakse nimetamise kokkuleppeid, et andmete toomisel ei tekiks vigu.
Vahemällu kasutatakse ka andmetega manipuleerimisel. Kõik arvutid kasutavad failide nimetamiseks sama nimeruumi. Agafailisüsteem kehtib iga arvuti jaoks. Kui failis on värskendusi, kirjutatakse see ühte arvutisse ja muudatused levitatakse kõikidesse arvutitesse, nii et fail näeb välja sama.
Failid lukustatakse lugemis-/kirjutamisprotsessi ajal, seega ei teki erinevate arvutite vahel ummikseisu. Toimuvad ka seansid, näiteks lugemine, failide kirjutamine ühes seansis ja seansi sulgemine ning seejärel saab sama teha teine kasutaja ja nii edasi.
Kasutamise eelised
Operatsioonisüsteem, mis on loodud inimeste igapäevaelu lihtsamaks muutmiseks. Kasutajate eeliste ja vajaduste huvides võib operatsioonisüsteem olla ühe kasutaja või hajutatud. Hajutatud ressursisüsteemis on paljud arvutid üksteisega ühendatud ja jagavad oma ressursse.
Selle tegemise eelised:
- Kui sellise süsteemi üks arvuti on vigane või kahjustatud, hoolitseb selle eest mõni teine sõlm või arvuti.
- Lihts alt saab lisada rohkem ressursse.
- Ressursid, nagu printerid, võivad teenindada mitut arvutit.
See on lühikokkuvõte jaotussüsteemist, miks seda kasutatakse. Mõned olulised asjad, mida meeles pidada: need on keerulised ja valitud mastaabi ja hinna järgi ning nendega on raskem töötada. Need süsteemid on jagatud mitmesse salvestuskategooriasse: andmetöötlus, faili- ja sõnumisüsteemid, registrid, rakendused. Ja see kõik on keerulise infosüsteemi kohta väga pealiskaudne.