diseño de sistemas distribuidos · diseño de sistemas distribuidos félix garcía carballeira 21...

178
Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso 2016-2017 Sistemas de ficheros distribuidos y paralelos Félix García Carballeira Grupo de Arquitectura de Computadores [email protected]

Upload: others

Post on 20-Apr-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

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

Curso 2016-2017

Sistemas de ficheros distribuidos y paralelos

Félix García CarballeiraGrupo de Arquitectura de [email protected]

Gestión de datos en entornos distribuidos

§ Arquitecturas de almacenamiento§ Sistemas de ficheros en red y distribuidos§ Sistemas de ficheros de discos compartidos

q NAS file systems, clustered file system§ Sistemas de ficheros paralelos

q PVFS, GPFS, Expand,…§ Sistema de ficheros distribuido de gran escala

q Hadoop file systemq Ceph

Diseño de Sistemas distribuidos Félix García Carballeira 2

Diseño de Sistemas distribuidos Félix García Carballeira 3

Arquitectura tradicional de un sistema de almacenamiento

Servidor de E/S

Red de comunicación

Clientes

Diseño de Sistemas distribuidos Félix García Carballeira 4

Arquitectura tradicional de un sistema de almacenamiento

Servidor de E/S

Red de comunicación

Clientes

Red de almacenamiento

Diseño de Sistemas distribuidos Félix García Carballeira 5

Arquitectura tradicional de un sistema de almacenamiento

Servidor de E/S

Red de comunicación

Clientes

Red de almacenamiento

Arquitectura de almacenamiento de un cluster

Diseño de Sistemas distribuidos Félix García Carballeira 6

•Red de interconexión

•Red de almacenamiento

Almacenamiento local

Clientes / nodos de cómputo

Servidores / nodos de E/S

Almacenamiento

Arquitectura de E/S de un supercomputador (Blue gene)

Diseño de Sistemas distribuidos Félix García Carballeira 7

Sistema de ficheros

§ Un sistema de ficheros establece una correspondencia lógica entre los ficheros y directorios y los dispositivos

§ Funciones: q Organización, almacenamiento,

recuperación, gestión de nombres, coutilización y protección de los ficheros (metadatos)

q Ofrece un mecanismo de abstracción que oculta todos los detalles relacionados con el almacenamiento y distribución de la información en los dispositivos, así como el funcionamiento de los mismos.

Diseño de Sistemas distribuidos Félix García Carballeira 8

Sistema de fichero en red

§ Sistema de ficheros que permite el acceso a los ficheros de un servidor utilizando un determinado protocoloq Extensión de un sistema

de ficheros local

Diseño de Sistemas distribuidos Félix García Carballeira 9

Diseño de Sistemas distribuidos Félix García Carballeira 10

Sistema de ficheros en red

Servidor de E/S

Red de comunicación

Clientes

§ Ejemplos: NFS, CIFS, FTP, HTTP

Diseño de Sistemas distribuidos Félix García Carballeira 11

Ejemplo: NFS

LAN/home/a/b

Export the file system

NFS server

/home/a/b

/home/a/b

/home/a/b

Clients mount the remote file system

Arquitectura de NFS

Diseño de Sistemas distribuidos Félix García Carballeira 12

Local host

Application

File system API interface

Vnode layer

NFS client

NFS stub

Remote host

File system API interface

Communication network

NFS server

NFS stub

Vnode layer

Local file system Remote file system

•© Cloud Computing: Theory and Practice•Dan C. Marinescu

Sistemas de ficheros distribuidos

§ Sistema de ficheros en red que permite el acceso a ficheros distribuidos por varios servidores (no es un sistema de ficheros paralelo)

Diseño de Sistemas distribuidos Félix García Carballeira 13

SNIA

§ Ejemplos: AFS, DFS, Coda, Sprite

Sistemas de ficheros distribuidos

Diseño de Sistemas distribuidos Félix García Carballeira 14

/

/lib /bin /usr

/usr/d1 /usr/d3

/usr/d3/f2/usr/d3/f1

/

/lib /bin /usr

/

/d1 /d2 /d3

/d3/f2/d3/f1

servidoresclientes

LAN

Diseño de Sistemas distribuidos Félix García Carballeira 15

Componentes de un SFD

Servicio de ficheros

Servicio de directorios

Red

Interfaz del SFD

Programade usuairo

Programade usuairo

Programade usuairo

Servicio de metadatos

Servicio de datos

Resolución de nombres

§ Resolución iterativa

§ Resolución transitiva

§ Resolución recursiva

Diseño de Sistemas distribuidos Félix García Carballeira 16

Ejemplo

Diseño de Sistemas distribuidos Félix García Carballeira 17

C

3/4

/1/2

5/6

SD1

SD2

SD3

/1/2/3/4/5/6 ?

/

1

2

3

4

5

6

Resolución iterativa

§ El cliente envía el nombre al SD

§ El SD realiza la traducción hasta que termina en un componente que pertenece a otro SD

§ El SD envía el resultado al cliente, el cual si no ha terminado la traducción continúa con el SD correspondiente

Diseño de Sistemas distribuidos Félix García Carballeira 18

C

SD1

SD2

SD3

1/2/3/4/5/6

3/4

/1/2

5/6

/3/4/5/6

/5/6

Resolución transitiva

§ Los SD implicados contactan entre si para llevar a cabo la traducción. El último SD devuelve la traducción al cliente

§ Rompe el modelo cliente/servidor (no adecuado para RPC)

Diseño de Sistemas distribuidos Félix García Carballeira 19

C

•/3/4/5/6

SD1

SD2

SD3

/1/2/3/4/5/6

3/4

/1/2

5/6

•/5/66

Resolución recursiva

§ El último SD implicado devuelve el resultado al anterior y así sucesivamente hasta que el primero responde al cliente

Diseño de Sistemas distribuidos Félix García Carballeira 20

C

SD1

SD2

SD3

/1/2/3/4/5/6

3/4

/1/2

5/6

/3/4/5/6

/5/6 6

66

Diseño de Sistemas distribuidos Félix García Carballeira 21

Métodos de acceso remotos

§ Modelo carga/descargaq Transferencias completas del ficheroq Localmente se almacenan en memoria o discos localesq Normalmente utilizan semántica de sesiónq Eficiencia en las transferenciasq Llamada open con mucha latenciaq Múltiples copias de un fichero

§ Modelo de servicios remotosq El servidor debe proporcionar todas las operaciones sobre el fichero.q Acceso por bloquesq Modelo cliente/servidor

§ Empleo de cache en el clienteq Combina los dos modelos anteriores.

Diseño de Sistemas distribuidos Félix García Carballeira 22

Caché de bloques

§ El empleo de caché de bloques permite mejorar el rendimientoq Explota el principio de proximidad de referencias

§ Proximidad temporal§ Proximidad espacial

q Lecturas adelantadas§ Mejora el rendimiento de las operaciones de lectura, sobre

todo si son secuencialesq Escrituras diferidas

§ Mejora el rendimiento de las escrituras§ Otros tipos de caché

q Cache de nombresq Cache de metadatos del sistema de ficheros

Diseño de Sistemas distribuidos Félix García Carballeira 23

Localización de la caché en un SFD

§ Caché en los servidoresq Reducen los accesos a disco

§ Caché en los clientesq Reducen el tráfico por la redq Reducen la carga en los servidoresq Mejora la capacidad de crecimientoq Dos posibles localizaciones

§ En discos localesq Más capacidad,q Más lentoq No volátil, facilita la recuperación

§ En memoria principalq Menor capacidadq Más rápidoq Memoria volátil

Funcionamiento de una cache de bloques•Proceso de usuario

•Cliente

•Cache

•Servidor

•Cache

•Disco

Diseño de Sistemas distribuidos Félix García Carballeira 24

Funcionamiento de una cache de bloques•Proceso de usuario

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Diseño de Sistemas distribuidos Félix García Carballeira 25

Buscar bloque.•Si no está,•reservar uno

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 26

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 27

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques

read()

Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 28

Buscar bloque.•Si no está,•reservar uno

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques

read()

•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 29

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques

read()

•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 30

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques

read()

•read()

•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 31

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques

read()

•read()

•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 32

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques

read()

•read()

•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 33

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques

read()

•read()

datos•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 34

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 35

Futuro acceso

•Cliente

•Cache

•Servidor

•Cache

•Disco

read()

Funcionamiento de una cache de bloques

datos•Proceso de usuario

Diseño de Sistemas distribuidos Félix García Carballeira 36

Tamaño de la unidad de cache

§ Mayor tamaño puede incrementar la tasa de aciertos y mejorar la utilización de la red pero q Aumentan los problemas de coherencia

§ Depende de las características de las aplicaciones § En memoria cache grandes

q Es beneficioso emplear bloques grandes § En memorias pequeñas

q El uso de bloques grandes es menos adecuado

Diseño de Sistemas distribuidos Félix García Carballeira 37

Políticas de actualización

§ Escritura inmediata (write-through)q Buena fiabilidadq En escrituras se obtiene el mismo rendimiento que en el modelo de

accesos remotosq Las escrituras son más lentas

§ Escritura diferida (write-back)q Escrituras más rápidas. Se reduce el tráfico en la redq Los datos pueden borrarse antes de ser enviados al servidorq Alternativas

§ Volcado (flush) periódico (Sprite)§ Write-on-close§ Write-before-full (ParFiSys)

Diseño de Sistemas distribuidos Félix García Carballeira 38

Motivación de write-before-full•Proceso de usuario

•Cliente

•Servidor

•Disco

Diseño de Sistemas distribuidos Félix García Carballeira 39

Motivación de write-before-full•Proceso de usuario

•Cliente

•Servidor

read()

•Disco

Diseño de Sistemas distribuidos Félix García Carballeira 40

Motivación de write-before-full•Proceso de usuario

read()

•Cliente

•Cache

•Servidor

•Disco•Bloque sucio

Diseño de Sistemas distribuidos Félix García Carballeira 41

Motivación de write-before-full

read()

•Cliente

•Cache•Algoritmode reemplazo

•Servidor

•Proceso de usuario

•Disco

Diseño de Sistemas distribuidos Félix García Carballeira 42

Motivación de write-before-full

read()

•Cliente

•Cache

•Servidor

•Proceso de usuario

•Disco•Bloque a expulsar

Diseño de Sistemas distribuidos Félix García Carballeira 43

Motivación de write-before-full

read()

•Cliente

•Cache

•Servidor•write()

•Proceso de usuario

•Disco•Bloque limpio

Diseño de Sistemas distribuidos Félix García Carballeira 44

Motivación de write-before-full

read()

•Cliente

•Cache

•Servidor•write()

•Cache

•Proceso de usuario

•Disco•Bloque sucio

Diseño de Sistemas distribuidos Félix García Carballeira 45

Motivación de write-before-full

read()

•Cliente

•Cache

•Servidor•write()

•Cache•Algoritmode reemplazo

•Proceso de usuario

•Disco

Diseño de Sistemas distribuidos Félix García Carballeira 46

Motivación de write-before-full

read()

•Cliente

•Cache

•Servidor•write()

•Cache

•Proceso de usuario

•Disco•Bloque a expulsar

Diseño de Sistemas distribuidos Félix García Carballeira 47

Motivación de write-before-full

read()

•Cliente

•Cache

•Servidor•write()

•Cache

•write()

•Proceso de usuario

•Disco•Bloque limpio

Diseño de Sistemas distribuidos Félix García Carballeira 48

Motivación de write-before-full

read()

