Sistema de archivos de Google

El sistema de archivos de Google ( GFS o GoogleFS ) es un sistema de archivos distribuido patentado para sistemas basados ​​en Linux que Google desarrolló internamente para almacenar y procesar grandes cantidades de datos, principalmente del índice de búsqueda de Google y más tarde también de Gmail . El sistema de archivos de Google conoce dos tipos de componentes: el servidor maestro y el servidor fragmentado. El primero contiene solo metainformación sobre archivos, mientras que el segundo son los datos reales en un Linux clásico : el sistema de archivos persiste. El sistema de archivos de Google divide los archivos en trozos para que un archivo se pueda distribuir en varios servidores. En la primera versión, cada fragmento era de 64 megabytes, mientras que el tamaño se actualizó posteriormente a 1 MB (a partir de 2009). El sistema de archivos de Google funciona un nivel de abstracción más alto que los sistemas de archivos típicos y solo se encarga de la distribución, al tiempo que garantiza la disponibilidad y coherencia de los datos. Está optimizado para un alto rendimiento de datos y puede administrar cientos de terabytes en miles de discos duros en miles de máquinas.

construcción

El sistema de archivos de Google se adapta a los requisitos necesarios de la búsqueda web , lo que genera una enorme cantidad de datos para almacenar. GFS surgió de un intento anterior de Google, que lleva el nombre de "BigFiles" y fue desarrollado por Larry Page y Sergey Brin durante su investigación en la Universidad de Stanford .

Los datos se guardan constantemente en archivos muy grandes, a veces incluso de varios gigabytes de tamaño, que solo se eliminan, sobrescriben o comprimen en casos extremadamente raros ; Por lo general, los datos se adjuntan o se leen. El sistema de archivos también ha sido diseñado y optimizado para ejecutarse en los clústeres informáticos de Google , cuyos nodos de red consisten en PC disponibles comercialmente. Sin embargo, esto también significa que la alta tasa de fallas y la pérdida de datos asociada de los nodos de red individuales deben considerarse normales. Esto también se refleja en el hecho de que no se hace distinción entre terminación normal (apagado) y terminación anormal (caída): los procesos del servidor se terminan de forma predeterminada con un comando kill . Otras decisiones de diseño dependen de altas tasas de rendimiento de datos, incluso si esto se produce a expensas de la latencia .

Un clúster de GFS consta de un maestro y cientos o miles de servidores de bloques . Los servidores de fragmentos almacenan los archivos, con cada archivo dividido en partes de 64 MB ("fragmentos") , similar a los grupos o sectores en los sistemas de archivos comunes.

Para evitar la pérdida de datos, GFS guarda de forma predeterminada cada archivo al menos tres veces por clúster. Si un servidor de fragmentos falla, solo hay retrasos insignificantes hasta que el archivo vuelve a tener su número estándar de réplicas. Dependiendo de los requisitos, el número también puede ser mayor, por ejemplo, en el caso de archivos ejecutables . A cada fragmento se le asigna un identificador único de 64 bits de longitud, y se conservan las asignaciones lógicas de los archivos a los fragmentos individuales.

El maestro no guarda fragmentos, sino sus metadatos , como nombres de archivo , tamaños de archivo, su ubicación de almacenamiento y sus copias, qué procesos están accediendo actualmente a qué fragmento, etc. Los maestros reciben todas las solicitudes de un archivo y, en respuesta, proporcione el servidor de fragmentos asociado y emita los bloqueos adecuados en el proceso. Sin embargo, un cliente puede almacenar en caché la dirección del servidor de fragmentos durante un cierto período de tiempo . Si el número de réplicas disponibles cae por debajo de la norma, también son los maestros los que inician la creación de una nueva copia fragmentada. Los maestros mantienen actualizados los metadatos que envían periódicamente solicitudes de actualización al servidor de fragmentos ( " mensajes de latido del corazón " , en alemán, por ejemplo, "mensajes de latido del corazón" ).

El GFS está diseñado e implementado con solo un maestro por clúster. Esto parece ser una falla en el sistema que limita su escalabilidad y confiabilidad, ya que el tamaño máximo y el tiempo de actividad dependen del rendimiento y tiempo de actividad del maestro, ya que cataloga los metadatos y casi todas las solicitudes pasan por él; Sin embargo, los técnicos de Google han demostrado mediante mediciones que esto (al menos hasta ahora) no es el caso y que GFS es muy escalable. El maestro es normalmente el nodo de red más poderoso de la red. Para garantizar la confiabilidad, existen varios "maestros de sombra" que reflejan la computadora principal y, si es necesario, intervienen inmediatamente si el maestro falla. Además, los shadow masters también están disponibles para solicitudes de lectura puras, que constituyen el tráfico principal, por lo que la escalabilidad aumenta aún más. Rara vez hay cuellos de botella, ya que los clientes solo solicitan metadatos que se almacenan completamente en la memoria principal como un árbol B ; son muy compactos, solo unos pocos bytes por megabyte de datos. Al utilizar un solo nodo principal, la complejidad del software se reduce drásticamente, ya que no es necesario coordinar las operaciones de escritura.

literatura

  • Matthew Helmke: Ubuntu Unleashed 2015 Edition . Pearson Education Inc, 2015, ISBN 978-0-672-33837-3 .
  • Kuan-Ching Li, Qing Li, Timothy K. Shih (Eds.): Computación en la nube y medios digitales . Taylor & Francis Group, Boca Raton 2014, ISBN 978-1-4665-6917-1 .
  • Kenli Li, Zheng Xiao, Yan Wang, Jiayi Du, Keqin Li (Eds.): Dinámica de fluidos computacional paralela . Springer Verlag, Berlín / Heidelberg 2014, ISBN 978-3-642-53961-9 .
  • Yunquan Zhang, Kenli Li, Zheng Xiao (Eds.): Computación de alto rendimiento . Springer Verlag, Berlín / Heidelberg 2012, ISBN 978-3-642-41590-6 .

Ver también

Evidencia individual

  1. a b S. Ghemawat, H. Gobioff, ST Leung: El sistema de archivos de Google . En: Actas del XIX Simposio de ACM sobre principios de sistemas operativos - SOSP '03 2003, ISBN 1581137575 , p. 29, doi : 10.1145 / 945445.945450 .
  2. a b c GFS: Evolución en avance rápido. Consultado el 24 de febrero de 2021 .

enlaces web