domingo, 5 de junio de 2011

Infraestructura de Google Apps (II)

Google administra lo que considera un sistema de almacenamiento de escala planetaria. Los números son algo difíciles de comprender, pero, para tener una idea, un ingeniero de Google dijo el año pasado en una presentación: "Te das cuenta de que manejás un storage realmente grande cuando te llega un alerta a la 1 AM porque sólo quedan algunos Petabytes disponibles". (1 Petabyte = 1000 Terabytes).

Lo que pude investigar y recopilar (Google es muy celoso de algunos de los aspectos de su infraestructura) es lo siguiente:
  • Está formada por una inmensa red de datacenters, cuya ubicación exacta Google no comparte pero se estima que existen al menos 15 en EE UU y 7 en Europa. También en Australia y en Brasil (ver 1 y 2).
  • Están compuestos por servidores, storages y switches que Google arma por sí mismo (3 y 4). Esta es una gran ventaja estratégica ya que todo está optimizado pensando en la seguridad y la performance para el uso específico que tienen. Google es el cuarto fabricante mundial de hardware. Y el primero para uso propio.
  • Cada servidor tiene su propia UPS incorporada a la fuente de alimentación. Que es, básicamente, el agregado de una batería. Pero es mucho más que eso, según se desprende de los documentos de patentamiento (5).
  • Imagen de un servidor publicada por Google en 2008
  • Los servers corren una versión disminuída de Linux, para minimizar los riesgos de seguridad y aumentar la eficiencia.
  • En cuanto a los datos, se sabe que cada unidad de información no está almacenada en un sólo server ni en un único datacenter. Los datos son fraccionados y distribuidos en distintos servidores y en distintos datacenters (6). Esto permite  obtener una alta performance y resistencia a fallas.
  • En un datacenter puede haber varios bloques de alrededor de 10000 servidores para almacenamiento de información con 6 discos de 1TB c/u, interconectados por redes de 10Gb. También están investigando los discos de estado sólido (SSD) pero aún no son utilizados masivamente por su relativa baja disponibilidad (para los requirimientos de este monstruo, claro), el alto costo y la duración de largo plazo aún no comprobada (6).
  • Para que todo esto funcione hay diversas tecnologías (software) propias, desarrolladas a lo largo de varios años (7, 8, 9 y 10). Serán tema un post futuro pero las principales, relacionadas con Google Apps son: 
    • Como sistema de archivos: Google File System y su sucesor Colossus.
    • Almacenamiento estructurado: Bigtable, BlobStore y Spanner.
    • Procesamiento distribuido: MapReduce.
Realmente es difícil imaginarse muchas de estas cosas por la escala casi astronómica que representan pero es evidente que consiguen almacenar y procesar enormes cantidades de información de una manera rápida y efectiva.

Referencias:
  1. http://www.nytimes.com/2006/06/14/technology/14search.html
  2. http://www.datacenterknowledge.com/archives/2008/03/27/google-data-center-faq/
  3. http://arstechnica.com/hardware/news/2009/04/the-beast-unveiled-inside-a-google-server.ars
  4. http://gigaom.com/2007/11/18/google-making-its-own-10gig-switches/
  5. http://www.datacenterknowledge.com/archives/2008/02/15/google-files-patent-on-ups-architecture/
  6. http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/es//university/relations/facultysummit2010/storage_architecture_and_challenges.pdf
  7. http://labs.google.com/papers/mapreduce.html
  8. http://labs.google.com/papers/chubby.html
  9. http://labs.google.com/papers/gfs.html
  10. http://labs.google.com/papers/bigtable.html

No hay comentarios.: