Gedistribueerde systemen: definitie, kenmerken en basisprincipes

Inhoudsopgave:

Gedistribueerde systemen: definitie, kenmerken en basisprincipes
Gedistribueerde systemen: definitie, kenmerken en basisprincipes
Anonim

Een gedistribueerd systeem in zijn eenvoudigste definitie is een groep computers die samenwerken en voor de eindgebruiker als één computer verschijnen. Machines delen een gemeenschappelijke status, draaien gelijktijdig en kunnen onafhankelijk werken zonder de uptime van het hele systeem te beïnvloeden. De waarheid is dat het beheren van dergelijke systemen een complex onderwerp is vol valkuilen.

Overzicht van het systeem

Gedistribueerde systemen
Gedistribueerde systemen

Het gedistribueerde systeem maakt het mogelijk om bronnen (inclusief software) die tegelijkertijd op het netwerk zijn aangesloten te delen.

Voorbeelden van systeemdistributie:

  1. Traditionele stapel. Deze databases worden opgeslagen op het bestandssysteem van één machine. Wanneer de gebruiker informatie wil ontvangen, communiceert hij rechtstreeks met deze machine. Om dit databasesysteem te distribueren, moet u het op meerdere pc's tegelijk uitvoeren.
  2. Gedistribueerde architectuur.

Gedistribueerd systeemstelt u in staat om horizontaal en verticaal te schalen. De enige manier om meer verkeer af te handelen, is bijvoorbeeld de hardware waarop de database draait te upgraden. Dit wordt verticale schaling genoemd. Verticaal schalen is goed tot een bepaalde limiet, waarna zelfs de beste apparatuur het benodigde verkeer niet aankan.

Horizontaal schalen betekent meer computers toevoegen, niet de hardware op één upgraden. Verticaal schalen verhoogt de prestaties naar de nieuwste hardwaremogelijkheden in gedistribueerde systemen. Deze kansen zijn niet genoeg voor technologiebedrijven met een matige tot zware werkdruk. Het beste van horizontaal schalen is dat er geen limieten zijn voor de grootte. Wanneer de prestaties afnemen, wordt er gewoon een andere machine toegevoegd, wat in principe voor onbepaalde tijd kan worden gedaan.

Op bedrijfsniveau omvat een gedistribueerd controlesysteem vaak verschillende stappen. In bedrijfsprocessen op de meest efficiënte plaatsen van het bedrijfscomputernetwerk. In een typische distributie die gebruik maakt van een drielaags gedistribueerd systeemmodel, wordt de gegevensverwerking bijvoorbeeld gedaan op een pc op de locatie van de gebruiker, wordt de zakelijke verwerking gedaan op een externe computer en vindt de toegang tot de database en de gegevensverwerking plaats op een geheel andere computer. die gecentraliseerde toegang biedt voor veel bedrijven. Meestal is dit type gedistribueerde computinggebruikt het client-server interactiemodel.

Hoofdtaken

Hoofdtaken
Hoofdtaken

De belangrijkste taken van een gedistribueerd besturingssysteem zijn:

  1. Transparantie - Bereik een enkel systeemimage zonder locatie, toegang, migratie, gelijktijdigheid, failover, verplaatsing, persistentie en resourcedetails voor gebruikers te verbergen.
  2. Openheid - vereenvoudigt het instellen en wijzigen van het netwerk.
  3. Betrouwbaarheid - Vergeleken met een enkel controlesysteem, moet het betrouwbaar en consistent zijn en een grote kans hebben op het maskeren van fouten.
  4. Prestaties - Vergeleken met andere modellen bieden gedistribueerde modellen een prestatieverbetering.
  5. Schaalbaar - Deze gedistribueerde controlesystemen moeten schaalbaar zijn in termen van territorium, administratie of grootte.

