Технічна мудрість, що стоїть за успіхом пошуковою машиною Google, можливо, зводиться до розуміння тривіального: ПК ламаються.

У середу віце-президент пошукового гіганта Урс Хольцль, виступивши на конференції для програмістів EclipseCon в Берлингейме, штат Каліфорнія, пролити деяке світло на те, як функціонують обчислювальні центри Google. Багато хто вважає досвід роботи компанії навіть більш цінним, ніж ті алгоритми пошуку, з яких вона починалася.

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

Фокус в тому, щоб змусити ці стійки з апаратурою працювати в комплексі і щоб відмова однієї машини не порушував виконання таких операцій, як обробка запитів або демонстрація реклами.

Візьміть домашній ПК, сказав Хольцль. Припустимо (оптимістично), що споживчий ПК виходить з ладу із-за збою в програмі або відмови апаратури раз на три роки. «У масштабах Google коли у вас тисячі ПК, відмов потрібно чекати щодня. Тому найкраще, щоб їх наслідки усувалися автоматично, інакше ви отримаєте перебої в обслуговуванні».

Google, відома своєю суворою практикою відбору фахівців, спрямованої на залучення найяскравіших умів комп’ютерної індустрії, створила ряд програмних інструментів для управління своєю обчислювальної інфраструктурою. Компанія написала власну файлову систему Google File System, оптимізовану для роботи з великими, 64-Мбайт блоками даних. Вона спроектована з урахуванням того, що відмова диска або відключення мережевого кабелю може відбутися в будь-який час.

Дані застосовано в трьох місцях, і є «головна» машина, яка знаходить копії фрагментів таких даних, як індекс ключових слів, у тому випадку, якщо оригінал перестав бути достовірним. «Програмне забезпечення стає нечутливим до відмов. Це робить дешеві масові ПК придатними для роботи з інтернетом», пояснив Хольцль.

РС-сервери Google, обчислюються тисячами, працюють за спрощеною версією Linux, яка базується на дистрибутиві Red Hat, але насправді це просто ядро операційної системи, модифіковане для Google.

Урс Хольцль, віце-президент Google компанія створила систему для управління великою кількістю даних і швидкої обробки запитів. Google розділила на веб мільйони ділянок, які реплікуються в разі відмови.
Не дивно, що компанія веде індекс слів, присутніх в вебі, і зберігає його у вигляді масиву великих файлів. Але є також сервери документів з копіями веб-сторінок, які обходить і завантажує Google.

Інша важлива інженерна знахідка Google: програми, дуже раціонально функціонують на тисячах серверів. Зазвичай створення додатків для роботи на «паралельної» конфігурації серверів вимагає спеціалізованих інструментів і знань.

Інструмент програмування Google, який називається MapReduce, автоматизує задачу відновлення програми у випадку відмови і грає важливу роль для збереження низького рівня витрат компанії.

«Витрати складаються з витрат на підтримку працездатності обладнання та часу, за який програмісти можуть написати щось корисне», сказав Хольцль, додавши, що в минулому році Google почала використовувати MapReduce більш широко.

Нарешті, Google створила програмне забезпечення «групового» планування завдань, яке відіграє роль диспетчера для мільйонів операцій. Це, зване Global Work Queue, розбиває завдання на безліч дрібних завдань і розподіляє їх між машинами.

При всьому своєму резервування система все ж не вирішує всіх проблем, визнав Хольцль. Він продемонстрував фотографію, на якій зображені шість пожежних машин, викликаних по тривозі до одного з обчислювальних центрів Google. «Тут виходом з ладу одного ПК не обмежилося», прокоментував Хольцль.

У подальшій за виступом інтерв’ю CNET News.com Хольцль додав, що ще одним важливим фактором, що впливає на конструкцію обчислювальних центрів Google, є вартість електроенергії. «Фізична вартість всієї роботи, не рахуючи зарплати, прямо пропорційна витратам на електроенергію, сказав він. Електроенергія стає фактором економії, здатним здешевити експлуатацію обчислювального центру. Потрібно не тільки купувати дешеві комп’ютери, але і зберігати на розумному рівні поточні видатки».