of 178 /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]

Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Text of Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21...

Page 1: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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]

Page 2: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 3: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 4: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 5: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 6: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 7: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

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

Page 8: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 9: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 10: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 11: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 12: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 13: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 14: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 15: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 16: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Resolución de nombres

§ Resolución iterativa

§ Resolución transitiva

§ Resolución recursiva

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

Page 17: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 18: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 19: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 20: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 21: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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.

Page 22: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 23: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 24: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 25: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 26: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 27: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 28: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 29: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 30: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 31: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 32: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 33: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 34: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 35: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 36: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 37: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 38: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 39: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

•Cliente

•Servidor

•Disco

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

Page 40: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

•Cliente

•Servidor

read()

•Disco

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

Page 41: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 42: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 43: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 44: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 45: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 46: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 47: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 48: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 49: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 50: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 51: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 52: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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.

Page 53: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 54: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 55: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 56: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 57: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 58: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 59: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 60: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 61: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 62: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 63: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 64: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 65: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 66: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 67: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 68: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 69: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 70: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 71: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

•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

Page 72: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 73: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 74: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 75: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 76: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Falsa coutilización

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

Proceso A Proceso B

Unidad de coherencia

Page 77: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 78: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 79: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 80: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 81: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 82: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 83: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 84: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 85: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Mecanismo de acceso

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

SNIA

Page 86: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Ejemplos

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

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

Page 87: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Paralelismo en el acceso a los datos

Page 88: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Paralelismo en el acceso a los datos

Dispositivos en paralelo

Page 89: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 90: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 91: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 92: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 93: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 94: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 95: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 96: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Acceso paralelo

Accesoparalelo

Page 97: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Acceso paralelo

Accesoparalelo

Page 98: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Acceso paralelo

Accesoparalelo

Aplicaciónparalela

Page 99: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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.

Page 100: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Examples of PFS

§ PVFS

§ GPFS

§ Lustre

§ Expand

Page 101: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 102: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 103: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 104: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 105: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 106: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 107: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 108: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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)

Page 109: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 110: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 111: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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)

Page 112: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 113: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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)

Page 114: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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)

Page 115: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

I/O system layers

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

Page 116: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

I/O system layers

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

POSIX

Page 117: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Access patterns

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

Page 118: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

.

Page 119: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 120: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 121: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 122: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 123: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 124: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Distintos tipos de paralelismo

Nodos De cómputo

Paralelismo lógicoFichero lógico

Page 125: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 126: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 127: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Optimizaciones

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

Page 128: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 129: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 130: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 131: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 132: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 133: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 134: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 135: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 136: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 137: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 138: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 139: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 140: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 141: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 142: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 143: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 144: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 145: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 146: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 147: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 148: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 149: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 150: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 151: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 152: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 153: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 154: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 155: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 156: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 157: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 158: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 159: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 160: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 161: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 162: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 163: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Arquitectura

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

Fuente: Hadoop.apache.org

Page 164: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Plataforma HW típica

§ Clusters de PC organizados en racks

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

Page 165: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 166: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 167: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Replicación

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

Fuente: Hadoop.apache.org

Page 168: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 169: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 170: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 171: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 172: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Escritura de un fichero

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

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

Page 173: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

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

Page 174: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Replicación

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

Page 175: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Ceph (Scalable, High-Performance Distributed File System)

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

Page 176: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Metadatos distribuidos

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

Page 177: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Replicación

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

Page 178: Diseño de Sistemas Distribuidos · Diseño de Sistemas distribuidos Félix García Carballeira 21 Métodos de acceso remotos § Modelo carga/descarga q Transferencias completas del

Otros ejemplos

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

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