De taken van distributiesystemen omvatten:

  1. Beveiliging is een groot probleem in een gedistribueerde omgeving, vooral bij het gebruik van openbare netwerken.
  2. Fouttolerantie - kan moeilijk zijn wanneer het model is gebouwd met onbetrouwbare componenten.
  3. Coördinatie en distributie van middelen - kan moeilijk zijn als er geen goede protocollen of vereist beleid zijn.

Gedistribueerde computeromgeving

Gedistribueerde computeromgeving
Gedistribueerde computeromgeving

(DCE) is een veelgebruikte industriestandaard die dergelijk gedistribueerd computergebruik ondersteunt. Op internet bieden externe providers een aantal generieke diensten aan,die in dit model passen.

Grid computing is een computermodel met een gedistribueerde architectuur van een groot aantal computers die zijn gekoppeld aan het oplossen van een complex probleem. In het grid computing-model voeren servers of pc's onafhankelijke taken uit en zijn ze losjes met elkaar verbonden via internet of lagesnelheidsnetwerken.

Het grootste grid computing-project is SETI@home, waarin individuele computerbezitters vrijwillig enkele van hun multitasking-verwerkingscycli uitvoeren met hun computer voor het Search for Extraterrestrial Intelligence (SETI)-project. Dit computerprobleem maakt gebruik van duizenden computers om gegevens van de radiotelescoop te downloaden en te doorzoeken.

Een van de eerste toepassingen van grid computing was het breken van cryptografische code door een groep die nu bekend staat als distributed.net. Deze groep beschrijft hun model ook als gedistribueerd computergebruik.

Database schalen

Database schalen
Database schalen

Het verspreiden van nieuwe informatie van master naar slave gebeurt niet meteen. In feite is er een tijdvenster waarin u verouderde informatie kunt krijgen. Als dit niet het geval zou zijn, zouden de schrijfprestaties eronder lijden, omdat gedistribueerde systemen synchroon zouden moeten wachten tot gegevens zich verspreiden. Ze komen met een paar compromissen.

Met behulp van een slave-databasebenadering is het mogelijk om het leesverkeer tot op zekere hoogte uit te schalen. Er zijn hier veel opties. Maar u hoeft alleen het schrijfverkeer in meerdere te verdelenservers omdat het het niet aankan. Een manier is om een multi-master replicatiestrategie te gebruiken. Daar zijn er, in plaats van slaven, verschillende hoofdknooppunten die lezen en schrijven ondersteunen.

Een andere methode wordt sharding genoemd. Hiermee wordt de server opgesplitst in verschillende kleinere servers, shards genaamd. Deze shards hebben verschillende items, er worden regels gemaakt over welke items in welke shard gaan. Het is erg belangrijk om zo'n regel te maken dat de gegevens gelijkmatig worden verdeeld. Een mogelijke benadering hiervoor is het definiëren van bereiken volgens bepaalde recordinformatie.

Deze scherfsleutel moet zeer zorgvuldig worden gekozen, omdat de belasting niet altijd gelijk is aan de basis van willekeurige kolommen. De enige scherf die meer verzoeken krijgt dan de andere, wordt een hotspot genoemd en ze proberen te voorkomen dat deze wordt gevormd. Eenmaal gesplitst, worden herkalibratiegegevens ongelooflijk duur en kunnen ze aanzienlijke downtime tot gevolg hebben.

Consensusalgoritmen database

Database-consensusalgoritmen
Database-consensusalgoritmen

DB's zijn moeilijk te implementeren in gedistribueerde beveiligingssystemen omdat ze vereisen dat elk knooppunt de juiste interrupt- of commit-actie onderhandelt. Deze kwaliteit staat bekend als consensus en is een fundamenteel probleem bij het bouwen van een distributiesysteem. Het bereiken van het type overeenkomst dat nodig is voor het "commit"-probleem is eenvoudig als de betrokken processen en het netwerk volledig betrouwbaar zijn. Echte systemen zijn echter onderhevig aan een aantal:mogelijke storingen van netwerkprocessen, verloren, beschadigde of dubbele berichten.

