Un sistema distribuït en la seva definició més senzilla és un grup d'ordinadors que treballen junts que apareixen com un sol a l'usuari final. Les màquines comparteixen un estat comú, s'executen simultàniament i poden funcionar de manera independent sense afectar el temps de funcionament de tot el sistema. La veritat és que la gestió d'aquests sistemes és un tema complex i ple d'errors.
Visió general del sistema
El sistema distribuït permet compartir recursos (inclòs el programari) connectats a la xarxa al mateix temps.
Exemples de distribució del sistema:
- Pila tradicional. Aquestes bases de dades s'emmagatzemen al sistema de fitxers d'una màquina. Sempre que l'usuari vol rebre informació, es comunica directament amb aquesta màquina. Per distribuir aquest sistema de bases de dades, l'heu d'executar en diversos ordinadors alhora.
- Arquitectura distribuïda.
Sistema distribuïtpermet escalar horitzontalment i verticalment. Per exemple, l'única manera de gestionar més trànsit seria actualitzar el maquinari que executa la base de dades. Això s'anomena escala vertical. L'escala vertical és bona fins a un cert límit, després del qual fins i tot el millor equip no pot fer front a proporcionar el trànsit necessari.
Ampliar horitzontalment significa afegir més ordinadors, no actualitzar el maquinari en un. L'escalat vertical augmenta el rendiment a les últimes capacitats de maquinari en sistemes distribuïts. Aquestes oportunitats no són suficients per a les empreses tecnològiques amb càrregues de treball moderades a pesades. El millor de l'escala horitzontal és que no hi ha límits de mida. Quan el rendiment es degrada, simplement s'afegeix una altra màquina que, en principi, es pot fer indefinidament.
A nivell corporatiu, un sistema de control distribuït sovint implica diversos passos. En els processos empresarials als llocs més eficients de la xarxa informàtica empresarial. Per exemple, en una distribució típica que utilitza un model de sistema distribuït de tres nivells, el processament de dades es fa en un ordinador a la ubicació de l'usuari, el processament comercial es fa en un ordinador remot i l'accés a la base de dades i el processament de dades es fa en un ordinador completament diferent. que proporciona accés centralitzat a moltes empreses. Normalment, aquest tipus de computació distribuïdautilitza el model d'interacció client-servidor.
Tasques principals
Les principals tasques d'un sistema de control distribuït inclouen:
- Transparència: aconsegueix una única imatge del sistema sense amagar la ubicació, l'accés, la migració, la concurrència, la migració per error, la reubicació, la persistència i els detalls dels recursos als usuaris.
- Obertura: simplifica la configuració i els canvis de la xarxa.
- Fiabilitat: en comparació amb un sistema de control únic, hauria de ser fiable, coherent i tenir una alta probabilitat d'emmascarar errors.
- Rendiment: en comparació amb altres models, els models distribuïts ofereixen un augment del rendiment.
- Ampliable: aquests sistemes de control distribuït han de ser escalables en termes de territori, administració o mida.
Les tasques dels sistemes de distribució inclouen:
- La seguretat és un gran problema en un entorn distribuït, especialment quan s'utilitzen xarxes públiques.
- Tolerància a errors: pot ser difícil quan el model es construeix amb components poc fiables.
- Coordinació i distribució de recursos: pot ser difícil si no hi ha protocols adequats ni polítiques necessàries.
Entorn informàtic distribuït
(DCE) és un estàndard de la indústria àmpliament utilitzat que admet aquesta informàtica distribuïda. A Internet, els proveïdors de tercers ofereixen alguns serveis genèrics,que s'ajusten a aquest model.
La informàtica en xarxa és un model informàtic amb una arquitectura distribuïda d'un gran nombre d'ordinadors associats a la resolució d'un problema complex. En el model de computació en xarxa, els servidors o els ordinadors personals realitzen tasques independents i estan connectats entre si mitjançant Internet o xarxes de baixa velocitat.
El projecte de computació de graella més gran és SETI@home, en el qual els propietaris individuals d'ordinadors s'ofereixen per dur a terme alguns dels seus cicles de processament multitasca mitjançant el seu ordinador per al projecte Search for Extraterrestrial Intelligence (SETI). Aquest problema informàtic utilitza milers d'ordinadors per baixar i cercar dades del radiotelescopi.
Un dels primers usos de la computació en graella va ser trencar el codi criptogràfic per part d'un grup que ara es coneix com distributed.net. Aquest grup també descriu el seu model com a informàtica distribuïda.
Escalament de la base de dades
La difusió de nova informació del mestre a l'esclau no es produeix a l'instant. De fet, hi ha una finestra de temps en la qual podeu obtenir informació no actualitzada. Si aquest no fos el cas, el rendiment d'escriptura es patiria, ja que els sistemes distribuïts haurien d'esperar de manera sincrònica perquè les dades es propaguen. Venen amb uns quants compromisos.
Usant un enfocament de base de dades esclau, és possible escalar el trànsit de lectura fins a cert punt. Aquí hi ha moltes opcions. Però només cal dividir el trànsit d'escriptura en diversosservidors perquè no ho pot gestionar. Una de les maneres és utilitzar una estratègia de replicació multi-master. Allà, en lloc d'esclaus, hi ha diversos nodes principals que admeten la lectura i l'escriptura.
Un altre mètode s'anomena sharding. Amb ell, el servidor es divideix en diversos servidors més petits, anomenats fragments. Aquests fragments tenen entrades diferents, es creen regles sobre quines entrades entren en cada fragment. És molt important crear una regla que les dades es distribueixin de manera uniforme. Una possible aproximació a això és definir intervals d'acord amb alguna informació de registre.
Aquesta clau de fragment s'ha de triar amb molta cura, ja que la càrrega no sempre és igual a les bases de columnes arbitràries. L'únic fragment que rep més sol·licituds que els altres s'anomena hotspot, i intenten evitar que es formi. Un cop dividides, les dades de recalibració es fan increïblement cares i poden provocar un temps d'inactivitat important.
Algoritmes de consens de bases de dades
Les DB són difícils d'implementar en sistemes de seguretat distribuïts perquè requereixen que cada node negocii l'acció d'interrupció o confirmació correcta. Aquesta qualitat es coneix com a consens i és un problema fonamental en la construcció d'un sistema de distribució. Assolir el tipus d'acord necessari per al problema del "commit" és senzill si els processos implicats i la xarxa són completament fiables. Tanmateix, els sistemes reals estan subjectes a una sèrie depossibles errors dels processos de xarxa, missatges perduts, danyats o duplicats.
Això suposa un problema i no és possible garantir que s'aconseguirà el consens correcte en un període de temps limitat en una xarxa poc fiable. A la pràctica, hi ha algorismes que arriben a consens bastant ràpidament en una xarxa poc fiable. Cassandra ofereix transaccions lleugeres mitjançant l'ús de l'algoritme Paxos per a un consens distribuït.
La informàtica distribuïda és la clau de l'afluència del processament de big data que s'ha utilitzat en els darrers anys. És un mètode per descompondre una tasca enorme, com ara 100.000 milions de registres acumulats, dels quals cap ordinador és capaç de fer pràcticament qualsevol cosa per si sol, en moltes tasques més petites que poden cabre en una única màquina. El desenvolupador divideix la seva gran tasca en moltes més petites, les executa en moltes màquines en paral·lel, recull les dades de manera adequada i, a continuació, es resoldrà el problema original.
Aquest enfocament us permet escalar horitzontalment; quan hi ha una tasca important, només heu d'afegir més nodes al càlcul. Aquestes tasques s'han realitzat durant molts anys pel model de programació MapReduce associat a la implementació del processament paral·lel i la generació de grans conjunts de dades mitjançant un algorisme distribuït en un clúster.
Actualment, MapReduce està una mica obsolet i comporta alguns problemes. Han sorgit altres arquitectures que tracten aquests problemes. És a dir, Lambda Architecture per distribuïtsistemes de processament de flux. Els avenços en aquesta àrea han aportat noves eines: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.
Sistemes d'emmagatzematge i rèplica de fitxers
Els sistemes de fitxers distribuïts es poden considerar com a magatzems de dades distribuïts. Això és el mateix que el concepte: emmagatzemar i accedir a una gran quantitat de dades en un clúster de màquines que són una única entitat. Normalment van de la mà amb la informàtica distribuïda.
Per exemple, Yahoo és conegut per executar HDFS en més de 42.000 nodes per emmagatzemar 600 petabytes de dades des del 2011. La Viquipèdia defineix la diferència en què els sistemes de fitxers distribuïts permeten l'accés als fitxers utilitzant les mateixes interfícies i semàntica que els fitxers locals, en lloc d'una API personalitzada com ara Cassandra Query Language (CQL).
Hadoop Distributed File System (HDFS) és un sistema que s'utilitza per a la computació a través de la infraestructura Hadoop. Estès, s'utilitza per emmagatzemar i replicar fitxers grans (mida GB o TB) en moltes màquines. La seva arquitectura consisteix principalment en NameNodes i DataNodes.
NameNodes és responsable d'emmagatzemar metadades sobre el clúster, com ara quin node conté blocs de fitxers. Actuen com a coordinadors de xarxa, descobrint on emmagatzemar i copiar fitxers millor, fent un seguiment de la salut del sistema. DataNodes simplement emmagatzema fitxers i executa ordres com ara la replicació de fitxers, l'escriptura nova i altres.
No és sorprenent que l'HDFS s'utilitza millor amb Hadoop per a la informàtica, ja que proporciona coneixement de la informació de la tasca. A continuació, els treballs especificats s'executen als nodes que emmagatzemen les dades. Això us permet utilitzar la ubicació de les dades: optimitza els càlculs i redueix la quantitat de trànsit a la xarxa.
El sistema de fitxers interplanetari (IPFS) és un nou protocol/xarxa d'igual a igual per a sistemes de fitxers distribuïts. Utilitzant la tecnologia Blockchain, compta amb una arquitectura totalment descentralitzada sense propietari ni punt d'error únic.
IPFS ofereix un sistema de denominació (similar al DNS) anomenat IPNS i permet als usuaris recuperar informació fàcilment. Emmagatzema el fitxer mitjançant versions històriques, com ho fa Git. Això permet accedir a tots els estats anteriors del fitxer. Encara està passant per un gran desenvolupament (v0.4 en el moment d'escriure), però ja s'han vist projectes interessats a construir-lo (FileCoin).
Sistema de missatgeria
Els sistemes de missatgeria proporcionen una ubicació central per emmagatzemar i distribuir missatges dins d'un sistema comú. Us permeten separar la lògica de l'aplicació de la comunicació directa amb altres sistemes.
Escala coneguda: el clúster Kafka de LinkedIn va processar 1 bilió de missatges al dia amb pics de 4,5 milions de missatges per segon.
En termes senzills, la plataforma de missatgeria funciona així:
- Missatgepassat de l'aplicació que el crea potencialment, anomenada productor, entra a la plataforma i es llegeix des de diverses aplicacions, anomenades consumidors.
- Si necessiteu emmagatzemar un esdeveniment determinat en diversos llocs, com ara crear un usuari per a una base de dades, emmagatzematge o servei d'enviament de correu electrònic, la plataforma de missatgeria és la manera més neta de distribuir aquest missatge.
Hi ha diverses plataformes de missatgeria de primer nivell populars.
RabbitMQ és un agent de missatges que us permet afinar més el control de les seves trajectòries mitjançant regles d'encaminament i altres paràmetres fàcilment configurables. Es pot anomenar broker "intel·ligent" perquè té molta lògica i supervisa de prop els missatges que hi passen. Ofereix opcions per a AP i CP de CAP.
Kafka és un corredor de missatges que és una mica menys funcional, ja que no fa un seguiment dels missatges que s'han llegit i no permet una lògica d'encaminament complexa. Ajuda a aconseguir un rendiment sorprenent i representa la major promesa en aquest espai amb el desenvolupament actiu de sistemes distribuïts per part de la comunitat de codi obert i el suport de l'equip de Confluent. Kafka és el més popular entre les empreses d' alta tecnologia.
Aplicacions d'interacció amb màquina
Aquest sistema de distribució és un grup d'ordinadors que treballen junts per aparèixer com un ordinador independent a l'usuari final. Aquestes màquines estan en estat general, funcionantsimultàniament i pot funcionar de manera independent sense afectar el temps de funcionament de tot el sistema.
Si considereu la base de dades com a distribuïda, només si els nodes interactuen entre ells per coordinar les seves accions. En aquest cas, s'assembla a una aplicació que executa el seu codi intern en una xarxa peer-to-peer i es classifica com una aplicació distribuïda.
Exemples d'aplicacions d'aquest tipus:
- Escala coneguda: BitTorrent agrupa 193.000 nodes per a l'episodi de Game of Thrones.
- Tecnologia de registre bàsica dels sistemes Blockchain distribuïts.
Els registres distribuïts es poden considerar una base de dades immutable, només per a aplicacions, que es replica, sincronitza i es comparteix entre tots els nodes de la xarxa de distribució.
La coneguda escala, la xarxa Ethereum, tenia 4,3 milions de transaccions diàries el 4 de gener de 2018. Utilitzen el patró d'obtenció d'esdeveniments, que us permet restaurar l'estat de la base de dades en qualsevol moment.
Blockchain és la tecnologia subjacent actual que s'utilitza per als llibres de llibres distribuïts i que de fet va marcar el seu inici. Aquesta innovació més nova i més gran a l'espai distribuït va crear el primer protocol de pagament realment distribuït, bitcoin.
Blockchain és un registre distribuït amb una llista ordenada de totes les transaccions que s'han fet a la seva xarxa. Les ofertes s'agrupen i s'emmagatzemen en blocs. Tota la cadena de blocs és essencialment una llista enllaçada de blocs. Blocs especificatssón cars de crear i estan estretament acoblats entre si mitjançant la criptografia. En poques paraules, cada bloc conté un hash especial (que comença amb X nombre de zeros) del contingut del bloc actual (en forma d'arbre Merkle) més el hash del bloc anterior. Aquest hash requereix molta potència de la CPU.
Exemples de sistemes operatius distribuïts
Els tipus de sistemes apareixen a l'usuari perquè són sistemes d'un sol usuari. Comparteixen la seva memòria, disc i l'usuari no té problemes per navegar per les dades. L'usuari emmagatzema alguna cosa al seu ordinador i el fitxer s'emmagatzema en diverses ubicacions, és a dir, ordinadors connectats perquè les dades perdudes es puguin recuperar fàcilment.
Exemples de sistemes operatius distribuïts:
- Windows Server 2003;
- Windows Server 2008;
- Windows Server 2012;
- UbuntuLinux (servidor Apache).
Si algun ordinador arrenca més alt, és a dir, si s'intercanvien moltes sol·licituds entre ordinadors individuals, així es produeix l'equilibri de càrrega. En aquest cas, les peticions es propaguen a l'ordinador veí. Si la xarxa es carrega més, es pot ampliar afegint més sistemes a la xarxa. El fitxer i les carpetes de xarxa es sincronitzen i s'utilitzen convencions de nom perquè no es produeixin errors quan es recuperen les dades.
La memòria cau també s'utilitza quan es manipulen dades. Tots els ordinadors utilitzen el mateix espai de noms per nomenar fitxers. Peròel sistema de fitxers és vàlid per a tots els ordinadors. Si hi ha actualitzacions al fitxer, s'escriu en un ordinador i els canvis es propaguen a tots els ordinadors, de manera que el fitxer tingui el mateix aspecte.
Els fitxers es bloquegen durant el procés de lectura/escriptura, de manera que no hi ha interacció entre diferents ordinadors. També es produeixen sessions, com ara llegir, escriure fitxers en una sessió i tancar la sessió, i després un altre usuari pot fer el mateix, etc.
Avantatges d'utilitzar
Un sistema operatiu dissenyat per facilitar la vida diària de les persones. Per als beneficis i necessitats dels usuaris, el sistema operatiu pot ser d'un sol usuari o distribuït. En un sistema de recursos distribuïts, molts ordinadors estan connectats entre ells i comparteixen els seus recursos.
Benefits de fer això:
- Si un ordinador d'aquest sistema està defectuós o es fa malbé, un altre node o ordinador s'encarregarà d'això.
- Es poden afegir més recursos fàcilment.
- Els recursos com ara les impressores poden servir per a diversos ordinadors.
Aquest és un resum sobre el sistema de distribució, per què s'utilitza. Algunes coses importants a recordar: són complexes i es trien per escala i preu i són més difícils de treballar. Aquests sistemes es distribueixen en diverses categories d'emmagatzematge: informàtica, sistemes de fitxers i missatgeria, registres, aplicacions. I tot això és molt superficial sobre un sistema d'informació complex.