Distribuirani sustav u svojoj najjednostavnijoj definiciji je skupina računala koja rade zajedno i koja se krajnjem korisniku pojavljuju kao jedno. Strojevi dijele zajedničko stanje, rade istodobno i mogu raditi neovisno bez utjecaja na vrijeme neprekidnog rada cijelog sustava. Istina je da je upravljanje takvim sustavima složena tema puna zamki.
Pregled sustava
Distribuirani sustav omogućuje dijeljenje resursa (uključujući softver) spojenih na mrežu u isto vrijeme.
Primjeri distribucije sustava:
- Tradicionalni stog. Te su baze podataka pohranjene u datotečnom sustavu jednog stroja. Kad god korisnik želi primiti informaciju, komunicira izravno s ovim strojem. Da biste distribuirali ovaj sustav baze podataka, morate ga pokrenuti na više računala u isto vrijeme.
- Distribuirana arhitektura.
Distribuirani sustavomogućuje horizontalno i okomito skaliranje. Na primjer, jedini način upravljanja većim prometom bio bi nadogradnja hardvera koji pokreće bazu podataka. To se zove vertikalno skaliranje. Vertikalno skaliranje je dobro do određene granice, nakon čega se ni najbolja oprema ne može nositi s osiguravanjem potrebnog prometa.
Horizontalno skaliranje znači dodavanje više računala, a ne nadogradnju hardvera na jednom. Vertikalno skaliranje povećava performanse do najnovijih hardverskih mogućnosti u distribuiranim sustavima. Ove mogućnosti nisu dovoljne za tehnološke tvrtke s umjerenim do teškim radnim opterećenjem. Najbolja stvar kod horizontalnog skaliranja je da nema ograničenja veličine. Kada se performanse pogoršaju, jednostavno se dodaje još jedan stroj, što se, u principu, može raditi neograničeno.
Na korporativnoj razini, distribuirani kontrolni sustav često uključuje različite korake. U poslovnim procesima na najučinkovitijim mjestima računalne mreže poduzeća. Na primjer, u tipičnoj distribuciji pomoću troslojnog modela distribuiranog sustava, obrada podataka se obavlja na osobnom računalu na korisnikovoj lokaciji, poslovna obrada na udaljenom računalu, a pristup bazi podataka i obrada podataka na potpuno drugom računalu. koji omogućuje centralizirani pristup za mnoge tvrtke.procese. Tipično, ova vrsta distribuiranog računalstvakoristi model interakcije klijent-poslužitelj.
Glavni zadaci
Glavni zadaci distribuiranog kontrolnog sustava uključuju:
- Transparentnost - Postignite jednu sliku sustava bez skrivanja lokacije, pristupa, migracije, istodobnosti, prelaska na pogreške, premještanja, postojanosti i pojedinosti o resursima za korisnike.
- Otvorenost - pojednostavljuje postavljanje mreže i promjene.
- Pouzdanost - U usporedbi s jednim upravljačkim sustavom, trebao bi biti pouzdan, dosljedan i imati veliku vjerojatnost maskiranja pogrešaka.
- Performanse - u usporedbi s drugim modelima, distribuirani modeli pružaju povećanje performansi.
- Skalabilan - Ovi distribuirani kontrolni sustavi moraju biti skalabilni u smislu teritorija, administracije ili veličine.
Zadaci distribucijskih sustava uključuju:
- Sigurnost je veliki problem u distribuiranom okruženju, posebno kada se koriste javne mreže.
- Tolerancija grešaka - može biti teška kada je model izrađen s nepouzdanim komponentama.
- Koordinacija i raspodjela resursa - može biti teško ako nema odgovarajućih protokola ili potrebnih pravila.
Distribuirano računalno okruženje
(DCE) je široko korišten industrijski standard koji podržava takvo distribuirano računanje. Na internetu pružatelji usluga treće strane nude neke generičke usluge,koji se uklapaju u ovaj model.
Grid computing je računalni model s distribuiranom arhitekturom velikog broja računala povezanih s rješavanjem složenog problema. U modelu grid računala, poslužitelji ili osobna računala obavljaju nezavisne zadatke i slabo su međusobno povezani internetom ili mrežama male brzine.
Najveći projekt mrežnog računalstva je SETI@home, u kojem se pojedinačni vlasnici računala dobrovoljno javljaju da izvode neke od svojih ciklusa višezadaćne obrade koristeći svoje računalo za projekt Search for Extraterrestrial Intelligence (SETI). Ovaj računalni problem koristi tisuće računala za preuzimanje i pretraživanje podataka radioteleskopa.
Jedna od prvih upotreba grid računalstva bila je razbijanje kriptografskog koda od strane grupe sada poznate kao distributed.net. Ova grupa također opisuje svoj model kao distribuirano računanje.
Skaliranje baze podataka
Širenje novih informacija s glavnog na slave ne događa se odmah. Zapravo, postoji vremenski okvir u kojem možete dobiti zastarjele informacije. Da to nije slučaj, izvedba pisanja bi patila, jer bi distribuirani sustavi morali sinkrono čekati da se podaci šire. Dolaze s nekoliko kompromisa.
Upotrebom pristupa podređene baze podataka moguće je u određenoj mjeri smanjiti promet čitanja. Ovdje postoji mnogo opcija. Ali samo trebate podijeliti promet pisanja na nekolikoposlužitelje jer ne može to podnijeti. Jedan od načina je korištenje strategije replikacije s više majstora. Tu, umjesto robova, postoji nekoliko glavnih čvorova koji podržavaju čitanje i pisanje.
Druga metoda naziva se razbijanje. Njime se poslužitelj dijeli na nekoliko manjih poslužitelja, nazvanih krhotine. Ovi dijelovi imaju različite unose, stvaraju se pravila o tome koji unosi ulaze u koji dio. Vrlo je važno stvoriti takvo pravilo da se podaci ravnomjerno raspoređuju. Mogući pristup tome je definiranje raspona prema nekim podacima o zapisu.
Ovaj ključ šarda treba odabrati vrlo pažljivo, jer opterećenje nije uvijek jednako bazama proizvoljnih stupaca. Jedini dio koji dobiva više zahtjeva od ostalih zove se hotspot, a oni pokušavaju spriječiti njegovo stvaranje. Kada se podijele, podaci o ponovnoj kalibraciji postaju nevjerojatno skupi i mogu rezultirati značajnim zastojima.
Algoritmi konsenzusa baze podataka
DB-ove je teško implementirati u distribuirane sigurnosne sustave jer zahtijevaju da svaki čvor pregovara o ispravnom prekidu ili izvršavanju radnje. Ova kvaliteta poznata je kao konsenzus i temeljni je problem u izgradnji distribucijskog sustava. Postizanje vrste dogovora potrebnog za problem "obvezivanja" jednostavno je ako su uključeni procesi i mreža potpuno pouzdani. Međutim, stvarni sustavi podliježu nizumogući kvarovi mrežnih procesa, izgubljene, oštećene ili duplicirane poruke.
Ovo predstavlja problem i nije moguće jamčiti da će se ispravan konsenzus postići unutar ograničenog vremenskog razdoblja na nepouzdanoj mreži. U praksi postoje algoritmi koji prilično brzo postižu konsenzus u nepouzdanoj mreži. Cassandra zapravo pruža lagane transakcije korištenjem Paxos algoritma za distribuirani konsenzus.
Distribuirano računalstvo ključ je priljeva obrade velikih podataka koja se koristi posljednjih godina. To je metoda razbijanja ogromnog zadatka, kao što je kumulativnih 100 milijardi zapisa, od kojih niti jedno računalo nije sposobno praktički ništa samostalno, na mnogo manjih zadataka koji mogu stati u jedan stroj. Programer razbija svoj veliki zadatak na mnogo manjih, izvršava ih na mnogim strojevima paralelno, prikuplja podatke na odgovarajući način, tada će izvorni problem biti riješen.
Ovaj pristup vam omogućuje horizontalno skaliranje - kada postoji veliki zadatak, samo dodajte više čvorova u izračun. Ove zadatke već dugi niz godina obavlja programski model MapReduce povezan s implementacijom za paralelnu obradu i generiranje velikih skupova podataka korištenjem distribuiranog algoritma na klasteru.
Trenutno je MapReduce pomalo zastario i donosi neke probleme. Pojavile su se i druge arhitekture koje rješavaju ova pitanja. Naime, Lambda Architecture za distribuiransustavi za obradu protoka. Napredak u ovom području donio je nove alate: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.
Sustavi za pohranu i replikaciju datoteka
Distribuirani datotečni sustavi mogu se smatrati distribuiranim spremištima podataka. Ovo je isto kao i koncept - pohranjivanje i pristup velikoj količini podataka u grupi strojeva koji su jedan entitet. Obično idu ruku pod ruku s distribuiranim računalstvom.
Na primjer, Yahoo je poznat po pokretanju HDFS-a na više od 42.000 čvorova za pohranu 600 petabajta podataka od 2011. godine. Wikipedia definira razliku u tome što distribuirani datotečni sustavi dopuštaju pristup datotekama koristeći ista sučelja i semantiku kao i lokalne datoteke, a ne kroz prilagođeni API kao što je Cassandra Query Language (CQL).
Hadoop Distributed File System (HDFS) je sustav koji se koristi za računanje preko Hadoop infrastrukture. Široko rasprostranjen, koristi se za pohranu i repliciranje velikih datoteka (veličine GB ili TB) na mnogim strojevima. Njegova se arhitektura uglavnom sastoji od čvorova imena i čvorova podataka.
NameNodes je odgovoran za pohranjivanje metapodataka o klasteru, kao što je to koji čvor sadrži blokove datoteka. Oni djeluju kao mrežni koordinatori, smišljajući gdje je najbolje pohraniti i kopirati datoteke, prateći zdravlje sustava. DataNodes jednostavno pohranjuju datoteke i izvode naredbe kao što su replikacija datoteke, novo pisanje iostali.
Nije iznenađujuće, HDFS se najbolje koristi s Hadoop-om za računanje, jer pruža svjesnost informacija o zadatku. Navedeni poslovi se zatim izvode na čvorovima koji pohranjuju podatke. To vam omogućuje korištenje lokacije podataka - optimizira izračune i smanjuje količinu prometa na mreži.
Međuplanetarni datotečni sustav (IPFS) je uzbudljiv novi peer-to-peer protokol/mreža za distribuirani datotečni sustav. Koristeći Blockchain tehnologiju, može se pohvaliti potpuno decentraliziranom arhitekturom bez jednog vlasnika ili točke kvara.
IPFS nudi sustav imenovanja (sličan DNS-u) nazvan IPNS i omogućuje korisnicima da lako dohvate informacije. Datoteku pohranjuje kroz povijesne verzije, slično kao Git. To omogućuje pristup svim prethodnim stanjima datoteke. Još uvijek prolazi kroz težak razvoj (v0.4 u vrijeme pisanja), ali je već vidio projekte zainteresirane za njegovu izgradnju (FileCoin).
Sustav za razmjenu poruka
Sustavi za razmjenu poruka pružaju središnju lokaciju za pohranu i distribuciju poruka unutar zajedničkog sustava. Omogućuju vam da odvojite logiku aplikacije od izravne komunikacije s drugim sustavima.
Poznata ljestvica - LinkedInov Kafka klaster obradio je 1 trilijun poruka dnevno s najviše 4,5 milijuna poruka u sekundi.
Jednostavno rečeno, platforma za razmjenu poruka funkcionira ovako:
- Porukaproslijeđena iz aplikacije koja ga potencijalno stvara, nazvana proizvođač, ide na platformu i čita se iz više aplikacija, koje se nazivaju potrošači.
- Ako trebate pohraniti određeni događaj na više mjesta, kao što je stvaranje korisnika za bazu podataka, pohranu, uslugu slanja e-pošte, tada je platforma za razmjenu poruka najčišći način distribucije te poruke.
Postoji nekoliko popularnih vrhunskih platformi za razmjenu poruka.
RabbitMQ je posrednik za poruke koji vam omogućuje preciznije podešavanje kontrole njihovih putanja pomoću pravila usmjeravanja i drugih parametara koji se lako mogu konfigurirati. Može se nazvati "pametnim" brokerom jer ima puno logike i pomno prati poruke koje prolaze kroz njega. Pruža opcije za AP i CP iz CAP-a.
Kafka je posrednik za poruke koji je malo manje funkcionalan jer ne prati koje su poruke pročitane i ne dopušta složenu logiku usmjeravanja. Pomaže u postizanju nevjerojatnih performansi i predstavlja najveće obećanje u ovom prostoru uz aktivni razvoj distribuiranih sustava od strane zajednice otvorenog koda i potporu Confluent tima. Kafka je najpopularniji među visokotehnološkim tvrtkama.
Aplikacije za strojnu interakciju
Ovaj distribucijski sustav je grupa računala koja rade zajedno kako bi se krajnjem korisniku pojavila kao zasebno računalo. Ovi strojevi su u općem stanju, radeistovremeno i može raditi samostalno bez utjecaja na rad cijelog sustava.
Ako smatrate da je baza podataka distribuirana, samo ako čvorovi međusobno djeluju kako bi koordinirali svoje radnje. To je u ovom slučaju nešto poput aplikacije koja izvodi svoj interni kod na peer-to-peer mreži i klasificira se kao distribuirana aplikacija.
Primjeri takvih aplikacija:
- Poznata skala - BitTorrent roj 193.000 čvorova za epizodu Game of Thrones.
- Osnovna tehnologija registra distribuiranih Blockchain sustava.
Distribuirane knjige mogu se smatrati nepromjenjivom bazom podataka samo za aplikacije koja se replicira, sinkronizira i dijeli na svim čvorovima u distribucijskoj mreži.
Dobro poznata ljestvica - mreža Ethereum - imala je 4,3 milijuna transakcija dnevno 4. siječnja 2018. Oni koriste obrazac Event Sourcing, koji vam omogućuje da vratite stanje baze podataka u bilo kojem trenutku.
Blockchain je trenutna temeljna tehnologija koja se koristi za distribuirane knjige i zapravo je označila njihov početak. Ova najnovija i najveća inovacija u distribuiranom prostoru stvorila je prvi istinski distribuirani protokol plaćanja, bitcoin.
Blockchain je distribuirana knjiga s uređenim popisom svih transakcija koje su se ikada dogodile na njegovoj mreži. Ponude su grupirane i pohranjene u blokovima. Cijeli blockchain je u biti povezan popis blokova. Navedeni blokoviskupi su za stvaranje i usko su međusobno povezani kriptografijom. Jednostavno rečeno, svaki blok sadrži poseban hash (koji počinje s X brojem nula) sadržaja trenutnog bloka (u obliku Merkleovog stabla) plus hash prethodnog bloka. Ovaj hash zahtijeva puno CPU snage.
Primjeri distribuiranih operativnih sustava
Vrste sustava se pojavljuju korisniku jer su jednokorisnički sustavi. Dijele svoju memoriju, disk, a korisnik nema problema s navigacijom kroz podatke. Korisnik pohranjuje nešto u svoje računalo i datoteka je pohranjena na više mjesta, tj. povezanih računala, tako da se izgubljeni podaci mogu lako vratiti.
Primjeri distribuiranih operativnih sustava:
- Windows Server 2003;
- Windows Server 2008;
- Windows Server 2012;
- UbuntuLinux (Apache poslužitelj).
Ako se bilo koje računalo diže više, odnosno ako se razmjenjuju mnogi zahtjevi između pojedinačnih računala, na ovaj način dolazi do balansiranja opterećenja. U tom slučaju, zahtjevi se prenose na susjedno računalo. Ako mreža postane više opterećena, tada se može proširiti dodavanjem više sustava u mrežu. Mrežna datoteka i mape su sinkronizirane i koriste se konvencije imenovanja tako da se ne pojavljuju pogreške kada se podaci dohvate.
Caching se također koristi prilikom manipulacije podacima. Sva računala koriste isti prostor imena za imenovanje datoteka. Alidatotečni sustav vrijedi za svako računalo. Ako postoje ažuriranja datoteke, ona se zapisuje na jedno računalo i promjene se šire na sva računala, tako da datoteka izgleda isto.
Datoteke su zaključane tijekom procesa čitanja/pisanja, tako da nema zastoja između različitih računala. Također se javljaju sesije, kao što su čitanje, pisanje datoteka u jednoj sesiji i zatvaranje sesije, a zatim drugi korisnik može učiniti isto i tako dalje.
Prednosti korištenja
Operacijski sustav dizajniran da olakša svakodnevni život ljudi. Za korisničke pogodnosti i potrebe, operativni sustav može biti jednokorisnički ili distribuiran. U sustavu distribuiranih resursa, mnoga su računala međusobno povezana i dijele svoje resurse.
Prednosti ovoga:
- Ako je jedno računalo u takvom sustavu neispravno ili oštećeno, drugi čvor ili računalo će se pobrinuti za to.
- Može se jednostavno dodati više resursa.
- Resursi kao što su pisači mogu poslužiti više računala.
Ovo je ukratko o distribucijskom sustavu, zašto se koristi. Neke važne stvari koje treba zapamtiti: složene su i odabrane su zbog razmjera i cijene i s njima je teže raditi. Ti su sustavi raspoređeni u nekoliko kategorija pohrane: računalstvo, sustavi datoteka i poruka, registri, aplikacije. A sve je to vrlo površno o složenom informacijskom sustavu.