Tema 1: Introducci on - LSUBlsub.org/dis/t1.pdf · 2015. 11. 13. · Tema 1: Introducci on Sistemas...

Post on 19-Aug-2020

3 views 0 download

Transcript of Tema 1: Introducci on - LSUBlsub.org/dis/t1.pdf · 2015. 11. 13. · Tema 1: Introducci on Sistemas...

Tema 1: IntroduccionSistemas Distribuidos

Enrique Soriano

LS, GSYC

10 de septiembre de 2015

(cc) 2015 Grupo de Sistemas y Comunicaciones.

Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento -

NoComercial - SinObraDerivada (by-nc-nd). Para obtener la licencia completa, vease

http://creativecommons.org/licenses/by-sa/2.1/es. Tambien puede solicitarse a Creative Commons, 559 Nathan

Abbott Way, Stanford, California 94305, USA.

¿Que es un sistema distribuido?

Conjunto de sistemas o nodos autonomos que para los usuarios secomporta como un unico sistema.

You know you have a distributed system when the crash of acomputer you’ve never heard of stops you from getting any workdone.– Leslie Lamport

¿Que es un sistema distribuido?

La idea es compartir servicios y recursos:

I Datos.

I Hardware: CPU, impresoras, ratones, monitores, etc.

I Aplicaciones: procesadores de texto, visores, etc.

I Servicios de localizacion, sensores, actuadores, etc.

I ...

¿Que es un sistema distribuido?

Ventajas:

I Economicas: es mas barato comprar muchos ordenadorespequenos que fabricar un supercomputador. De hecho, hoyen dıa, todos los supercomputadores son sistemasdistribuidos (p. ej. Blue Gene).

I Fiabilidad: algunos nodos pueden fallar, pero el sistema puedeseguir funcionando. Mas del 95 % de las maquinas deGoogle reinician una vez al mes ¿Lo has notado?

I Crecimiento incremental: se pueden anadir recursos endemanda. El Cray Titan tiene 18688 CPUs

I Distribucion inherente: algunas aplicaciones dependen devarias maquinas separadas por sus propias caracterısticas.

Objetivo: Transparencia de distribucion

Transparencia de distribucion: esconder el hecho de que el sistemaesta formado por distintos componentes. Si se consigue unatransparencia total, se obtiene la ilusion de tener un unico sistema(single-system image). Tipos:

I Acceso.

I Localizacion.

I Migracion.

I Relocalizacion.

I Replicacion.

I Concurrencia.

I Fallo.

Transparencia de acceso

Esconder los detalles sobre diferencias en la representacion de losdatos y sus mecanismos de acceso.

Ejemplos:

I Establecer un orden canonico para los bytes (Big Endian /Litte Endian).

I Acceder una interfaz homogenea para los datos, sin dependerde que estos procedan de sistemas de ficheros, BB.DD.,sensores, etc.

Transparencia de localizacion

Esconder los detalles sobre la localizacion de los recursos mediantela asignacion de nombres logicos.

Ejemplos:

I /path/to/a/file

I http://lsub.org/cursos

Transparencia de migracion y relocalizacion

El usuario no se entera si el recurso se mueve de un componente aotro. Si esto pasa mientras que el usuario esta usando el recurso,se habla de relocalizacion.

Ejemplos:

I Cambiar la maquina que autentica a los usuarios en ellaboratorio.

I El componente que sirve un sistema de ficheros cambiamientras que tenemos montado el volumen.

Transparencia de replicacion

Se oculta que hay varias replicas del mismo recurso. Requieretransparencia de localizacion.

Ejemplo:

I El usuario no se da cuenta que cada vez que actualiza unatabla de una BB.DD. se actualizan N replicas.

Transparencia de concurrencia

Ocultar a los usuarios que componentes del sistema necesitancompartir ciertos objetos y deben cooperar para proporcionar elrecurso conservando un estado coherente.

Ejemplo:

I El usuario no tiene que reintentar una operacion si la base dedatos esta siendo usada por otro componente en ese mismoinstante.

Transparencia de fallo

El usuario no se entera si ciertos componentes del sistema hanfallado. Enmascarar los fallos es complejo, a veces no es posible, yno siempre es apropiado.

Ejemplo:

I Reemplazar automaticamente un servidor de ficheros que hafallado por una replica sin que la operacion sobre el ficherofalle.

Grado de transparencia

I Compromiso entre transparencia y eficiencia.

I Restricciones fısicas (latencia, etc.).

I Conveniencia (p.ej. localizacion fısica en un smart space).

I Comprensibilidad del sistema (p.ej. ocultacion de errores a lasaplicaciones).

Objetivo: sistema abierto

Los recursos se sirven de una forma estandar, siguiendo unasemantica y una sintaxis determinada para proporcionarinteroperabilidad, portabilidad, y extensibilidad.

I Descripcion de la interfaz del recurso.

I Formato y semantica de los mensajes.

I Convenios del sistema.

I Separacion de polıticas y mecanismos.

Objetivo: escalabilidad

El sistema distribuido debe poder soportar su crecimiento(usuarios, componentes, datos, etc.), su distribucion geografica ysu administracion.

I Un servicio centralizado tiende a convertirse en un cuello debotella que reduce la escalabilidad del sistema → replicacion.

I Si los clientes del servicio estan dispersos geograficamente, unservicio centralizado estara lejos de algunos clientes (p.ej.Akamai) → distribucion.

I Un servicio centralizado es mas sencillo de implementar. No sepuede subestimar la simplicidad de un sistema.

I Un servicio distribuido es mas difıcil de asegurar.

Escalabilidad: datos

I Datos centralizados vs. datos distribuidos.

I Distribucion de los datos en dominios.Ejemplo que ya conoceis: DNS.

10/09/14 12:35

Page 1 of 1file:///Users/esoriano/Downloads/Domain_name_space.svg

Domain Name Space

= resource recordsassociated with name

see also: RFC 1034 4.2:How the database is divided into zones.

= zone of authority,managed by a name server

"delegated subzone"

"zon

e dele

gatio

n"

NS RR ("resource record")names the nameserverauthoritative fordelegated subzone

When a system administratorwants to let another administratormanage a part of a zone, the firstadministrator's nameserver delegatespart of the zone to anothernameserver.

Escalabilidad: algoritmos

I Algoritmo centralizado: los nodos tienen que recolectartodos los datos sobre el estado del sistema para ejecutar elalgoritmo. Esto puede no ser asumible.

I Algoritmo distribuido:I Ningun nodo tiene la informacion completa del sistema.I Los nodos toman decisiones en base a su estado.I El fallo de un nodo no arruina el algoritmo.I No se asume un reloj comun exactamente sincronizado.

Ejemplos: commit atomico de transacciones, ordenacion deeventos, consenso, eleccion de lider, exclusion mutuadistribuida, radiado fiable, etc.

Escalabilidad geografica

I Principal problema: latencia*.I L1 cache reference : 0.5 nsI L2 cache reference : 7 nsI Mutex lock/unlock : 25 nsI Main memory reference : 100 nsI SSD random read : 150,000 ns = 150 usI Read 1 MB sequentially from memory : 250,000 ns = 250 usI Round trip within same datacenter : 500,000 ns = 0.5 msI Read 1 MB sequentially from SSD* : 1,000,000 ns = 1 msI Read 1 MB sequentially from disk : 20,000,000 ns = 20 msI Send packet CA-Netherlands-CA : 150,000,000 ns = 150 ms

I La latencia entre nodos lejanos tiene un lımite fijo: velocidadde la luz.

I Comunaciones menos fiables a larga distancia (retransmisiones→ mas latencia).

* http://architects.dzone.com/articles/every-programmer-should-know

Tecnicas para escalabilidad geografica

I Comunicacion asıncrona en servicios no interactivos.

I Agrupacion de operaciones (batching).

I Protocolos con pocos round-trips.

I Preprocesado en el cliente.

I Caching → coherencia de cache.

Escalabilidad administrativa

I Dominios de administracion.

I Mezcla problemas tecnicos con problemas no-tecnicos(polıticas, relacion entre humanos, etc.).

Algunos tipos de sistemas distribuidos

Clusters:

I El control se suele centralizar en un nodo llamado Master.

I Nodos homogeneos (hw, OS)

I Comunicados por una LAN de alta velocidad

Algunos tipos de sistemas distribuidos

Grids:

I El control esta distribuido (federado)

I Distintas organizaciones comparten sus nodos (organizacionvirtual).

I Nodos heterogeneos (hw, OS).

I Comunicados por Internet.

Algunos tipos de sistemas distribuidos

Transaction Processing Systems.

I ACID:I Atomicy: la operacion se realiza de forma indivisible.I Consistency: la operacion no viola invariantes del sistema.I Isolation: las operaciones no interfieren entre sı.I Durability: una vez acabada, es permanente.

Algunos tipos de sistemas distribuidos

I Middleware de integracion (OOM, MOM, etc.).

I Pervasive Computing, AmI.

I Wearable Computing, Personal/Body Area Networks.

I Health Care Systems.

I Sensor Networks.

Algunos tipos de sistemas distribuidos

Cloud Computing:

I IaaS: Infrastructure as a Service, p.ej. Amazon EC2.

I PaaS: Platform as a Service, p.ej. Google App Engine.

I SaaS: Software as a Service, p.ej. Google Apps.

I STaaS: Storage as a Service, p.ej. Amazon S3.

Algunos tipos de sistemas distribuidos

¡Y veremos muchos mas!

I Fog Computing, Internet of Things ...