Distribuerede systemer: definition, funktioner og grundlæggende principper

Indholdsfortegnelse:

Distribuerede systemer: definition, funktioner og grundlæggende principper
Distribuerede systemer: definition, funktioner og grundlæggende principper
Anonim

Et distribueret system i sin enkleste definition er en gruppe af computere, der arbejder sammen, som fremstår som én for slutbrugeren. Maskiner deler en fælles tilstand, kører samtidigt og kan fungere uafhængigt uden at påvirke oppetiden for hele systemet. Sandheden er, at styring af sådanne systemer er et komplekst emne fyldt med faldgruber.

Oversigt over systemet

Distribuerede systemer
Distribuerede systemer

Det distribuerede system tillader deling af ressourcer (inklusive software) forbundet til netværket på samme tid.

Eksempler på systemdistribution:

  1. Traditionel stak. Disse databaser er gemt på filsystemet på én maskine. Når brugeren ønsker at modtage information, kommunikerer han direkte med denne maskine. For at distribuere dette databasesystem skal du køre det på flere pc'er på samme tid.
  2. Distribueret arkitektur.

Distribueret systemgiver dig mulighed for at skalere vandret og lodret. For eksempel ville den eneste måde at håndtere mere trafik på være at opgradere den hardware, der kører databasen. Dette kaldes lodret skalering. Vertikal skalering er god op til en vis grænse, hvorefter selv det bedste udstyr ikke kan klare at levere den nødvendige trafik.

Skalering vandret betyder at tilføje flere computere, ikke at opgradere hardwaren på én. Vertikal skalering øger ydeevnen til de nyeste hardwarefunktioner i distribuerede systemer. Disse muligheder er ikke nok for teknologivirksomheder med moderat til stor arbejdsbyrde. Det bedste ved horisontal skalering er, at der ikke er nogen størrelsesgrænser. Når ydeevnen forringes, tilføjes der ganske enkelt endnu en maskine, hvilket i princippet kan gøres i det uendelige.

På virksomhedsniveau involverer et distribueret kontrolsystem ofte forskellige trin. I forretningsprocesser på de mest effektive steder i virksomhedens computernetværk. For eksempel, i en typisk distribution, der bruger en tre-lags distribueret systemmodel, sker databehandling på en pc på brugerens lokation, forretningsbehandling sker på en fjerncomputer, og databaseadgang og databehandling sker på en helt anden computer der giver centraliseret adgang til mange virksomheder. Typisk denne type distribueret databehandlingbruger klient-server-interaktionsmodellen.

Hovedopgaver

Hovedopgaver
Hovedopgaver

De vigtigste opgaver i et distribueret kontrolsystem omfatter:

  1. Transparency - Opnå et enkelt systembillede uden at skjule placering, adgang, migrering, samtidighed, failover, flytning, persistens og ressourcedetaljer til brugerne.
  2. Åbenhed - forenkler netværksopsætning og ændringer.
  3. Pålidelighed - Sammenlignet med et enkelt kontrolsystem bør det være pålideligt, konsistent og have stor sandsynlighed for maskeringsfejl.
  4. Ydeevne - Sammenlignet med andre modeller giver distribuerede modeller et ydelsesboost.
  5. Skalerbar – Disse distribuerede kontrolsystemer skal være skalerbare med hensyn til territorium, administration eller størrelse.

Distributionssystemernes opgaver omfatter:

  1. Sikkerhed er et stort problem i et distribueret miljø, især når du bruger offentlige netværk.
  2. Fejltolerance - kan være hård, når modellen er bygget med upålidelige komponenter.
  3. Koordinering og fordeling af ressourcer - kan være svært, hvis der ikke er nogen ordentlige protokoller eller påkrævede politikker.

Distribueret computermiljø

Distribueret computermiljø
Distribueret computermiljø

(DCE) er en meget brugt industristandard, der understøtter sådan distribueret databehandling. På internettet tilbyder tredjepartsudbydere nogle generiske tjenester,der passer ind i denne model.

Grid computing er en computermodel med en distribueret arkitektur af et stort antal computere, der er forbundet med løsning af et komplekst problem. I grid computing-modellen udfører servere eller personlige computere uafhængige opgaver og er løst forbundet med hinanden via internettet eller lavhastighedsnetværk.

Det største grid computing-projekt er SETI@home, hvor individuelle computerejere melder sig frivilligt til at udføre nogle af deres multitasking-behandlingscyklusser ved hjælp af deres computer til Search for Extraterrestrial Intelligence (SETI)-projektet. Dette computerproblem bruger tusindvis af computere til at downloade og søge radioteleskopdata.

En af de første anvendelser af grid computing var at bryde kryptografisk kode af en gruppe nu kendt som distributed.net. Denne gruppe beskriver også deres model som distribueret databehandling.

Databaseskalering

Database skalering
Database skalering

Spredning af ny information fra master til slave sker ikke med det samme. Faktisk er der et tidsvindue, hvor du kan få forældede oplysninger. Hvis dette ikke var tilfældet, ville skriveydeevnen lide, da distribuerede systemer ville skulle vente synkront på, at data forplantede sig. De kommer med et par kompromiser.

Ved at bruge en slavedatabasetilgang er det muligt at udskalere læst trafik til en vis grad. Der er mange muligheder her. Men du skal bare dele skrivetrafikken op i flereservere, fordi den ikke kan håndtere det. En måde er at bruge en multi-master replikeringsstrategi. Der er der i stedet for slaver adskillige hovedknuder, der understøtter læsning og skrivning.

En anden metode kaldes sharding. Med den er serveren opdelt i flere mindre servere, kaldet shards. Disse shards har forskellige poster, der oprettes regler om hvilke poster der går ind i hvilke shard. Det er meget vigtigt at lave en sådan regel, at dataene fordeles jævnt. En mulig tilgang til dette er at definere områder i henhold til nogle registreringsoplysninger.

Denne shard-nøgle bør vælges meget omhyggeligt, da belastningen ikke altid er lig med basen af vilkårlige kolonner. Det eneste skår, der får flere anmodninger end de andre, kaldes et hotspot, og de forsøger at forhindre, at det dannes. Når de først er opdelt, bliver genkalibreringsdata utroligt dyre og kan resultere i betydelig nedetid.

Databasekonsensusalgoritmer

Databasekonsensusalgoritmer
Databasekonsensusalgoritmer

DB'er er vanskelige at implementere i distribuerede sikkerhedssystemer, fordi de kræver, at hver node forhandler den korrekte afbrydelse eller begå handling. Denne kvalitet er kendt som konsensus og er et grundlæggende problem i opbygningen af et distributionssystem. Det er enkelt at opnå den type aftale, der er nødvendig for "commit"-problemet, hvis de involverede processer og netværket er fuldstændig pålidelige. Reelle systemer er dog underlagt en rækkemulige fejl i netværksprocesser, mistede, beskadigede eller duplikerede meddelelser.

Dette udgør et problem, og det er ikke muligt at garantere, at den korrekte konsensus opnås inden for en begrænset periode på et upålideligt netværk. I praksis er der algoritmer, der ret hurtigt når konsensus i et upålideligt netværk. Cassandra leverer faktisk lette transaktioner gennem brugen af Paxos-algoritmen til distribueret konsensus.

Distribueret computing er nøglen til den tilstrømning af big data-behandling, der er blevet brugt i de senere år. Det er en metode til at nedbryde en enorm opgave, såsom en kumulativ 100 milliarder poster, hvoraf ingen enkelt computer er i stand til at gøre praktisk t alt hvad som helst på egen hånd, i mange mindre opgaver, der kan passe ind i en enkelt maskine. Udvikleren deler sin enorme opgave op i mange mindre, udfører dem på mange maskiner parallelt, indsamler dataene korrekt, så vil det oprindelige problem være løst.

Denne tilgang giver dig mulighed for at skalere vandret - når der er en stor opgave, skal du blot tilføje flere noder til beregningen. Disse opgaver er blevet udført i mange år af MapReduce-programmeringsmodellen forbundet med implementeringen af parallel behandling og generering af store datasæt ved hjælp af en distribueret algoritme på en klynge.

I øjeblikket er MapReduce noget forældet og giver nogle problemer. Der er dukket andre arkitekturer op, der adresserer disse problemer. Nemlig Lambda Architecture for distribueretflowbehandlingssystemer. Fremskridt på dette område har bragt nye værktøjer: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.

Fillagrings- og replikeringssystemer

Fillagring og replikeringssystemer
Fillagring og replikeringssystemer

Distribuerede filsystemer kan opfattes som distribuerede datalagre. Dette er det samme som konceptet - lagring og adgang til en stor mængde data på tværs af en klynge af maskiner, der er en enkelt enhed. De går norm alt hånd i hånd med Distributed Computing.

Yahoo har for eksempel været kendt for at køre HDFS på over 42.000 noder til at gemme 600 petabyte data siden 2011. Wikipedia definerer forskellen ved, at distribuerede filsystemer tillader filadgang ved hjælp af de samme grænseflader og semantik som lokale filer, snarere end gennem en brugerdefineret API såsom Cassandra Query Language (CQL).

Hadoop Distributed File System (HDFS) er et system, der bruges til at beregne over Hadoop-infrastrukturen. Udbredt, det bruges til at gemme og replikere store filer (GB eller TB størrelse) på mange maskiner. Dens arkitektur består hovedsageligt af NameNodes og DataNodes.

NameNodes er ansvarlig for at gemme metadata om klyngen, såsom hvilken node der indeholder filblokke. De fungerer som netværkskoordinatorer, der finder ud af, hvor de bedst kan gemme og kopiere filer, og holder styr på systemets tilstand. DataNodes gemmer simpelthen filer og udfører kommandoer såsom filreplikering, ny skrivning ogandre.

Det er ikke overraskende, at HDFS bedst bruges sammen med Hadoop til computere, da det giver bevidsthed om opgaveinformation. De angivne job køres derefter på de noder, der gemmer dataene. Dette giver dig mulighed for at bruge placeringen af data - optimerer beregninger og reducerer mængden af trafik over netværket.

The Interplanetary File System (IPFS) er en spændende ny peer-to-peer protokol/netværk til distribuerede filsystemer. Ved at bruge Blockchain-teknologi kan den prale af en fuldt decentraliseret arkitektur uden en enkelt ejer eller fejl.

IPFS tilbyder et navngivningssystem (ligner DNS) kaldet IPNS og giver brugerne mulighed for nemt at hente information. Det gemmer filen gennem historisk versionering, ligesom Git gør. Dette giver adgang til alle tidligere tilstande af filen. Det gennemgår stadig en hård udvikling (v0.4 i skrivende stund), men har allerede set projekter, der er interesseret i at bygge det (FileCoin).

Beskedsystem

beskedsystem
beskedsystem

Beskedsystemer giver en central placering til lagring og distribution af beskeder i et fælles system. De giver dig mulighed for at adskille applikationslogik fra direkte kommunikation med andre systemer.

Kendt skala - LinkedIns Kafka-klynge behandlede 1 billion meddelelser om dagen med toppe på 4,5 millioner meddelelser i sekundet.

I enkle vendinger fungerer meddelelsesplatformen sådan her:

  1. Beskedvideregivet fra den applikation, der potentielt skaber den, kaldet en producent, går ind i platformen og læses fra flere applikationer, kaldet forbrugere.
  2. Hvis du har brug for at gemme en bestemt begivenhed flere steder, såsom oprettelse af en bruger til en database, lagring, e-mail-afsendelsestjeneste, så er meddelelsesplatformen den reneste måde at distribuere den besked på.

Der er flere populære meddelelsesplatforme i topklasse.

RabbitMQ er en meddelelsesmægler, der giver dig mulighed for at finjustere kontrollen af deres baner ved hjælp af routingregler og andre let konfigurerbare parametre. Det kan kaldes en "smart" mægler, fordi det har en masse logik og nøje overvåger de beskeder, der passerer igennem det. Giver muligheder for AP'er og CP'er fra CAP.

Kafka er en meddelelsesmægler, der er lidt mindre funktionel, da den ikke holder styr på, hvilke meddelelser der er blevet læst og ikke tillader kompleks routinglogik. Det hjælper med at opnå en fantastisk ydeevne og repræsenterer det største løfte i dette område med den aktive udvikling af distribuerede systemer af open source-fællesskabet og støtte fra Confluent-teamet. Kafka er mest populær blandt højteknologiske virksomheder.

Machine Interaction Applications

Dette distributionssystem er en gruppe af computere, der arbejder sammen for at fremstå som en separat computer for slutbrugeren. Disse maskiner er i generel stand og fungerersamtidigt og kan arbejde selvstændigt uden at påvirke hele systemets oppetid.

