Архивы: по дате | по разделам | по авторам

Главный компьютер Земли

АрхивТехнологии
автор : Рич Скрента   08.04.2004

Поисковая система и все прочие сервисы Google - только верхушка айсберга. Немногие пока осознали главное: Google строит грандиозный универсальный суперкомпьютер. Над его уникальной операционной системой работают лучшие умы, в том числе авторы оригинальной версии Unix. О том, что сегодня создают в дата-центрах Google, другие и не мечтают.

Поисковая система и все прочие сервисы Google - только верхушка айсберга. Немногие пока осознали главное: Google строит огромный универсальный суперкомпьютер, состоящий из сотен тысяч узлов. Над его уникальной операционной системой работают лучшие умы, в том числе авторы оригинальной версии Unix. О том, что сегодня создают в дата-центрах Google, другие и не мечтают. Подробности рассказывает в своей статье директор компании Topix.net Рич Скрента.

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

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

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

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

Архитектура и экономика Gmail

Позвольте мне сделать некоторые предположения об устройстве Gmail.

У Hotmail шестьдесят миллионов пользователей. Судя по всему, конструкция Gmail должна иметь сравнимые возможности и поддерживать масштабирование до ста миллионов пользователей. Впрочем, в ближайший год системе придется поддерживать только пару миллионов пользователей.

Самая очевидная проблема, требующая решения - это хранение данных. Нельзя допустить потери чужой почты и падений, поэтому данные должны реплицироваться. RAID не годится. Когда жесткий диск отказывает, для его замены необходим человек, а если испортятся больше дисков, появится риск потери данных. Ситуация почти такая же, как в пятидесятые годы, когда техникам приходилось бегать по машинным залам доисторических компьютеров с тележкой электронных ламп и заменять перегоревшие, только в Google вместо ламп будут жесткие диски. Вдобавок, RAID требует более дорогого аппаратного обеспечения, по крайней мере, специальных салазок для горячей смены диска. И в любом случае, RAID не обеспечивает высокой доступности на серверном уровне.

Нет. В настоящий момент у Google 100 тысяч серверов. Когда сервер или диск ломается, его оставляют лежать в стойке и ждать планового ремонта или замены. О том, чтобы аппаратные неисправности не помешали работе, заботится программное обеспечение.

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

Жесткие диски в серверах для Gmail не перевешивают всё остальное. Всё равно процессор остается важен для индексирования и выдачи страниц. Никаких необычных RAID-плат или салазок для смены дисков без выключения сервера, просто один-два винчестера на одноюнитовый сервер.

Несложно прикинуть экономику сервиса, оценив среднюю стоимость хранения данных на одного пользователя, стоимость серверов и доходы с пользователя в год. Google, очевидно, рассчитывает, что операционные затраты на хранение данных составят 2 доллара на гигабайт. По моим подсчетам на манжетах выходят цифры того же порядка. Я бы предположил, что в год с одного пользователя веб-почты можно иметь от одного до десяти долларов.

Дешевое железо

Вот история, иллюстрирующая, насколько подход Google к стоимости железа отличается от нормы, и какое значение это имеет, как один из источников конкурентного преимущества.

На прошлой работе я участвовал в разработке поискового сайта, и для него мне требовались сорок серверов среднего ценового диапазона. Тогда команда сисадминов взяла надо мной верх: они хотели шесть более дорогих серверов, потому что, по их словам, проще поддерживать работу шести машин, чем сорока.

Результат - повышение стоимости процессорного времени. У нас были программисты, которые могут придумать алгоритмы, выдающие немного лучшие поисковые результаты, но если эти алгоритмы работают вдесятеро медленнее нынешнего, количество серверов тоже придется увеличить в десять раз. Когда на скромный набор сановских машин ушло уже 20 миллионов долларов, трата вдесятеро большей суммы для запуска какого-то странного кода даже не рассматривается.

Google использует сто тысяч серверов.

Любой вменяемый сисадмин, скорее, предпочтет сервер за 5000 долларов "голым" материнской плате и дискам, засунутым в стойку, которые в сумме стоят долларов 500. Но суть заключается в десятикратной разнице в стоимости машинного времени. И она дает разработчикам алгоритмов свободу.

Без дешевого процессорного времени программисты могут даже не думать об алгоритмах, которые используют в Google. Такие алгоритмы обойдутся слишком дорого.

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

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

Что все эти исследователи ОС делают в Google?

Роб Пайк ушел работать в Google. Да-да, тот самый Роб Пайк, знаменитый разработчик операционных систем, один из создателей оригинальной Unix, работавших в семидесятых годах в Bell Labs. И не в качестве свадебного генерала, он на самом деле пишет код, много кода. Большие куски целой новой операционной системы наподобие Plan 9.

Посмотрите, над чем раньше работали исследователи Google, занимающиеся ОС, сетевыми технологиями и распределенными системами. Оптимизация компиляции. Перенос процессов. Распределенная разделяемая память.

Я без ума от крутых исследований в области операционных систем. Когда я читаю научные статьи сотрудников Google о распределенных системах, переносе процессов, сетевой общей памяти, файловой системе Google, я чувствую себя ребенком, который попал в диснейлендовский аттракцион "Мир будущего". Разве не здорово было бы воплотить всё это на практике?

И гуглевские спецы это делают!

Конкурентные преимущества

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

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

На этом компьютере уже запущены главный в мире поисковик, социальная сеть, средство для сравнения цен, новая почтовая программа, система локального поиска и каталог услуг. Что же они дальше будут делать с самым большим в мире компьютером и самой совершенной операционной системой?

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.