Upload
others
View
10
Download
0
Embed Size (px)
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