Hvis du betragter databasen som distribueret, kun hvis noderne interagerer med hinanden for at koordinere deres handlinger. Det er i dette tilfælde noget som en applikation, der kører sin interne kode på et peer-to-peer-netværk og er klassificeret som en distribueret applikation.

Kendt skala - BitTorrent
Kendt skala - BitTorrent

Eksempler på sådanne applikationer:

  1. Kendt skala - BitTorrent sværmer 193.000 noder til Game of Thrones-afsnittet.
  2. Grundlæggende registerteknologi for distribuerede Blockchain-systemer.

Distribuerede hovedbøger kan opfattes som en uforanderlig, applikationsbaseret database, der replikeres, synkroniseres og deles på tværs af alle noder i distributionsnetværket.

Den velkendte skala - Ethereum-netværket - havde 4,3 millioner transaktioner om dagen den 4. januar 2018. De bruger Event Sourcing-mønsteret, som giver dig mulighed for at gendanne databasens tilstand til enhver tid.

Blockchain er den nuværende underliggende teknologi, der bruges til distribuerede hovedbøger og markerede faktisk deres begyndelse. Denne nyeste og største innovation i det distribuerede rum skabte den første ægte distribuerede betalingsprotokol, bitcoin.

Blockchain er en distribueret hovedbog med en ordnet liste over alle transaktioner, der nogensinde har fundet sted på dets netværk. Tilbud er grupperet og gemt i blokke. Hele blockchain er i det væsentlige en sammenkædet liste over blokke. Angivne blokkeer dyre at skabe og er tæt koblet til hinanden gennem kryptografi. Enkelt sagt indeholder hver blok en speciel hash (som starter med X antal nuller) af indholdet af den aktuelle blok (i form af et Merkle-træ) plus hash fra den forrige blok. Denne hash kræver meget CPU-kraft.

Eksempler på distribuerede operativsystemer

Eksempler på distribuerede operativsystemer
Eksempler på distribuerede operativsystemer

Systemtyper vises for brugeren, fordi de er enkeltbrugersystemer. De deler deres hukommelse, disk, og brugeren har ingen problemer med at navigere gennem dataene. Brugeren gemmer noget på sin pc, og filen gemmes flere steder, dvs. tilsluttede computere, så tabte data nemt kan gendannes.

Eksempler på distribuerede operativsystemer:

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

Hvis en computer starter højere, det vil sige, hvis der udveksles mange anmodninger mellem individuelle pc'er, er det sådan belastningsbalancering opstår. I dette tilfælde udbredes anmodningerne til den tilstødende pc. Hvis netværket bliver mere belastet, så kan det udvides ved at tilføje flere systemer til netværket. Netværksfilen og mapperne synkroniseres, og navngivningskonventioner bruges, så der ikke opstår fejl, når data hentes.

Caching bruges også ved manipulation af data. Alle computere bruger det samme navneområde til at navngive filer. Menfilsystemet er gyldigt for hver computer. Hvis der er opdateringer til filen, skrives den til én computer, og ændringerne udbredes til alle computere, så filen ser ens ud.

Filer er låst under læse-/skriveprocessen, så der er ingen dødvande mellem forskellige computere. Sessioner forekommer også, såsom at læse, skrive filer i én session og lukke sessionen, og så kan en anden bruger gøre det samme og så videre.

Fordele ved at bruge

Et operativsystem designet til at gøre folks hverdag lettere. For brugernes fordele og behov kan operativsystemet være enkeltbruger eller distribueret. I et distribueret ressourcesystem er mange computere forbundet med hinanden og deler deres ressourcer.

Fordele ved at gøre dette:

  1. Hvis en pc i et sådant system er defekt eller beskadiget, så vil en anden node eller computer tage sig af det.
  2. Flere ressourcer kan nemt tilføjes.
  3. Ressourcer såsom printere kan betjene flere computere.

Dette er en kort beskrivelse af distributionssystemet, hvorfor det bruges. Nogle vigtige ting at huske: de er komplekse og er udvalgt efter skala og pris og er sværere at arbejde med. Disse systemer er fordelt i flere lagerkategorier: computer-, fil- og meddelelsessystemer, registre, applikationer. Og alt dette er kun meget overfladisk om et komplekst informationssystem.

Anbefalede: