Sistemas Distribuidos I
GFS: Google File System
El sistema GFS
Google File System
Roberto Gómez Cárdenas
[email protected]
http://homepage.cem.itesm.mx/rogomez
Lámina 1
Roberto Gómez C.
The Google File System (GFS)
• Sistema de archivos distribuido para
aplicaciones .
• Actualmente se cuenta con múltiples clusters
GFS.
• Los más grandes son
– 100+ nodos de almacenamiento.
– 300+ TeraBytes de almacenamiento disco.
– Accedidos por miles de clientes en distintas
máquinas.
Lámina 2
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
1
Sistemas Distribuidos I
GFS: Google File System
Introducción
• Comparte muchos objetivos en
común con previos sistemas de
archivos distribuidos
– Desempeño, escalabilidad,
disponibilidad, etc.
• Diseño inspirado por cuatro
observaciones claves de cargas de
trabajo de aplicaciones Google y
ambiente tecnológico.
– Fallas en el hardware.
– Tamaño archivos.
– Crecimiento de los archivos.
– Diseño de la APIs.
Lámina 3
Roberto Gómez C.
Observaciones
1. Las fallas de componentes son una norma
–
Sistema compuesto de cientos/miles de máquinas de
almacenamiento, construidas a partir de componentes
baratos.
– Monitoreo constante, detección de errores, tolerancia a
fallas y recuperación automática son integrales al sistema
2. Archivos muy grandes
Son comunes archivos de varios GB.
–
– Cada archivo contiene varios objetos de aplicación como
componentes web.
– A tomar en cuenta en el diseño, operaciones de E/S y
tamaño de bloques
Lámina 4
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
2
Sistemas Distribuidos I
GFS: Google File System
Observaciones
3. Crecimientos archivos
– Operaciones de añadir información más comunes
que las de sobre-escritura.
4. Diseño APIs
– El co-diseñar las aplicaciones y el API del sistema
de archivos beneficia al sistema, al incrementar la
flexibilidad.
– Por ejemplo se introdujo un operación de añadir
atómicas, de tal forma que múltiples clientes
puedan añadir de forma concurrente a un archivo
sin necesidad de sincronización extra entre ellos.
Lámina 5
Roberto Gómez C.
Interfaz
• No implementa un estándar API como POSIX.
• Archivos organizados jerárquicamente en
directorios y son identificados por pathnames.
• Operaciones soportadas: create, delete, open,
close, read y write.
• Dos operaciones extras:
– Snapshot: crea una copia de un archivo o árbol de
directorios.
– Record append: varios clientes pueden añadir datos
de forma concurrente
Lámina 6
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
3
Sistemas Distribuidos I
GFS: Google File System
Arquitectura
• Un cluster GFS
– Un solo master.
– Múltiples chunkservers por master.
• Accedidos por múltiples clientes.
– Corren en máquinas Linux.
• Un archivo
– Representado como un conjunto de chunks de tamaño fijo
• Etiquetado con un identificador único de 64 bits.
• Almacenado en los chunckservers.
• Cada chunk es replicado en varios chunkservers.
Lámina 7
Roberto Gómez C.
Esquema arquitectura
Application
GFS client
chunk location?
GFS Master
chunk data?
GFS chunkserver
GFS chunkserver
Linux file system
GFS chunkserver
Linux file system
Linux file system
Lámina 8
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
4
Sistemas Distribuidos I
GFS: Google File System
El Master
• Mantiene todos los metadatos del sistema de archivos
– Espacio de nombres, información de control de acceso,
mapeo de archivo a pedazos (chunk), ubicación de los
pedazos (incluyendo replicas, etc.)
• Periódicamente se comunica con los servidores de
pedazos a través de mensajes HeartBeat para
proporcionar intrusos y verificar el estado.
Lámina 9
Roberto Gómez C.
El Master
• Ayuda a crear los chunks y lleva a cabo
decisiones de replica, usando conocimiento
global.
• Solo responde a peticiones de ubicación de los
chunks.
• Un cliente típicamente solicita varias
ubicaciones en una sola petición.
• El master también proporciona ubicaciones de
futuros chunks, a partir de los chunks
solicitados.
Lámina 10
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
5
Sistemas Distribuidos I
GFS: Google File System
El cliente
• Consulta al maestro para obtener metadatos.
– No obtiene datos del maestro.
• Los datos se acceden a partir de los
chunkservers.
• No pasan a través del sistema de archivos de
Linux.
• No hay caché en los clientes y los chunkservers
debido a la frecuencia del streaming.
Lámina 11
Roberto Gómez C.
El chunck (pedazo)
• Es de 64MB
– Más grande que el tamaño de bloque de los sistemas de
archivos clásicos.
• Ventajas
– Interacción reducida entre cliente y master, operaciones de
lectura y escritura sobre el mismo chunk requiere solo una
petición inicial.
– Reducción del tráfico de red, ya que se mantiene una
conexión TCP sobre el chunkserver sobre un periodo de
tiempo extendido.
– Reducción de los metadatos almacenados en el maestro, los
cuales son almacenaos en memoria.
Lámina 12
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
6
Sistemas Distribuidos I
GFS: Google File System
El chunk (pedazo)
• Desventajas
– Archivos pequeños pueden consistir de un número
reducido de chunks, tal vez solo uno.
– Los chunkservers que almacenen dicho chunk
pueden volverse hot spots, si varios clientes acceden
al mismo archivo.
Lámina 13
Roberto Gómez C.
Ubicaciones chunk
• Maestro no guarda un registro persistente de
cuales chunkservers almacenan que replicas.
• El master recolecta esta información en el
arranque, y cuando nuevos servidores de
pedazos se añaden o dejan el grupo.
• Se mantiene actualizado ya que controla la
ubicación de nuevos chunks y monitorea su
status a través de mensajes HeartBeat.
Lámina 14
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
7
Sistemas Distribuidos I
GFS: Google File System
Los metadatos
• Tres tipos de metadatos almacenados
– Espacio nombres de los archivos y de los chunks.
– El mapeo entre los archivos y los chunks.
– Ubicación de las replicas de los metadatos.
• Almacenados en memoria principal.
• Se mantienen menos de 64 bytes de metadatos
por cada 64MB.
• Los nombres también requieren menos de 64
bytes ya que se almacenan comprimidos usando
prefix compression.
Lámina 15
Roberto Gómez C.
Esquema de funcionamiento
Lámina 16
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
8
Sistemas Distribuidos I
GFS: Google File System
Bitácoras
• Las actualizaciones de los metadatos son registradas en
bitácoras.
– p.e. tuplas <valor antiguo, nuevo valor>
– Las bitácoras son replicadas en máquinas remotas.
• Se toman snapshots (chekpoints) para truncar
bitácoras.
– La memoria es mapeada.
– Checkpoints pueden ser creados mientras las actualizaciones
llegan.
• Recuperación
– Ultimo checkpoint + subsecuentes archivos de bitácoras.
Lámina 17
Roberto Gómez C.
Modelo consistencia
• Consistencia relajada
– Cambios concurrentes y son consistentes pero
indefinidos.
– Una añadidura es automáticamente completada
(commiteed) al menos una vez.
• Ocasionalmente se dan duplicaciones.
• Todos los cambios a un chunk son aplicados en
el mismo orden a todas las replicas.
• Usan el número de versión para detectar
actualizaciones perdidas.
Lámina 18
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
9
Sistemas Distribuidos I
GFS: Google File System
Interacciones del sistema
• El maestro otorga un contrato a una replica.
• La replica que cuenta con el contrato determina
el orden de actualización de todas las replicas.
• El contrato
– Timeouts de 60 segundos.
– Puede ser extendido indefinidamente.
– Peticiones de extensión son incluidas en los
mensajes heartbeat.
– Después de que el timeout expira, el master puede
solicitar nuvos “contratos”.
Lámina 19
Roberto Gómez C.
Operaciones de bloqueo
• Un lock por ruta
– Para acceder a /d1/d2/hoja
– Es necesario:
• Bloquear /d1
• Bloquear /d1/d2 y
• Bloquear /d1/d2/hoja
– Puede modificar un directorio concurrentemente
• Cada thread adquiere
– Un lock de lectura en el directorio
– Un lock de escritura en el archivo
– Ordenamiento total de los locks para prevenir
deadlocks.
Lámina 20
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
10
Sistemas Distribuidos I
GFS: Google File System
Ubicación de las replicas
• Objetivos
– Maximizar disponibilidad y
– Maximizar ancho de banda de la red.
• Necesario expandir replicar chunks a través de
las máquinas y racks.
• Mayor prioridad de replica para los chunks con
bajos factores de replica.
• Recursos limitados para destinados a
replicación.
Lámina 21
Roberto Gómez C.
Garbage Collection
• Más simple que un borrado apresurados, debido
a
– Creación de replicación no terminada
– Mensajes de borrado perdidos
• Archivos borrados son ocultos por tres días.
• Entonces son colectados (garbage collected)
• Combinado con otras operaciones de
background (toma de snapshots).
• Red de seguridad para accidentes.
Lámina 22
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
11
Sistemas Distribuidos I
GFS: Google File System
Tolerancia fallas y diagnostico
• Recuperación rápida
– El master y el chunkserver son diseñados para
reestablecer sus estados y empezar en segundos a
pesar de sus condiciones de termino.
• Replicación del chunk
• Replicación del master.
– Sombras del master proporcionan acceso de solo
lectura cuando el master primario se cae.
Lámina 23
Roberto Gómez C.
El sistema GFS
Google File System
Roberto Gómez Cárdenas
[email protected]
http://homepage.cem.itesm.mx/rogomez
Lámina 24
Roberto Gómez C.
Dr. Roberto Gómez Cárdenas
12
Comentarios de: El sistema GFS (0)
No hay comentarios