Paskirstytos sistemos: apibrėžimas, funkcijos ir pagrindiniai principai

Turinys:

Paskirstytos sistemos: apibrėžimas, funkcijos ir pagrindiniai principai
Paskirstytos sistemos: apibrėžimas, funkcijos ir pagrindiniai principai
Anonim

Paprasta paskirstyta sistema yra kartu veikiančių kompiuterių, kurie galutiniam vartotojui atrodo kaip vienas, grupė. Mašinos turi bendrą būseną, veikia vienu metu ir gali veikti nepriklausomai, nepaveikdamos visos sistemos veikimo laiko. Tiesa ta, kad tokių sistemų valdymas yra sudėtinga tema, kupina spąstų.

Sistemos apžvalga

Paskirstytos sistemos
Paskirstytos sistemos

Paskirstyta sistema leidžia bendrinti išteklius (įskaitant programinę įrangą), prijungtus prie tinklo tuo pačiu metu.

Sistemos paskirstymo pavyzdžiai:

  1. Tradicinė krūva. Šios duomenų bazės yra saugomos vieno įrenginio failų sistemoje. Kai vartotojas nori gauti informaciją, jis tiesiogiai bendrauja su šiuo įrenginiu. Norėdami platinti šią duomenų bazių sistemą, turite ją paleisti keliuose asmeniniuose kompiuteriuose vienu metu.
  2. Paskirstyta architektūra.

Paskirstyta sistemaleidžia keisti mastelį horizontaliai ir vertikaliai. Pavyzdžiui, vienintelis būdas valdyti didesnį srautą būtų atnaujinti aparatinę įrangą, kuri valdo duomenų bazę. Tai vadinama vertikaliu mastelio keitimu. Vertikalus mastelio keitimas yra geras iki tam tikros ribos, po kurios net geriausia įranga negali užtikrinti reikiamo srauto.

Mastelio nustatymas horizontaliai reiškia, kad reikia pridėti daugiau kompiuterių, o ne atnaujinti vieno aparatinę įrangą. Vertikalus mastelio keitimas padidina našumą iki naujausių paskirstytų sistemų aparatinės įrangos galimybių. Šių galimybių neužtenka technologijų įmonėms, turinčioms vidutinį ar didelį darbo krūvį. Geriausias horizontalaus mastelio keitimo dalykas yra tai, kad nėra dydžio apribojimų. Kai našumas pablogėja, tiesiog pridedama kita mašina, kurią iš esmės galima daryti neribotą laiką.

Įmonių lygmeniu paskirstytoji valdymo sistema dažnai apima įvairius veiksmus. Verslo procesuose efektyviausiose įmonės kompiuterių tinklo vietose. Pavyzdžiui, tipiškame paskirstyme, naudojant trijų pakopų paskirstytos sistemos modelį, duomenų apdorojimas atliekamas asmeniniu kompiuteriu vartotojo vietoje, verslo apdorojimas – nuotoliniu kompiuteriu, o prieiga prie duomenų bazės ir duomenų apdorojimas – visiškai kitame kompiuteryje. kuri suteikia centralizuotą prieigą daugeliui įmonių.procesų. Paprastai tokio tipo paskirstytasis kompiuterisnaudoja kliento ir serverio sąveikos modelį.

Pagrindinės užduotys

Pagrindinės užduotys
Pagrindinės užduotys

Pagrindinės paskirstytos valdymo sistemos užduotys:

  1. Skaidrumas – pasiekite vieną sistemos vaizdą neslėpdami vietos, prieigos, perkėlimo, lygiagretumo, perkėlimo, perkėlimo, patvarumo ir išsamios informacijos apie išteklius vartotojams.
  2. Atvirumas – supaprastina tinklo sąranką ir pakeitimus.
  3. Patikimumas – palyginti su viena valdymo sistema, ji turėtų būti patikima, nuosekli ir turėti didelę maskavimo klaidų tikimybę.
  4. Našumas – palyginti su kitais modeliais, platinami modeliai padidina našumą.
  5. Mastelis – šios paskirstytos valdymo sistemos turi būti keičiamos teritorijos, administravimo ar dydžio požiūriu.

Paskirstymo sistemų užduotys:

  1. Saugumas yra didelė problema paskirstytoje aplinkoje, ypač naudojant viešuosius tinklus.
  2. Gedimų tolerancija – gali būti sudėtinga, kai modelis pagamintas iš nepatikimų komponentų.
  3. Išteklių koordinavimas ir paskirstymas – gali būti sunku, jei nėra tinkamų protokolų ar reikalingos politikos.

Paskirstyta skaičiavimo aplinka

Paskirstyta skaičiavimo aplinka
Paskirstyta skaičiavimo aplinka

(DCE) yra plačiai naudojamas pramonės standartas, palaikantis tokį paskirstytą skaičiavimą. Internete trečiųjų šalių teikėjai siūlo kai kurias bendrąsias paslaugas,kurie tinka šiam modeliui.

Grid kompiuterija yra skaičiavimo modelis su paskirstyta daugelio kompiuterių architektūra, susijusi su sudėtingos problemos sprendimu. Tinklelio skaičiavimo modelyje serveriai arba asmeniniai kompiuteriai atlieka nepriklausomas užduotis ir yra laisvai tarpusavyje sujungti internetu arba mažos spartos tinklais.

Didžiausias tinklelio skaičiavimo projektas yra SETI@home, kurio metu pavieniai kompiuterių savininkai savanoriškai atlieka kai kuriuos daugiafunkcinio apdorojimo ciklus, naudodami savo kompiuterį, skirtą „Nežemiško intelekto paieškos“(SETI) projektui. Dėl šios kompiuterio problemos naudojami tūkstančiai kompiuterių radijo teleskopo duomenims atsisiųsti ir ieškoti.

Vienas iš pirmųjų tinklelio skaičiavimo būdų buvo grupės, dabar žinomos kaip distributed.net, kriptografinio kodo sulaužymas. Ši grupė taip pat apibūdina savo modelį kaip paskirstytą skaičiavimą.

Duomenų bazės mastelio keitimas

Duomenų bazės mastelio keitimas
Duomenų bazės mastelio keitimas

Naujos informacijos skleidimas iš šeimininko į pavaldinį nevyksta iš karto. Tiesą sakant, yra laiko langas, per kurį galite gauti pasenusios informacijos. Jei taip nebūtų, nukentėtų rašymo našumas, nes paskirstytos sistemos turėtų sinchroniškai laukti, kol duomenys pasklistų. Jie pateikiami su keliais kompromisais.

Naudojant vergų duomenų bazės metodą, galima tam tikru mastu padidinti skaitymo srautą. Čia yra daug variantų. Bet jums tiesiog reikia padalyti rašymo srautą į keletąserverius, nes negali to apdoroti. Vienas iš būdų yra naudoti kelių pagrindų replikacijos strategiją. Ten vietoj vergų yra keli pagrindiniai mazgai, palaikantys skaitymą ir rašymą.

Kitas metodas vadinamas skeldimu. Su juo serveris yra padalintas į keletą mažesnių serverių, vadinamų skeveldrų. Šios skeveldros turi skirtingus įrašus, sukuriamos taisyklės, kurie įrašai į kurią skeveldrą patenka. Labai svarbu sukurti tokią taisyklę, kad duomenys būtų paskirstyti tolygiai. Galimas būdas tai padaryti – apibrėžti diapazonus pagal tam tikrą įrašo informaciją.

Šis skeveldros raktas turėtų būti pasirinktas labai atsargiai, nes apkrova ne visada lygi savavališkų stulpelių pagrindams. Vienintelė skeveldra, kuri sulaukia daugiau užklausų nei kitos, vadinama viešosios interneto prieigos tašku, ir jie stengiasi neleisti jam susidaryti. Padalinus, pakartotinio kalibravimo duomenys tampa neįtikėtinai brangūs ir gali sukelti daug prastovų.

Duomenų bazės konsensuso algoritmai

Duomenų bazės konsensuso algoritmai
Duomenų bazės konsensuso algoritmai

DB sunku įdiegti paskirstytose saugos sistemose, nes joms reikia, kad kiekvienas mazgas derėtų dėl tinkamo pertraukimo arba veiksmo. Ši kokybė žinoma kaip sutarimas ir yra pagrindinė problema kuriant paskirstymo sistemą. Pasiekti susitarimo tipą, reikalingą „įsipareigojimo“problemai išspręsti, paprasta, jei susiję procesai ir tinklas yra visiškai patikimi. Tačiau tikrosioms sistemoms taikomi keli dalykaigalimi tinklo procesų gedimai, prarasti, sugadinti arba pasikartojantys pranešimai.

