Как устроены дата-центры Google

4 марта 2005 года

Интересный перевод доклада по организации кластерного хозяйства в Google (перевод webplanet.ru):

Одной из составляющих успеха Google являются ее инженерные инновации. Дата-центры, работающие быстро и надежно, не менее важны, чем оригинальные поисковые алгоритмы.

Некоторые подробности того, как устроены пресловутые дата-центры Google, раскрыл вице-президент Google, руководитель инженерного отдела Урс Хольцль (Urs Hoelzle), выступая на одной из конференций для разработчиков.

По словам Хольцля, компьютерная инфраструктура Google построена на тысячах "обычных", относительно дешевых, серверов. Общая стоимость оборудования составляет несколько миллионов долларов. Это оказалось выгоднее, чем приобретение меньшего количество дорогих многопроцессорных машин, которые в общей сложности обошлись бы в десятки миллионов.

Хитрость в том, чтобы обеспечить бесперебойную и надежную работу такой системы, построенной на дешевом оборудовании. Кроме того, информация должна обрабатываться максимально быстро. Здесь инженерам Google пришлось применить весь свой талант.

В дата-центре из тысяч машин можно предположить, что хотя бы одна из них будет выходить из строя ежедневно. Поэтому в Google весь процесс максимально автоматизирован. Для обслуживания дата-центра инженерами Google создано несколько оригинальных программ.

Во-первых, это собственная файловая система Google File System, которая оптимизирована для работы с большими блоками данных по 64 МБ, а также обладает повышенной защитой от сбоев. Вся информация копируется и хранится в трех местах одновременно, при этом система способна очень быстро находить реплицированные копии, если какая-то машина вышла из строя. Задачи автоматического восстановления после сбоя решаются с помощью программ, созданных по модели MapReduce. За последний год, по словам Хольцля, компания Google значительно расширила использование этой системы упрощенной обработки данных в больших кластерах.

Таким образом, программное обеспечение в дата-центре имеют большую роль, чем оборудование. Если система защищена от сбоев, а система автоматически восстанавливается, то можно устанавливать даже самые недорогие серверы.

Серверы работают под управлением Linux. За основу был взят стандартный дистрибутив Red Hat, в котором ядро операционной системы было модифицировано с учетом нужд Google.

Инженеры компании также разработали специальную систему для быстрой обработки больших объемом данных и мгновенной выдачи результатов в ответ на запросы. Весь поисковый индекс разделен на блоки (shads), которые тоже постоянно реплицируются на случай сбоя. Отдельные машины предназначены для хранения документов, которые роботы Google скачивают и индексируют.

Поиск в индексе работает очень быстро благодаря составленному словарю всех слов, которые встречаются в интернете. То есть словарь хранится отдельно, а в индекс попадают только символы, соответствующие определенным словам.

Еще одной важная проблема, которую пришлось решать инженерам Google, — это такая работа программ, чтобы они могли отправлять запросы и быстро обрабатывать информацию сразу с тысяч серверов, то есть нужно было эффективное распараллеливание задач. Для этого программистами Google разработан специальный "менеджер задач" особого рода под названием Globa Work Queue. Он разбивает задачи на части и распределяет нагрузку между серверами.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Как устроены дата-центры Google», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.