Izkliedētā sistēma tās vienkāršākajā definīcijā ir datoru grupa, kas darbojas kopā un galalietotājam parādās kā viens. Iekārtām ir kopīgs stāvoklis, tās darbojas vienlaikus un var darboties neatkarīgi, neietekmējot visas sistēmas darbības laiku. Patiesība ir tāda, ka šādu sistēmu pārvaldība ir sarežģīts temats, kas piepildīts ar nepilnībām.
Sistēmas pārskats
Izkliedētā sistēma ļauj koplietot resursus (tostarp programmatūru), kas vienlaikus ir pievienoti tīklam.
Sistēmas izplatīšanas piemēri:
- Tradicionālā kaudze. Šīs datu bāzes tiek glabātas vienas mašīnas failu sistēmā. Ikreiz, kad lietotājs vēlas saņemt informāciju, viņš sazinās tieši ar šo iekārtu. Lai izplatītu šo datu bāzes sistēmu, tā jāpalaiž vairākos datoros vienlaikus.
- Sadalītā arhitektūra.
Sadalītā sistēmaļauj mērogot horizontāli un vertikāli. Piemēram, vienīgais veids, kā pārvaldīt lielāku trafiku, būtu atjaunināt aparatūru, kas darbina datu bāzi. To sauc par vertikālo mērogošanu. Vertikālā mērogošana ir laba līdz noteiktai robežai, pēc kuras pat vislabākais aprīkojums nespēj nodrošināt nepieciešamo trafiku.
Mērogošana horizontāli nozīmē vairāku datoru pievienošanu, nevis viena aparatūras jaunināšanu. Vertikālā mērogošana palielina veiktspēju līdz jaunākajām aparatūras iespējām sadalītajās sistēmās. Ar šīm iespējām tehnoloģiju uzņēmumiem ar mērenu vai lielu darba slodzi nepietiek. Vislabākais horizontālajā mērogošanā ir tas, ka nav lieluma ierobežojumu. Kad veiktspēja pasliktinās, vienkārši tiek pievienota cita iekārta, ko principā var darīt bezgalīgi.
Uzņēmuma līmenī dalītā kontroles sistēma bieži ietver dažādas darbības. Biznesa procesos uzņēmuma datortīkla efektīvākajās vietās. Piemēram, tipiskā izplatīšanā, izmantojot trīs līmeņu dalītās sistēmas modeli, datu apstrāde notiek personālajā datorā lietotāja atrašanās vietā, biznesa apstrāde tiek veikta attālinātā datorā, bet piekļuve datu bāzēm un datu apstrāde tiek veikta pavisam citā datorā. kas nodrošina centralizētu piekļuvi daudziem uzņēmumiem.procesiem. Parasti šāda veida izkliedētā skaitļošanaizmanto klienta un servera mijiedarbības modeli.
Galvenie uzdevumi
Izkliedētās vadības sistēmas galvenie uzdevumi ir:
- Pārredzamība - panākiet vienotu sistēmas attēlu, neslēpjot lietotājiem atrašanās vietu, piekļuvi, migrāciju, vienlaicīgumu, kļūmjpārlēci, pārvietošanu, noturību un informāciju par resursiem.
- Atvērtība - vienkāršo tīkla iestatīšanu un izmaiņas.
- Uzticamība - salīdzinājumā ar vienu kontroles sistēmu tai jābūt uzticamai, konsekventai un ar lielu maskēšanas kļūdu iespējamību.
- Veiktspēja - salīdzinājumā ar citiem modeļiem izplatītie modeļi nodrošina veiktspējas uzlabojumu.
- Mērogojams - šīm sadalītajām vadības sistēmām ir jābūt mērogojamām teritorijas, administrācijas vai lieluma ziņā.
Sadales sistēmu uzdevumi ietver:
- Drošība ir liela problēma izplatītā vidē, it īpaši, ja tiek izmantoti publiskie tīkli.
- Kļūmju tolerance - tas var būt grūts, ja modelis ir veidots no neuzticamiem komponentiem.
- Resursu koordinēšana un sadale - var būt sarežģīti, ja nav atbilstošu protokolu vai nepieciešamo politiku.
Izkliedētā skaitļošanas vide
(DCE) ir plaši izmantots nozares standarts, kas atbalsta šādu izkliedētu skaitļošanu. Internetā trešo pušu pakalpojumu sniedzēji piedāvā dažus vispārīgus pakalpojumus,kas atbilst šim modelim.
Režģa skaitļošana ir skaitļošanas modelis ar sadalītu arhitektūru lielam skaitam datoru, kas saistīti ar sarežģītas problēmas risināšanu. Režģa skaitļošanas modelī serveri vai personālie datori veic neatkarīgus uzdevumus un ir brīvi savienoti viens ar otru, izmantojot internetu vai zema ātruma tīklus.
Lielākais režģa skaitļošanas projekts ir SETI@home, kurā atsevišķi datoru īpašnieki brīvprātīgi veic dažus no saviem vairākuzdevumu apstrādes cikliem, izmantojot savu datoru ārpuszemes intelekta (SETI) projektam. Šī datora problēma izmanto tūkstošiem datoru, lai lejupielādētu un meklētu radioteleskopa datus.
Viens no pirmajiem režģa skaitļošanas lietojumiem bija kriptogrāfiskā koda izjaukšana, ko veica grupa, kas tagad pazīstama kā distributed.net. Šī grupa arī apraksta savu modeli kā izkliedētu skaitļošanu.
Datu bāzes mērogošana
Jaunas informācijas izplatīšana no galvenā uz otru nenotiek uzreiz. Faktiski ir laika logs, kurā varat iegūt novecojušu informāciju. Ja tas tā nebūtu, rakstīšanas veiktspēja ciestu, jo sadalītajām sistēmām būtu sinhroni jāgaida, līdz dati tiks izplatīti. Tie nāk ar dažiem kompromisiem.
Izmantojot vergu datu bāzes pieeju, ir iespējams zināmā mērā palielināt lasīšanas trafiku. Šeit ir daudz iespēju. Bet jums vienkārši jāsadala rakstīšanas trafiks vairākās daļāsserveriem, jo tas nevar to apstrādāt. Viens veids ir izmantot vairāku galveno replikācijas stratēģiju. Tur vergu vietā ir vairāki galvenie mezgli, kas atbalsta lasīšanu un rakstīšanu.
Citu metodi sauc par sadalīšanu. Ar to serveris tiek sadalīts vairākos mazākos serveros, ko sauc par shards. Šīm lauskas ir dažādi ieraksti, tiek izveidoti noteikumi par to, kuri ieraksti kurā shardā nonāk. Ir ļoti svarīgi izveidot tādu noteikumu, lai dati tiktu sadalīti vienmērīgi. Iespējama pieeja tam ir definēt diapazonus atbilstoši kādai ieraksta informācijai.
Šī shard atslēga ir jāizvēlas ļoti rūpīgi, jo slodze ne vienmēr ir vienāda ar patvaļīgu kolonnu pamatiem. Vienīgo skaidiņu, kas saņem vairāk pieprasījumu nekā pārējās, sauc par karsto punktu, un viņi cenšas novērst tā veidošanos. Pēc sadalīšanas pārkalibrēšanas dati kļūst neticami dārgi un var izraisīt ievērojamu dīkstāvi.
Datu bāzes konsensa algoritmi
DB ir grūti ieviest sadalītās drošības sistēmās, jo tām ir nepieciešams, lai katrs mezgls vienotos par pareizu pārtraukumu vai darbību. Šī kvalitāte ir pazīstama kā konsenss, un tā ir būtiska problēma izplatīšanas sistēmas veidošanā. Vienošanās veids, kas nepieciešams, lai atrisinātu "saistību" problēmu, ir vienkāršs, ja iesaistītie procesi un tīkls ir pilnīgi uzticami. Tomēr reālās sistēmas ir pakļautas vairākiemiespējamas tīkla procesu kļūmes, pazaudēti, bojāti vai dublēti ziņojumi.
Tas rada problēmu, un nav iespējams garantēt, ka ierobežotā laika periodā tiks panākta pareiza vienprātība neuzticamā tīklā. Praksē ir algoritmi, kas diezgan ātri panāk vienprātību neuzticamā tīklā. Cassandra faktiski nodrošina vieglus darījumus, izmantojot Paxos algoritmu izplatītai vienprātībai.
Izkliedētā skaitļošana ir pēdējos gados izmantotās lielo datu apstrādes pieplūduma atslēga. Tā ir metode, kā sadalīt milzīgu uzdevumu, piemēram, kumulatīvos 100 miljardus ierakstu, no kuriem neviens dators pats praktiski neko nespēj paveikt, daudzos mazākos uzdevumos, kas var ietilpt vienā mašīnā. Izstrādātājs sadala savu milzīgo uzdevumu daudzos mazākos, izpilda tos daudzās iekārtās paralēli, atbilstoši savāc datus, tad sākotnējā problēma tiks atrisināta.
Šī pieeja ļauj mērogot horizontāli - ja ir liels uzdevums, vienkārši pievienojiet aprēķinam vairāk mezglu. Šos uzdevumus daudzus gadus veic MapReduce programmēšanas modelis, kas saistīts ar ieviešanu paralēlai apstrādei un lielu datu kopu ģenerēšanai, izmantojot klasterī sadalītu algoritmu.
Pašlaik MapReduce ir nedaudz novecojis un rada dažas problēmas. Ir parādījušās citas arhitektūras, kas risina šīs problēmas. Proti, Lambda arhitektūra izplatītaiplūsmas apstrādes sistēmas. Sasniegumi šajā jomā ir radījuši jaunus rīkus: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.
Failu glabāšanas un replikācijas sistēmas
Izplatītās failu sistēmas var uzskatīt par izplatītām datu krātuvēm. Tas ir tāds pats kā jēdziens - liela datu apjoma glabāšana un piekļuve tiem, kas tiek izmantoti dažādu iekārtu klasterī, kas ir viena vienība. Parasti tie iet roku rokā ar izplatīto skaitļošanu.
Piemēram, Yahoo kopš 2011. gada ir pazīstams ar HDFS darbību vairāk nekā 42 000 mezglos, lai uzglabātu 600 petabaitus datu. Wikipedia definē atšķirību tajā, ka izplatītās failu sistēmas ļauj piekļūt failiem, izmantojot tādas pašas saskarnes un semantiku kā vietējie faili, nevis izmantojot pielāgotu API, piemēram, Cassandra Query Language (CQL).
Hadoop izplatītā failu sistēma (HDFS) ir sistēma, ko izmanto skaitļošanai, izmantojot Hadoop infrastruktūru. Plaši izplatīts, to izmanto lielu failu (GB vai TB lieluma) glabāšanai un pavairošanai daudzās iekārtās. Tās arhitektūra galvenokārt sastāv no NameNodes un DataNodes.
NameNodes ir atbildīgs par metadatu glabāšanu par klasteru, piemēram, par to, kurš mezgls satur failu blokus. Viņi darbojas kā tīkla koordinatori, izdomājot, kur vislabāk glabāt un kopēt failus, sekojot līdzi sistēmas stāvoklim. DataNodes vienkārši saglabā failus un izpilda komandas, piemēram, failu replikāciju, jaunu rakstīšanu unciti.
Nav pārsteidzoši, ka HDFS vislabāk var izmantot kopā ar Hadoop skaitļošanai, jo tas nodrošina uzdevumu informācijas izpratni. Pēc tam norādītie darbi tiek palaisti mezglos, kas glabā datus. Tas ļauj izmantot datu atrašanās vietu – optimizē aprēķinus un samazina trafika apjomu tīklā.
Starpplanētu failu sistēma (IPFS) ir aizraujošs jauns vienādranga protokols/tīkls sadalītai failu sistēmai. Izmantojot Blockchain tehnoloģiju, tai ir pilnībā decentralizēta arhitektūra bez viena īpašnieka vai kļūmes punkta.
IPFS piedāvā nosaukumu sistēmu (līdzīgu DNS), ko sauc par IPNS, un ļauj lietotājiem viegli izgūt informāciju. Tas saglabā failu, izmantojot vēsturisko versiju veidošanu, līdzīgi kā to dara Git. Tas ļauj piekļūt visiem iepriekšējiem faila stāvokļiem. Tas joprojām tiek intensīvi izstrādāts (v0.4 rakstīšanas laikā), taču jau ir redzēti projekti, kas ir ieinteresēti tā veidošanā (FileCoin).
Ziņojumapmaiņas sistēma
Ziņojumapmaiņas sistēmas nodrošina centrālu vietu ziņojumu glabāšanai un izplatīšanai kopējā sistēmā. Tie ļauj atdalīt lietojumprogrammu loģiku no tiešas saziņas ar citām sistēmām.
Zināms mērogs - LinkedIn Kafka klasteris apstrādāja 1 triljonu ziņojumu dienā ar maksimumu 4,5 miljonu ziņojumu sekundē.
Vienkārši runājot, ziņojumapmaiņas platforma darbojas šādi:
- Ziņojumstiek nodota no lietojumprogrammas, kas to potenciāli rada, ko sauc par ražotāju, nonāk platformā un tiek nolasīta no vairākām lietojumprogrammām, ko sauc par patērētājiem.
- Ja jums ir nepieciešams saglabāt noteiktu notikumu vairākās vietās, piemēram, izveidot lietotāju datu bāzei, krātuvei, e-pasta sūtīšanas pakalpojumam, ziņojumapmaiņas platforma ir tīrākais veids, kā izplatīt šo ziņojumu.
Ir vairākas populāras augstākās klases ziņojumapmaiņas platformas.
RabbitMQ ir ziņojumu starpnieks, kas ļauj precīzāk noregulēt to trajektoriju vadību, izmantojot maršrutēšanas noteikumus un citus viegli konfigurējamus parametrus. To var saukt par "gudru" brokeri, jo tam ir daudz loģikas un tas rūpīgi uzrauga ziņojumus, kas tam iet cauri. Nodrošina opcijas AP un CP no CAP.
Kafka ir ziņojumu brokeris, kas ir nedaudz mazāk funkcionāls, jo neuzrauga, kuri ziņojumi ir lasīti, un nepieļauj sarežģītu maršrutēšanas loģiku. Tas palīdz sasniegt pārsteidzošu veiktspēju un ir lielākais solījums šajā telpā, aktīvi attīstot izplatītās sistēmas, ko veic atvērtā pirmkoda kopiena un sniedzot Confluen komandas atbalstu. Kafka ir vispopulārākā augsto tehnoloģiju uzņēmumu vidū.
Mašīnu mijiedarbības lietojumprogrammas
Šī izplatīšanas sistēma ir datoru grupa, kas strādā kopā, lai galalietotājam parādītos kā atsevišķs dators. Šīs mašīnas ir vispārējā stāvoklī, darbojasvienlaikus un var darboties neatkarīgi, neietekmējot visas sistēmas darbības laiku.
Ja uzskatāt, ka datu bāze ir izplatīta, tikai tad, ja mezgli mijiedarbojas viens ar otru, lai koordinētu savas darbības. Šajā gadījumā tas ir kaut kas līdzīgs lietojumprogrammai, kas palaiž savu iekšējo kodu vienādranga tīklā un tiek klasificēta kā izplatīta lietojumprogramma.
Šādu lietojumprogrammu piemēri:
- Zināms mērogs - BitTorrent spiets 193 000 mezglu Game of Thrones epizodei.
- Izdalīto blokķēdes sistēmu pamata reģistru tehnoloģija.
Sadalītās virsgrāmatas var uzskatīt par nemainīgu, tikai lietojumprogrammu datubāzi, kas tiek replicēta, sinhronizēta un koplietota visos izplatīšanas tīkla mezglos.
Plaši zināmajā mērogā - Ethereum tīklā - 2018. gada 4. janvārī bija 4,3 miljoni darījumu dienā. Tie izmanto notikumu avotu modeli, kas ļauj jebkurā laikā atjaunot datu bāzes stāvokli.
Blockchain ir pašreizējā pamatā esošā tehnoloģija, ko izmanto sadalītajām virsgrāmatām un faktiski iezīmēja to sākumu. Šis jaunākais un lielākais jauninājums izplatītajā telpā radīja pirmo patiesi izplatīto maksājumu protokolu bitcoin.
Blockchain ir izplatīta virsgrāmata ar sakārtotu sarakstu ar visiem darījumiem, kas jebkad ir notikuši tās tīklā. Piedāvājumi tiek grupēti un glabāti blokos. Visa blokķēde būtībā ir saistīts bloku saraksts. Norādītie blokiir dārgi izveidot un ir cieši saistīti viens ar otru, izmantojot kriptogrāfiju. Vienkārši sakot, katrs bloks satur īpašu jaucējkrānu (kas sākas ar X nuļļu skaitu) no pašreizējā bloka satura (Merkle koka formā) plus iepriekšējā bloka jaucējvārds. Šim jaukumam ir nepieciešams daudz CPU jaudas.
Izdalīto operētājsistēmu piemēri
Sistēmu veidi lietotājam parādās, jo tie ir viena lietotāja sistēmas. Viņi koplieto savu atmiņu, disku, un lietotājam nav problēmu pārvietoties pa datiem. Lietotājs kaut ko saglabā savā datorā, un fails tiek glabāts vairākās vietās, t.i., savienotajos datoros, lai varētu viegli atgūt zaudētos datus.
Izplatīto operētājsistēmu piemēri:
- Windows Server 2003;
- Windows Server 2008;
- Windows Server 2012;
- UbuntuLinux (Apache serveris).
Ja kāds dators tiek palaists augstāk, tas ir, ja starp atsevišķiem datoriem tiek apmainīti daudzi pieprasījumi, notiek slodzes līdzsvarošana. Šajā gadījumā pieprasījumi tiek pārsūtīti uz blakus esošo datoru. Ja tīkls kļūst noslogotāks, to var paplašināt, pievienojot tīklam vairāk sistēmu. Tīkla fails un mapes tiek sinhronizēti, un tiek izmantotas nosaukumu piešķiršanas metodes, lai, izgūstot datus, nerastos kļūdas.
Kešatmiņa tiek izmantota arī manipulējot ar datiem. Visos datoros failu nosaukšanai tiek izmantota viena nosaukumvieta. Betfailu sistēma ir derīga katram datoram. Ja failam ir atjauninājumi, tas tiek ierakstīts vienā datorā un izmaiņas tiek izplatītas visos datoros, tāpēc fails izskatās vienādi.
Lasīšanas/rakstīšanas procesa laikā faili tiek bloķēti, tāpēc starp dažādiem datoriem nav strupceļa. Notiek arī sesijas, piemēram, lasīšana, failu rakstīšana vienā sesijā un sesijas aizvēršana, un tad cits lietotājs var darīt to pašu un tā tālāk.
Lietošanas priekšrocības
Operētājsistēma, kas izstrādāta, lai atvieglotu cilvēku ikdienu. Lietotāju priekšrocībām un vajadzībām operētājsistēma var būt viena lietotāja vai izplatīta. Sadalītā resursu sistēmā daudzi datori ir savienoti viens ar otru un koplieto savus resursus.
Šīs darbības priekšrocības:
- Ja viens dators šādā sistēmā ir bojāts vai bojāts, tad par to parūpēsies cits mezgls vai dators.
- Var viegli pievienot vairāk resursu.
- Resursi, piemēram, printeri, var apkalpot vairākus datorus.
Šī ir īsa informācija par izplatīšanas sistēmu, kāpēc tā tiek izmantota. Dažas svarīgas lietas, kas jāatceras: tās ir sarežģītas un ir izvēlētas pēc mēroga un cenas, un ar tām ir grūtāk strādāt. Šīs sistēmas ir sadalītas vairākās krātuves kategorijās: skaitļošanas, failu un ziņojumapmaiņas sistēmas, reģistri, lietojumprogrammas. Un tas viss ir tikai ļoti virspusēji par sarežģītu informācijas sistēmu.