Материал предоставлен https://it.rfei.ru

Аппаратные решения (вертикальное, горизонтальное и диагональное масштабирование)

Выбор оборудования для каждого компонента архитектуры способен значительно повлиять на стоимость проекта. В том, что касается серверов, необходимо как минимум иметь общее представление (выработанное на основе собранной статистики и закономерностей использования сайта) о том, на что должны быть потрачены ваши деньги.

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

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

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

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

Со времени появления многоуровневых (tiered) и неразделяемых (shared-nothing) архитектур горизонтальное масштабирование получило широкое признание благодаря своим преимуществам перед вертикальным масштабированием в том, что касается веб-приложений. Способность системы к горизонтальному масштабированию подразумевает, что ваше приложение разработано соответствующим образом и может обеспечить работу базы данных в распределенном режиме.

Если вы будете опираться исключительно на вертикальное масштабирование, возникнет опасность того, что непрестанное обновление компонентов одного компьютера приведет к резкому возрастанию затрат. Также возникнет риск появления единой точки отказа (SPOF - Single Point of Failure).

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

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

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

Для нас это означает, что все узлы с интенсивным использованием процессоров и памяти можно «обновить», используя меньшее количество серверов с более мощными процессорами и большими объемами памяти.

Для компьютеров, интенсивно работающих с дисками, это может означать возможность перехода на меньшее количество компьютеров с большим количеством дисков. В качестве примера рассмотрим недавнее обновление Flickr.

Изначально в кофигурации было 67 двухпроцессорных веб-серверов с 4 Гбайт памяти и одним диском SATA. Клиентский уровень в основном интенсивно использует процессор, обрабатывая запросы от клиентских браузеров, обращаясь с запросами к базе данных и принимая загружаемые фотографии. На этих 67 компьютерах, оснащенных процессорами Intel Хеоn 2,80 ГГц, работали Apache и РНР.

Когда пришло время расширения мощностей, было принято решение опробовать новые восьмиядерные процессоры. Как выяснилось, по своей производительности машины с двумя восьмиядерными процессорами примерно втрое превышали предыдущие двухпроцессорные серверы.

С восемью ядрами процессоров Intel Хеоn L5320 1,86 ГГц мы смогли заменить 67 серверов всего 18 новыми серверами. На рисунке показано, насколько в результате сократилась средняя нагрузка на сервер (в границах всего кластера).

Снижение средней нагрузки при замене 67 компьютеров 18 компьютерами большей производительности

Рисунок демонстрирует снижение средней нагрузки, которое произошло после исключения 67 компьютеров из рабочего пула и передачи той же производственной нагрузки 18 новым компьютерам. Конечно, график выглядит очень эффектно, но, возможно, средняя нагрузка — не лучший показатель для пояснения диагонального масштабирования.

Следующий рисунок описывает тот же период времени, что и предыдущий рисунок, но на нем отображается количество запросов Apache в секунду при замене старых серверов. Обратите внимание на то, что после замены количество запросов возросло на 400, то есть старые машины были очень близки к своему критическому порогу производительности.

Обслуживание большего трафика с помощью меньшего количества серверов

Таблица показывает, что это означает с точки зрения ресурсов.

Серверы Процессор Оперативная память Диск Мощность (кВт) на 60% пиковой нагрузки
67 2(двухъядерные) 4 Гбайт 1x80 Гбайт SATA 8,763
18 2(восьмиядерные) 4 Гбайт 1x146 Гбайт SATA2,332

Сравнение архитектур серверов

Если на основании анализа трафика предположить, что серверы работают в среднем на 60% от пиковой нагрузки, получится, что мы используем около 30 % от использовавшейся ранее мощности. Кроме того, эта замена сэкономила 49U единиц стоечного пространства, так как каждому серверу достаточно 1U места. В результате диагональное масштабирование привело к освобождению более чем одной полной стандартной стойки 42U. Неплохо, согласитесь.

Точки масштабированияАварийное восстановление