Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Índice
Introducción
API
Requisitos
Arquitectura general
Master
Operaciones
Recolección de basura
Tolerancia a fallos
Introducción
Se trata de un sistema de ficheros
distribuido y escalable.
Requiere alto rendimiento para miles de
usuarios simultáneos.
El sistema consta de miles de máquinas de
bajo coste (requiere tolerancia a fallos).
Distinto a otros sistemas distribuidos, pero
igual en sus necesidades de escalabilidad,
rendimiento, fiabilidad, disponibilidad …
API
No ofrece una API estándar como la API
POSIX pero los archivos están también
organizados jerárquicamente en directorios
e identificados por rutas.
Cuenta con operaciones del tipo: create,
delete, open, close, read y write.
Además existen las operaciones snapshot y
record append.
Requisitos
Requiere tolerancia a fallos (miles de máquinas
de bajo coste).
Se manejan ficheros de gran tamaño.
Operaciones frecuentes:
Lecturas secuenciales de gran tamaño (tipo streaming).
Lecturas aleatorias de tamaño pequeño.
Escrituras secuenciales grandes para añadir información
a ficheros (append).
El sistema debe garantizar la coherencia de los
datos incluso con miles de usuarios accediendo
al mismo fichero.
Arquitectura general (I)
Un cluster de GFS consta de:
Un master.
Varios chunkservers.
Múltiples clientes.
Cada fichero se divide en bloques de
64MB llamados chunk.
Cada chunk cuenta normalmente con tres
réplicas para asegurar la coherencia de la
información.
Arquitectura general (II)
Master (I)
Maneja los metadatos del sistema de
ficheros.
Un único master simplifica el diseño, pero
debemos reducir al mínimo su participación
en las operaciones de lectura–escritura
(cuello de botella).
Los clientes nunca deben leer y escribir
ficheros a través del master, sino que el
master les pondrá en contacto con el
chunkserver adecuado.
Master (II)
El master maneja tres tipos de
metadatos:
Espacio de nombre de los ficheros.
Mapeo entre ficheros y chunks.
La ubicación de cada fragmento de
réplica.
Los metadatos se almacenan en
memoria.
El master no guarda información
persistente acerca de los chunks.
Operación de escritura (I)