Более десяти лет назад люди обнаружили, что могут соединять множество недорогих машин для выполнения вычислительных задач, которые, как правило, требовали мейнфрейма или суперкомпьютера. Кластер НАСА «Беовульф» — один из ранних кластеров, который используется и сегодня (http://www.beowulf.org). Статья в «Википедии» (http://en.wikipedia.org/wiki/Computer_cluster) выделяет главные характеристики успешности кластеров:
Компьютерный кластер — это группа слабо связанных компьютеров, тесно работающих вместе так, что во многих отношениях они могут рассматриваться как единый компьютер. Кластеры обычно, но не всегда связываются быстрыми локальными сетями. Кластеры обычно применяются для развития скорости и/или надежности более высокой, чем позволяет единичный компьютер, в силу чего они более экономичны, чем одиночный компьютер сравнимой скорости или надежности.
Кластеры являются хорошим решением, если вы пытаетесь улучшить скорость, надежность и масштабируемость за разумную цену. Amazon, Yahool и Google построили свой бизнес на тысячах совместимых серверов в кластерных конфигурациях с резервным запасом. Масштабировать их дешевле и проще (горизонтально, просто добавлением новых серверов), чем строить иерархически (вертикально, до более дорогих машин). Существует много кластерных решений Linux, как общедоступных, так и коммерческих. В этой главе будут обсуждаться кластеры на основе бесплатного виртуального сервера Linux (http://www.linuxvirtualserver.org). Мы покажем, как объединять системные блоки, эластичную связь и три компьютера в кластер веб-серверов Apache с балансировкой нагрузки. Мы также обсудим высокую доступность и, наконец, альтернативы для кластеров. Мы не будем затрагивать вычислительные кластеры высокой эксплуатационной способности, распределительные вычисления, распараллеливание или распределенную обработку данных: в этих областях аппаратное и программное обеспечение часто специализировано для предметной области (скажем, моделирование погоды или графические изображения).