
Jeff Dean (miembro de Google) estuvo dando detalles muy interesantes sobre la infraestructura de hardware y software de Google en la conferencia Google I/O. Realmente es increible la escala en la que trabajan. Si sigue así va camino a convertirse en la MultiVac de Isaac Asimov (Cuento La Ultima Pregunta):
Poseían como mínimo una vaga noción del esquema de relés y circuitos que hacía tiempo había crecido hasta el punto de que ningún ser humano podía tener una firme comprensión del conjunto.
Multivac se ajustaba y corregía ella misma. Así debía ser, porque nada humano podía ajustarla y corregirla con la rapidez suficiente o incluso del modo más conveniente.
Les dejo algunos extractos del artículo de News Blog:
Servidores más o menos comunes
Clústeres de 1800 servidores es cosa de todos los días
40 servidores por rack, 36 data centers, 150 racks por data center = más de 200 000 servidores
"Desde nuestro punto de vista es mejor tener el doble de hardware no tan confiable que la mitad de ése hardware pero confiable"
"Tenemos que dar confiabilidad al nivel de software. Si estás corriendo 10000 máquinas entonces algo va a morir cada día."
"En el primer año de cada clúster es típico que ocurran 1000 fallos individuales; miles de fallos de disco duro ocurrirán; una unidad de distribución de energía fallará, deshabilitando de 500 a 1000 máquinas por aproximadamente 6 horas; 20 racks fallarán, cada uno haciendo que de 40 a 80 equipos se desvanezcan de la red; 5 racks se volverán inestables, con la mitad de sus paquetes de red perdidos en acción; y el clúster tendrá que ser recableado una vez, afectando al 5 por ciento de los equipos en un momento dado por un período de 2 días."
"Y hay una probabilidad de 50 por ciento de que el clúster se sobrecaliente, haciendo caer a la mayoría de los servidores en menos de 5 minutos y tomando de 1 a 2 dias para recuperarse."
Google le pidió a Intel la creación de circuitos integrados personalizados.
La empresa actualmente pone un gabinete alrededor de cada rack de 40 equipos, un diseño interno, en lugar de un gabinete convencional para cada servidor.
Tienen un pequeño número de configuraciones de servidor, algunos con muchos discos duros otros con menos.
"Tenemos heterogeneidad a través de los diferentes data centers pero no dentro de ellos"
"Realmente nos gustan los equipos multinúcleo. Para nosotros, los equipos multinúcleo son como pequeñas máquinas con interconexiones realmente buenas. Son relativamente fáciles de usar para nosotros."
Tienen montones de problemas de paralelización. Los resuelven por software.
Elementos principales del software de Google: GFS (Google File System), BigTable y el algoritmo MapReduce.
GFS: almacena datos a través de muchos servidores, corre en casi todos los equipos. Algunos casos de GFS almacenan muchos petabytes (1 petabyte = 1 millón de Gigabytes). Hay más de 200 clústers corriendo GFS y muchos de ésos clústers consisten de miles de máquinas. GFS almacena cada conjunto de datos, típicament 64Mb, en por lo menos 3 equipos llamados chunkservers; los equipos master son responsables de respaldar los datos en un área nueva si uno de los chunkservers falla. "Los fallos de los equipos son manejados totalmente por el sistema GFS, por lo menos a nivel de almacenamiento."
BigTable: le da estructura a todos ésos datos. Las bases de datos comerciales de empresas como Oracle e IBM no pinchan ni cortan en Google. No operan a la escala que demanda Google y si lo hicieran serían demasiado caras. El diseño comenzó en 2004, es usado en más de 70 proyectos de Google, incluyendo Google Maps, Google Earth, Blogger, Google Print, Orkut y el índice de búsqueda principal. La mayor instancia de BigTable maneja cerca de 6 petabytes de datos.
MapReduce: primera versión escrita en 2003. Le proporciona a la empresa la forma de hacer algo útil a partir de sus datos. Por ejemplo: MapReduce puede averigüar cuantas veces una palabra en particular aparece en el índice de búsqueda de Google; una lista de páginas Web en las cuales aparece la palabra y la lista de sitios Web que enlazan a ése sitio Web en particular. Corrió 29000 tareas en Agosto de 2004 y 2.2 millones en Setiembre de 2007. El tiempo promedio para completar una tarea bajó de 634 segundos a 395 segundos mientras que el resultado de las tareas de MapReduce ha aumentado de 193 terabytes a 14018 terabytes. En un día Google corre cerca de 100000 tareas de MapReduce ocupando cada una 400 servidores y tomando de 5 a 10 minutos en terminar.
"Cuando un equipo falla, el master sabe qué tarea tenía asignado ése equipo y dirigirá a los otros equipos a encargarse de la tarea."
"Puedes terminar perdiendo 100 tareas pero tendrás 100 equipos encargándose de ellas."
La confiabilidad de MapReduce fue probada severamente una vez durante una operación de mantenimiento en un clúster de 1800 servidores. Los empleados desconectaban 80 equipos a la vez mientras que los otros 1720 equipos se encargaban. "Corrió un poco lento, pero todo se completó."
Otra vez un sistema soportó una falla de 1600 servidores en un clúster de 1800 equipos.
Cada datacenter tiene su GFS. Quieren que el GFS sea uno solo a través de todos sus datacenters.
No hay comentarios:
Publicar un comentario