Tai kelia problemų ir neįmanoma garantuoti, kad nepatikimame tinkle per ribotą laikotarpį bus pasiektas teisingas sutarimas. Praktiškai yra algoritmų, kurie gana greitai pasiekia konsensusą nepatikimame tinkle. „Cassandra“iš tikrųjų teikia lengvas operacijas, naudodama „Paxos“algoritmą paskirstytam sutarimui pasiekti.

Paskirstytasis kompiuteris yra raktas į pastaraisiais metais naudojamo didelio duomenų apdorojimo antplūdį. Tai būdas suskaidyti didžiulę užduotį, pvz., 100 milijardų įrašų, iš kurių nė vienas kompiuteris praktiškai nieko negali padaryti pats, į daugybę mažesnių užduočių, kurios gali tilpti į vieną įrenginį. Kūrėjas suskaido savo didžiulę užduotį į daugybę mažesnių, jas vykdo daugelyje mašinų lygiagrečiai, tinkamai surenka duomenis, tada pradinė problema bus išspręsta.

Šis metodas leidžia keisti mastelį horizontaliai – kai yra didelė užduotis, tiesiog pridėkite daugiau mazgų prie skaičiavimo. Šios užduotys daugelį metų buvo atliekamos naudojant MapReduce programavimo modelį, susijusį su lygiagretaus apdorojimo ir didelių duomenų rinkinių generavimu naudojant paskirstytą algoritmą klasteryje.

Šiuo metu „MapReduce“yra šiek tiek pasenusi ir kelia tam tikrų problemų. Atsirado kitos architektūros, kurios sprendžia šias problemas. Būtent „Lambda Architecture“platinamasrauto apdorojimo sistemos. Pažanga šioje srityje atnešė naujų įrankių: „Kafka Streams“, „Apache Spark“, „Apache Storm“, „Apache Samza“.

Failų saugojimo ir dauginimo sistemos

Failų saugojimo ir dauginimo sistemos
Failų saugojimo ir dauginimo sistemos

Paskirstytos failų sistemos gali būti laikomos paskirstytomis duomenų saugyklomis. Tai yra ta pati koncepcija – didelio duomenų kiekio saugojimas ir prieiga prie kompiuterių, kurie yra vienas subjektas, grupėje. Paprastai jie eina koja kojon su paskirstytu skaičiavimu.

Pavyzdžiui, „Yahoo“nuo 2011 m. garsėja tuo, kad veikia HDFS daugiau nei 42 000 mazgų ir saugo 600 petabaitų duomenų. Vikipedija apibrėžia skirtumą tuo, kad paskirstytos failų sistemos leidžia pasiekti failus naudojant tas pačias sąsajas ir semantiką kaip vietiniai failai, o ne per tinkintą API, pvz., Cassandra užklausų kalbą (CQL).

Hadoop paskirstyta failų sistema (HDFS) yra sistema, naudojama skaičiavimams per Hadoop infrastruktūrą. Plačiai paplitęs, jis naudojamas dideliems failams (GB arba TB dydžio) saugoti ir dauginti daugelyje įrenginių. Jo architektūrą daugiausia sudaro NameNodes ir DataNodes.

NameNodes yra atsakingas už metaduomenų apie klasterį saugojimą, pvz., kuriame mazge yra failų blokai. Jie veikia kaip tinklo koordinatoriai, išsiaiškina, kur geriausia saugoti ir kopijuoti failus, stebi sistemos būklę. „DataNodes“tiesiog saugo failus ir atlieka komandas, tokias kaip failo replikacija, naujas rašymas irkiti.

Nenuostabu, kad HDFS geriausia naudoti su Hadoop kompiuteriams, nes ji suteikia užduočių informacijos suvokimą. Tada nurodytos užduotys paleidžiamos mazguose, kuriuose saugomi duomenys. Tai leidžia naudoti duomenų vietą – optimizuoja skaičiavimus ir sumažina srautą tinkle.

Tarpplanetinė failų sistema (IPFS) yra įdomus naujas lygiavertis protokolas / tinklas paskirstytai failų sistemai. Naudojant Blockchain technologiją, ji gali pasigirti visiškai decentralizuota architektūra be vieno savininko ar gedimo vietos.

IPFS siūlo pavadinimų sistemą (panašią į DNS), vadinamą IPNS, ir leidžia vartotojams lengvai gauti informaciją. Failas saugomas naudojant istorinę versiją, panašiai kaip tai daro „Git“. Tai leidžia pasiekti visas ankstesnes failo būsenas. Jis vis dar intensyviai vystomas (v0.4 rašymo metu), bet jau matė projektus, norinčius jį sukurti (FileCoin).

Pranešimų sistema

pranešimų sistema
pranešimų sistema

Pranešimų sistemos suteikia centrinę vietą žinutėms saugoti ir platinti bendroje sistemoje. Jie leidžia atskirti programų logiką nuo tiesioginio ryšio su kitomis sistemomis.

Žinomas mastas – „LinkedIn“Kafka klasteris apdorojo 1 trilijoną pranešimų per dieną, o didžiausias skaičius – 4,5 mln. pranešimų per sekundę.

Paprasčiau tariant, pranešimų platforma veikia taip:

  1. Žinutėperduodama iš programos, kuri potencialiai ją sukuria, vadinamą gamintoju, patenka į platformą ir nuskaitoma iš kelių programų, vadinamų vartotojais.
  2. Jei reikia saugoti tam tikrą įvykį keliose vietose, pvz., sukurti duomenų bazės vartotoją, saugyklą, el. pašto siuntimo paslaugą, tada pranešimų platforma yra švariausias būdas platinti tą pranešimą.

Yra keletas populiarių aukščiausios klasės pranešimų platformų.

RabbitMQ yra pranešimų tarpininkas, leidžiantis tiksliau sureguliuoti jų trajektorijų valdymą naudojant maršruto parinkimo taisykles ir kitus lengvai konfigūruojamus parametrus. Jį galima pavadinti „protingu“brokeriu, nes jis turi daug logikos ir atidžiai stebi per jį perduodamus pranešimus. Suteikia AP ir CP parinkčių iš CAP.

Kafka yra pranešimų tarpininkas, kuris yra šiek tiek mažiau funkcionalus, nes neseka, kurie pranešimai buvo perskaityti, ir neleidžia sudėtingos maršruto parinkimo logikos. Tai padeda pasiekti nuostabų našumą ir yra didžiausias pažadas šioje erdvėje, nes atvirojo kodo bendruomenė aktyviai kuria paskirstytas sistemas ir palaiko „Confluent“komandą. „Kafka“yra populiariausias tarp aukštųjų technologijų įmonių.

Mašinų sąveikos programos

Ši paskirstymo sistema yra kompiuterių grupė, veikianti kartu, kad galutiniam vartotojui būtų rodoma kaip atskiras kompiuteris. Šios mašinos yra bendros būklės, veikiavienu metu ir gali dirbti savarankiškai, nedarant įtakos visos sistemos veikimo laikui.

Jei manote, kad duomenų bazė yra paskirstyta, tik tada, kai mazgai sąveikauja tarpusavyje, kad koordinuotų savo veiksmus. Šiuo atveju tai yra kažkas panašaus į programą, kuri savo vidinį kodą vykdo lygiarangiame tinkle ir yra klasifikuojama kaip paskirstyta programa.

Žinomas mastelis – BitTorrent
Žinomas mastelis – BitTorrent

Tokių programų pavyzdžiai:

  1. Žinomas mastas – „BitTorrent“spiečius turi 193 000 „Game of Thrones“serijos mazgų.
  2. Pagrindinė paskirstytų Blockchain sistemų registrų technologija.

Paskirstytos knygos gali būti laikomos nekintama, tik taikomųjų programų duomenų baze, kuri yra atkartojama, sinchronizuojama ir bendrinama visuose paskirstymo tinklo mazguose.

Gerai žinoma skalė – Ethereum tinklas – 2018 m. sausio 4 d. turėjo 4,3 mln. operacijų per dieną. Jie naudoja įvykių š altinio šabloną, kuris leidžia bet kada atkurti duomenų bazės būseną.

Blockchain yra dabartinė pagrindinė technologija, naudojama paskirstytoms knygoms ir iš tikrųjų pažymėjo jų pradžią. Ši naujausia ir didžiausia naujovė paskirstytoje erdvėje sukūrė pirmąjį tikrai paskirstytą mokėjimo protokolą bitcoin.

Blockchain yra paskirstyta knyga su tvarkingu visų operacijų, kada nors įvykusių jos tinkle, sąrašu. Pasiūlymai grupuojami ir saugomi blokuose. Visa blokų grandinė iš esmės yra susietas blokų sąrašas. Nurodyti blokaiyra brangūs sukurti ir yra glaudžiai tarpusavyje susiję kriptografijos būdu. Paprasčiau tariant, kiekviename bloke yra speciali maiša (pradedanti X nulių skaičiumi) iš dabartinio bloko turinio (Merkle medžio pavidalu) ir ankstesnio bloko maiša. Ši maiša reikalauja daug procesoriaus galios.

Paskirstytų operacinių sistemų pavyzdžiai

Paskirstytų operacinių sistemų pavyzdžiai
Paskirstytų operacinių sistemų pavyzdžiai

Sistemos tipai matomi vartotojui, nes tai yra vieno vartotojo sistemos. Jie dalijasi savo atmintimi, disku, o vartotojas neturi problemų naršydamas po duomenis. Vartotojas ką nors išsaugo savo kompiuteryje, o failas saugomas keliose vietose, t. y. prijungtuose kompiuteriuose, kad būtų galima lengvai atkurti prarastus duomenis.

Paskirstytų operacinių sistemų pavyzdžiai:

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

Jei kuris nors kompiuteris paleidžiamas aukštesnėje padėtyje, tai yra, jei tarp atskirų kompiuterių keičiamasi daugybe užklausų, apkrovos balansavimas vyksta taip. Tokiu atveju užklausos perduodamos į gretimą kompiuterį. Jei tinklas tampa labiau apkrautas, jį galima išplėsti į tinklą įtraukiant daugiau sistemų. Tinklo failas ir aplankai sinchronizuojami, o pavadinimų suteikimo taisyklės naudojamos, kad nuskaitant duomenis neatsirastų klaidų.

Saugojimas talpykloje taip pat naudojamas manipuliuojant duomenimis. Visi kompiuteriai naudoja tą pačią vardų erdvę failams pavadinti. Betfailų sistema galioja kiekvienam kompiuteriui. Jei faile yra atnaujinimų, jis įrašomas į vieną kompiuterį, o pakeitimai perduodami į visus kompiuterius, todėl failas atrodo taip pat.

Failai užrakinami skaitymo / rašymo proceso metu, todėl nėra aklavietės tarp skirtingų kompiuterių. Taip pat vyksta seansai, pvz., skaitymas, failų rašymas per vieną seansą ir seanso uždarymas, tada kitas naudotojas gali padaryti tą patį ir pan.

Naudojimo pranašumai

Operacinė sistema, sukurta palengvinti kasdienį žmonių gyvenimą. Atsižvelgiant į vartotojo naudą ir poreikius, operacinė sistema gali būti vieno vartotojo arba paskirstyta. Paskirstytoje išteklių sistemoje daugelis kompiuterių yra sujungti vienas su kitu ir dalijasi savo ištekliais.

Taip privalumai:

  1. Jei vienas tokios sistemos kompiuteris yra sugedęs arba pažeistas, tuo pasirūpins kitas mazgas arba kompiuteris.
  2. Galima lengvai pridėti daugiau išteklių.
  3. Ištekliai, pvz., spausdintuvai, gali aptarnauti kelis kompiuterius.

Tai trumpai apie paskirstymo sistemą, kodėl ji naudojama. Keletas svarbių dalykų, kuriuos reikia atsiminti: jie yra sudėtingi, parenkami pagal mastą ir kainą, todėl su jais dirbti sunkiau. Šios sistemos skirstomos į kelias saugojimo kategorijas: skaičiavimo, failų ir pranešimų sistemos, registrai, programos. Ir visa tai tik labai paviršutiniška apie sudėtingą informacinę sistemą.

Rekomenduojamas: