Máster en Ciencia y Tecnología Informática Curso 2017 … · PC/work. SMP/MPP Vector Mainframe ... § Arquitectura distribuida formada por un conjunto de computadores independientes

Post on 20-Sep-2018

216 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

Transcript

Diseño de Sistemas DistribuidosMáster en Ciencia y Tecnología Informática

Curso 2017-2018

Félix García CarballeiraGrupo de Arquitectura de Computadoresfelix.garcia@uc3m.es

Ejemplos de sistemas distribuidos

Computing systems

•Félix García Carballeira •2•Sistemas Distribuidos

Computer systems

Single system Distributed systems

(multiple systems)

PC/work. SMP/MPP Vector Mainframe

clusters Client/Server Cloud Peer-to-peer

centralized decentralizedcontrol and management

Grid Comp. Volunt.

Características de los sistemas distribuidos de gran escala§ Gran distribución geográfica§ Gran capacidad

q Gran número de usuarios/clientesq De almacenamiento q Muchas conexiones de redq De procesamientoq Alto nivel de paralelismoq Capacidad para tolerancia a fallos

•Félix García Carballeira •3•Sistemas Distribuidos

Cluster

§ Arquitectura distribuida formada por un conjunto de computadores independientes interconectados que funciona como un único sistema (single system image)

•Félix García Carballeira •Sistemas Distribuidos •4

nodes

network

frontend

Arquitectura de un cluster

•Félix García Carballeira •Sistemas Distribuidos •5

Sequential Applications

Parallel Applications

Parallel Programming Environment

Cluster Middleware

(Single System Image and Availability Infrastructure)

Cluster Interconnection Network/Switch

PC/Workstation

Network Interface Hardware

Communications

Software

PC/Workstation

Network Interface Hardware

Communications

Software

PC/Workstation

Network Interface Hardware

Communications

Software

PC/Workstation

Network Interface Hardware

Communications

Software

Sequential ApplicationsSequential Applications

Parallel ApplicationsParallel Applications

Buyya

Clusters en Supercomputación y Big Data

•Félix García Carballeira •Sistemas Distribuidos •6

•Communications of the ACM

Cluster Beowulf

§ Primer cluster construido con computadores personales 1994:q 16 DX4 procesadores conectados mediante channel bonded

Ethernet. NASA Ames Centre§ Nodos con mínimos recursos (sin monitor, ratón, tarjeta de

vídeo)§ Un nodo servidor (frontend)§ Linux § Sistema de ficheros compartido§ Herramientas de programación paralela (PVM, MPI)§ Sistemas de gestión de trabajos

q Batch, interactivos , secuenciales, paralelos

•Félix García Carballeira •Sistemas Distribuidos •7

Arquitectura de cluster Beowulf

•Félix García Carballeira •Sistemas Distribuidos •8

nodos

Red privada

Beneficios que ofrece un cluster

§ Disponibilidad: por la redundancia delq Hardwareq Sistema operativo y aplicaciones

§ Escalabilidad: mediante la incorporación de nuevos servidores o más clusters a la red

§ Alto rendimiento§ Alta productividad

•Félix García Carballeira •Sistemas Distribuidos •9

Problemas de diseño de un cluster

§ Escalabilidad: física y de aplicaciones§ Disponibilidad: gestión de fallos§ Single system image: middleware y extensiones del SO§ Equilibrio de carga (CPU, red, memoria y discos)§ Seguridad y crifado§ Entorno distribuido (amigable y fácil de usar)§ Facilidad de programación (API)§ Facilidad de gestión (trabajos y recursos)

•Félix García Carballeira •Sistemas Distribuidos •10

Servicios deseados en un sistema SSI

§ Punto de acceso único§ Jerarquía de ficheros única§ Gestión unificada de trabajos§ Interfaz de usuario única§ Red virtual única sobre varias redes físicas§ Mismo espacio de memoria

•Félix García Carballeira •Sistemas Distribuidos •11

Ejemplo de punto de acceso único

•Félix García Carballeira •Sistemas Distribuidos •12

Source: K. Hwang, G. Fox, and J. Dongarra,Distributed and Cloud Computing,Morgan Kaufmann, 2012.

Tipos de trabajos a ejecutar en un cluster§ Trabajos secuenciales: ejecutan en un único nodo§ Trabajos paralelos: ejecutan en múltiples nodos

q Procesamiento de datosq Cómputo

§ Trabajos interactivos: ejecución asociada a un terminal, ejecución inmediata

§ Trabajos batch:q No necesitan respuesta inmediataq Se envían a una cola para su planificación

•Félix García Carballeira •Sistemas Distribuidos •13

Tipos de planificación

§ Planificación dedicada:q Solo un trabajo es ejecutado en el cluster a la vez y solo un

proceso del trabajo es asignado a cada nodoq El trabajo ejecuta hasta su terminación

§ Planificación compartida en el espacioq Diferentes trabajos se ejecutan en particiones de nodos

disjuntas de forma simultánea q Un proceso por nodoq El sistema de E/S puede ser compartido

•Félix García Carballeira •Sistemas Distribuidos •14

MOSIX

§ Extensión de Linux para construir clusters§ http://www.mosix.org§ Ofrece:

q Single system imageq Migración de procesos transparente a las aplicacionesq Recogida y envío de información de los nodos (velocidad

de la CPU, carga, utilización, memoria libre,…)q Equilibrio de cargaq Sistemas de ficheros compartido y paralelo (MFS, GFS)

•Félix García Carballeira •Sistemas Distribuidos •15

Estaciones de trabajo inactivas

§ En entornos típicos con estaciones de trabajo se desperdicia cerca del 80% de ciclos totales de CPU.

§ Uso de estaciones de trabajo inactivas:q Ejecutar procesos de forma totalmente transparente en

máquinas remotas que se encuentran inactivas.q Los usuarios de las estaciones de trabajo inactivas no

deberían observar una degradación del rendimiento como consecuencia de la ejecución de procesos remotos.

•Félix García Carballeira •Sistemas Distribuidos •16

Clusters de workstations (COW)

•Félix García Carballeira •Sistemas Distribuidos •17

§ PCs completos conectados por una red§ Se aprovechan los tiempos no usados

CentralManager

JobJobJobJobJob

•Busy

•Busy

•Idle

•IdleJob

Job

•“idle”

•“idle.”

Condor

§ http://www.cs.wsic.edu/confor§ Sistema que convierte un conjunto de workstations y clusters

dedicados en un sistema distribuido de alto productividad§ Los trabajos se ejecutan en un nodo solo cuando el usuario no

está usándolo interactivamente§ Tipos de aplicaciones a ejecutar:

q Secuencialesq Paralelas (MPI)q DAG

•Félix García Carballeira •Sistemas Distribuidos •18

Clusters en el top500

•Félix García Carballeira •Sistemas Distribuidos •19

Ejemplo: Google server

§ Clusters geográficamente distribuidosq Cada uno con miles de máquinas

§ El DNS traduce las peticiones al cluster más cercano§ Los servicios ofrecen paralelismo y tolerancia a fallos§ El objetivo de la arquitectura es atender miles de peticiones

con tiempos de servicio muy pequeños

•Félix García Carballeira •Sistemas Distribuidos •20

Software techniques to tolerate latency variability in large-scale services§ From:

q The Tail at ScaleJeffrey Dean and Luiz Andree BarrosoDoi:10.1145/2408776.2408794 Communications of theACM| february 2013 | vol. 56 | no. 2

•Sistemas Distribuidos•Félix García Carballeira •21

Objective

§ To provide low latency for interactive services as the size and complexity of the system scales up

§ To reduce temporary high-latency episodes§ To provide services with predictably responsive using less-

predictable partsq Just as fault tolerant computing create a reliable service

using less-reliable parts

•Félix García Carballeira •Sistemas Distribuidos •22

Why variability exists?

§ Shared resources. Different applications using the same machine (CPU cores, caches,…)

§ Daemons that execute in background and when are scheduled produce multi-milliseconds stops

§ Global resources sharing. Applications running on different machines that use global resourcesq Shared file systems, network switches, …

§ Maintenance activities:q Data reconstruction in distributed file systemsq Periodic log compactionsq Periodic garbage collection in garbage-collected languages

•Félix García Carballeira •Sistemas Distribuidos •23

Why variability exists? (cont.)

§ Queuing. Multiple layers of queuing in intermediate servers and network switches amplify latency variability

§ Power limits. Modern CPUs are designed to temporarily run above their average power envelope to mitigate thermal effects

§ Garbage collection in solid-sate storage devices, that need to periodically garbage collect a large number of data blocks increasing read latency by a factor of 100

§ Energy management. Power-saving modes in many types save energy but add latency when moving from inactive to active modes.

•Félix García Carballeira •Sistemas Distribuidos •24

Latency variability is amplified by scale

§ Common technique to reduce latency in large scale online services:q Parallelize operations across many different machines, with

each sub-operation co-located with its portion of a large dataset.

q These sub-operations must all complete within a strict deadline for the service to feel responsive

•Félix García Carballeira •Sistemas Distribuidos •25

Problem of parallelization

§ Consider a system where each server typically responds in 10 ms the 99 % of the time and 1 second the 1 %

§ What happens when a request in handled only in one such server?q One user request in 100 will be slow (one second)

§ What happen when the request is parallelize in 100 sub-operations that run in 100 such servers in parallel?

•Félix García Carballeira •Sistemas Distribuidos •26

Problem of parallelization

§ Consider a system where each server typically responds in 10 ms the 99 % of the time and 1 second the 1 %

§ What happen when a request in handled only in one such server?q One user request in 100 will be slow (one second)

§ What happen when the request is parallelize in 100 sub-operations that run in 100 such servers in parallel?q A request finalize in 1 ms when all servers complete the

sub-operation in 1 ms§ Probability = 0.99100 = 0.37 (parallel system)

q Therefore: 63% of user requests will take more than one second

•Félix García Carballeira •Sistemas Distribuidos •27

For large scale

§ Consider a better serer with only one in 10000 requests experiencing more than one second latencies

§ If the request is parallelize in 2000 such servers:q 20 % of user requests will take more than one second

•Félix García Carballeira •Sistemas Distribuidos •28

Probability on one-second service-level response time

•Félix García Carballeira •Sistemas Distribuidos •29

Techniques to reduce variability latency

§ Techniques to reduce latency variability

§ Techniques to tolerate latency variability

•Félix García Carballeira •Sistemas Distribuidos •30

Basic latency reduction techniques

§ Differentiated service classesq Prioritized request queues in servers

§ Objective: keep low-level queues short so higher-level policies take effect more quickly

§ This allows the servers to issue incoming high-priority interactive requests before request for latency-intensive batch operations are served

§ Break large requests into sequence of small requests to allow interleaving of the execution of other short-running requestsq Google’s web search engine uses it to prevent a small

number of very computationally expensive queries to add latency to a large number of concurrent cheaper queries

•Félix García Carballeira •Sistemas Distribuidos •31

Basic latency reduction techniques (cont.)§ Manage expensive background activities

q Background tasks can create CPU, disk or network loadq e.g: log compaction in distributed storage systems, garbage

collectionq Break down heavyweight operations into smaller operationsq Defer expensive activity until load is lower

§ Synchronize background activities in all serversq Enforces a brief burst of activity on each machine

simultaneouslyq Without synchronization, a few machines are always doing

some background activity, increasing the latency in parallelized requests

•Félix García Carballeira •Sistemas Distribuidos •32

Techniques to tolerate latency variability

§ Within request short-term adaptationsq Take action within single high-level requestq Goals:

§ Reduce overall latency§ Don’t increase resource use too much

§ Cross request adaptationq Examine recent behaviorq Improve latency of future requestsq Time scale: 10 seconds to minutes

•Félix García Carballeira •Sistemas Distribuidos •33

Within request short-term adaptations

§ Hedged requests: to issue the same request to multiple replicas and use the results from whichever replica respond firstq The client sends the requests with a brief delayq The client cancels remaining outstanding requests once the first result is

received§ Google benchmark that reads the value of 1000 keys stored in a BigTable

distributed across 100 different servers:

§ Low increase in request load: 10 ms delay: < 5% extra requests;

•Félix García Carballeira •Sistemas Distribuidos •34

Avg Std Dev 95%ile 99%ileNo replication 33ms 1524ms 24 ms 52 msDelay of 10 ms 14ms 4 ms 20 ms 23 ms

Within request short-term adaptations(cont.)§ Cross-server cancellation

q Client sends a request to first replicaq Wait a brief delay (1 or 2 ms) and send to second replicaq Servers cancel request on other replica when starting to

execute

•Félix García Carballeira •Sistemas Distribuidos •35

Probe remote queues first vs submit work to two queues simultaneously§ Probe remote queues first is less effective than submitting

work to two queues simultaneously:q Load levels can change between prove and request timeq Requests service times can be difficult to estimate due to

underlying system and hardware variabilityq Clients can create temporary hot spots by all clients picking

the same (least loaded) server at the same time

•Félix García Carballeira •Sistemas Distribuidos •36

Cross request adaptation

§ Micro-partitions: q Generate many more partitions than there are machines in

the serviceq Dynamic assignment and load balancing of theses partitions

to particular machinesq E.g: BigTable, query serving systems, GFS,…

•Félix García Carballeira •Sistemas Distribuidos •37

Micro partitions

§ Load balancing:

•Félix García Carballeira •Sistemas Distribuidos •38

Micro partitions

§ Speeds failure recovery

•Félix García Carballeira •Sistemas Distribuidos •39

Cross request adaptation (cont.)

§ Selective replication: detect heavily used items and make more replicas (statically or dynamically)q Static: more replicas of important docsq Dynamic: more replicas of particular documents as the

query load increases

•Félix García Carballeira •Sistemas Distribuidos •40

Cross request adaptation (cont.)

§ Latency-induced probation: exclude a particularly slow machine, putting it on probation q The source of this problem can be temporary

§ Removing capacity and resources under load improve, however, latency

§ Continue sending shadow requests to serverq Allow to measuring latencyq Return to service when latency back down

•Félix García Carballeira •Sistemas Distribuidos •41

Grid computing

§ Tecnología cuyo objetivo es la compartición de recursos en Internet de forma uniforme, transparente, segura, eficiente y fiable

§ Análoga a las redes de suministro eléctrico:q Ofrecen un único punto de acceso a un conjunto de recursos

distribuidosq Geográficamente en diferentes dominios de

administración

•Félix García Carballeira •42•Sistemas Distribuidos

Some definitions

§ A grid system is a collection of distributed resources connected by a network, located at different administrative domains, accessible to users and applications in order to reduce overhead and increase the performance.

§ A grid application is an application that operates in a grid environment.

§ A grid middleware is the software that facilitates writing grid applications and manages the grid infrastructure.

•Félix García Carballeira •43•Sistemas Distribuidos

Main grid characteristics

§ Large scale§ Geographical distribution§ Heterogeneity§ Resource sharing§ Multiple administration domains§ Resource coordination§ Transparent access§ Dependable access§ Consistent access

•Félix García Carballeira •44•Sistemas Distribuidos

Main grid uses

§ Distributed supercomputing

§ High throughput computing

§ On-demand computing

§ Data-intensive computing

§ Collaborative computing

•Félix García Carballeira •45•Sistemas Distribuidos

Resources

§ Processors§ Storage§ Networks§ Software§ Special Devices

•Félix García Carballeira •46•Sistemas Distribuidos

Types of grids

§ Intragridsq Same organizationq Heterogeneous resourcesq LAN connectionq Less security problemsq Less reliability problems

LAN

•Félix García Carballeira •47•Sistemas Distribuidos

Types of grids

§ Intergridq Multiple organizationsq Multiple administrative

domainsq Connection using a WANq Security is an important

thingq Reliability problems

WAN

•Félix García Carballeira •48•Sistemas Distribuidos

Grid components

Applications

Tools

Local resources

Middleware

•Félix García Carballeira •49•Sistemas Distribuidos

User point of view

applications

results

q Brokersq Schedulersq Job managementq Data managementq Security model

•Félix García Carballeira •50•Sistemas Distribuidos

Jobs execution

ResourceBroker

Job SubmissionService

StorageElement

ComputeElement

Information Service

ReplicaCatalogue

Submit a job

Brokerinfo

Input data

Output data

Job status

•Félix García Carballeira •51•Sistemas Distribuidos

JSDL

§ JSDL stands for Job Submission Description Languageq A language for describing the requirements of computational

jobs for submission to Grids and other systems.

§ A JSDL document describes the job requirements q What to do, not how to do it

•Félix García Carballeira •52•Sistemas Distribuidos

JSDL Document

§A JSDL document is an XML document§ It may contain

q Generic (job) identification information q Application descriptionq Resource requirements (main focus is computational jobs)q Description of required data files

§Out of scope, for JSDL version 1.0q Schedulingq Workflowq Securityq …

•Félix García Carballeira •53•Sistemas Distribuidos

Data Staging Requirement

§ Solutionq Assume simple model: Stage-in – Execute – Stage-Outq Files required for execution

§ Files are staged-in before the job can start executing q Files to preserve

§ Files are staged-out after the job finishes execution

Stage-In Execute Stage-Out

•Félix García Carballeira •54•Sistemas Distribuidos

Applications not appropriate for grid

§ Parallel applications with many interprocess communication

§ Transaction

§ Applications with many interdependencies between jobs

§ Applications with non standard network protocols

•Félix García Carballeira •55•Sistemas Distribuidos

Replication

§ One server with famous datasets can become in a bottleneck.

§ Large Bandwidth could be consumed to transfer huge datasetsfrom server to client.

§ Access latency could be significant in grids

§ If one server fail the dataset stored in the server can not beaccessed.

•Félix García Carballeira •56•Sistemas Distribuidos

Load balancing

LAN

LAN

LAN

LAN

LAN

LAN

LAN

LAN

LAN

T1

T1

T2

T2

T2

T2

T1

T2

T2

WAN

WANWAN WAN

•Félix García Carballeira •57•Sistemas Distribuidos

Concepts

§ Replication is the distribution of multiple copies of data across the grid.

§ Reduce data access overhead providing faster access to data§ Increases data availability

q Avoid single points of failureq Resilient to component failures

§ Helps in load-balancing in the Grid§ Improved Scalability

q Reduce bottlenecks

•Félix García Carballeira •58•Sistemas Distribuidos

Replication system components

Application

Metadata service

Replication Location service

Replication selection service

Data transferservice

12

3

45

6

7

8Replication

consistency service

•Félix García Carballeira •59•Sistemas Distribuidos

Filenames

§ Logical Filename (LFN) is the name that refers to the full set of replicas for a file. q Logical identifierq Based on the LFN, all replicas can be looked up in a replica

catalogue.

§ Physical file name (PFN) is the location of a copy of the file on a storage system . q Host + physical locationq May be a physical filename of a file stored on disk

•Félix García Carballeira •60•Sistemas Distribuidos

Types of replication

§ Static Replication:q Replicas have to be manually created and managed. q Not feasible for large datasets, and large number of nodes.q Cannot adapt to changes.

§ Dynamic Replication:q All tasks (replica creation, deletion and management) are

done automatically.

•Félix García Carballeira •61•Sistemas Distribuidos

Replica selection

§ Given a logical file name, discover the physical locations of the file.

§ Replica optimization:q Select the “best” replica from this set of physical replica

locations, based on its performance and data access features.

•Félix García Carballeira •62•Sistemas Distribuidos

Consistency

§ Most of the data is read-only. If updates occur, general update propagation mechanisms are needed.

§ Protocols:q Strong consistency protocols q Weak consistency (lazy replication)

•Félix García Carballeira •63•Sistemas Distribuidos

Modelo de ejecución I

§ Programa§ Datos

•Félix García Carballeira •64•Sistemas Distribuidos

Modelo de ejecución I

§ Programa§ Datos

Gestor de recursos

Envío del trabajo

•Félix García Carballeira •65•Sistemas Distribuidos

Modelo de ejecución I

§ Programa§ Datos

Gestor de recursos

Servicio deinformación

•Félix García Carballeira •66•Sistemas Distribuidos

Modelo de ejecución I

§ Programa§ Datos

Gestor de recursos

Servicio deinformación

Envío del trabajo

•Félix García Carballeira •67•Sistemas Distribuidos

Modelo de ejecución I

§ Programa§ Datos

Gestor de recursos

Servicio deinformación

•Félix García Carballeira •68•Sistemas Distribuidos

Modelo de ejecución I

§ Programa§ Datos

Gestor de recursos

Servicio deinformación

Se ejecutaEl trabajo

•Félix García Carballeira •69•Sistemas Distribuidos

Modelo de ejecución I

§ Programa§ Datos

Gestor de recursos

Servicio deinformación

Resultados De salida

•Félix García Carballeira •70•Sistemas Distribuidos

Modelo de ejecución I

Gestor de recursos

Servicio deinformación

Resultados De salida

•Félix García Carballeira •71•Sistemas Distribuidos

Modelo de ejecución I

Gestor de recursos

Servicio deinformación

•Félix García Carballeira •72•Sistemas Distribuidos

Modelo de ejecución II

Programa

Datos

•Félix García Carballeira •73•Sistemas Distribuidos

Modelo de ejecución II

Programa

Datos

Gestor de recursos

Envío del trabajo

•Félix García Carballeira •74•Sistemas Distribuidos

Modelo de ejecución II

Datos

Gestor de recursos

Servicio deinformación

Catalogo de réplicas

•Félix García Carballeira •75•Sistemas Distribuidos

Modelo de ejecución II

Datos

Gestor de recursos

Servicio deinformación

Envío del trabajo

•Félix García Carballeira •76•Sistemas Distribuidos

Modelo de ejecución II

Datos

Gestor de recursos

Servicio deinformación

•Félix García Carballeira •77•Sistemas Distribuidos

Modelo de ejecución II

Datos

Gestor de recursos

Servicio deinformación

•Félix García Carballeira •78•Sistemas Distribuidos

Modelo de ejecución II

Datos

Gestor de recursos

Servicio deinformación

Se ejecutaEl trabajo

•Félix García Carballeira •79•Sistemas Distribuidos

Modelo de ejecución II

Datos

Gestor de recursos

Servicio deinformación

resultados

•Félix García Carballeira •80•Sistemas Distribuidos

Modelo de ejecución II

Datos

Gestor de recursos

Servicio deinformación

resultados

•Félix García Carballeira •81•Sistemas Distribuidos

Modelo de ejecución II

Programa

Datos

Gestor de recursos

Servicio deinformación

resultados

•Félix García Carballeira •82•Sistemas Distribuidos

Globus toolkit

§ Introduction to Globus Toolkit

§ Componentsq Common runtime componentsq Securityq Execution managementq Data managementq Information services

•Félix García Carballeira •83•Sistemas Distribuidos

Globus Toolkit

§ Software toolkit, developed by The Globus Alliance http://www.globus.org

§ It can use to program grid-based applications.

§ Includes high-level services that we can use to build Grid applications. It includes:q A job submission infrastructureq A security infrastructure q Data management services

•Félix García Carballeira •84•Sistemas Distribuidos

What is not the Globus toolkit?

§ A user tool

§ An application

§ A scheduler

•Félix García Carballeira •85•Sistemas Distribuidos

Stables versions

