Porazdeljeni sistem v svoji najpreprostejši definiciji je skupina računalnikov, ki delujejo skupaj in se končnemu uporabniku zdijo kot eno. Stroji imajo skupno stanje, delujejo sočasno in lahko delujejo neodvisno, ne da bi vplivali na čas delovanja celotnega sistema. Resnica je, da je upravljanje takšnih sistemov zapletena tema, polna pasti.
Pregled sistema
Porazdeljeni sistem omogoča souporabo virov (vključno s programsko opremo), povezanih v omrežje.
Primeri sistemske distribucije:
- Tradicionalni sklad. Te baze podatkov so shranjene v datotečnem sistemu enega računalnika. Kadar koli želi uporabnik prejeti informacije, komunicira neposredno s tem strojem. Za distribucijo tega sistema baze podatkov ga morate zagnati na več računalnikih hkrati.
- Porazdeljena arhitektura.
Distribuirani sistemomogoča vodoravno in navpično skaliranje. Na primer, edini način za obvladovanje večjega prometa bi bila nadgradnja strojne opreme, ki poganja bazo podatkov. To se imenuje vertikalno skaliranje. Navpično skaliranje je dobro do določene meje, po kateri tudi najboljša oprema ne more zagotoviti zahtevanega prometa.
Horizontalno skaliranje pomeni dodajanje več računalnikov, ne pa nadgradnje strojne opreme na enem. Navpično skaliranje poveča zmogljivost do najnovejših zmogljivosti strojne opreme v porazdeljenih sistemih. Te priložnosti niso dovolj za tehnološka podjetja z zmernimi do težkimi delovnimi obremenitvami. Najboljša stvar pri horizontalnem skaliranju je, da ni omejitev velikosti. Ko se zmogljivost poslabša, se preprosto doda drug stroj, kar je načeloma mogoče storiti v nedogled.
Na ravni podjetja porazdeljeni nadzorni sistem pogosto vključuje različne korake. V poslovnih procesih na najučinkovitejših mestih podjetniškega računalniškega omrežja. Na primer, pri tipični distribuciji z uporabo tristopenjskega porazdeljenega sistema se obdelava podatkov izvaja na osebnem računalniku na lokaciji uporabnika, poslovna obdelava se izvaja na oddaljenem računalniku, dostop do baze podatkov in obdelava podatkov pa na povsem drugem računalniku. ki omogoča centraliziran dostop za mnoga podjetja.procese. Običajno je ta vrsta porazdeljenega računalništvauporablja model interakcije odjemalec-strežnik.
Glavne naloge
Glavne naloge porazdeljenega nadzornega sistema vključujejo:
- Transparentnost – Dosežite enotno sliko sistema brez skrivanja lokacije, dostopa, selitve, sočasnosti, preklopa, premestitve, obstojnosti in podrobnosti o virih za uporabnike.
- Odprtost - poenostavi nastavitev in spremembe omrežja.
- Zanesljivost - V primerjavi z enim nadzornim sistemom bi moral biti zanesljiv, dosleden in imeti veliko verjetnost napak pri prikrivanju.
- Zmogljivost – v primerjavi z drugimi modeli, porazdeljeni modeli zagotavljajo povečanje zmogljivosti.
- Scalable - Ti porazdeljeni nadzorni sistemi morajo biti razširljivi glede na ozemlje, administracijo ali velikost.
Naloge distribucijskih sistemov vključujejo:
- Varnost je velik problem v porazdeljenem okolju, zlasti pri uporabi javnih omrežij.
- toleranca napak - lahko je težka, če je model izdelan z nezanesljivimi komponentami.
- Koordinacija in distribucija virov - je lahko težavno, če ni ustreznih protokolov ali zahtevanih politik.
Porazdeljeno računalniško okolje
(DCE) je široko uporabljen industrijski standard, ki podpira tako porazdeljeno računalništvo. Na internetu tretji ponudniki ponujajo nekaj splošnih storitev,ki sodi v ta model.
Mrežno računalništvo je računalniški model z porazdeljeno arhitekturo velikega števila računalnikov, povezanih z reševanjem kompleksnega problema. V modelu mrežnega računalništva strežniki ali osebni računalniki opravljajo neodvisne naloge in so med seboj ohlapno povezani z internetom ali omrežji z nizko hitrostjo.
Največji projekt mrežnega računalništva je SETI@home, v katerem posamezni lastniki računalnikov prostovoljno izvedejo nekaj svojih večopravilnih ciklov obdelave s svojim računalnikom za projekt Iskanje zunajzemeljske inteligence (SETI). Ta računalniška težava uporablja na tisoče računalnikov za prenos in iskanje podatkov radijskega teleskopa.
Ena od prvih uporab mrežnega računalništva je bila zlom kriptografske kode s strani skupine, ki je zdaj znana kot distributed.net. Ta skupina opisuje tudi svoj model kot porazdeljeno računalništvo.
Skaliranje baze podatkov
Širenje novih informacij od glavnega k podrejenemu se ne zgodi takoj. Pravzaprav obstaja časovno okno, v katerem lahko dobite zastarele informacije. Če temu ne bi bilo tako, bi trpela zmogljivost pisanja, saj bi morali porazdeljeni sistemi sinhrono čakati, da se podatki razširijo. Prihajajo z nekaj kompromisi.
Z uporabo podrejenega pristopa baze podatkov je mogoče do neke mere zmanjšati promet za branje. Tukaj je veliko možnosti. Toda promet pisanja morate samo razdeliti na večstrežnikov, ker tega ne zmore. Eden od načinov je uporaba strategije replikacije z več glavnimi. Tam je namesto podrejenih več glavnih vozlišč, ki podpirajo branje in pisanje.
Druga metoda se imenuje razdeljevanje. Z njim je strežnik razdeljen na več manjših strežnikov, ki se imenujejo drobci. Ti deli imajo različne vnose, ustvarjena so pravila o tem, kateri vnosi gredo v kateri delček. Zelo pomembno je ustvariti takšno pravilo, da se podatki enakomerno porazdelijo. Možen pristop k temu je definiranje obsegov glede na nekatere podatke o zapisu.
Ta ključ je treba izbrati zelo previdno, saj obremenitev ni vedno enaka osnovam poljubnih stolpcev. Edini delček, ki prejme več zahtev kot drugi, se imenuje vroča točka in poskušajo preprečiti njegovo nastanek. Ko so podatki za ponovno kalibracijo razdeljeni, postanejo neverjetno dragi in lahko povzročijo precejšnje izpade.
Algoritmi konsenza baze podatkov
DB je težko implementirati v porazdeljene varnostne sisteme, ker zahtevajo, da se vsako vozlišče pogaja o pravilni prekinitvi ali potrditvi dejanja. Ta kakovost je znana kot konsenz in je temeljni problem pri izgradnji distribucijskega sistema. Doseganje vrste dogovora, potrebnega za problem "obveze", je preprosto, če so vključeni procesi in omrežje popolnoma zanesljivi. Vendar pa so resnični sistemi podvrženi številnimmožne napake omrežnih procesov, izgubljena, poškodovana ali podvojena sporočila.
To predstavlja težavo in ni mogoče zagotoviti, da bo v nezanesljivem omrežju dosežen pravilen konsenz v omejenem časovnem obdobju. V praksi obstajajo algoritmi, ki v nezanesljivem omrežju precej hitro dosežejo konsenz. Cassandra dejansko zagotavlja lahke transakcije z uporabo algoritma Paxos za porazdeljeno soglasje.
Porazdeljeno računalništvo je ključ do pritoka obdelave velikih podatkov, ki se uporablja v zadnjih letih. Gre za metodo razčlenitve velike naloge, kot je kumulativnih 100 milijard zapisov, od katerih noben računalnik ni sposoben sam narediti praktično ničesar, na številne manjše naloge, ki se lahko prilegajo enemu računalniku. Razvijalec razdeli svojo ogromno nalogo na veliko manjših, jih izvaja na številnih strojih vzporedno, ustrezno zbere podatke, nato pa bo prvotni problem rešen.
Ta pristop vam omogoča vodoravno lestvico - ko je velika naloga, samo dodajte več vozlišč v izračun. Te naloge že vrsto let izvaja programski model MapReduce, povezan z implementacijo za vzporedno obdelavo in generiranje velikih podatkovnih nizov z uporabo porazdeljenega algoritma v gruči.
Trenutno je MapReduce nekoliko zastarel in prinaša nekaj težav. Pojavile so se druge arhitekture, ki obravnavajo ta vprašanja. Namreč, Lambda Architecture za distribuiranosistemi za obdelavo toka. Napredek na tem področju je prinesel nova orodja: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.
Sistemi za shranjevanje in replikacijo datotek
Porazdeljene datotečne sisteme si lahko predstavljamo kot porazdeljene shrambe podatkov. To je enako kot koncept – shranjevanje in dostop do velike količine podatkov v skupini strojev, ki so ena sama entiteta. Običajno gredo z roko v roki z distribuiranim računalništvom.
Na primer, Yahoo je od leta 2011 znan po tem, da izvaja HDFS na več kot 42.000 vozliščih za shranjevanje 600 petabajtov podatkov. Wikipedia opredeljuje razliko v tem, da porazdeljeni datotečni sistemi omogočajo dostop do datotek z uporabo istih vmesnikov in semantike kot lokalne datoteke, ne pa prek API-ja po meri, kot je Cassandra Query Language (CQL).
Hadoop Distributed File System (HDFS) je sistem, ki se uporablja za računalništvo prek infrastrukture Hadoop. Razširjen, uporablja se za shranjevanje in repliciranje velikih datotek (velikosti GB ali TB) na številnih strojih. Njegova arhitektura je sestavljena predvsem iz imenskih vozlišč in podatkovnih vozlišč.
NameNodes je odgovoren za shranjevanje metapodatkov o gruči, na primer, katero vozlišče vsebuje bloke datotek. Delujejo kot omrežni koordinatorji, ugotavljajo, kje je najbolje shraniti in kopirati datoteke, ter spremljajo zdravje sistema. DataNodes preprosto shranjujejo datoteke in izvajajo ukaze, kot so replikacija datoteke, novo pisanje indrugi.
Ni presenetljivo, da je HDFS najbolje uporabljati s Hadoopom za računalništvo, saj zagotavlja zavedanje informacij o opravilih. Določena opravila se nato izvajajo na vozliščih, ki shranjujejo podatke. To vam omogoča uporabo lokacije podatkov – optimizira izračune in zmanjša količino prometa v omrežju.
Medplanetarni datotečni sistem (IPFS) je vznemirljiv nov protokol/omrežje enakovrednih za porazdeljeni datotečni sistem. Z uporabo tehnologije Blockchain se ponaša s popolnoma decentralizirano arhitekturo brez enega samega lastnika ali točke okvare.
IPFS ponuja sistem poimenovanja (podoben DNS), imenovan IPNS, in uporabnikom omogoča enostavno pridobivanje informacij. Datoteko shranjuje s pomočjo zgodovinskih različic, podobno kot Git. To omogoča dostop do vseh prejšnjih stanj datoteke. Še vedno se intenzivno razvija (v0.4 v času pisanja), vendar je že videl projekte, ki se zanimajo za njegovo izdelavo (FileCoin).
Sporočilni sistem
Sporočilni sistemi zagotavljajo osrednjo lokacijo za shranjevanje in distribucijo sporočil znotraj skupnega sistema. Omogočajo vam, da ločite aplikacijsko logiko od neposredne komunikacije z drugimi sistemi.
Znana lestvica - LinkedInova gruča Kafka je obdelala 1 bilijon sporočil na dan z največ 4,5 milijona sporočil na sekundo.
Preprosto povedano, platforma za sporočila deluje takole:
- Sporočiloprenese iz aplikacije, ki jo potencialno ustvari, imenovano proizvajalec, gre v platformo in se prebere iz več aplikacij, imenovanih potrošniki.
- Če morate določen dogodek shraniti na več mestih, kot je ustvarjanje uporabnika za bazo podatkov, shranjevanje, storitev pošiljanja e-pošte, je platforma za sporočanje najčistejši način za distribucijo tega sporočila.
Obstaja več priljubljenih vrhunskih platform za sporočanje.
RabbitMQ je posrednik za sporočila, ki vam omogoča bolj natančno nastavitev nadzora njihovih poti z uporabo pravil usmerjanja in drugih enostavno nastavljivih parametrov. Lahko ga imenujemo "pametni" posrednik, ker ima veliko logike in pozorno spremlja sporočila, ki gredo skozi njega. Ponuja možnosti za AP in CP iz CAP.
Kafka je posrednik za sporočila, ki je nekoliko manj funkcionalen, saj ne spremlja, katera sporočila so bila prebrana, in ne dovoljuje zapletene logike usmerjanja. Pomaga doseči neverjetno zmogljivost in predstavlja največjo obljubo v tem prostoru z aktivnim razvojem porazdeljenih sistemov s strani odprtokodne skupnosti in podporo ekipe Confluent. Kafka je najbolj priljubljen pri visokotehnoloških podjetjih.
Aplikacije za strojno interakcijo
Ta distribucijski sistem je skupina računalnikov, ki delujejo skupaj in se končnemu uporabniku prikažejo kot ločen računalnik. Ti stroji so v splošnem stanju, delujočihkrati in lahko deluje neodvisno, ne da bi vplival na čas delovanja celotnega sistema.
Če zbirko podatkov menite kot porazdeljeno, le, če vozlišča medsebojno delujejo, da bi uskladili svoja dejanja. V tem primeru je nekaj podobnega aplikaciji, ki izvaja svojo notranjo kodo v omrežju enakovrednih in je razvrščena kot porazdeljena aplikacija.
Primeri takšnih aplikacij:
- Znana lestvica - BitTorrent roj 193.000 vozlišč za epizodo Game of Thrones.
- Osnovna tehnologija registra porazdeljenih sistemov Blockchain.
Porazdeljene knjige si lahko predstavljamo kot nespremenljivo bazo podatkov samo za aplikacije, ki se replicira, sinhronizira in deli na vseh vozliščih v distribucijskem omrežju.
Poznana lestvica - omrežje Ethereum - je imela 4. januarja 2018 4,3 milijona transakcij na dan. Uporabljajo vzorec Event Sourcing, ki vam omogoča, da kadar koli obnovite stanje baze podatkov.
Blockchain je trenutna osnovna tehnologija, ki se uporablja za porazdeljene knjige in je dejansko označila njihov začetek. Ta najnovejša in največja inovacija v distribuiranem prostoru je ustvarila prvi resnično distribuiran plačilni protokol, bitcoin.
Blockchain je porazdeljena knjiga z urejenim seznamom vseh transakcij, ki so se kdaj zgodile v njegovem omrežju. Posli so združeni in shranjeni v blokih. Celoten blockchain je v bistvu povezan seznam blokov. Določeni blokiso drage za ustvarjanje in so med seboj tesno povezane s kriptografijo. Preprosto povedano, vsak blok vsebuje posebno razpršitev (ki se začne s številom X ničel) vsebine trenutnega bloka (v obliki Merklejevega drevesa) plus zgoščenka prejšnjega bloka. Ta hash zahteva veliko CPE moči.
Primeri porazdeljenih operacijskih sistemov
Vrste sistemov se prikažejo uporabniku, ker so enouporabniški sistemi. Delijo si svoj pomnilnik, disk in uporabnik nima težav pri krmarjenju po podatkih. Uporabnik nekaj shrani v svoj osebni računalnik, datoteka pa je shranjena na več lokacijah, tj. povezanih računalnikih, tako da je mogoče izgubljene podatke enostavno povrniti.
Primeri porazdeljenih operacijskih sistemov:
- Windows Server 2003;
- Windows Server 2008;
- Windows Server 2012;
- UbuntuLinux (strežnik Apache).
Če se kateri koli računalnik zažene višje, to je, če se med posameznimi računalniki izmenja veliko zahtev, tako pride do uravnoteženja obremenitve. V tem primeru se zahteve razširijo na sosednji računalnik. Če postane omrežje bolj obremenjeno, ga je mogoče razširiti z dodajanjem več sistemov v omrežje. Omrežna datoteka in mape se sinhronizirajo in uporabljajo se konvencije o poimenovanju, tako da pri pridobivanju podatkov ne pride do napak.
Predpomnjenje se uporablja tudi pri obdelavi podatkov. Vsi računalniki uporabljajo isti imenski prostor za poimenovanje datotek. Ampakdatotečni sistem velja za vsak računalnik. Če so v datoteki posodobitve, je zapisana v en računalnik in spremembe se razširijo na vse računalnike, tako da je datoteka videti enako.
Datoteke so med postopkom branja/pisanja zaklenjene, tako da med različnimi računalniki ni zastoja. Pojavijo se tudi seje, kot so branje, pisanje datotek v eni seji in zapiranje seje, nato pa lahko drug uporabnik stori isto in tako naprej.
Prednosti uporabe
Operacijski sistem, zasnovan za lažje vsakdanje življenje ljudi. Zaradi koristi in potreb uporabnikov je operacijski sistem lahko enouporabniški ali distribuiran. V sistemu porazdeljenih virov je veliko računalnikov povezanih med seboj in si delijo svoje vire.
Prednosti tega:
- Če je en računalnik v takem sistemu pokvarjen ali poškodovan, bo za to poskrbelo drugo vozlišče ali računalnik.
- Več virov je mogoče enostavno dodati.
- Viri, kot so tiskalniki, lahko služijo več računalnikom.
To je kratek opis distribucijskega sistema, zakaj se uporablja. Nekaj pomembnih stvari, ki si jih je treba zapomniti: so zapleteni in izbrani glede na obseg in ceno ter z njimi je težje delati. Ti sistemi so razdeljeni v več kategorij shranjevanja: računalništvo, sistemi datotek in sporočil, registri, aplikacije. In vse to je glede kompleksnega informacijskega sistema le zelo površno.