Gluster_GoogleFS by xiagong0815

VIEWS: 0 PAGES: 20

									            Algunos
Sistemas de Archivos Distribuidos




                     Integrantes:
                     Anselmo Muñoz 07-41260
                     José Escorche 06-39495
Sistema de archivos distribuido (privativo) diseñado por Google para
aplicaciones que manejan archivos de gran tamaño.

Diseñado para satisfacer la demanda creciente de datos que Google
necesita.


Ofrece fiabilidad y
escalabilidad bajo el concepto
de su creación (el manejo de
archivos de gran tamaño), así
como un acceso concurrente a
los datos.
Observaciones claves de diseño:
  Las fallas de los componentes son la norma en lugar de la excepción.

  Los archivos por lo general son de gran tamaño.

   Los archivos son modificados añadiéndoles más datos (de manera secuencial) en
lugar de sobrescribir el contenido existente. Las escrituras aleatorias son prácticamente
inexistentes.

   Diseñando en conjunto el API del sistema de archivos y las aplicaciones beneficia el
sistema completo al incrementar su flexibilidad.

  Atomicidad de las operaciones con una mínima sobrecarga de sincronización es
esencial.
Interfaz:
 Provee una interfaz de sistema de archivos familiar, sin embargo no sigue un
estándar como POSIX.

 Los archivos están organizados de forma jerárquica e identificados por una ruta y un
nombre.

 Soporta las operaciones usuales de crear, borrar, abrir, cerrar, leer y escribir archivos.

 Posee además las operaciones snapshot y el anexo de registros (record append),
donde se puede acceder y modificar un archivo de manera concurrente.
    • Snapshot: crea una copia de un archivo o de un árbol de directorio a un bajo
    costo.
    • Record append: permite que múltiples clientes puedan agregar datos a un
    archivo concurrentemente asegurando la atomicidad de cada operación.
Arquitectura:
  Un único servidor maestro y múltiples chunkservers. Es accedido por varios clientes.

  Por lo general son máquinas con Linux ejecutando procesos de servidor a nivel de
usuario.

  Cliente y chunkserver pueden estar en la misma máquina.

  Los archivos son divididos en pedazos o partes (chunks) de tamaño fijo, por lo
general de 64 MB.

 Cada pedazo es identificado por un id inmutable y global de 64 bits asignado al
momento de su creación.

   Dichas partes de un archivo son almacenados en los discos locales de los
chunkservers, con varias replicas para aumentar la fiabilidad del sistema en caso de
fallas.
Arquitectura:
 El maestro mantiene todos los metadatos del sistema de archivos:
    • Namespace.
    • Información del control de acceso.
    • La correspondencia entre los archivos y sus respectivas partes.
    • La localización actual de cada pedazo de un archivo.
    • Recolección de basura de los pedazos huérfanos.

  El servidor maestro se comunica frecuentemente con los otros servidores para darles
instrucciones y obtener información de los mismos.

 Ni el cliente ni el chunkserver guardan en cache el contenido de un archivo.
    • Se eliminan problemas de coherencia.
    • En los chunkservers las partes son guardadas como archivos locales y el buffer
    del cache de Linux se encarga de su acceso.
Arquitectura
Tamaño de cada pedazo (chunk):
   Se eligió 64 MB, el cual es más grande que el tamaño de un bloque de cualquier
sistema de archivos.

  Cada pedazo es almacenado como un archivo en el chunkserver. Pueden ser
extendidos cuando sea necesario.

   La asignación de espacio ‘perezosa’ evita el desperdicio de espacio debido a la
fragmentación interna.

Ventajas:
• Se reduce el numero de interacciones entre el cliente y el servidor maestro.
• Reduce el tamaño de los metadatos almacenados en el servidor maestro.

Desventajas:
• Pueden generarse puntos calientes (hot spots) en servidores que posean archivos
muy pequeños y que son accedidos por muchos clientes.
Log de Operaciones:
  Contiene un histórico de los cambios críticos hechos a los metadatos.

  Sirve como una línea lógica de tiempo que define el orden de las operaciones
concurrentes.

  Por seguridad se mantienen varias replicas del log, y se responden a las solicitudes
de los clientes solo después de haber guardado el registro correspondiente tanto en la
copia local como en las replicas.

  Para restablecer el sistema se repiten las operaciones guardadas en el log.

  Se usan checkpoints del estado del sistema para mantener el histórico pequeño y
hacer eficiente la recuperación.
Replicación:
   Cada pedazo (chunk) de un archivo es replicado en varios servidores, por defecto en
tres. Los usuarios pueden especificar diferentes niveles de replicación.

  El servidor principal vuelve a replicar una parte de un archivo si el número de copias
es menor al especificado por el usuario.

  El servidor maestro se encarga de reponer las copias en caso de que un
chunkserver falle, así como de eliminar las copias sobrantes en caso de que dicho
servidor vuelva a funcionar.
Tolerancia a fallas:
  El servidor principal continuamente comparte información con los demás servidores.

   En caso de que algún servidor no responda, el maestro supone que ese servidor ha
fallado y replica sus archivos en otros servidores.

  Tanto el maestro como los chunkservers pueden restablecer su estado de forma
instantánea (en pocos segundos).

  Cuando el servidor principal falla y no puede recuperarse, un software de monitoreo
fuera de GFS inicia un nuevo maestro usando el log.
           Es un sistema de almacenamiento de archivos distribuidos de código
  abierto, además tiene la característica de estar basado enteramente en
  software. Trabaja sobre TCP / IP, y ofrece escalabilidad tanto en desempeño
  como en capacidad de almacenamiento, esto de manera independiente de la
  demanda.




Resultados de algunas                                         ¿ Que objetivos
       pruebas               GlusterFS                           persigue?



             ¿ Como es su                             ¿ Que lo diferencia de
             desempeño ?          ¿ Cual es su             otros FS?
                                   corazón ?
                                   GlusterFS
   Escalabilidad de                                               Elasticidad
        salida                                            Capacidad de adaptarse al
                                                          crecimiento o decrecimiento de la
Capacidad         de    mejorar
                                                          cantidad de datos almacenados
desempeño al incorporar nodos,        Objetivos           sin afectar al sistema.
y de mejorar la capacidad de
almacenamiento al incorporar
dispositivos de almacenamiento.


                                  Escalabilidad Linead   Capacidad mejorar desempeño          sin
                                                         desmejorar        capacidad          de
                                                         almacenamiento y viceversa.
GlusterFS

Escalabilidad de
     salida
                            GlusterFS

Almacena datos en              Lo diferente                 Solo Software
 formatos nativos


             No usa meta-
                                                     Código abierto
                datos
                            Usa espacio de usuario
GlusterFS

Elimina los meta-
      datos




                    Problemas generales :
                    En el central:
                    1.   Punto de fallo Único.
                    2.   Cuello de botella
                    En el Distribuido:
                    1.   Corrupción en archivos.
                    2.   Sobrecarga.
        GlusterFS

     Crea su corazón: Elastic
        Hashing Algorithm




Logra explotar la escalabilidad de salida
    ya que el algoritmo permite :
1.    Eliminar los meta-datos.
2.    Explotar el paralelismo.
3.    Distribuir de forma efectiva los datos.
                      GlusterFS

                        Desempeño
Velocidad de la Red                           ¿ Disco Duro ?
                       Depende de



                      # de nodos servidores
GlusterFS
                Bibliografía

  www.gluster.com

  Ghemawat, Sanjay; Gobioff, Howard and Leung, Shun-
Tak. The Google File System. 2003

								
To top