Gfs GOOGLE FILE SYSTEM
Enviado por tolero • 18 de Diciembre de 2018 • 2.813 Palabras (12 Páginas) • 399 Visitas
...
METADATA
La definición más concreta de los metadatos es “datos acerca de los datos” y sirven para suministrar información sobre los datos producidos. Losmetadatos consisten en información que caracteriza datos, describen el contenido, calidad, condiciones, historia, disponibilidad y otras características de los datos.
namespaces and file-to-chunk mapping (mapeo del archivo al chunk) se mantienen persistentes al mantener el registro de mutaciones en un registro de operaciones almacenado en el disco local del maestro. Este registro de operación también se reproduce en máquinas remotas. En caso de que el maestro se bloquee en cualquier momento, puede actualizar el estado maestro de manera sencilla, confiable y sin arriesgar la incoherencia con la ayuda de estos registros de operaciones. El maestro no almacena persistentemente información de ubicación de trozos, sino que pregunta a cada chunkservers sobre sus partes cuando se inicia o cuando un chunkserver se une al clúster.
La capacidad del sistema está limitada por cuanta memoria tiene el maestro, en la práctica no es una limitación muy seria, el maestro mantiene menos de 64 bytes de metada por cada chunk (64MB)
MASTER
El master es un solo proceso que conrren una maquina separa que guarda toda la metadata. El cliente contacta al master para obtener la metadata para contactar con los chunkservers.
El maestro mantiene todos archivos de la metadata del sistema, estas incluyen nombre, información del control de acceso, el mapeo desde los archivos a los chunks y la locación de los chunks. También el master se comunica periódicamente con los chunkservers y recolecta sus estados.
INTERACCIÓND EL SISTEMA
El maestro y los chunkservers regularmente se comunican para obtener el estado, si el chunkserver está caído, si hay algún disco corrupto el cual genere replicas, etc. El maestro también envía instrucciones a los chunkserver para eliminar el chunk existente, creando un nuevo chunk.
ALGORITMO DE LECTURA
- Una aplicación origina una solicitud de lectura.
- El cliente GFS traduce la solicitud de (filename, byterange) -> (filename, chunk index), y lo envía al maestro.
- El maestro responde con el CHUNK HANDLE y la locación de las réplicas.
[pic 2]
(recordad modelo osi y tcp ip )
- El Cliente selección la ubicación y envía la solicitud (chunk Handle, byte range) a la ubicación.
- Chunkserver envía los datos solicitados al cliente
- El cliente envía los datos a la aplicación.
[pic 3]
ALGORITMO DE ESCRITURA
Arrendamientos y mutaciones:
Una mutación es una operación que cambia el contenido o los metadatos de un chunk, como una operación de escritura o de agregación, esto es realizado en todas las réplicas.
Los arrendamientos son usados para mantener un orden consistente de mutación entre las réplicas. El maestro otorga un arrendamiento de chunk a una de las réplicas, la cual llamaremos la primaria. La primaria selecciona un orden serial para todas las mutaciones del chunk. Todas las réplicas siguen este orden cuando se aplican las mutaciones, así el orden global de mutaciones es definido primero por el orden de concesión de arrendamiento elegida por el master, y dentro de un arrendamiento por los números seriales asignados por el primario.
El mecanismo de arrendamiento es diseñado para minimizar la sobrecarga de administración en el maestro. Un arrendamiento tiene un tiempo inicial de espera de 60 segundo pero puede ser extendido por el master tantas veces sea necesario .
El maestro algunas veces trata de revokar un arrendamiento antes de que expire por ejemplo cuando el master quiere deshabilitar mutaciones sobre un archivo que está siendo renombrado) incluso si el maestro pierde comunicación con el primario, puede sin peligro otorgar un nuevo arrendamiento a otra replica despues de que el viejo arrendamiento expire.
El algoritmo de escritura es similar al algoritmo de lectura en termino de el contacto entre el cliente, el maestro y el chunkserver. Google mantiene almeno tres replicas de cada chunk, entonces en la lectura, nosotros solo leíamos desde uno de los chunkservers, pero caso de escritura, se debe escribir en todos los tres chunkservers, esta es la gran diferencia entre lectura y escritura.
1. La solicitud origina la solicitud
2. El cliente GFS traduce la solicitud de (nombre de archivo, datos) -> (nombre de archivo, índice de fragmentos) y
lo envía al maestro
3. El maestro responde con el identificador de fragmentos y las ubicaciones de la réplica (primaria y secundaria)
[pic 4]
4. El cliente empuja los datos de escritura a todas las ubicaciones. Los datos se almacenan en los buffers internos de los chunkservers
[pic 5]
5. Cliente envía comandos de escritura a primaria
6. Primario determina el orden en serie de las instancias de datos almacenadas en su búfer y escribe las instancias en ese orden en el chunk.
7. Primario envía el orden serial a los secundarios y les dice que realicen la escritura
[pic 6]
8. Las secundarias responden a la primaria
9. Primario responde al cliente
Nota: Si la escritura falla en uno de los servidores chunkservers, el cliente es informado y reintenta la escritura
[pic 7]
ALGORITMO DE AJUSTE DE RESGISTRO
El ajuste de registro es una operación importante para Google, el cual no es muy común en otros sistemas de archivos distribuidos. La razón por la cual agregaron está operación es, en el entorno, es menos como la sobre
...