Dit vormt een probleem en het is niet mogelijk om te garanderen dat de juiste consensus binnen een beperkte tijdsperiode zal worden bereikt op een onbetrouwbaar netwerk. In de praktijk zijn er algoritmen die vrij snel consensus bereiken in een onbetrouwbaar netwerk. Cassandra biedt in feite lichtgewicht transacties door het gebruik van het Paxos-algoritme voor gedistribueerde consensus.

Distributed computing is de sleutel tot de toestroom van big data-verwerking die de afgelopen jaren is gebruikt. Het is een methode om een enorme taak, zoals een cumulatieve 100 miljard records, waarvan geen enkele computer praktisch alles alleen kan doen, op te splitsen in vele kleinere taken die in een enkele machine passen. De ontwikkelaar verdeelt zijn enorme taak in vele kleinere, voert ze parallel op veel machines uit, verzamelt de gegevens op de juiste manier en dan zal het oorspronkelijke probleem worden opgelost.

Met deze aanpak kun je horizontaal schalen - als er een grote taak is, voeg je gewoon meer knooppunten toe aan de berekening. Deze taken worden al vele jaren uitgevoerd door het MapReduce-programmeermodel dat is gekoppeld aan de implementatie voor parallelle verwerking en het genereren van grote datasets met behulp van een gedistribueerd algoritme op een cluster.

Momenteel is MapReduce enigszins verouderd en brengt het enkele problemen met zich mee. Er zijn andere architecturen ontstaan die deze problemen aanpakken. Namelijk Lambda Architecture voor gedistribueerdstroomverwerkingssystemen. Vooruitgang op dit gebied heeft geleid tot nieuwe tools: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.

Bestandsopslag- en replicatiesystemen

Bestandsopslag- en replicatiesystemen
Bestandsopslag- en replicatiesystemen

Gedistribueerde bestandssystemen kunnen worden gezien als gedistribueerde gegevensopslag. Dit is hetzelfde als het concept: het opslaan en openen van een grote hoeveelheid gegevens op een cluster van machines die één enkele entiteit vormen. Ze gaan meestal hand in hand met Distributed Computing.

Yahoo staat er bijvoorbeeld om bekend sinds 2011 HDFS te draaien op meer dan 42.000 nodes om 600 petabytes aan gegevens op te slaan. Wikipedia definieert het verschil in dat gedistribueerde bestandssystemen toegang tot bestanden toestaan met dezelfde interfaces en semantiek als lokale bestanden, in plaats van via een aangepaste API zoals Cassandra Query Language (CQL).

Hadoop Distributed File System (HDFS) is een systeem dat wordt gebruikt voor computergebruik via de Hadoop-infrastructuur. Het wordt wijdverbreid gebruikt om grote bestanden (GB- of TB-grootte) op veel machines op te slaan en te repliceren. De architectuur bestaat voornamelijk uit NameNodes en DataNodes.

NameNodes is verantwoordelijk voor het opslaan van metadata over het cluster, zoals welk knooppunt bestandsblokken bevat. Ze fungeren als netwerkcoördinatoren, zoeken uit waar bestanden het beste kunnen worden opgeslagen en gekopieerd en houden de systeemstatus bij. DataNodes slaan eenvoudig bestanden op en voeren opdrachten uit zoals bestandsreplicatie, nieuw schrijven enanderen.

Het is niet verwonderlijk dat HDFS het beste wordt gebruikt met Hadoop voor computergebruik, omdat het zorgt voor bewustheid van taakinformatie. De opgegeven taken worden vervolgens uitgevoerd op de knooppunten die de gegevens opslaan. Hierdoor kunt u de locatie van de gegevens gebruiken - optimaliseert berekeningen en vermindert de hoeveelheid verkeer via het netwerk.

Het Interplanetary File System (IPFS) is een opwindend nieuw peer-to-peer protocol/netwerk voor gedistribueerd bestandssysteem. Met behulp van Blockchain-technologie beschikt het over een volledig gedecentraliseerde architectuur zonder enige eigenaar of storingspunt.

IPFS biedt een naamgevingssysteem (vergelijkbaar met DNS) genaamd IPNS en stelt gebruikers in staat om gemakkelijk informatie op te halen. Het slaat het bestand op via historisch versiebeheer, net zoals Git dat doet. Dit geeft toegang tot alle eerdere statussen van het bestand. Het is nog volop in ontwikkeling (v0.4 op het moment van schrijven) maar heeft al projecten gezien die geïnteresseerd zijn om het te bouwen (FileCoin).

Berichtensysteem

berichtensysteem
berichtensysteem

Messaging-systemen bieden een centrale locatie voor het opslaan en distribueren van berichten binnen een gemeenschappelijk systeem. Hiermee kunt u applicatielogica scheiden van directe communicatie met andere systemen.

Bekende schaal - LinkedIn's Kafka-cluster verwerkt 1 biljoen berichten per dag met pieken van 4,5 miljoen berichten per seconde.

In eenvoudige bewoordingen werkt het berichtenplatform als volgt:

  1. Berichtdoorgegeven van de applicatie die het mogelijk maakt, een producent genoemd, gaat naar het platform en wordt gelezen vanuit meerdere applicaties, consumenten genoemd.
  2. Als u een bepaalde gebeurtenis op meerdere plaatsen moet opslaan, zoals het maken van een gebruiker voor een database, opslag, e-mailverzendservice, dan is het berichtenplatform de schoonste manier om dat bericht te verspreiden.

Er zijn verschillende populaire eersteklas berichtenplatforms.

RabbitMQ is een berichtenmakelaar waarmee u de controle over hun trajecten nauwkeuriger kunt afstemmen met behulp van routeringsregels en andere gemakkelijk configureerbare parameters. Het kan een "slimme" makelaar worden genoemd omdat het veel logica heeft en de berichten die er doorheen gaan nauwlettend in de gaten houdt. Biedt opties voor AP's en CP's van CAP.

Kafka is een berichtenmakelaar die iets minder functioneel is omdat het niet bijhoudt welke berichten zijn gelezen en geen complexe routeringslogica toestaat. Het helpt bij het bereiken van verbluffende prestaties en vertegenwoordigt de grootste belofte in deze ruimte met de actieve ontwikkeling van gedistribueerde systemen door de open-sourcegemeenschap en de steun van het Confluent-team. Kafka is het populairst bij hightechbedrijven.

Toepassingen voor machine-interactie

Dit distributiesysteem is een groep computers die samenwerken om voor de eindgebruiker als een afzonderlijke computer te verschijnen. Deze machines zijn in algemene staat, werkendtegelijkertijd en kan onafhankelijk werken zonder de uptime van het hele systeem te beïnvloeden.

Als u de database als gedistribueerd beschouwt, alleen als de knooppunten met elkaar communiceren om hun acties te coördineren. Het is in dit geval zoiets als een applicatie die zijn interne code uitvoert op een peer-to-peer netwerk en wordt geclassificeerd als een gedistribueerde applicatie.

Bekende schaal - BitTorrent
Bekende schaal - BitTorrent

Voorbeelden van dergelijke toepassingen:

  1. Bekende schaal - BitTorrent-zwerm 193.000 nodes voor Game of Thrones-aflevering.
  2. Basisregistertechnologie van gedistribueerde Blockchain-systemen.

Gedistribueerde grootboeken kunnen worden gezien als een onveranderlijke database voor alleen toepassingen die wordt gerepliceerd, gesynchroniseerd en gedeeld door alle knooppunten in het distributienetwerk.

De bekende schaal - het Ethereum-netwerk - had op 4 januari 2018 4,3 miljoen transacties per dag. Ze gebruiken het Event Sourcing-patroon, waarmee u de status van de database op elk moment kunt herstellen.

Blockchain is de huidige onderliggende technologie die wordt gebruikt voor gedistribueerde grootboeken en die feitelijk hun begin markeerde. Deze nieuwste en grootste innovatie in de gedistribueerde ruimte creëerde het eerste echt gedistribueerde betalingsprotocol, bitcoin.

Blockchain is een gedistribueerd grootboek met een geordende lijst van alle transacties die ooit op zijn netwerk hebben plaatsgevonden. Deals worden gegroepeerd en in blokken opgeslagen. De hele blockchain is in wezen een gekoppelde lijst met blokken. Opgegeven blokkenzijn duur om te maken en zijn nauw met elkaar verbonden door middel van cryptografie. Simpel gezegd, elk blok bevat een speciale hash (die begint met een X aantal nullen) van de inhoud van het huidige blok (in de vorm van een Merkle-boom) plus de hash van het vorige blok. Deze hash vereist veel CPU-kracht.

Voorbeelden van gedistribueerde besturingssystemen

Voorbeelden van gedistribueerde besturingssystemen
Voorbeelden van gedistribueerde besturingssystemen

Systeemtypen verschijnen voor de gebruiker omdat het systemen voor één gebruiker zijn. Ze delen hun geheugen, schijf en de gebruiker heeft geen moeite om door de gegevens te navigeren. De gebruiker slaat iets op zijn pc op en het bestand wordt op meerdere locaties opgeslagen, d.w.z. aangesloten computers, zodat verloren gegevens gemakkelijk kunnen worden hersteld.

Voorbeelden van gedistribueerde besturingssystemen:

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

Als een computer hoger opstart, dat wil zeggen, als er veel verzoeken worden uitgewisseld tussen individuele pc's, is dit hoe load balancing plaatsvindt. In dit geval worden de verzoeken doorgegeven aan de aangrenzende pc. Als het netwerk meer belast wordt, kan het worden uitgebreid door meer systemen aan het netwerk toe te voegen. Het netwerkbestand en de mappen worden gesynchroniseerd en er worden naamconventies gebruikt, zodat er geen fouten optreden bij het ophalen van gegevens.

Caching wordt ook gebruikt bij het manipuleren van gegevens. Alle computers gebruiken dezelfde naamruimte om bestanden een naam te geven. Maarhet bestandssysteem is geldig voor elke computer. Als er updates voor het bestand zijn, wordt het naar één computer geschreven en worden de wijzigingen doorgegeven aan alle computers, zodat het bestand er hetzelfde uitziet.

Bestanden zijn vergrendeld tijdens het lees-/schrijfproces, dus er is geen impasse tussen verschillende computers. Sessies komen ook voor, zoals het lezen, schrijven van bestanden in een sessie en het sluiten van de sessie, waarna een andere gebruiker hetzelfde kan doen, enzovoort.

Voordelen van het gebruik van

Een besturingssysteem dat is ontworpen om het dagelijks leven van mensen gemakkelijker te maken. Voor gebruikersvoordelen en -behoeften kan het besturingssysteem voor één gebruiker of gedistribueerd zijn. In een gedistribueerd bronsysteem zijn veel computers met elkaar verbonden en delen ze hun bronnen.

Voordelen om dit te doen:

  1. Als een pc in zo'n systeem defect of beschadigd is, zal een ander knooppunt of een andere computer ervoor zorgen.
  2. Er kunnen eenvoudig meer bronnen worden toegevoegd.
  3. Bronnen zoals printers kunnen meerdere computers bedienen.

Dit is een korte beschrijving van het distributiesysteem, waarom het wordt gebruikt. Enkele belangrijke dingen om te onthouden: ze zijn complex en worden gekozen op schaal en prijs en zijn moeilijker om mee te werken. Deze systemen zijn verdeeld in verschillende opslagcategorieën: computer-, bestands- en berichtensystemen, registers, applicaties. En dit alles is slechts zeer oppervlakkig over een complex informatiesysteem.

Aanbevolen: