Distribuirani sistem u svojoj najjednostavnijoj definiciji je grupa računara koji rade zajedno i koji se krajnjem korisniku pojavljuju kao jedan. Mašine dijele zajedničko stanje, rade istovremeno i mogu raditi nezavisno bez utjecaja na vrijeme neprekidnog rada cijelog sistema. Istina je da je upravljanje takvim sistemima složena tema puna zamki.
Pregled sistema
Distribuirani sistem dozvoljava dijeljenje resursa (uključujući softver) povezanih na mrežu u isto vrijeme.
Primjeri sistemske distribucije:
- Tradicionalni stog. Ove baze podataka se pohranjuju na sistem datoteka jedne mašine. Kad god korisnik želi da primi informaciju, on komunicira direktno sa ovom mašinom. Da distribuirate ovaj sistem baze podataka, morate ga pokrenuti na više računara u isto vrijeme.
- Distribuirana arhitektura.
Distribuirani sistemomogućava horizontalno i vertikalno skaliranje. Na primjer, jedini način za upravljanje većim prometom bio bi nadogradnja hardvera koji pokreće bazu podataka. Ovo se zove vertikalno skaliranje. Vertikalno skaliranje je dobro do određene granice, nakon čega se ni najbolja oprema ne može nositi sa obezbjeđivanjem potrebnog prometa.
Horizontalno skaliranje znači dodavanje više računara, a ne nadogradnju hardvera na jednom. Vertikalno skaliranje povećava performanse do najnovijih hardverskih mogućnosti u distribuiranim sistemima. Ove mogućnosti nisu dovoljne za tehnološke kompanije sa 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š jedna mašina, što se, u principu, može raditi neograničeno.
Na korporativnom nivou, distribuirani kontrolni sistem često uključuje različite korake. U poslovnim procesima na najefikasnijim mestima računarske mreže preduzeća. Na primjer, u tipičnoj distribuciji koja koristi troslojni model distribuiranog sistema, obrada podataka se obavlja na PC-u na lokaciji korisnika, poslovna obrada se obavlja na udaljenom računaru, a pristup bazi podataka i obrada podataka se obavlja na potpuno drugom računaru. koji omogućava centralizovani pristup za mnoge poslovne procese. Tipično, ovaj tip distribuiranog računarstvakoristi model interakcije klijent-server.
Glavni zadaci
Glavni zadaci distribuiranog kontrolnog sistema uključuju:
- Transparentnost - Postignite jednu sliku sistema bez skrivanja lokacije, pristupa, migracije, istodobnosti, prekoračenja greške, premještanja, postojanosti i detalja o resursima za korisnike.
- Otvorenost - pojednostavljuje postavljanje mreže i promjene.
- Pouzdanost - U poređenju sa jednim kontrolnim sistemom, on bi trebao biti pouzdan, dosljedan i imati veliku vjerovatnoću maskiranja grešaka.
- Performanse - U poređenju sa drugim modelima, distribuirani modeli pružaju povećanje performansi.
- Skalabilnost - Ovi distribuirani kontrolni sistemi moraju biti skalabilni u smislu teritorije, administracije ili veličine.
Zadaci distributivnih sistema 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 napravljen sa nepouzdanim komponentama.
- Koordinacija i distribucija resursa - može biti teško ako nema odgovarajućih protokola ili potrebnih politika.
Distribuirano računarsko okruženje
(DCE) je široko korišten industrijski standard koji podržava takvo distribuirano računanje. Na internetu, provajderi treće strane nude neke generičke usluge,koji se uklapaju u ovaj model.
Grid computing je računarski model sa distribuiranom arhitekturom velikog broja računara povezanih sa rešavanjem složenog problema. U modelu grid računarstva, serveri ili personalni računari obavljaju nezavisne zadatke i labavo su međusobno povezani internetom ili mrežama male brzine.
Najveći projekat grid računarstva je SETI@home, u kojem se pojedinačni vlasnici računara dobrovoljno javljaju da izvode neke od svojih ciklusa višezadaćne obrade koristeći svoj računar za projekat Search for Extraterrestrial Intelligence (SETI). Ovaj kompjuterski problem koristi hiljade računara za preuzimanje i pretraživanje podataka radio teleskopa.
Jedna od prvih upotreba grid računarstva bila je razbijanje kriptografskog koda od strane grupe sada poznate kao distributed.net. Ova grupa takođe opisuje svoj model kao distribuirano računarstvo.
Skaliranje baze podataka
Širenje novih informacija sa mastera na slave ne dešava se trenutno. U stvari, postoji vremenski okvir u kojem možete dobiti zastarjele informacije. Da to nije slučaj, performanse pisanja bi patile, jer bi distribuirani sistemi morali da čekaju sinhrono da se podaci propagiraju. 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 nekolikoservere jer to ne može podnijeti. Jedan od načina je korištenje strategije replikacije s više majstora. Tamo, umjesto slave, postoji nekoliko glavnih čvorova koji podržavaju čitanje i pisanje.
Druga metoda se zove šardiranje. Uz to, server je podijeljen na nekoliko manjih servera, koji se nazivaju dijelovi. Ovi dijelovi imaju različite unose, kreiraju 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 ovome je definiranje raspona prema nekim informacijama o zapisu.
Ovaj ključ treba odabrati vrlo pažljivo, jer opterećenje nije uvijek jednako bazama proizvoljnih kolona. Jedini dio koji dobije više zahtjeva od ostalih naziva se hotspot, a oni pokušavaju spriječiti njegovo formiranje. Kada se podijele, podaci o ponovnoj kalibraciji postaju nevjerovatno skupi i mogu rezultirati značajnim zastojima.
Algoritmi konsenzusa baze podataka
DB-ove je teško implementirati u distribuirane sigurnosne sisteme jer zahtijevaju od svakog čvora da pregovara o ispravnom prekidu ili izvršenju akcije. Ovaj kvalitet je poznat kao konsenzus i predstavlja fundamentalni problem u izgradnji distributivnog sistema. Postizanje vrste dogovora potrebnog za problem "polaganja" je jednostavno ako su uključeni procesi i mreža potpuno pouzdani. Međutim, stvarni sistemi su podložni nizumogući kvarovi mrežnih procesa, izgubljene, oštećene ili duplirane poruke.
Ovo predstavlja problem i nije moguće garantovati da će tačan konsenzus biti postignut u ograničenom vremenskom periodu na nepouzdanoj mreži. U praksi postoje algoritmi koji postižu konsenzus prilično brzo u nepouzdanoj mreži. Cassandra zapravo pruža lagane transakcije korištenjem Paxos algoritma za distribuirani konsenzus.
Distribuirano računarstvo je ključ za priliv obrade velikih podataka koja se koristi posljednjih godina. To je metoda razbijanja ogromnog zadatka, kao što je kumulativnih 100 milijardi zapisa, od kojih nijedan računar nije sposoban da uradi praktički ništa sam, na mnogo manjih zadataka koji mogu stati u jednu mašinu. Programer razbija svoj ogroman zadatak na mnogo manjih, izvršava ih na mnogim mašinama paralelno, prikuplja podatke na odgovarajući način, tada će originalni problem biti riješen.
Ovaj pristup vam omogućava horizontalno skaliranje - kada postoji veliki zadatak, samo dodajte još čvorova u proračun. Ove zadatke već dugi niz godina obavlja programski model MapReduce povezan sa implementacijom za paralelnu obradu i generisanje velikih skupova podataka koristeći distribuirani algoritam na klasteru.
Trenutno je MapReduce pomalo zastario i donosi neke probleme. Pojavile su se i druge arhitekture koje se bave ovim problemima. Naime, Lambda Architecture za distribuiranesistemi za obradu protoka. Napredak u ovoj oblasti donio je nove alate: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.
Sistemi za pohranu datoteka i replikaciju
Distribuirani sistem datoteka može se smatrati distribuiranim skladištima podataka. Ovo je isto kao i koncept - pohranjivanje i pristupanje velikoj količini podataka u klasteru mašina koje su jedan entitet. Obično idu ruku pod ruku sa distribuiranim računarstvom.
Na primjer, Yahoo je poznat po pokretanju HDFS-a na preko 42.000 čvorova za pohranu 600 petabajta podataka od 2011. godine. Wikipedia definiše razliku u tome što distribuirani sistemi datoteka dozvoljavaju pristup datotekama koristeći ista sučelja i semantiku kao i lokalne datoteke, umjesto preko prilagođenog API-ja kao što je Cassandra Query Language (CQL).
Hadoop Distributed File System (HDFS) je sistem koji se koristi za računanje preko Hadoop infrastrukture. Široko rasprostranjen, koristi se za skladištenje i repliciranje velikih datoteka (veličine GB ili TB) na mnogim mašinama. Njegova arhitektura se 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 sistema. DataNodes jednostavno pohranjuju datoteke i izvode naredbe kao što su replikacija datoteke, novo pisanje iostali.
Nije iznenađujuće, HDFS se najbolje koristi sa Hadoop-om za računarstvo, jer pruža svesnost informacija o zadatku. Navedeni poslovi se zatim izvode na čvorovima koji pohranjuju podatke. Ovo vam omogućava da koristite lokaciju podataka - optimizuje proračune i smanjuje količinu saobraćaja preko mreže.
Interplanetarni sistem datoteka (IPFS) je uzbudljiv novi peer-to-peer protokol/mreža za distribuirani sistem datoteka. Koristeći Blockchain tehnologiju, može se pohvaliti potpuno decentraliziranom arhitekturom bez jednog vlasnika ili tačke kvara.
IPFS nudi sistem imenovanja (sličan DNS-u) koji se zove IPNS i omogućava korisnicima da lako dohvate informacije. On pohranjuje datoteku kroz historijske verzije, slično kao što to čini Git. Ovo omogućava pristup svim prethodnim stanjima datoteke. Još uvijek prolazi kroz težak razvoj (v0.4 u vrijeme pisanja), ali je već vidio projekte zainteresovane za njegovu izgradnju (FileCoin).
Sistem za razmjenu poruka
Sistemi za razmenu poruka obezbeđuju centralnu lokaciju za skladištenje i distribuciju poruka unutar zajedničkog sistema. Oni vam omogućavaju da odvojite logiku aplikacije od direktne komunikacije sa drugim sistemima.
Poznata skala - LinkedIn-ov Kafka klaster obradio je 1 trilion poruka dnevno sa maksimumom od 4,5 miliona poruka u sekundi.
Jednostavno rečeno, platforma za razmjenu poruka funkcionira ovako:
- Porukaproslijeđena iz aplikacije koja ga potencijalno kreira, 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 kreiranje korisnika za bazu podataka, skladište, uslugu slanja e-pošte, tada je platforma za razmjenu poruka najčistiji način za distribuciju te poruke.
Postoji nekoliko popularnih vrhunskih platformi za razmjenu poruka.
RabbitMQ je posrednik za poruke koji vam omogućava da finije podesite kontrolu njihovih putanja koristeći pravila rutiranja i druge lako konfigurabilne parametre. 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 broker poruka koji je malo manje funkcionalan jer ne prati koje su poruke pročitane i ne dozvoljava složenu logiku rutiranja. Pomaže u postizanju neverovatnih performansi i predstavlja najveće obećanje u ovom prostoru uz aktivan razvoj distribuiranih sistema od strane zajednice otvorenog koda i podršku Confluent tima. Kafka je najpopularniji među kompanijama visoke tehnologije.
Machine Interaction Applications
Ovaj sistem distribucije je grupa računara koji rade zajedno kako bi se krajnjem korisniku pojavili kao poseban računar. Ove mašine su u opštem stanju, radeistovremeno i može raditi samostalno bez utjecaja na vrijeme rada cijelog sistema.
Ako smatrate da je baza podataka distribuirana, samo ako čvorovi međusobno komuniciraju kako bi koordinirali svoje akcije. 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 sistema.
Distribuirane knjige se mogu smatrati nepromjenjivom bazom podataka samo za aplikacije koja se replicira, sinhronizuje i dijeli na svim čvorovima u distributivnoj mreži.
Dobro poznata skala - Ethereum mreža - imala je 4,3 miliona transakcija dnevno 4. januara 2018. Oni koriste obrazac Event Sourcing, koji vam omogućava da vratite stanje baze podataka u bilo koje vrijeme.
Blockchain je trenutna osnovna 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 sa uređenom listom svih transakcija koje su se ikada dogodile na njegovoj mreži. Ponude su grupisane i pohranjene u blokovima. Cijeli blockchain je u suštini povezana lista blokova. Specificirani blokoviskupi su za kreiranje i čvrsto su povezani jedni s drugima putem kriptografije. Jednostavno rečeno, svaki blok sadrži poseban hash (koji počinje sa X brojem nula) sadržaja trenutnog bloka (u obliku Merkleovog stabla) plus heš prethodnog bloka. Ovaj hash zahtijeva puno CPU snage.
Primjeri distribuiranih operativnih sistema
Tipovi sistema se pojavljuju korisniku jer su jednokorisnički sistemi. Oni dijele svoju memoriju, disk, a korisnik nema problema s navigacijom kroz podatke. Korisnik pohranjuje nešto u svoj PC i fajl se pohranjuje na više lokacija, odnosno povezanih računara, tako da se izgubljeni podaci mogu lako vratiti.
Primjeri distribuiranih operativnih sistema:
- Windows Server 2003;
- Windows Server 2008;
- Windows Server 2012;
- UbuntuLinux (Apache server).
Ako se bilo koji računar pokreće više, odnosno ako se razmjenjuju mnogi zahtjevi između pojedinačnih računara, na ovaj način dolazi do balansiranja opterećenja. U ovom slučaju, zahtjevi se propagiraju na susjedni PC. Ako mreža postane više opterećena, tada se može proširiti dodavanjem više sistema mreži. Mrežni fajl i folderi su sinhronizovani i koriste se konvencije o imenovanju tako da ne dođe do grešaka kada se podaci dohvate.
Keširanje se takođe koristi kada se manipuliše podacima. Svi računari koriste isti prostor imena za imenovanje datoteka. Alisistem datoteka je važeći za svaki računar. Ako postoje ažuriranja datoteke, ona se upisuje na jedan računar i promjene se prenose na sve računare, tako da datoteka izgleda isto.
Datoteke su zaključane tokom procesa čitanja/pisanja, tako da nema zastoja između različitih računara. Takođe se javljaju sesije, kao što je čitanje, pisanje fajlova u jednoj sesiji i zatvaranje sesije, a onda drugi korisnik može da uradi isto i tako dalje.
Prednosti korištenja
Operativni sistem dizajniran da olakša svakodnevni život ljudi. Za korisničke pogodnosti i potrebe, operativni sistem može biti jednokorisnički ili distribuiran. U sistemu distribuiranih resursa, mnogi računari su međusobno povezani i dijele svoje resurse.
Prednosti ovog rada:
- Ako je jedan računar u takvom sistemu neispravan ili oštećen, drugi čvor ili računar će se pobrinuti za to.
- Može se lako dodati još resursa.
- Resursi kao što su štampači mogu poslužiti više računara.
Ovo je ukratko o sistemu distribucije, zašto se koristi. Neke važne stvari koje treba zapamtiti: složeni su i odabrani su zbog obima i cijene i s njima je teže raditi. Ovi sistemi su raspoređeni u nekoliko kategorija skladištenja: računarstvo, sistemi datoteka i poruka, registri, aplikacije. A sve je to vrlo površno u vezi s kompleksnim informacionim sistemom.