•Cliente

•Cache

•Servidor•write()

•Cache

•write() •read()

•Proceso de usuario

•Disco•Bloque solicitado

Diseño de Sistemas distribuidos Félix García Carballeira 49

Motivación de write-before-full

read()

•Cliente

•Cache

•Servidor•write()

•Cache

•write() •read()

•read()

•Proceso de usuario

•Disco•Bloque solicitado

Diseño de Sistemas distribuidos Félix García Carballeira 50

Motivación de write-before-full•Proceso de usuario

read()

•Cliente

•Cache

•Servidor•write()

•Cache

•write() •read()

•read()

•datos

•Disco

Diseño de Sistemas distribuidos Félix García Carballeira 51

Diseño de Sistemas distribuidos Félix García Carballeira 52

Problema de coherencia

§ El uso de caché en los clientes de un sistema de ficheros introduce el problema de la coherencia de cache:q Múltiples copias.

§ El problema surge cuando se coutiliza un fichero en escritura:q Coutilización en escritura secuencial

§ Típico en entornos y aplicaciones distribuidas.q Coutilización en escritura concurrente

§ Típico en aplicaciones paralelas.

Problema de la coherencia de cache• Inconsistencia en escritura secuencial debido a la no actualización

de las copias

Cache en el cliente A Cache en el cliente B

Fichero

Diseño de Sistemas distribuidos Félix García Carballeira 53

•Problema de la coherencia de cache• Inconsistencia en escritura secuencial debido a la no actualización

de las copias

Cache en el cliente A Cache en el cliente B

Fichero

open

Diseño de Sistemas distribuidos Félix García Carballeira 54

•Problema de la coherencia de cache• Inconsistencia en escritura secuencial debido a la no actualización

de las copias

• Cache en el cliente A • Cache en el cliente B

Fichero

write

Diseño de Sistemas distribuidos Félix García Carballeira 55

•Problema de la coherencia de cache• Inconsistencia en escritura secuencial debido a la no actualización

de las copias

Cache en el cliente A Cache en el cliente B

Fichero

close

Diseño de Sistemas distribuidos Félix García Carballeira 56

•Problema de la coherencia de cache• Inconsistencia en escritura secuencial debido a la no actualización

de las copias

Cache en el cliente A Cache en el cliente B

Fichero

Diseño de Sistemas distribuidos Félix García Carballeira 57

•Problema de la coherencia de cache• Inconsistencia en escritura secuencial debido a la no actualización

de las copias

Cache en el cliente A Cache en el cliente B

Fichero

open

Diseño de Sistemas distribuidos Félix García Carballeira 58

•Problema de la coherencia de cache• Inconsistencia en escritura secuencial debido a la no actualización

de las copias

Cache en el cliente A Cache en el cliente B

Fichero

read Þ INCONSISTENCIA

Diseño de Sistemas distribuidos Félix García Carballeira 59

•Problema de la coherencia de cache• Inconsistencia en escritura secuencial debido a la utilización de

técnicas de escritura diferida

Cache en el cliente A Cache en el cliente B

Fichero

Diseño de Sistemas distribuidos Félix García Carballeira 60

•Problema de la coherencia de cache

Cache en el cliente A Cache en el cliente B

Fichero

open

• Inconsistencia en escritura secuencial debido a la utilización de técnicas de escritura diferida

Diseño de Sistemas distribuidos Félix García Carballeira 61

Cache en el cliente A Cache en el cliente B

Fichero

read

•Problema de la coherencia de cache• Inconsistencia en escritura secuencial debido a la utilización de

técnicas de escritura diferida

Diseño de Sistemas distribuidos Félix García Carballeira 62

•Problema de la coherencia de cache

Cache en el cliente A Cache en el cliente B

Fichero

• write

• Inconsistencia en escritura secuencial debido a la utilización de técnicas de escritura diferida

Diseño de Sistemas distribuidos Félix García Carballeira 63

•Problema de la coherencia de cache

Cache en el cliente A Cache en el cliente B

Fichero

close

• Inconsistencia en escritura secuencial debido a la utilización de técnicas de escritura diferida

Diseño de Sistemas distribuidos Félix García Carballeira 64

•Problema de la coherencia de cache

Cache en el cliente A Cache en el cliente B

Fichero

• Inconsistencia en escritura secuencial debido a la utilización de técnicas de escritura diferida

Diseño de Sistemas distribuidos Félix García Carballeira 65

•Problema de la coherencia de cache

Cache en el cliente A Cache en el cliente B

Fichero

open

• Inconsistencia en escritura secuencial debido a la utilización de técnicas de escritura diferida

Diseño de Sistemas distribuidos Félix García Carballeira 66

•Problema de la coherencia de cache

Cache en el cliente A Cache en el cliente B

Fichero

read Þ INCONSISTENCIA

• Inconsistencia en escritura secuencial debido a la utilización de técnicas de escritura diferida

Diseño de Sistemas distribuidos Félix García Carballeira 67

•Problema de la coherencia de cache• Inconsistencia debido a la coutilización en escritura concurrente

Cache en el cliente A Cache en el cliente B

Fichero

Diseño de Sistemas distribuidos Félix García Carballeira 68

•Problema de la coherencia de cache• Inconsistencia debido a la colutilización en escritura concurrente

Cache en el cliente A Cache en el cliente B

Fichero

open open

Diseño de Sistemas distribuidos Félix García Carballeira 69

•Problema de la coherencia de cache

Cache en el cliente A Cache en el cliente B

Fichero

read read

• Inconsistencia debido a la colutilización en escritura concurrente

Diseño de Sistemas distribuidos Félix García Carballeira 70

•Problema de la coherencia de cache

Cache en el cliente A Cache en el cliente B

Fichero

write

• Inconsistencia debido a la colutilización en escritura concurrente

Diseño de Sistemas distribuidos Félix García Carballeira 71

Cache en el cliente A Cache en el cliente B

Fichero

read Þ INCONSISTENCIA

•Problema de la coherencia de cache• Inconsistencia debido a la colutilización en escritura concurrente

Diseño de Sistemas distribuidos Félix García Carballeira 72

Diseño de Sistemas distribuidos Félix García Carballeira 73

Soluciones al problema de la coherencia§ No emplear caché en los clientes.

q Solución trivial que no permite explotar las ventajas del uso de cache en los clientes (reutilización, lectura adelantada y escritura diferida)

§ No utilizar caché en los clientes para datos compartidos en escritura (Sprite). q Accesos remotos sobre una única copia asegura semántica UNIX

§ Mecanismos de caché sin replicación de datosq Basado en esquemas cooperativos que definen un único espacio global

formado por la unión de todas las cache del sistema.q Los datos fluyen a través de las caches sin replicación

§ Empleo de protocolos de coherencia de cachéq tokens

Protocolos de coherencia de cache

§ Objetivos: q Permitir el uso de cache en los clientes manteniendo

coherente la información de acuerdo a la semántica de coutilización que define el sistema de ficheros

§ Aspectos de diseño a considerarq Granularidad del protocoloq Mecanismo de validaciónq Mecanismos de actualizaciónq Localización de las copias en las caches de los clientes

Diseño de Sistemas distribuidos Félix García Carballeira 74

Granularidad

§ Tamaño de la unidad sobre la que se mantiene coherencia§ Puede variar desde un único byte hasta el fichero completo§ Ejemplos:

q Sprite: fichero completoq GPFS: byte

§ Con semánticas UNIX, unidades grandes y acceso concurrentes:q Posible falsa coutilización

Diseño de Sistemas distribuidos Félix García Carballeira 75

Falsa coutilización

Diseño de Sistemas distribuidos Félix García Carballeira 76

Proceso A Proceso B

Unidad de coherencia

Validación de la caché

§ Determinar si un dato almacenado en la cache es consistente§ Validación iniciada por el cliente. Contactar con el servidor

para determinar el estado de la copiaq Frecuencia de validación

§ En cada acceso§ Al abrir el fichero§ Periódicamente

q Necesidad de almacenar información sobre la última actualización en caso de escritura diferida.

q Crece el tráfico de la red, consume CPU en el servidor y aumenta el tiempo de servicio de las peticiones

Diseño de Sistemas distribuidos Félix García Carballeira 77

Validación de la caché

§ Validación iniciada por el servidorq El servidor almacena información sobre los datos accedidos

por cada cliente y el modo de accesoq Servidores con estado (implicaciones sobre la tolerancia a

fallos)q Si un dato es accedido por dos o más clientes, al menos uno

en modo escritura, se notifica a los clientes para que invaliden o actualicen las caches

q Rompe el modelo cliente/servidor

Diseño de Sistemas distribuidos Félix García Carballeira 78

Mecanismos de actualización

§ Cuando hay una modificación sobre una copia y es necesario mantener una visión coherente hay que actualizar el resto de copias.

§ Métodos:q Actualización de las copias

§ Excesivo tráfico en la red§ Inviable en sistemas de ficheros

q Invalidación de las copias. Se invalidan las copias y los futuros accesos se realizan sobre una copia consistente.§ Mensajes más cortos, menos tráfico en la red§ Mayor capacidad de crecimiento

Diseño de Sistemas distribuidos Félix García Carballeira 79

Localización de las copias

§ Es necesario conocer qué clientes almacenan copias de datos para realizar las acciones del protocolo

§ Se utilizan esquemas basados en directorios. Cada entrada almacena la lista de clientes con copias en su cache.q Directorio de mapa completoq Directorio limitadoq Lista encadenada

§ Directorios centralizados: un único gestor se encarga de la coherencia de todos los ficheros del sistemaq Posible cuello de botella

§ Directorios distribuidos: existen varios gestoresq Mejor capacidad de crecimiento

Diseño de Sistemas distribuidos Félix García Carballeira 80

Ejemplo

Diseño de Sistemas distribuidos Félix García Carballeira

red

/home1/a/b

§ En cliente operaciones:§ Open, read, write,

close,…q Caché en clientes y

servidoresq Semántica UNIXq Cliente con caché write-

backq ¿Protocolo?

81

Ejemplo de protocolo de coherenciaSprite§ Si acceso concurrente conflictivo (1escritor + otro(s) cliente(s))

q Se anula cache y se usa acceso remoto en nodos implicados§ En open el cliente siempre contacta con servidor especificando:

q Modo de acceso (R, W)q Número de versión de la copia en cache del fichero (si la hay)

§ En close no se vuelca el fichero§ Tratamiento del open en el servidor

q Si la copia del fichero en el servidor no está actualizada§ Solicita al último cliente (last-writer) que vuelque datos del

ficheroq Si no hay conflicto de acceso:

§ Si la versión del cliente es más antigua, se le indica en mensaje de respuesta que la invalide

Diseño de Sistemas distribuidos Félix García Carballeira 82

Ejemplo de protocolo de coherenciaSprite (cont.)§ Tratamiento del open en el servidor (cont.)

q Si la petición produce un conflicto de acceso:§ Se le envía a los clientes con el fichero abierto una orden de

invalidación y desactivación de la cache para ese ficheroq Si era un escritor se le pide un volcado previo

§ Se le envía en la respuesta al cliente una petición para invalidar y desactivar la cache para ese fichero

q Si la petición se encuentra que ya hay conflicto§ Se le envía en la respuesta una petición de invalidar y

desactivar la cache para ese fichero

Diseño de Sistemas distribuidos Félix García Carballeira 83

Sistemas de ficheros de discos compartidos§ Sistema de almacenamiento compartido por múltiples clientes§ Separación entre la localización física y lógica§ Servidores de metadatos (MDS)§ Los clientes acceden directamente al almacenamiento sin pasar

por servidores

Diseño de Sistemas distribuidos Félix García Carballeira 84

Red de almacenamiento

MDSclientes

Mecanismo de acceso

Diseño de Sistemas distribuidos Félix García Carballeira 85

SNIA

Ejemplos

§ OCFS (Oracle Cluster file System)§ GPFS§ GFS§ GlusterFS§ Veristas File System

Diseño de Sistemas distribuidos Félix García Carballeira 86

Diseño de Sistemas distribuidos Félix García Carballeira 87

Paralelismo en el acceso a los datos

Diseño de Sistemas distribuidos Félix García Carballeira 88

Paralelismo en el acceso a los datos

Dispositivos en paralelo

Diseño de Sistemas distribuidos Félix García Carballeira 89

Paralelismo en el acceso a los datos

Sistemas de ficheros paralelos

Dispositivos en paralelo

Diseño de Sistemas distribuidos Félix García Carballeira 90

Paralelismo en el acceso a los datos

Computadores paralelos

Sistemas de ficheros paralelos

Dispositivos en paralelo

Diseño de Sistemas distribuidos Félix García Carballeira 91

Paralelismo en el acceso a los datos

Aplicaciones paralelas

Computadores paralelos

Sistemas de ficheros paralelos

Dispositivos en paralelo

Diseño de Sistemas distribuidos Félix García Carballeira 92

Paralelismo en el acceso a los datos

§ Explotar el paralelismo en múltiples niveles

Aplicaciones paralelas

Computadores paralelos

Sistemas de ficheros paralelos

Dispositivos en paralelo

Diseño de Sistemas distribuidos Félix García Carballeira 93

Paralelismo en el acceso a los datos

§ Explotar el paralelismo en múltiples niveles

Aplicaciones paralelas

Computadores paralelos

Sistemas de ficheros paralelos (SFP)

Dispositivos en paralelo

Diseño de Sistemas distribuidos Félix García Carballeira 94

Parallel devices: disk striping

§ The data is broken down into blocks and each block is written to a separate disk drive

§ RAID 0

§ Increase the performanceq By spreading the I/O load across many channels and drives

0 1 2

3 4 5

Diseño de Sistemas distribuidos Félix García Carballeira 95

Parallel File Systems (PFS)

§ Multiple I/O nodesq Increase the bandwidth

§ A file is distributed across the I/O nodesq Parallel access

§ To different files§ To the same file

§ Parallel I/O interfacesq MPI-IO

§ Optimizationsq Collective I/Oq Access to non contiguous data

Diseño de Sistemas distribuidos Félix García Carballeira 96

Acceso paralelo

Accesoparalelo

Diseño de Sistemas distribuidos Félix García Carballeira 97

Acceso paralelo

Accesoparalelo

Diseño de Sistemas distribuidos Félix García Carballeira 98

Acceso paralelo

Accesoparalelo

Aplicaciónparalela

Diseño de Sistemas distribuidos Félix García Carballeira 99

Advantages of a PFS

§ Usage of standard APIs (POSIX) and special APIs (MPI-IO)

§ Parallel access to files (for reading and writing) from several client nodes.

§ Increase the bandwidth by striping the files across multiples disks and I/O nodes.

§ Load balancing between disks and I/O nodes. Maximize the bandwidth.

§ Allows to store huge data sets.

Diseño de Sistemas distribuidos Félix García Carballeira 100

Examples of PFS

§ PVFS

§ GPFS

§ Lustre

§ Expand

Diseño de Sistemas distribuidos Félix García Carballeira 101

PVFS (Parallel Virtual File System)

§ Parallel file system for Linux clustersq Global name spaceq Distributed File dataq Uses TCP on local file

systems§ Mountable like NFS systems§ MPI-IO and optimizations for

non-contiguous data access.§ www.pvfs.org

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

PVFS 2 components

Computenodes

CN0

CN1

CNn

Network

PVFS2 Server

I/O Nodes

…Metadata

Nodes

PVFS2 Server

PVFS2 Server

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

Performance

0

5

10

15

20

25

30

1 2 4 8

Number of clients

Ban

dwid

th (M

B/s

)

NFSPVFS

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

GPFS

§ IBM’s shared disk, parallel file system for AIX, Linux clusters

§ Used in many powerful supercomputers in the world

§ Shared disk: all data and metadata on disk accessible from any node through disk I/O interface (i.e., "any to any" connectivity)Parallel: data and metadata flows from all of the nodes to all of the disks in parallel

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

GPFS Characteristics

§ Concurrent reads and writes, parallel data access - within a file and across filesq Byte-range locking

§ Support fully parallel access both to file data and metadata§ Client caching enabled by distributed locking§ Large data blocks§ Prefetch, write-behind§ Access pattern optimizations

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

GPFS Characteristics (Cont.)

§ Scalability – in many respectsq Computing nodes q File system nodesq Disks q Adapters

§ High Availability q Fault-tolerance via logging, replication, RAID supportq Survives node and disk failures

§ Uniform access via shared disks - Single image file system§ High capacity multiple TB per file system, 100s of GB per file§ Standards compliant (POSIX) with minor exceptions and extensions

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

GPFS Architecture§ File system nodes

q Run user programs, read/write data to/from storage nodesq Implement virtual file system interfaceq Cooperate with manager nodes to perform metadata operations

§ Manager nodesq Global lock managerq File system configuration: recovery, adding disks, …q Disk space allocation managerq Quota managerq File metadata manager - maintains file metadata integrity

§ Storage nodesq Implement block I/O interfaceq Shared access to file system and manager nodesq Interact with manager nodes for recovery (e.g. fencing)q Data and metadata striped across multiple disks -multiple storage nodes

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

Large File Block Size

§ Conventional file systems store data in small blocks to pack data more densely

§ GPFS uses large blocks (256KB default) to optimize disk transfer speed

0 128 256 384 512 640 768 896 1024I/O Transfer Size (Kbytes)

0

1

2

3

4

5

6

7

Th

rou

gh

pu

t (M

B/s

ec)

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

Parallel File Access From Multiple Nodes

§ GPFS allows parallel applications on multiple nodes to access non-overlapping ranges of a single file with no conflict

§ Global locking serializes access to overlapping ranges of a file§ Global locking based on "tokens" which convey access rights to an object (e.g. a file) or

subset of an object (e.g. a byte range)§ Tokens can be held across file system operations, enabling coherent data caching in clients§ Cached data discarded or written to disk when token is revoked§ Performance optimizations: required/desired ranges, metanode, data shipping, special token

modes for file size operations

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

Concurrency Control§ Token based distributed lock

managerq First lock request for an object

requires a message to the token manager to obtain a token

q Subsequent lock requests can be granted locally

q Data can be cached as long as a token is held

q When a conflicting lock request is issued from another node the token is revoked ("token steal")

q Force on steal policy: modified data are written to disk when the token is revoked

q Whole file locking for less frequent operations (e.g., create, trunc, ...). Finer grain locking for read/write

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

I/O in Parallel Programs

§ Sequential I/Oq All processes send data to rank 0, and 0 writes it to the file

•lack of parallelism limits scalability, performance (single node bottleneck)

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

I/O in Parallel Programs

§ Each process writes to a separate file

§ Pros: q parallelism, high performance

§ Cons: q lots of small files to manageq difficult to read back data from different number of processes

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

I/O in Parallel Programs

§ Parallel I/O

q Multiple processes of a parallel program accessing data (reading or writing) from a common file

FILE

P0 P1 P2 P(n-1)

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

Why Parallel I/O?

§ Non-parallel I/O is simple butq Poor performance (single process writes to one file) orq Not interoperable with other tools (each process writes a

separate file)§ Parallel I/O

q Provides high performanceq Can provide a single file that can be used with other tools

(such as visualization programs)

I/O system layers

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

I/O system layers

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

POSIX

Access patterns

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

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

Problems with traditional I/O interfaces

With POSIX services:

read();lseek();read();lseek();read();

.

. It needs 23 callsnon-contiguous data access

.

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

I/O parallel interface: goals

With parallel interface we can define a view

Create_view(fd, size, off);Read_view(fd, buf, size*12);

It readed the two columns with only one call

size

off

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

MPI-IO

§ Parallel read/write§ non-contiguous data read/write§ non-blocking read/write§ collective read write§ portable data representation across platforms§ Derived data types

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

File view

etype = MPI_INT

filetype = two MPI_INTs followed bya gap of four MPI_INTs

displacement filetype filetype and so on...

FILEhead of file

Example: writing a shared file

#include<stdio.h>

#include "mpi.h" int main(int argc, char **argv){

int i, rank, size, offset, nints, N=16;

MPI_File fhw;

MPI_Status status; MPI_Init(&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &rank);

MPI_Comm_size(MPI_COMM_WORLD, &size);

int buf[N];

for ( i=0;i<N;i++){ buf[i] = i ;

}

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

Example: writing a shared file (cont)

offset = rank*(N/size)*sizeof(int);

MPI_File_open(MPI_COMM_WORLD, "datafile3", MPI_MODE_CREATE|MPI_MODE_WRONLY, MPI_INFO_NULL, &fhw); printf("\nRank: %d, Offset: %d\n", rank, offset);

MPI_File_set_view(fhw, offset, MPI_INT, MPI_INT, "native", MPI_INFO_NULL); MPI_File_write(fhw, buf, (N/size), MPI_INT, &status);

MPI_File_close(&fhw);

MPI_Finalize();

return 0;

}

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

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

Distintos tipos de paralelismo

Nodos De cómputo

Paralelismo lógicoFichero lógico

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

Distintos tipos de paralelismo

Nodos De cómputo

Paralelismo lógico

Paralelismo físico

discos

Fichero lógico

Fichero físico

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

Problema: Muchos accesos a datos no contiguos

Un únicoacceso

discos

Fichero lógico

Fichero físico

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

Optimizaciones

§ List I/O§ Data sieving§ Two-phase I/O§ Agregation

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

List I/O

Node make a listList of (file offset, length):

(0,2),(4,2),(8,2),(12,2),(16,2),(20,2),(24,2),(28,2)

•I/O Node: serves the request

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

Data Sieving

§ Data sieving is used to combine lots of small accesses into a single larger oneq Remote file systems (parallel or not) tend to have high latenciesq Reducing # of operations important

§ Generally very effective, but not as good as having a PFS that supports noncontiguous access

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

Data Sieving Writes

§ Using data sieving for writes is more complicatedq Must read the entire region firstq Then make our changesq Then write the block back

§ Requires locking in the file systemq Can result in false sharing (interleaved access)q PFS supporting noncontiguous writes is preferred

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

Two-Phase Collective I/O

§ Problems with independent, noncontiguous accessq Lots of small accessesq Independent data sieving reads lots of extra data

§ Idea: Reorganize access to match layout on disksq Single processes use data sieving to get data for manyq Often reduces total I/O through sharing of common blocks

§ Second ``phase'' moves data to final destinations

Agregation

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

§ Aggregation refers to the more general application of this concept of moving data through intermediate nodesq Different #s of nodes performing I/Oq Could also be applied to independent I/O

§ Can also be used for remote I/O, where aggregator processes are on an entirely different system

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

Problems of traditional file systems

§ Traditional PFS does not use standard servers§ Very difficult to use these systems in heterogeneous environments and

clusters

Client

Server Server

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

Motivación de Expand

§ Proporcionar un sistema de almacenamiento de altas prestaciones con servidores y protocolos estándarq Fácil integración de sistemas heterogéneosq Reutilización y agregación de recursos existentes q Acceso paralelo a los datos

§ ¿Por qué?q Porque un servidor de datos estándar ya incluye

prácticamente toda la funcionalidad necesariaq Están disponible universalmenteq Independencia de la infraestructura de almacenamiento

subyacente

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

Objetivo de Expand

§ Ofrecer un nuevo enfoque a la construcción de SFP para Clusters y Grid, mediante el empleo de servidores de datos estándar

§ Ventajas:q No requiere cambios en los servidores. Operaciones implementadas en

los clientesq Expand es independiente del sistema operativo utilizado en los clientes

y servidores. Operaciones basadas en el protocolo del servidorq Se simplifica la construcción del SFP. Se aprovechan los mecanismos

de incremento de prestaciones de los servidoresq Permite utilizar servidores con diferentes arquitecturas y sistemas

operativosq Facilita la instalación y configuración

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

Arquitectura

Servidor Servidor

Acceso paraleloProtocolo del servidor

Partición distribuida

Servidorestándar

Servidorestándar

Nodo de cómputo

Nodo de cómputo

Apps.

ExpandGridFTP RNS-WS Local ....

....

NFS

POSIX MPI-IO

Expand

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

Arquitectura

Fichero 1Fichero 2

Servidor Servidor

Acceso paraleloProtocolo del servidor

Partición distribuida

Servidorestándar

Servidorestándar

Nodo de cómputo

Nodo de cómputo

Apps.

ExpandGridFTP RNS-WS Local ....

....

NFS

POSIX MPI-IO

Expand

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

Estructura de los ficheros

§ Fichero Expand:q Subfichero de metadatosq Varios subficheros de datos

§ Datos distribuidos en diferentes servidores

§ Proyección de los ficheros a los servidores con política flexible Servidor Servidor Servidor

Fichero en Expand

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

Estructura de los ficheros

§ Fichero Expand:q Subfichero de metadatosq Varios subficheros de datos

§ Datos distribuidos en diferentes servidores

§ Proyección de los ficheros a los servidores con política flexible Servidor Servidor Servidor

Fichero en Expand

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

Estructura de los ficheros

§ Fichero Expand:q Subfichero de metadatosq Varios subficheros de datos

§ Datos distribuidos en diferentes servidores

§ Proyección de los ficheros a los servidores con política flexible Servidor Servidor Servidor

Fichero en Expand

subficheros

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

Estructura de los ficheros

§ Fichero Expand:q Subfichero de metadatosq Varios subficheros de datos

§ Datos distribuidos en diferentes servidores

§ Proyección de los ficheros a los servidores con política flexible Servidor Servidor Servidor

2

Fichero en Expand

subficheros 58

0

36

147

0

1 2 3 4 5 6 7 8

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

Estructura de los ficheros

§ Fichero Expand:q Subfichero de metadatosq Varios subficheros de datos

§ Datos distribuidos en diferentes servidores

§ Proyección de los ficheros a los servidores con política flexible Servidor Servidor Servidor

2

Fichero en Expand

subficheros 58

0

36

147

0

1 2 3 4 5 6 7 8

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

Estructura de los directorios

/export1

Dir1 Dir2 Dir3

Dir4

fichero Afichero A fichero A fichero A

/export2 /export3

Dir1 Dir1Dir2 Dir2Dir3 Dir3

Dir4 Dir4

/Expand

Visión lógica Visión física

Proyección

Dir1 Dir2 Dir3

Dir4

Servidor1

Servidor2

Servidor3

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

Gestión de metadatos

§ Gestión distribuida de metadatos q Dos nivelesq Sin cerrojosq Sin gestor de metadatos

§ Metadatos distribuidos entre los servidoresq Nodo masterq Función hash(nombre)q Equilibrio de carga

Fichero

bloque

0 2 3 4 5 6 7 8

036

147

258

subficheros

Servidor Servidor Servidor

metadatos

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

Gestión de metadatos

§ Gestión distribuida de metadatos q Dos nivelesq Sin cerrojosq Sin gestor de metadatos

§ Metadatos distribuidos entre los servidoresq Nodo masterq Función hash(nombre)q Equilibrio de carga

Servidor Servidor Servidor

metadatos

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

Acceso paralelo

Servidor ServidorServidor

Bloques de datos

0 1 2 3 4 5 6 7 8

036

147

258

subfichero

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

Acceso paralelo

Servidor ServidorServidor

Bloques de datos

read(fd, buffer, count)buffer

0 1 2 3 4 5 6 7 8

036

147

258

subfichero

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

Acceso paralelo

Threads

Servidor

Expand

ServidorServidor

Threads

Bloques de datos

read(fd, buffer, count)buffer

0 1 2 3 4 5 6 7 8

036

147

258

subfichero

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

Acceso paralelo

Acceso paralelo filehandle1 filehandle2 filehandle3

Threads

Servidor

Expand

ServidorServidor

Threads

Bloques de datos

read(fd, buffer, count)buffer

0 1 2 3 4 5 6 7 8

036

147

258

subfichero

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

Acceso paralelo

Acceso paralelo filehandle1 filehandle2 filehandle3

Threads

Servidor

Expand

ServidorServidor

Threads

Bloques de datos

read(fd, buffer, count)buffer

0 1 2 3 4 5 6 7 8

036

147

258

subfichero

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

Acceso paralelo

Acceso paralelo filehandle1 filehandle2 filehandle3

Threads

Servidor

Expand

ServidorServidor

Threads

Bloques de datos

read(fd, buffer, count)buffer

0 1 2 3 4 5 6 7 8

036

147

258

subfichero

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

Interfaz MPI-IO utilizando ROMIO

Partición distribuida

Servidor Servidor

ExpandUNIX

NFSPVFS

IBMPIOFS

SGIXFS

MPI-IO

ADIO

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

Reconfiguración dinámica de particiones

Hash (fichero) = servidor 2

Servidor 1

Servidor2

Servidor 3

036

147

258

Metadatos

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

Reconfiguración dinámica de particiones

Servidor 1

Servidor2

Servidor 3

Servidor 4

036

147

258

Metadatos

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

Reconfiguración dinámica de particiones

Hash (fichero) = servidor 3

?

Servidor 1

Servidor2

Servidor 3

Servidor 4

036

147

258

Metadatos

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

Servidor 1

Servidor2

Servidor 3

Servidor 4

036

147

258

Metadatos

Reconfiguración dinámica de particiones

Hash (fichero) = servidor 3

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

Reconfiguración dinámica de particiones

Hash (fichero) = servidor 3

§ Instantánea§ Diferida

Servidor 1

Servidor2

Servidor 3

Servidor 4

036

147

258

Metadatos

Diseño de Sistemas distribuidos Félix García Carballeira 158

Reconfiguración dinámica de particiones

Servidor 1

Servidor2

Servidor 3

Servidor 4

Metadatos03

96

13

1 114

10

157

14

25

128

16

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

Versiones para ClustersVersión en Java con NFSVersión para Linux con NFS

Java App.

jExpand

Java RPC

JVM JVM

Java App.

jExpand

Java RPC

Acceso paraleloAcceso paralelo

Protocolo NFS Protocolo NFS

Partición distribuida Partición distribuida

Servidor NFS

Servidor NFS

Servidor NFS

Servidor NFS

C App C App

Expand Expand

RPC RPC

Hadoop file system

§ Sistema de ficheros distribuido diseñado por Apache Foundation Inc.

§ http://hadoop.apache.org/hdfs/

Diseño de Sistemas distribuidos Félix García Carballeira 160

Características básicas

§ Adecuado para ejecutar sobre HW de propósito general (clusters)

§ Tolerancia a fallos§ Gran ancho de banda

q El objetivo es gran ancho de banda, no baja latenciaq No está pensado para uso interactivo (procesamiento batch)

§ Adecuado para aplicaciones que procesan grandes cantidades de datosq Grandes ficheros y conjuntos de datos: GB hasta TBq Decenas de millones de ficheros

§ Streaming data access§ Modelo de coherencia: write-once-read-many

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

Arquitectura

§ Arquitectura maestro/esclavo§ Nodo Namenode (único)

q Gestiona el espacio de nombres (único para todo el cluster) y regula el acceso a los ficheros

q Espacio de nombres jerárquico § DataNodes (normalmente uno por nodo en el cluster)

q Servidor de bloques en el sistema de ficheros local (ej: ext3)q Gestiona el almacenamiento del nodoq Los ficheros se dividen en bloques de 128 MB q Cada bloque se replica en varios DataNodesq Los clientes acceden a los DataNodes directamente

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

Arquitectura

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

Fuente: Hadoop.apache.org

Plataforma HW típica

§ Clusters de PC organizados en racks

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

Espacio de nombres

§ Espacio de nombres jerarquico§ Operaciones: crear, eliminar, renombar, etc.§ El espacio de nombres y los metadatos se almacenan en el

Namenode§ Las aplicaciones pueden especificar el número de réplicas para

un fichero: factor de replicación (se almacena como parte de los metadatos)

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

Replicación de datos

§ HDFS está diseñado para almacenar grandes ficheros § Cada fichero consta de una secuencia de bloques (64, 128 MB)§ Todos los bloques son del mismo tamaño, excepto el último§ Los bloques se replican en diversos DataNodes§ El NameNode monitoriza el estado de los DataNodes. Recibe

periodicamente un Heartbeat.

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

Replicación

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

Fuente: Hadoop.apache.org

Metadatos

§ Todos los metadatos se almacenan en el NameNode§ El sistema de ficheros entero se almacena en un fichero

denominado FsImage que se almacena en el sistema de ficheros local del NameNode

§ Mantiene una imagen del sistema de ficheros en memoria§ El NameNode es un punto único de fallo en el sistema§ NameNode secundario

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

DataNodes

§ Servidor de bloques§ No tienen conocimiento de la estructura de HDFS§ Cada bloque se almacena en un fichero diferente utilizando el

sistema de ficheros local§ No almacena todos los ficheros en el mismo directorio§ Utiliza heurísticas para determinar el número óptimo de

ficheros por directorio

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

Réplicas

§ Localizaciónq Una réplica se almacena en un nodo del rack local, otra en

otro nodo del mismo rack y otra en un nodo de otro rack. Replicas adicionales se almacenan aleatoriamente

§ Selecciónq Los clientes leen de la réplica más cercanaq Si hay una réplica en el mismo rack del lector se utiliza ésta

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

Creación de un fichero

§ Cuando un cliente crea un fichero no contacta con el NameNode inmediatamente

§ El cliente HDFS almacena los datos en una cache local.§ Cuando los datos alcanzan el tamaño del bloque se contacta

con el NameNode§ El NameNode inserta el nombre del fichero y asigna bloques§ El NameNode responde al cliente con el destino de las replicas

para el bloque§ El cliente vuelca los datos

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

Escritura de un fichero

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

•http://blog.csdn.net/suifeng3051/article/details/17288047

Pipeline de replicación

§ Cuando un cliente vuelca los datos de un bloque lo hace en trozos de 4 KB

§ Cuando el primer trozo de 4 KB llega al primer DataNode escribe su porción en disco y transfiere el bloque al siguiente DataNode y así sucesivamente

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

Fuente: Hadoop.apache.org

Replicación

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

Ceph (Scalable, High-Performance Distributed File System)

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

Metadatos distribuidos

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

Replicación

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

Otros ejemplos

§ Google File System§ Colossus (GFS)§ BigTable§ Spanner§ Dynamo§ Megastore

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