§ Version v1.0.0 (10/29/1998)§ Version 1.1.1 (12/1999)§ Release 1.1.4 (9/2000)§ Version 2.0 (2001)§ Version 2.4 (2002)§ Version 3 (jun/2003)§ Version 4 (may/2005)§ Versión 5 (2010)§ Versión 5.2.4 (2013)§ Versión 6.0 (actual)

•Félix García Carballeira •86•Sistemas Distribuidos

Globus Toolkit Components

•Félix García Carballeira •87•Sistemas Distribuidos

Execution management

§ Grid Resource Allocation and Management (GRAM) § GRAM allows to submit, monitor and cancel job.§ GRAM is not a scheduler.§ Two implementations

q WS GRAMq Pre-WS GRAM

•Félix García Carballeira •88•Sistemas Distribuidos

MetaSchedulers

GlobusGRAM

CONDOR

GlobusGRAM

LSF

GlobusGRAM

PBS

Site2 Site3

Job submissionservice

Condor-G

Broker MDS +Replica CatalogSubmit jobs

ResourceDiscovery

Site1

•Félix García Carballeira •89•Sistemas Distribuidos

Data Management

§ Data transferq GridFTPq Reliable File Transfer (RFT) service

§ Data Replicationq Replica Location Service (RLS)

•Félix García Carballeira •90•Sistemas Distribuidos

GridFTP

§ GridFTP is a high-performance, secure, reliable data transfer protocol optimized for high-bandwidth wide-area networks

§ Based on FTP protocol q GridFTP: Protocol Extensions to FTP for the Gridq Global Grid Forum Recommendationq http://www.ggf.org/documents/GWD-R/GFD-R.020.pdf

§ Globus providesq Server implementationq Client tools (command line programs)q Development libraries

•Félix García Carballeira •91•Sistemas Distribuidos

Features

§ GSI Security§ Third-party transfers § Partial file access § Reliability/restart § Large file support § Data channel reuse § Parallel transfers § TCP Buffer size control § Based on Standards § Client side tool called globus-url-copy§ Development libraries and APIs

•Félix García Carballeira •92•Sistemas Distribuidos

Parallel transfers

•Félix García Carballeira •93•Sistemas Distribuidos

One stream versus multiples streams

•Félix García Carballeira •94•Sistemas Distribuidos

Striped servers

•Félix García Carballeira •Sistemas Distribuidos •95

Control

•globus-url-copy -stripe

•commands

•Parallel data transfer

globus-gridftp-server -p 7000 -r machineA:5000,machineB:6000,machineC4000

Data Data Data

•machineB•machineA •machineC

machineA> globus-gridftp-server -p 5000 –dn

machineB> globus-gridftp-server -p 6000 -dn

machineC> globus-gridftp-server -p 4000 -dn

Replica location service in Globus

§ The Replica Location Service (RLS) is a distributed registry service that records the locations of data copies and allows discovery of replicas.

§ Maintains mappings between logical identifiers and physical names.

§ RLS was designed and implemented in a collaboration between the European DataGrid project and the Globus Alliance

•Félix García Carballeira •96•Sistemas Distribuidos (2015-2016)

RLS components

LRC LRC LRC LRC

RLI RLI RLI

Replica Location Index Nodes

Local Replica Catalogs

•Félix García Carballeira •97•Sistemas Distribuidos (2015-2016)

RLS components

§ Local Replica Catalogs (LRCs) stores mappings between logical names for data items and the physical locations of replicas of those items.

§ Replica Location Index (RLI) nodes aggregate information about one or more LRCs.

§ LRCs use soft state update mechanisms to inform RLIs about their state: relaxed consistency of index.

§ Optional compression of state updates reduces communication, CPU and storage overheads

§ Membership service registers participating LRCs and RLIs and deals with changes in membership

•Félix García Carballeira •98•Sistemas Distribuidos (2015-2016)

RLS behavior

§ Files are registered at LRC. LRC updates information to RLI.

§ The replication service begins by locating the desired files, first by querying a Replica Location Index (RLI), which identifies the site or sites where the file may be present.

§ Then by querying one or more Local Replica Catalogs (LRCs) to identify the exact physical location of the file.

§ Finally, transfer de data using gridFTP or RFT.

•Félix García Carballeira •99•Sistemas Distribuidos (2015-2016)

Example 1

LF1LF7

PFxPFy

ReplicaSite 1

LF8LFz

PFuPFv

ReplicaSite 2

LFz PFvReplicaSite 3

LF1 Site 1LF7 Site 1LF8 Site 2LFz Site 2LFz Site 3

Global ReplicaIndex Node

Soft StateCommunicationsof LNRC State

User Queries:Where is LFi replicated?

Source: Globus Alliance§ All updates sent to a centralized GRIN§ Not scalable: All queries serviced by a single

index§ Not reliable: Single point of failure

•Félix García Carballeira •100•Sistemas Distribuidos

Example 2

LF1LF7

PFxPFy

ReplicaSite 1

LF1LFz

PFuPFv

ReplicaSite 2

LFz PFkReplicaSite 3

•GRIN 1

•Soft State updates

LFz PFnReplicaSite 4

•User Queries•Concerning•LF1..LF100

•GRIN 2

•GRIN 3

•GRIN 4

•User Queries•Concerning•LFa..LFz

•LF1 Site 1•LF1 Site 2•LF7 Site 1

•LF1 Site 1•LF1 Site 2•LF7 Site 1

•LFz Site 2•LFz Site 2•LF3 Site 3

•LFz Site 2•LFz Site 2•LF3 Site 3

Source: Globus Alliance§ RLS with LFN partitioning§ Replicated RLI§ More scalable, reliable

•Félix García Carballeira •101•Sistemas Distribuidos

Ejemplos

§ Clusters§ Grid computing§ Sistemas peer to peer§ Computación voluntaria§ Cloud computing

•Diseño de Sistemas Distribuidos • Félix García Carballeira •102

Sistemas Peer to peer

§ Sistema totalmente distribuido de gran escala:q Origen en 1999 con el sistema Napsterq Sin control centralizado, múltiples dominios de

administraciónq Los nodos participantes son simétricos en funcionalidad y

tareas (cliente/servidor)q Gran número de nodos poco fiablesq Utilizado fundamentalmente para la distribución de

contenidos y compartición de ficheros

•Diseño de Sistemas Distribuidos • Félix García Carballeira •103

Características de los sistemas P2P

§ Gran capacidadq De almacenamiento q Muchas conexiones de redq De procesamientoq Alto nivel de paralelismo

§ Gran distribución geográfica§ Falta de fiabilidad

q Se consigue fiabilidad con replicación§ De datos§ De conexiones de red

•Diseño de Sistemas Distribuidos • Félix García Carballeira •104

Peer to Peer y sistemas grid

§ Sistemas gridq Compartición coordinada de recursos, basado en estándares

y con mayores niveles de fiabilidad§ Sistemas Peer to peer

q Sistemas menos fiables, más dinámicos y con menos estandarización

•Diseño de Sistemas Distribuidos • Félix García Carballeira •105

Principales aplicaciones

§ Compartición y distribución de ficherosq Napster, Gnutella, eDonkey, BitTorrent, …

§ Streamingq PPLive, CoolStreaming, iPlayer, …

§ Telefoníaq Skype

§ Computación voluntariaq SETI@home

•Diseño de Sistemas Distribuidos • Félix García Carballeira •106

Principales retos de los sistemas P2P

§ Búsqueda§ Cómo distribuir los datos§ Equilibrio de carga§ Integridad de los datos§ Disponibilidad, tolerancia a fallos§ Consistencia de los datos§ Seguridad

•Diseño de Sistemas Distribuidos • Félix García Carballeira •107

Arquitectura de un sistema P2P

•Diseño de Sistemas Distribuidos • Félix García Carballeira •108

Overlay network

§ Primitivas básicasq Joinq Publishq Searchq Fetch

El problema de la búsqueda

•Diseño de Sistemas Distribuidos • Félix García Carballeira •109

•Internet

•N1•N2 •N3

•N6•N5•N4

•Publisher

•Key=“title”•Value=MP3 data…

•Client•Search(“title”)

•?

Clasificación según el grado de centralización de la red§ Arquitecturas descentralizadas

q Todos los nodos realizan las mismas tareas y no hay un coordinador central

§ Arquitecturas parcialmente centralizadasq Existe un servidor central que facilita la interacción entre

los nodosq El intercambio se hace entre los nodos de la red

§ Arquitecturas centralizadas híbridasq Algunos nodos actúan como controladores de los

participantes y del sistema (supernodos)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •110

Red de recubrimiento

§ Los sistemas P2P mantienen una red de recubrimiento (overlay) entre los nodos.

§ Una red overlay es un grafo G = {N, E}q N: conjunto de participantesq E: enlaces q Un par de nodos conectados por un enlace E utilizan sus

direcciones IP para comunicarse entre ellos mediante Internet

•Diseño de Sistemas Distribuidos • Félix García Carballeira •111

Operación Join

§ Sistemas parcialmente centralizadosq Los nodos entran y salen de la red contactando con el

controladorq Los enlaces entre los nodos se forman dinámicamente entre

los participantes introducidos en el controlador§ Sistemas descentralizados

q Los nodos que entran en la red obtienen la IP y el puerto de un nodo que ya participa en el sistema a través de un nodo bootstrap que se puede obtener de un sitio Web.

•Diseño de Sistemas Distribuidos • Félix García Carballeira •112

Clasificación según la estructura de la red§ No estructuradas

q No hay restricciones sobre los enlaces entre los nodosq El contenido no está relacionado con la topología de la red, q El objeto necesita ser localizado

§ Sistemas estructuradosq Cada nodo tiene un identificador único q El grafo tiene una estructura específica: el identificador de

un nodo determina su posición dentro del grafoq Los objetos se almacenan en posiciones de la red

especificadasq Ofrecen funciones de localización de ficheros

•Diseño de Sistemas Distribuidos • Félix García Carballeira •113

Estado distribuido

§ Estado: conjunto de objetos con claves únicasq Operaciones: Publish, Search, Fetch

§ Sistemas centralizadosq El objeto se almacena en el nodo que lo insertó y en los

nodos que han accedido posteriormente a élq El controlador almacena esa información (Napster)

§ En sistemas no estructuradosq El objeto se almacena en el nodo que lo insertó y en los

nodos que han accedido posteriormente a élq La información de búsqueda se incluye en los nodos

(Gnutella)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •114

Estado distribuido

§ Redes estructuradasq El estado se almacena utilizando Tablas hash distribuidas

(DHT, Distributed has table)q Cada objeto viene dado por <clave, valor>

•Diseño de Sistemas Distribuidos • Félix García Carballeira •115

§ Inserción de un objeto (k, valor)§ Se determina el nodo responsable

de almacenar la clave k

Estado distribuido

§ Redes estructuradasq El estado se almacena utilizando Tablas hash distribuidas

(DHT, Distributed has table)q Cada objeto viene dado por <clave, valor>

•Diseño de Sistemas Distribuidos • Félix García Carballeira •116

§ Inserción de un objeto (k, valor)§ Se determina el nodo responsable

de almacenar la clave k

Estado distribuido

§ Redes estructuradasq El estado se almacena utilizando Tablas hash distribuidas

(DHT, Distributed has table)q Cada objeto viene dado por <clave, valor>

•Diseño de Sistemas Distribuidos • Félix García Carballeira •117

§ Inserción de un objeto (k, valor)§ Se determina el nodo responsable

de almacenar la clave k§ Se almacena (k, valor) en ese

nodo

Estado distribuido

§ Redes estructuradasq El estado se almacena utilizando Tablas hash distribuidas

(DHT, Distributed has table)q Cada objeto viene dado por <clave, valor>

•Diseño de Sistemas Distribuidos • Félix García Carballeira •118

§ Inserción de un objeto (k, valor)§ Se determina el nodo responsable

de almacenar la clave k§ Se almacena (k, valor) en ese

nodo§ El nodo propaga réplicas a otros

nodos

Estado distribuido

§ Redes estructuradasq El estado se almacena utilizando Tablas hash distribuidas

(DHT, Distributed has table)q Cada objeto viene dado por <clave, valor>

•Diseño de Sistemas Distribuidos • Félix García Carballeira •119

§ Ejemplos:§ Chord, Chord: A Scalable

Peer-to-peer Lookup Service for Internet ApplicationsIon Stoica, Robert Morris, David Karger, M. Frans Kaashoek, HariBalakrishnan

§ eDonkey§ BitTorrent, Pastry, CAN

Napster

§ Arquitectura centralizadaq Servidor central para localizar los ficherosq Transferencia de ficheros directamente entre los usuarios

•Diseño de Sistemas Distribuidos • Félix García Carballeira •120

Funcionamiento de Napster

§ Los usuarios se registran y y publican información sobre sus contenidos (Joiny Publish)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •121

Funcionamiento de Napster

§ Los usuarios realizan consultas al servidor central (Search)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •122

Funcionamiento de Napster

§ Los usuarios consultan con los nodos que pueden tener los datos para buscar la mejor tasa de transferencia

•Diseño de Sistemas Distribuidos • Félix García Carballeira •123

Funcionamiento de Napster

§ Los usuarios recuperan los datos directamente del nodo que los tiene (Fetch)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •124

Gnutella

§ Arquitectura totalmente descentralizada y no estructurada§ No hay servidor central§ Método de búsqueda: inundación de mensajes (flooding)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •125

Método básico de inundación

§ Un nodo envía una consulta a todos sus vecinos§ Si el vecino tiene el resultado notifica al nodo y éste obtiene el resultado

directamente§ Si el vecino no tiene el resultado decrementa el TTL y encamina la petición

a todos sus vecinos (mientras TTL >0)§ Problemas:

q Un nodo puede ser visitado más de una vezq Se pueden obtener resultados redundantes o incluso no obtener

resultados aunque existanq Gran cantidad de mensajesq Dificultad para elegir TTL

§ Si es demasiado alto: mucha sobrecarga en la red§ Si es demasiado bajo: pueden no obtenerse resultados

•Diseño de Sistemas Distribuidos • Félix García Carballeira •126

Supernodos

§ Ejemplos: Kazaa, Edutella,

•Diseño de Sistemas Distribuidos • Félix García Carballeira •127

Supernodos

§ Join: el cliente contacta con un supernodo§ Publish: envía la lista de contenidos a su supernodo§ Search: pide a su supernodo y hay inundación entre supernodos§ Fetch: se obtiene el fichero directamente del cliente

•Diseño de Sistemas Distribuidos • Félix García Carballeira •128

Bit torrent

§ Un nodo inicial (seed) dispone del fichero§ El fichero se rompe en segmentos§ Se construye un fichero .torrent

q Los metadatos del ficheroq La dirección de un nodo trackerq La lista de segmentos y sus checksums

§ El tracker es un nodo que coordina la distribución del fichero§ El fichero .torrent se publica en la web

•Diseño de Sistemas Distribuidos • Félix García Carballeira •129

Funcionamiento

§ Un cliente que desea descargar el fichero obtiene el fichero .torrent (búsqueda utilizando un servicio externo, ej: Google)q Contacta con el tracker identificado en el fichero .torrentq El tracker envía una lista (aleatoria) de nodos que tienen o

están descargando el ficheroq El cliente contacta con los nodos para ver que segmentos

tienen§ Transferencia en paralelo

q El cliente solicita a los nodos segmentos y comprueba que son correctos a través de los cheksums

•Diseño de Sistemas Distribuidos • Félix García Carballeira •130

Ejemplo de DHT

§ Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications

§ Protocolo Chord:q Especifica cómo localizar los objetos según su claveq Cómo entran nuevos nodos en el sistemaq Cómo recuperarse de los fallos o de las salidas de los nodos

•Diseño de Sistemas Distribuidos • Félix García Carballeira •131

Hash

§ La función hash asigna a cada nodo y clave un identificador de m bits utilizando alguna función hash como SHA-1q ID(nodo) = hash (IP, puerto)q ID(clave) = hash (clave)

§ Propiedades de la hash:q Equilibrio de carga: todos los nodos reciben

aproximadamente el mismo número de clavesq Cuando un N-ésimo nodo entra o sale de la red, solo una

fracción de las claves O(1/N) tienen que ser movidas a una localización diferente.

•Diseño de Sistemas Distribuidos • Félix García Carballeira •132

Nodos en anillo

•Diseño de Sistemas Distribuidos • Félix García Carballeira •133

§ Espacio de direcciones de m bits

§ Los nodos y claves se mapean a este espacio con la función hash

§ Ejemplo: q m= 3 bits

§ Id = {0, 1, 2, 3, 4, 5, 6, 7}q Nodos en el sistema {0, 1, 3}

01

2

34

5

6

7

•nodo•identificador

Operaciones

§ Join: cuando un cliente desea conectarse al anillo contacta con un nodo “bootstrap” para obtener un identificador, su sucesor y su predecesor

§ Publish: un contenido con clave K se publica en el nodo con igual o mayor identificador de la clave

§ Search: la búsqueda se encamina al nodo K a través de las estructuras de datos que mantienen los nodos del anillo

§ Fetch: directamente del nodo que almacena el elemento

•Diseño de Sistemas Distribuidos • Félix García Carballeira •134

Asignación de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •135

§ Una clave k se asigna al nodo con igual o mayor identificador de la clave.

§ sucesor(k) es el nodo que almacena la clave kq sucesor(1) = 1q sucesor(6) = 0q sucesor(2) = 3

01

2

34

5

6

7

6

1

2

•nodo•identificador

•claves

Asignación de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •136

§ Cuando un nodo n entra en la red, algunas de las claves asignadas al sucesor(n) se le asignan a n

01

2

34

5

6

7

5

1

2

7

Asignación de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •137

§ Cuando un nodo n entra en la red, algunas de las claves asignadas al sucesor(n) se le asignan a n

01

2

34

5

6

7

5

1

2

7

Asignación de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •138

§ Cuando un nodo n entra en la red, algunas de las claves asignadas al sucesor(n) se le asignan a n

01

2

34

5

6

7

5

1

2

7

Asignación de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •139

§ Cuando un nodo n deja la red, todas sus claves son asignadas al sucesor(n) 0

1

2

34

5

6

7 1

2

5

7

Búsqueda de claves

§ Cada nodo n almacena una tabla de encaminamiento con mentradas tabla finger.

§ En el nodo nfinger[i] = succesor (n + 2i-1)

§ Para m = 3, cada nodo almacena una tabla con 3 entradas

•Diseño de Sistemas Distribuidos • Félix García Carballeira •140

01

2

34

5

6

7

Búsqueda de claves

§ Para el nodo n = 1 se almacenan:q sucesor(1 + 20) = sucesor(2)q sucesor(1 + 21) = sucesor(3)q sucesor(1 + 22)= sucesor(5)

q sucesor(2) = 3q sucesor(3) = 3q sucesor(5) = 0

§ Cada nodo almacena información de un pequeño número de nodos

•Diseño de Sistemas Distribuidos • Félix García Carballeira •141

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 0

Búsqueda de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •142

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 0

s suc(s)

4 0

5 0

7 0

s suc(s)

1 1

2 3

4 0

En cada nodo n, la primera entrada es el sucesor de n en el anillo

Búsqueda de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •143

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 0

s suc(s)

4 0

5 0

7 0

s suc(s)

1 1

2 3

4 0

Lookup(4)

6 1

2

Cuando se recibe una petición para un elemento K en un nodo:§ Comprueba si la

almacena localmente§ Si no, la encamina al nodo de

su tabla con identificador más grande que no exceda de K

4

Búsqueda de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •144

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 0

s suc(s)

4 0

5 0

7 0

s suc(s)

1 1

2 3

4 0

Lookup(4)

6 1

2

Cuando se recibe una petición para un elemento K en un nodo:§ Comprueba si la

almacena localmente§ Si no, la encamina al nodo de

su tabla con identificador más grande que no exceda de K

4

Búsqueda de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •145

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 0

s suc(s)

4 0

5 0

7 0

s suc(s)

1 1

2 3

4 0

Lookup(4)

6 1

2

4

Búsqueda de claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •146

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 0

s suc(s)

4 0

5 0

7 0

s suc(s)

1 1

2 3

4 0

Lookup(4)

6 1

2

Nº de mensajes O(log N)

4

Operación join

§ Cuando un nodo n entra en el sistemaq La tabla finger de cada nodo debe estar correctamente llenaq Cada clave se almacena en el nodo sucesor(k)

§ Cuando un nodo entra en la red pide los sucesores de su tabla finger a un nodo de la red

•Diseño de Sistemas Distribuidos • Félix García Carballeira •147

Operación join del nodo 6

•Diseño de Sistemas Distribuidos • Félix García Carballeira •148

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 0

s suc(s)

4 0

5 0

7 0

s suc(s)

1 1

2 3

4 0

6 1

2

s suc(s)

7 0

0 0

2 3

Operación join del nodo 6

•Diseño de Sistemas Distribuidos • Félix García Carballeira •149

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 0

s suc(s)

4 0

5 0

7 0

s suc(s)

1 1

2 3

4 0

6 1

2

s suc(s)

7 0

0 0

2 3

Se actualizan las tablas finger

•Diseño de Sistemas Distribuidos • Félix García Carballeira •150

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 6

s suc(s)

4 0

5 6

7 0

s suc(s)

1 1

2 3

4 6

6 1

2

s suc(s)

7 0

0 0

2 3

Se reasignan claves

•Diseño de Sistemas Distribuidos • Félix García Carballeira •151

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 6

s suc(s)

4 0

5 6

7 0

s suc(s)

1 1

2 3

4 6

6

1

2

s suc(s)

7 0

0 0

2 3

Nueva búsqueda

•Diseño de Sistemas Distribuidos • Félix García Carballeira •152

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 6

s suc(s)

4 6

5 6

7 0

s suc(s)

1 1

2 3

4 6

6

1

2

s suc(s)

7 0

0 0

2 3

lookup(6)

Nueva búsqueda

•Diseño de Sistemas Distribuidos • Félix García Carballeira •153

01

2

34

5

6

7

s suc(s)

2 3

3 3

5 6

s suc(s)

4 6

5 6

7 0

s suc(s)

1 1

2 3

4 6

6

1

2

s suc(s)

7 0

0 0

2 3

lookup(6)

Ejemplos

§ Grid computing§ Sistemas peer to peer§ Computación voluntaria§ Cloud computing

•Diseño de Sistemas Distribuidos • Félix García Carballeira •154

•Diseño de Sistemas Distribuidos • Félix García Carballeira •155

InternetProyectos

voluntarios

Computación voluntaria

Computación voluntaria

§ La computación voluntaria es un tipo de computacióndistribuida que se basa en el empleo de ordenadores(voluntarios) conectados a Internet.

§ En general, estos ordenadores suelen ser ordenadoresdomésticos de uso privado, que se utilizan para la ejecución de diversos proyectos científicos.

•Diseño de Sistemas Distribuidos • Félix García Carballeira •156

Potencial de la computación voluntaria

§ El potencial de este tipo de entornos es enorme dada la gran cantidadde ordenadores disponibles en el mundo:q Se estima [Anderson2006] que en el 2010 habrá cerca de

1.000 millones de ordenadores en el mundo conectados a Internet, de los cuales el 50% será de uso personal.

q La participación de solo 100 millones daría lugar a una potenciade cómputo equivalente a 100 petaflops (100x1015 FLOPS) y una capacidad de almacenamiento de 1 Exabyte (260 bytes).

q SETI@home: 500.000 CPUs, 65 TeraFLOPs

•Diseño de Sistemas Distribuidos • Félix García Carballeira •157

Actualmente (BOINC)

§ 13.000.000 computadores suscritos§ 1.00.000 computadores activos

§ 70% de disponibilidad§ 50% con GPU utilizables§ Con 50 GB de espacio en disco por cliente

q 35 PB

q 190 PetaFLOPS§ equivalente a los 9 primeros supercomputadores de la lista del

top500§ (www.top500.org)

http://boincstats.com/en/stats/-1/project/detail/overview•Diseño de Sistemas Distribuidos • Félix García Carballeira •158

Funcionamiento

•Diseño de Sistemas Distribuidos • Félix García Carballeira •159

•1.- obtener aplicación

•2.- Transferir los datos a • procesar

•3.- Ejecutar la aplicación

•4.- Transferir los datos de salida

•5.- informar de los resultados

•Servidores de proyectos

•PC Voluntario

Computación redundante

•Félix García Carballeira •Sistemas Distribuidos •160

•compare results

•Diseño de Sistemas Distribuidos • Félix García Carballeira •161

Middlewares para computación voluntaria

§ The Berkeley Open Infrastructure for Network Computing (BOINC)

§ Bayanihan: general-purpose web-based volunteer computing systems using Java

§ Xtremweb: the Open Source Platform for Desktop Grids§ Xgrid: Simple solution for distributed computing

BOINC

§ BOINC (Berkeley Open Infrastructure for Network Computing)Desarrollado en la Universidad de California, es una plataforma de software libre, código abierto y disponible bajo la licencia GNU

•Diseño de Sistemas Distribuidos • Félix García Carballeira •162

§ Es el entorno quizás más popular, basado en Apache+PHP

§ Cuenta con la experiencia del proyecto SETI@home, creado en 1999 para la búsqueda de vida extraterrestre

§ Actualmente existen más de 50 proyectos de diferentes disciplinas científicas que lo

usan

BOINC

§ BOINC (Berkeley Open Infrastructure for Network Computing)Desarrollado en la Universidad de California, es una plataforma de software libre, código abierto y disponible bajo la licencia GNU

•Diseño de Sistemas Distribuidos • Félix García Carballeira •163

•http://es.boincstats.com/stats/project_graph.php

•Diseño de Sistemas Distribuidos • Félix García Carballeira •164

Arquitectura de BOINC

§ Proyecto BOINCq Identificado por una URLq Incluye múltiples aplicacionesq BBDD con información sobre

aplicaciones/participantes/trabajos/resultadosq Servidor de tareas

§ Envía trabajos a los clientes y recibe los resultadosq Servidor de datos

§ Descarga los datos sobre los clientes

•Diseño de Sistemas Distribuidos • Félix García Carballeira •165

Servidor BOINC

Interfaces web

Servidor de tareas

Servidor de datos

Cliente BOINC

BBDD BOINC

BBDD de aplicaciones

ficheros

voluntarios

•Diseño de Sistemas Distribuidos • Félix García Carballeira •166

Ejemplos de proyectos basados en BOINC

§ Einstein@homeq LIGO; gravitational wave astronomy

§ Rosetta@homeq U. Washington; protein study

§ SETI@homeq U.C. Berkeley; SETI

§ LHC@homeq CERN; accelerator simulation

§ Africa@homeq STI, U. of Geneva; malaria epidemiology

§ IBM World Community Grid

Acceso remoto a datos

§ Modelo tradicional de BOINCq Transferencia de los datos a procesar

•Diseño de Sistemas Distribuidos • Félix García Carballeira •167

Acceso remoto a datos

§ Modelo tradicional de BOINCq Transferencia de los datos a procesarq Procesar los datos y obtener resultados

•Diseño de Sistemas Distribuidos • Félix García Carballeira •168

Acceso remoto a datos

§ Modelo tradicional de BOINCq Transferencia de los datos a procesarq Procesar los datos y obtener resultadosq Transferir los datos al servidor

•Diseño de Sistemas Distribuidos • Félix García Carballeira •169

Acceso remoto a datos

§ Problemas:q Seguridad de los datos

•Diseño de Sistemas Distribuidos • Félix García Carballeira •170

Acceso remoto a datos

§ Objetivo: acceso remoto a los datos utilizando EXPAND

•Diseño de Sistemas Distribuidos • Félix García Carballeira •171

Uso de Expand en BOINC

§ El programa a ejecutar en los voluntarios dispone de una biblioteca de Expand

§ El acceso remoto se hace utilizando protocolo HTTP

•Diseño de Sistemas Distribuidos • Félix García Carballeira •172

Evaluación

§ 40 volunteer nodes spread across 5 computer labs throughout the campus.

§ 10000 WUs of 4.5 MB input file, each performing an image filter.

§ Expand partitions using 1, 2, and 4 data servers.§ Count success results after one hour.

•Diseño de Sistemas Distribuidos • Félix García Carballeira •173

Resultados

•Diseño de Sistemas Distribuidos • Félix García Carballeira •174

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10 20 30 40 50 60

Nº d

e tr

abaj

os p

or h

ora

Número de cliente

BOINC

BOINC-XPN-1 (same)

BOINC-XPN-1

BOINC-XPN-2

BOINC-XPN-4

Ejemplos

§ Grid computing§ Sistemas peer to peer§ Computación voluntaria§ Cloud computing

•Diseño de Sistemas Distribuidos • Félix García Carballeira •175

Cloud Computing

§ Vieja idea: software como servicio§ Objetivo: ofrecer computación a través de servicios ofrecidos

desde Internet§ Actualmente: HW, infraestructura, plataforma, aplicaciones y

datos como servicio

“In this architecture, the data is mostly resident on servers‘somewhere on the Internet’ and the application runs onboth the ‘cloud servers’ and the user’s browser.”

Eric Schmidt in ‘Information Factories’ by G. Gilder

•Diseño de Sistemas Distribuidos • Félix García Carballeira •176

Fundamentos de cloud computing

§ El procesamiento de información se realiza de forma más eficiente en grandes centros de procesamiento y de almacenamiento accesibles a través de Internetq Grid computingq Utility computing

§ Supone una centralización pero utilizando tecnologías de sistemas distribuidos

•Diseño de Sistemas Distribuidos • Félix García Carballeira •177

servidores

almacenamiento

servicio

Evolución de tecnologías

§ Tecnologías que han dado lugar al éxito del cloud computing:q Las mejoras en procesadores y redesq Las tecnologías webq Grid compuingq Peer-to-peer systems

•Diseño de Sistemas Distribuidos • Félix García Carballeira •178

Conceptos básicos

§ Utiliza tecnologías de Internet para ofrecer servicios escalables y elásticosq Elasticidad: capacidad de asignar los recursos de forma

dinámica en función de la carga de trabajo (variable)§ El uso de los recursos puede ser medido y los usuarios pagan

por el uso que hacen de estos recursos§ Los proveedores de servicio se encargan del mantenimiento y

de la seguridad§ Los proveedores pueden trabajar más eficientemente debido a

la especialización y a la centralización§ Menores costes para los usuarios (leer)§ Acceso a datos con independencia de la localización•Diseño de Sistemas Distribuidos • Félix García Carballeira •179

Tipos de clouds

§ Clouds públicos: ofrecidos por proveedores de servicios§ Clouds privados: infraestructura gestionada por una

organización§ Cloud comunitario: infraestructura compartida por varias

organizaciones§ Cloud hibrido: composición de uno o más clouds

•Diseño de Sistemas Distribuidos • Félix García Carballeira •180

Ventajas de los clouds

§ Compartición de recursos (CPU, almacenamiento, ancho de banda de red,..)

§ Mejor utilización de los recursos debido a su multiplexaciónq Las demandas pico de diferentes usuarios no tienen porqué

coincidir en el tiempo§ Se pueden agregar recursos§ Facilita la compartición de datos§ Reduce los costes (inversión inicial, mantenimiento, costes de

operación, consumo energético)§ Elasticidad§ La virtualización permite que los usuarios usen los recursos a

su gusto•Diseño de Sistemas Distribuidos • Félix García Carballeira •181

Aspectos de diseño a considerar

§ Disponibilidad del servicio§ Diversidad de servicios

q Necesidad de estandarizar los servicios cloud§ Dependencias de los proveedores§ Confidencialidad de los datos§ Cuellos de botella en las transferencias de datos§ Prestaciones impredecibles§ Calidad de servicio§ Seguridad

•Diseño de Sistemas Distribuidos • Félix García Carballeira •182

Modelos de servicio

§ Software as a Service (SaaS)

§ Platform as a Service (PaaS)

§ Infrastructure as a Service (IaaS)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •183

Tipos de cloud

•Diseño de Sistemas Distribuidos • Félix García Carballeira •184

Principales problemas

§ Problemas éticos:q Control por tercerosq Datos almacenados por otras organizacionesq Accesos no autorizadosq Disponibilidad del servicio

§ Problemas de seguridad y privacidad§ Problemas de vulnerabilidad (ataques)§ Excesiva dependencia del proveedor de servicios

•Diseño de Sistemas Distribuidos • Félix García Carballeira •185

Virtualización de recursos

§ Técnica básica utilizada en cloud computing para simplificar la gestión de los recursos físicos

§ Se puede almacenar el estado de una máquina virtual y se puede migrar el servicio para equilibrar la carga

§ La virtualización permite a los usuarios operar en entornos familiares

§ La virtualización permite la separación de servicios y mejorar la seguridad

•Diseño de Sistemas Distribuidos • Félix García Carballeira •186

Virtualización

§ Simula la interfaz de un objeto físico mediante:q Multiplexación: múltiples objetos virtuales sobre un mismo

objeto físico (procesos en un procesador)q Agregación: crea un objeto virtual a partir de múltiples

objetos físicos (discos RAID)q Emulación: construye un objeto virtual utilizando un objeto

físico distinto (disco RAM)q Multiplexación y emulación: por ejemplo la memoria virtual

(emula un espacio de direcciones virtuales y multiplexa la memoria física y el disco)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •187

Máquinas virtuales

§ Una máquina virtual (VM) es un entorno que emula el funcionamiento de un computador completo sobre un computador físico distinto

§ Ofrecen seguridad en un entorno aislado§ Virtualización completa: El SO puede ejecutar sobre la VM

como si estuviera ejecutando directamente sobre la plataforma HW (arquitectura virtualizable), (Vmware)

§ Paravirtualización: el SO se modifica para poder ejecutar sobre la MV (Xen)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •188

Máquinas virtuales

•Diseño de Sistemas Distribuidos • Félix García Carballeira •189

Sistema tradicional virtualización

Amazon Web Services (AWS)

§ Ofrece un modelo de IaaS§ Infraestructura formada por servidores de cómputo y

almacenamiento interconectados por redes de alta velocidad§ Los desarrolladores de aplicaciones:

q Instalan sus aplicaciones sobre una plataformaq Gestionan los recursos asignados por Amazon

•Diseño de Sistemas Distribuidos • Félix García Carballeira •190

Regiones y zonas de disponibilidad

§ Amazon ofrece servicios a través de data centers situados en varios contenientes

§ En cada región hay varias zonas de disponibilidad interconectadas

§ Una zonza de disponibilidad es un data center§ Las regiones no comparten recursos

•Diseño de Sistemas Distribuidos • Félix García Carballeira •191

Servicios ofrecidos por AWS

§ AWS Management Console: permite acceder a los serviciosofrecidos por AWS

§ Elastic Cloud Computing (EC2) – permite lanzar instancias de MV con diferentes SSOO

§ Simple Storage Service (S3), Simple DB, and Elastic Block Storage (EBS): servicios de almacenamiento.

§ Simple Queuing Service (SQS): permite comunicar diferentesinstancias de EC2

§ Cloud Watch: servicios de monitorización.§ Auto Scaling: soporta elasticidad en la gestión de recursos.

•Diseño de Sistemas Distribuidos • Félix García Carballeira •192

EC2 - Elastic Cloud Computing

§ EC2: servicio web que permite lanzar instancias de MV con diferentes SSOO:

§ Linux.§ Microsoft Windows Server 2003 and 2008. § OpenSolaris. § FreeBSD. § NetBSD.

§ Los usuarios pueden:q Lanzar imagenes ofrecidas por Amazonq Preparar sus propias imagenes

•Diseño de Sistemas Distribuidos • Félix García Carballeira •193

Tipos de instancias

§ Instancias estándar: micro (StdM), small (StdS), large (StdL), extra large (StdXL);

§ Instancias con gran memoria: high-memory extra large (HmXL), high-memory double extra large (Hm2XL), y high-memory quadruple extra large (Hm4XL).

§ Instancias con gran capacidad de cómputo: high-CPU extra large (HcpuXL).

§ Cluster computing: cluster computing quadruple extra large (Cl4XL).

•Diseño de Sistemas Distribuidos • Félix García Carballeira •194

Coste de una instancia

•Diseño de Sistemas Distribuidos • Félix García Carballeira •195

http://aws.amazon.com/es/ec2/#pricing

S3 – Simple Storage System

§ Servicio de almacenamiento basado en objetos. Una aplicación puede manejar un número ilimitado de objetos entre 1 byte y 5 TB

§ Cada objeto se almacena en un bucket§ Ofrece un mínimo conjunto de funciones: write, read, delete.§ Protocolos de acceso

q SOAPq Bit Torrent

•Diseño de Sistemas Distribuidos • Félix García Carballeira •196

Precios de almacenamiento

•Diseño de Sistemas Distribuidos • Félix García Carballeira •197

http://aws.amazon.com/es/s3/#pricing

Elastic Block Store (EBS)

§ Ofrece volúmenes de bloques persistentes para la instancias EC2 (BBDD, sistemas de ficheros, …)

§ Un volumen aparece como un disco físico sin formatear entre 1 GV y 1 TB

§ Cada instancia EC2 puede montar múltiples volúmenes§ Un volumen no se puede compartir entre diferentes instancias§ Los volúmenes se replican dentro de la zona

•Diseño de Sistemas Distribuidos • Félix García Carballeira •198

Plataformas open-source para crear clouds privados§ Eucalyptus: Emula el funcionarmiento de EC2 más S3

§ Open-Nebula : permite construir clouds privados. Utiliza un sistema centralizado y NFS

§ Nimbus: solución cloud para aplicaciones cientificas basadasen Globus software

•Diseño de Sistemas Distribuidos • Félix García Carballeira •199

Aplicaciones cloud

§ Aplicaciones ideales para cloud computing:q Basadas en web servicesq Servicios de bases de datosq Procesamiento de imágenesq Procesamiento de documentosq Servicios basados en transacciones

•Diseño de Sistemas Distribuidos • Félix García Carballeira •200

El paradigma MapReduce

§ Para aplicaciones intensivas en datos§ Modelo ofrecido por Hadoop§ Los datos se dividen en bloques y se procesan en paralelo§ Cuando los bloques se han procesado se mezclan los

resultados

•Diseño de Sistemas Distribuidos • Félix García Carballeira •201

Arquitectura de MapReduce

•Diseño de Sistemas Distribuidos • Félix García Carballeira •202

Políticas de gestión de recursos cloud

§ Control de admisión§ Asignación de capacidad§ Equilibrio de carga§ Optimización energética§ Garantías de calidad de servicio (QoS)

•Diseño de Sistemas Distribuidos • Félix García Carballeira •203

top related