Вы находитесь на странице: 1из 20

In 15 minutes…

Оглавление:
П. Осика, В. Пантюхин

Вертикальные и Введение ................................................................................................ 4


Многоуровневая архитектура................................................... 4

горизонтальные
Горизонтальная и вертикальная архитектуры компьютеров... 5
Вертикальная архитектура ....................................................... 6
Горизонтальная архитектура ................................................... 6
Сравнение вертикальной и горизонтальной архитектур ... 8

архитектуры
Диагональная архитектура ..................................................... 11
Производительность ......................................................................... 11
Процессоры и интерконнект ................................................... 12
Система ввода-вывода ............................................................. 12
Операционная система ............................................................. 13
Доступность системы................................................................ 13
Оптимизация приложений ...................................................... 13
Сайзинг приложений ........................................................................ 14
Уровень базы данных. .............................................................. 15
Уровень приложений................................................................ 18
Уровень представлений. .......................................................... 19
TCO приложений в горизонтальных и вертикальных системах.
............................................................................................................... 20
Пример 1: ................................................................................ 22
Пример 2: ................................................................................ 23
Сравнение уровня доступности вертикальных и
горизонтальных систем.................................................................... 25
Пример 3: ................................................................................ 27
Консолидация..................................................................................... 28
Варианты многоуровневой реализации........................................ 30
Приведи свои мозги в порядок …
Rev. 0.9

Санкт-Петербург 2005
2
Введение
Вертикальная 2-уровневая ...................................................... 30 На протяжении нескольких последних лет в центрах обработки
Вертикальная 3-уровневая ...................................................... 31 данных (ЦОД) развивается тенденция появления комплексов,
Горизонтальная 3-уровневая .................................................. 32 состоящих из малых горизонтально-масштабируемых серверов.
Сравнение TCA горизонтальной и вертикальной 3- Стало модно рассуждать о простоте реализации, неограниченной
уровневых реализаций.......................................................... 33 масштабируемости и низкой стоимости внедрения и обслуживания
Диагональная 3-уровневая ...................................................... 34 таких систем. С точки зрения многих администраторов ЦОД,
Сравнение TCA диагональной и горизонтальной 3- позиции классических вертикально-масштабируемых средних и
уровневых реализаций.......................................................... 35 «тяжелых» систем заметно пошатнулись. В тоже время, рынок
Выводы. ............................................................................................... 36 таких систем говорит об обратном. Например, по данным IDC,
продажи серверов среднего уровня (от 25.000$ до 250.000$) только
за вторую половину 2005 года выросли на 15,6%, а продажи
серверов класса hi-end (стоимостью выше 500.000$) выросли на
19,2%.

Какой же подход лучше? Какую архитектуру, вертикальную или


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

Многоуровневая архитектура
Большинство современных приложений, используемых в центрах
обработки данных, в той или иной мере реализуются в рамках, так
называемой, многоуровневой архитектуры (multi-tiers
architecture). Модель разделения на несколько уровней
обеспечивает эффективный способ организации распределенных
задач и методологию их реализации в соответствием с
необходимым уровнем сервиса и выполняемой роли в ЦОД.

3 4
Вертикальная архитектура
Вертикальная архитектура обычно реализуется с использованием
многопроцессорных (больше 4 CPU) SMP серверов. В них только
один экземпляр операционной системы и единые подсистемы
памяти и ввода-вывода (см. рис. 2). Обычно все эти компоненты
размещены внутри одного корпуса. Общий интерконнект обладает
низкой латентностью и высокой пропускной способностью.
Ресурсы добавляются с помощью увеличения количества плат в
сервере.

Рисунок 1

Обычно выделяют три уровня, каждый из которых имеет свои


отличительные особенности:
• Уровень 1 или презентационный уровень использует
горизонтальное масштабирование большого количества
малых серверов.
• Уровень 3 или уровень баз данных использует Рисунок 2
вертикальное масштабирование нескольких «тяжелых»
многопроцессорных серверов. В вертикально масштабируемой системе, на уровне ОС
• Уровень 2 или уровень приложений использует оба оперативная память общая (SMP) и доступ любого процессора и
варианта масштабирования: горизонтальное и вертикальное. компоненты системы ввода-вывода к ней равнозначны. Проще
говоря, память видится ОС как один большой кусок.

Горизонтальная и вертикальная архитектуры Горизонтальная архитектура


компьютеров. Альтернативный метод масштабирования – горизонтальный. Этот
метод обеспечивается объединением (чаще всего кластеризацией)
нескольких серверов через сеть. Интерконнект использует
стандартные сетевые адаптеры, например Fast Ethernet или Gigabit
5 6
Ethernet (GBE). Эти способы соединения по сравнению
с вертикальными системами обладают гораздо меньшей Сравнение вертикальной и горизонтальной архитектур
пропускной способностью и более высокой латентностью.
Все ресурсы находятся внутри узлов. Каждый узел имеет свои Вертикальные системы Горизонтальные системы
процессоры (обычно от 1 до 4), память и систему ввода-вывода, Большое разделяемое Малый объем неразделяемой
которая может разделяться между узлами. Каждый узел имеет пространство памяти памяти
собственный экземпляр операционной системы. Ресурсы Много зависимых потоков Много независимых потоков
наращиваются только добавлением новых узлов. выполнения выполнения
Сильно-связанный внутренний Слабо-связанный внутренний
Каждый узел имеет свою собственную оперативную память, с интерконнект интерконнект
которой работают только его локальные процессоры. Доступ к Высокий показатель RAS для Достижение высокого RAS
оперативной памяти другого узла значительно медленнее, чем у одной системы посредством репликации
вертикальных систем. Обычно кластеризация не поддерживает Большое количество Большое количество
никакого кэширования доступа к памяти других узлов. стандартных процессоров стандартных процессоров
Единая ОС на много CPU Много ОС системы с 1-4 CPU
В горизонтальных системах стоимость владения (TCO) на Монолитные системы Модульные системы
процессор для всей системы много меньше, чем в вертикальной Широко распространенные и Широко распространенные
системе. Но низкая пропускная способность интерконнекта часто проприетарные компоненты компоненты
ограничивает применение горизонтальных систем для критичных 64-bit 64 и 32 bit
приложений. Важно, что в таких системах обязательно Таблица 1
присутствует дополнительный слой кластерного программного
обеспечения. В таблице 1 просуммированы ключевые атрибуты вертикальных и
горизонтальных систем:
Примером горизонтальных архитектур также являются MPPs • Память в вертикальных системах общая и имеет
(massively parallel processing systems). Эти системы когерентный кэш
характеризуются большим количеством процессоров, каждый из • Для вертикальных систем идеальны приложения, которые
которых работает со своим экземпляром операционной системы используют интерконнект
или микрокода, и объединены в одном корпусе. Примерами таких • Параметр RAS (reliability, availability, serviceability -
систем могут служить NCR Terradata systems, IBM RS/6000SP (SP- надежность, доступность, обслуживаемость) лучше у
2) и HP Tandem non-stop systems. вертикальных систем, но для приложений с параллельными
транзакциями доступность выше у горизонтальных
кластерных комплексов.
• Вертикальные системы имеют один экземпляр
операционной системы, которая владеет всеми ресурсами.

7 8
Правда стоит заметить, что широко
распространяются архитектуры, использующие более одной Серверы приложений
ОС в сервере, например доменная архитектура или системы Распараллеливаемые
виртуальных контейнеров. (partitionable)
высокопроизводительные
• Большая часть компонентов вертикальных систем являются
системы инженерно-
стандартными и широко распространены, но некоторые
технических расчетов (HPTC)
ключевые для производительности и надежности
Таблица 2
компонентs, такие как интерконнект, являются
проприетарными. На рынке систем высокопроизводительных инженерно-
• Вертикальная система может масштабироваться технических расчетов (High Performance Technical Computing,
добавлением памяти, процессоров, плат ввода-вывода, а HPTC) существует много приложений, имеющих большое
горизонтальная система расширяется только за счет количество взаимозависимых потоков которые постоянно
добавления узлов. взаимодействуют друг с другом. Также существуют задачи,
• Современные вертикальные системы, как правило, 64 требующие огромное количество разделяемой памяти.
разрядные, тогда как горизонтальные системы могут быть Приложения, которые обрабатывают большие объемы данных
как 32 так и 64 разрядные. множества пользователей и требуют эффективного
масштабирования на уровне внутреннего взаимодействия больше
Для вертикальных и горизонтальных систем можно выделить подходят для вертикальных серверов (см. рис. 3).
приложения, которые наилучшим образом подходят для этих
архитектур. Они приведены в таблице 2.

Вертикальные системы Горизонтальные системы


Большие базы данных Web- серверы
Транзакционные базы данных Фаерволы, proxy
Централизованные хранилища Научные вычисления
данных
Системы интеллектуального Серверы обработки потоков
анализа информации медиа-данных
Серверы приложений Обработка XML
Не распараллеливаемые (non- Приложения JSP
partitionable) Рисунок 3
высокопроизводительных
системы инженерно-технических
расчетов (HPTC)
9 10
Процессоры и интерконнект
В тоже время, есть приложения HPTC, потоки которых слабо Процессор - очень важный компонент системы. Но не только
зависят друг от друга и не нуждаются в больших объемах памяти. мощность процессора определяет производительность всего
Небольшие и хорошо реплицируемые приложения являются комплекса. Если процессор с большой тактовой частотой загружен
идеальными для малых серверов и кластеров. не полностью, например на 50%, то такая система может быть
медленнее, чем сервер, имеющий процессор с меньшей тактовой
Диагональная архитектура частотой, но работающий с большей загрузкой (80%).
Конечно, нет явной линии, разделяющей вертикальную и
горизонтальную архитектуры. Существуют промежуточные Кроме этого, в параллельных системах зачастую добавление
решения, в которых реализованы лучшие аспекты обоих подходов. процессоров меньше сказывается на производительности, чем
Диагональная архитектура совмещает небольшое количество увеличение пропускной способности интерконнекта. В
средних SMP систем с приемлемым уровнем доступности и параллельных системах интерконнект занимается пересылкой
достаточной простотой управления (см. рис. 4). данных между дисками, памятью, сетью и процессорами. В
системах с вертикальной архитектурой он называется системным
интерконнектом и реализован внутри сервера. Поэтому он очень
быстрый и имеет низкую латентность. Пропускная способность
системного интерконнекта для SMP серверов SUN от 9.6GB/sec для
малых серверов и 172GB/sec для Sun Fire 25K. Латентность
колеблется в пределах 200 - 450ns.

В кластерах, в качестве кластерного интерконнекта


используются стандартные сетевые интерфейсы, например Fast
Ethernet, Gigabit Ethernet или SCI (scalable coherent interconnect).
Кластерный интерконнект по сравнению с системным обладает
более низкой пропускной способностью и более высокой
латентностью. Пропускная способность кластерного интерконнекта
Рисунок 4 зависит от типа интерфейса. Для GBE она составляет 125MB/sec, а
для SCI - 200MB/sec. Sun Fire Link имеет пропускную способность
1.2GB/sec и латентность 4000ns. Он доступен на серверах Sun Fire
Производительность
6800- 25K.
Хорошо сбалансированный комплекс должен иметь
производительные процессоры, быстрый интерконнект, высокую Система ввода-вывода
пропускную способность системы ввода-вывода, масштабируемую Система ввода-вывода отвечает за передачу данные с дисков или
операционную систему и высокий показатель RAS. сети в интерконнект и процессоры. Низкая скорость ввода-вывода

11 12
может быть причиной снижения производительности Сайзинг приложений
даже при быстрых интерконнекте и процессорах. Как уже было сказано, большие SMP системы имеют быстрый
интерконнект и, как следствие, более высокую комплексную
Операционная система производительность. В горизонтальных системах также можно
Даже замечательный по своим аппаратным характеристикам сервер получить приемлемую производительность. Для этого приложения
может понизить свою производительность из-за плохо на узлах кластера должны работать независимо (или слабо
масштабируемой операционной системы. С тех пор как в 1993 году взаимодействуют друг с другом) и минимально использовать
технологии Cray Research сервера CS6400 были приобретены Sun и высоколатентный, достаточно медленный интерконнект.
портированы на популярный 64-процессорный сервер E10K,
операционная система Solaris является бессменным лидером На рисунке 5 представлена горизонтальная архитектура с 4-х
масштабируемости. процессорными узлами. Каждый узел имеет свою независимую
память и систему ввода-вывода. Интерконнект реализован на
Доступность системы интерфейсах GBE.
Доступность (availability) системы зависит от выбранной
архитектуры. В системах с вертикальной архитектурой, функции
повышения доступности обеспечивается внутри самой системы.
Большие SMP серверы гарантируют работоспособность при 2-4
аппаратных сбоях. В комплексах с горизонтальной архитектурой
каждый сервер может иметь небольшой уровень доступности, но,
при этом, общая доступность всей системы увеличивается, так как
отказоустойчивость всего кластера пропорциональна количеству
его узлов.

Оптимизация приложений
Приложения, которые используют вертикальные и горизонтальные Рисунок 5
архитектуры серверов должны быть специально спроектированы
Слабая нагрузка (красная) может распределяться внутри одного
или настроены. Без того, эффект от применения соответствующих
узла. Значительная нагрузка (сиреневая и зеленая) требует
систем может не дать ожидаемого результата. Большинство
распределения по нескольким узлам. В этом случае ключевую роль
основных коммерческих приложений уже адаптировано под
играет интерконнект, который будет заметно влиять на
вертикальные архитектуры серверов. Этим объясняется
производительность. Следовательно, идеальной нагрузкой для
доминирование SMP серверов в последнее десятилетие и большой
горизонтальной системы будет та, которую сможет выдержать
потенциал их использования в ближайшем будущем. Адаптация
один узел.
приложений под кластерные горизонтальные архитектуры имеет
значительные трудности.

13 14
На рисунке 6 представлена вертикальная SMP Относительная производительность (speedup)
архитектура с большим количеством CPU, объемом разделяемой приложения на многопроцессорном SMP сервере определяется тем,
памяти и высокоскоростным интерконнектом. во сколько раз оно работает быстрее, утилизируя все процессоры
сервера по сравнению с аналогичной однопроцессорной системой.
Если на 40 процессорах приложение работает в 40 раз быстрее, чем
на одном, то мы наблюдаем линейную относительную
производительность. Speedup не всегда зависит от количества
процессоров, например, когда скорость работы приложения на 24
процессорах такая же как и на 48. Термин кластерная
относительная производительность (cluster speedup) является
характеристикой комплексной производительности кластерного
приложения и зависит от количества узлов.
Рисунок 6 Коэффициент масштабируемости (scaling efficiency) обычно
определяется способностью приложения использовать все
Эта архитектура прекрасно работает как с малой, так и с большой
имеющиеся процессоры или узлы кластера. Коэффициент
нагрузкой. Каждый процессор имеет доступ к разделяемой памяти,
масштабируемости SMP сервера определяется как отношение
любому диску и сети.
speedup к количеству процессоров. Соответственно, в случае
Можно ли использовать эту архитектуру для большого количества
кластера, scaling efficiency определяется как отношение cluster
приложений с небольшой нагрузкой? Конечно да. Но позже мы
speedup к количеству узлов. Стоит отметить, что значение
увидим, что стоимость такой SMP системы в пересчете на 1
коэффициента масштабируемости зависит от общего количества
процессор гораздо выше, чем у небольших систем. Поэтому такие
его узлов, т. е. этот параметр имеет различные значения, например,
системы целесообразнее использовать для «тяжелых» критичных
для 2-узлового и 4-узлового кластеров.
приложений.
Графики, изображенные на рисунке 7 показывают, что существует
Далее рассмотрим производительность 3-х уровневой архитектуры
вполне конкретный предел масштабируемости. Объединение
приложений.
большого количества маленьких серверов не обеспечивает
масштабируемости, необходимой для «тяжелых» приложений.
Уровень базы данных.
Причинами такого поведения являются ограничения по пропускной
Что же все-таки лучше использовать для БД, один большой SMP
способности интерконнекта, накладные расходы базы данных на
сервер или кластер из нескольких небольших серверов? Сначала
управление кластером и сложности разработки эффективного для
определимся с основными терминами.
горизонтальных архитектур ПО.

Тесты показывают, что коэффициент масштабируемости для SMP


серверов близок к линейному. При 24 процессорах он составляет
15 16
95% (23 speedup / 24 CPU), а при количестве CPU,
равном 72, снижается всего до 90% (64 speedup / 72 CPU).

В тоже время, этот параметр в тестах с Oracle9i RAC уже при двух
4-процессорных узлах равен 90% (1.8 speedup / 2 узла), а при 18 где
узлах снижается до 30% (6 speedup / 18 узла. Также стоит “se” - коэффициент масштабируемости
учитывать, что в качестве примера взяты лучшие показатели тестов “n” - количество узлов
RAC.
Соответственно, решения на базе Oracle9i (не RAC) для SMP
серверов с количеством процессоров больше 24 является более
предпочтительным по сравнению с кластерами RAC. Для такой же
относительной производительности как у одного 24-процессорного
сервера SMP потребовалось бы тринадцать 4-процессорных
серверов.

Следует заметить, что описанные тесты проводились для OLTP баз


данных. Существует особый класс приложений, таких как
сейсмические системы, имитаторы Monte-Carlo или системы
обработки рисков, которые характеризуются большим количеством
простых запросов на чтение из базы данных. Такие приложения
масштабируются принципиально лучше, чем OLTP.

Уровень приложений
Характеристики уровня приложений в центрах обработки
существенно отличаются от уровня баз данных. Как правило,
приложения этого уровня не отслеживают сессии взаимодействия с
Рисунок 7 пользователем (stateless) и, соответственно, сохраняют меньше
данных на сервере. Транзакции, которые приходят с уровня
Результаты тестов полностью соответствуют известному закону представлений обрабатываются в соответствии с бизнес-логикой и
Амдала (Amdahl's Law). Этот закон может использоваться для перенаправляются на уровень баз данных. Сервер приложений
экстраполяции параметра speedup при большом количестве обычно объединяет несколько запросов к базе в одну транзакцию,
процессоров. что существенно снижает накладные расходы.

На этом уровне, в отличие от уровня баз данных, приложения в


основном потребляют ресурсы процессоров. Например,
17 18
соотношение утилизируемых процессоров для приложений. Такие приложения идеально подходят для
приложений SAP R/3 к количеству CPU, рекомендуемой SAP горизонтальных систем, т.к. их относительная стоимость ($/CPU)
системы БД составляет 1 к 10. Для Oracle Applications это гораздо ниже, чем у SMP систем.
соотношение - 5:1. Поэтому, принципы, которыми мы пользовались
при оценке эффективности масштабируемости для уровня баз
данных, не работают для уровня приложений. Это связано с тем, TCO приложений в горизонтальных и вертикальных
что на этом уровне просто нет потребности распараллеливания системах.
запросов и, соответственно, размещения нескольких копий одного Использование баз данных в горизонтальных системах требует
сервера приложений на нескольких системах. В тоже время, кластеризации. Ранее мы уже останавливались на вопросах
различные серверы приложений могут размещаться на физически масштабируемости приложений в горизонтальных и вертикальных
независимых серверах разной конфигурации или в динамических системах. Сейчас мы рассмотрим общую стоимость приобретения
доменах многопроцессорных SMP серверов. Необходимое системы (total cost of acquisition, TCA). TCA включает в себя
количество процессоров для этого уровня не зависит от того, какой стоимость лицензий, стоимость серверов и кластерных
архитектурой, горизонтальной или вертикальной, характеризуется интерконнектов. Стоимость дисковых массивов в этом расчете не
система. учитывается.

На основании того, что относительная стоимость приобретения Наиболее часто используемой кластерной базой данных для Solaris
($/CPU) у горизонтальных систем заметно ниже чем у является Oracle 9i RAC. Использование RAC нуждается в
вертикальных, можно говорить, что горизонтальная архитектура соответствующих лицензиях. Для всех систем независимо от
для этого уровня более предпочтительна. Но, учитывая размера стоимость основной лицензии базы данных составляет
дополнительную стоимость управления и обслуживания большого 40000$/CPU (цены U. S. на апрель 2003 г.). Опция RAC стоит
количества серверов и экземпляров операционной системы, 20000$/CPU. Кроме того, часто требуется дополнительная опция
тонкости лицензионной политики производителей ПО серверов базы partition, которая значительно ускоряет работу с большими
приложений, а также сложность резервного копирования и объемами данными. Итого, стоимость Oracle RAC равна
восстановления горизонтальных систем, делает преимущества 70000$/CPU против 40000$/CPU для базы Oracle на SMP сервере.
стоимости неочевидными. Поэтому наиболее эффективно
производить сравнительный анализ возможных вариантов в Существует простой инструмент для подсчета и сравнения цен
каждом конкретном случае. TCA Oracle для SMP серверов и Oracle RAC одинаковой
относительной производительности. Он называется RAC Calculator.
Уровень представлений. Для подсчета требуются следующие параметры:
Уровень представлений – это точка доступа для сервисов уровня • название/модель SMP сервера
приложений. На этом уровне доминируют такие сервисы, как web, • количество процессоров SMP сервера
proxy, VPN, файерволы. Эти приложения масштабируются слабо. • цена по прайсу SMP сервера
Они не отслеживают сессии взаимодействия с пользователем • название/модель узлов кластера
(stateless) и обычно просто передают запросы на уровень
19 20
• количество узлов кластера стоимости SAN, но в стандартных расчетах она
• отношение производительностей процессоров, приравнивается к нулю. Рассмотрим несколько примеров:
используемых в кластерных узлах и SMP сервере
• цена/CPU Oracle 9i Пример 1:
• цена/CPU опции RAC В этом примере серверы Sun Fire 4800 и 6800 сравниваются c
• цена/CPU опции partitioning кластером, узлами которого является серверы Sun Fire v480 (см.
• процент скидки для SMP сервера таб. 3).
• процент скидки для узла кластера
• процент скидки для Oracle Сервер Процессоры Память Параметры расчета
Sun Fire v480 4 x 900MHz 8GB RAM 90% scaling
• процент масштабирования (scalability percentage) UltraSPARC-III 10% decay
• процент уменьшения производительности (decay), 50% скидка Oracle
связанный с добавлением каждого нового узла 20% скидка сервера
Sun Fire 4800 12 x 900Mhz 20GB RAM 90% scaling
UltraSPARC-III 10% decay
Формула вычислений: 50% скидка Oracle
40% скидка сервера
Sun Fire 6800 20 x 900Mhz 32GB RAM 90% scaling
UltraSPARC-III 10% decay
где: 50% скидка Oracle
sp – процент масштабирования 40% скидка сервера
de – процент уменьшения производительности Таблица 3
n – количество узлов
Результат вычислений показан в таблице 4.
Отметим, что, так как параметр de не зависит от количества узлов,
то слагаемое sp-(n-2)de стремится к нулю и каждый новый / SF4800 SF480 SF6800 SF480
добавленный узел вносит все меньший вклад в общую CPU 12 16 20 32
производительность. Количество узлов, которые вносят вклад в Кол-во узлов 1 4 1 8
Стоимость
увеличение производительности, определяется как n=sp/de. аппаратной 229.680$ 172.000$ 346.360$ 345.600
Соответственно, чем больше sp и/или меньше de, тем больше части
эффективных узлов может быть в кластере. Стоимость
программного 240.000$ 560.000$ 480.000$ 1.120.000$
После подсчета количества узлов и процессоров RAC Calculator обеспечения
Общая
подсчитывает TCA, используя прайс-лист и скидки. Эту величину стоимость
469.680$ 732.000$ 826.360$ 1.465.600$
он рассчитывает для обоих вариантов (SMP и кластер) с учетом Таблица 4
стоимости железа, софта и интерконнекта. Существует опция учета

21 22
На рисунке 8 показана гистограмма распределения Xeon 4x 1.5GHz и SF480 показывают приблизительно
стоимости SMP системs SF4800 и 4-узлового кластера на SF480. одинаковую производительность. В качестве операционной
Для SMP сервера характерна высокая цена аппаратной части и системы платформы x86 используется Linux.
приемлемая цена лицензий Oracle. К тому же, в этом варианте Ниже приводятся параметры серверов Dell 6600:
отсутствуют затраты на интерконнект. Для кластерной
архитектуры характерны низкая стоимость аппаратной части и Сервер Процессоры Память Параметры расчета
высокая стоимость лицензий Oracle RAC. Dell 6600 4 x 1.5GHz Xeon 8GB RAM 90% scaling
10% decay
50% Oracle discount
20% Dell 6600 discount
Sun Fire 4800 12 x 900Mhz 20GB RAM 90% scaling
UltraSPARC-III 10% decay
50% скидка Oracle
40% скидка сервера
Sun Fire 6800 20 x 900Mhz 32GB RAM 90% scaling
UltraSPARC-III 10% decay
50% скидка Oracle
40% скидка сервера
Таблица 5

Результат сравнения показан в таблице 6.

/ SF4800 SF480 SF6800 SF480


CPU 12 16 20 32
Кол-во узлов 1 4 1 8
Рисунок 8 Стоимость
аппаратной 229.680$ 108.800$ 346.360$ 217.600$
Таким образом, основная ценовая составляющая в кластерной части
архитектуре – это лицензии на ПО. Кроме того, с ростом Стоимость
количества процессоров в кластере цена лицензий Oracle может программного 240.000$ 560.000$ 480.000$ 1.120.000$
обеспечения
значительно вырасти. Общая
469.680$ 668.800$ 826.360$ 1.337.600$
стоимость
Таблица 6
Пример 2:
В этом примере мы сравним SMP серверы Sun Fire с кластером Во всех приведенных выше примерах TCA многопроцессорных
серверов архитектуры x86 от компании Dell (см. таб. 5). По тестам SMP серверов заметно ниже стоимости приобретения аналогичных
производительности TPC-H, серверы Dell 6600 с процессорами кластерных комплексов.

23 24
Сравнение уровня доступности При увеличении уровня доступности решения
вертикальных и горизонтальных систем. увеличивается его цена и сложность, поэтому люди, принимающие
Доступность является одной из наиболее важных характеристик решения о выборе реализации той или иной схемы, должны
современных центров обработки данных. Многие важные сервисы, проанализировать все аспекты решения и цену каждого из них.
предоставляемые приложениями, должны быть доступны
пользователям в режиме 7x24x365. Существуют различные схемы На рисунке 9 видно, что доступность кластерных систем выше, чем
обеспечения высокой доступности в центрах обработки данных. у многопроцессорных серверов. Но стоит понимать, что зачастую
Выбор той или иной схемы зависит от требований к конкретным для центров обработки данных вполне достаточно уровня
сервисам (плановое и неплановое максимальные времена простоя) доступности 99.95% (около 4 часов простоя в год). Такой уровень
и цены решения. Рисунок 9 показывает зависимость уровня доступности могут обеспечить многие современные SMP серверы,
доступности от времени простоя для различных вариантов обладающие высоким показателем RAS.
решений: Повысить уровень доступности вертикально масштабируемого
комплекса до 99.975% можно при помощи использования кластера
высокой готовности (high availability, HA). Это решение, как
правило, построено на двух серверах, один из которых является
продуктивным, а второй находится в режиме постоянной
готовности (hot standby). При выходе из строя продуктивного
сервера приложение перезапускается на резервном сервере. Время
переключения зависит от используемого приложения. Для баз
данных оно обычно составляет несколько минут, так как для них
необходимо дополнительное время на «накатку» пропущенных
транзакции на резервном сервере. Статистика показывает, что
около ¾ всех кластеров в мире составляют кластеры HA.

Если же уровень доступности должен быть максимальным, то


резонно использовать кластерное решение Real Application Cluster,
в котором все узлы работают параллельно. Время простоя при сбое
системы с RAC определяется тем, как построено само приложение,
и обычно менее 1 минуты.

Вертикальные серверы обеспечивают высокий уровень


Рисунок 9
доступности и, соответственно, минимизации времени простоя
системы, за счет реализации дополнительных функций RAS. В
свою очередь, узлы горизонтальных кластерных решений обычно
имеют такие функции в минимальном объеме и обеспечивают
25 26
высокий общий уровень RAS за счет репликации
данных и распределения задач между собой. Принципиальные № Серверы Стоимость Коментарии
отличия уровня RAS и параметров интерконнекта SMP серверов 1
1 x Sun Fire 6800 20-
826.360$
С лицензиями Oracle 9i
CPU сервер
определяют разницу в стоимости аппаратного обеспечения (такая же производительность как у 1
вертикальных и горизонтальных решений. 2 x Sun Fire 6800 12-
2 1.461.360$ x 20-CPU SF6800) С лицензиями
CPU сервера
Oracle 9i RAC
В трехуровневых архитектурах для уровня представлений, (такая же производительность как у 1
8 x Sun Fire v480 4-CPU
3 1.465.600$ x 20-CPU SF6800) С лицензиями
например для web-серверов, как правило, используются сервера
Oracle 9i RAC
горизонтальные решения. Можно установить несколько копий ПО Таблица 7
web-сервера на нескольких системах. В случае выхода из строя
одного из серверов запросы легко перенаправляются на рабочие Из таблицы 7 мы видим, что расчетная TCA вариантов 2 и 3 очень
системы. близка. Казалось бы, эти варианты равнозначны, но стоит
Серверы приложений, в свою очередь, для обеспечения учитывать, что вариант 2 имеет лучшие показатели RAS,
надлежащего уровня доступности могут использовать как характеристики масштабирования и проще в управлении. Поэтому
вертикальную, так и горизонтальную архитектуры. Независимо от он более предпочтителен.
того будут ли использоваться несколько больших или много
маленьких серверов основной технологией, обеспечивающей
высокую доступность, будет репликация данных. Консолидация.
Ситуация меняется коренным образом в случае уровня баз данных. Еще несколько лет назад общепринятой практикой являлось
Базы данных интенсивно используют обмен между процессами и выделять отдельный сервер под каждое приложение или экземпляр
общую разделяемую память. Поэтому вертикальные серверы для базы данных. При этом сайзинг аппаратной части рассчитывался на
них более предпочтительны. Кластерные решения следует пиковые нагрузки приложений. Такой подход вел к неэффективной
использовать только в случае повышенных требований к уровню утилизации серверов, так как большую часть времени эти серверы
доступности. простаивали или работали с малой загрузкой.
Многие современные приложения, такие как PeopleSoft, SAP и
Oracle Applications содержат компоненты, которые работают на
Пример 3: различных уровнях ЦОД. Например, модуль PeopleSoft HR имеет
Сравним TCA решений с Oracle RAC для кластера, состоящего из компоненты на всех трех уровнях. Поэтому, в рамках описанного
двух «тяжелых» SMP серверов, кластера нескольких небольших выше подхода, необходимо иметь отдельные системы для БД,
серверов и некластеризованной базой данных Oracle на одном 20- сервера приложений и web-сервисов для каждого модуля (см. рис.
процессорном сервере с уровнем доступности 99.95%. Для расчета 10).
использовались те же параметры, что и в предыдущих примерах.

27 28
Solaris 10. Совместно с возможностью динамической
реконфигурации (Dynamic Reconfiguration, DR) системных
доменов эти функции обеспечивают необходимый уровень
автономности, а соответственно безопасности и надежности, при
эффективной утилизации общих ресурсов.

Варианты многоуровневой реализации


Рисунок 10 При оценке вертикальной, горизонтальной и диагональной
архитектур полезно сравнить различные варианты их
Очевидно, что такой подход ведет к быстрому увеличению многоуровневой реализации. В таблице 8 в качестве основных
количества серверов и, как следствие, усложнению и повышению критериев оценки выбраны производительность, доступность и
стоимости их администрирования. На сегодняшний день, сложность реализации и администрирования.
большинство компаний пытаются контролировать разрастание
приложений путем их консолидации в нескольких мощных и легко Архитектура Производительность Доступность Сложность
управляемых системах. Один из таких способов улучшения Вертикальная
Очень хорошая Плохая Низкая
утилизации ресурсов – это распределение нескольких уровней 2-уровневая
различных приложений в общей системе (см. рис. 11). Вертикальная
Превосходная Хорошая Низкая
3-уровневая
Горизонтальная
Хорошая Превосходная Высокая
3-уровневая
Диагональная Очень
Хорошая Средняя
3-уровневая хорошая
Таблица 8

Рассмотри эти варианты более подробно.

Вертикальная 2-уровневая
Рисунок 11 Реализация вертикальной 2-уровневой архитектуры подразумевает
установку базы данных и сервера приложений на одном сервере
Однако, возможность эффективно запускать несколько или системном домене (см. рис. 12). При этом, используется только
экземпляров приложений на одном сервере требует наличия один экземпляр ОС, что приводит к низким затратам на
специальных функций распределения ресурсов в оперативной администрирование.
системе. Примерами такого функционала являются Resource
Manager в Solaris 9 (S9RM) и контейнеры (Grid Containers) в
29 30
Рисунок 12

Такая реализация показывает очень высокий уровень


производительности, так как база данных и сервер приложений
Рисунок 13
взаимодействуют друг с другом посредством внутренних
механизмов ОС (например, через интерфейс loopback). Некоторые В тоже время, такая реализация подразумевает размещение базы
стандартные тесты производительности, например SAP 2-Tier данных и приложений в различных системных доменах. Так как
benchmark, проводятся именно на такой архитектуре. домены обеспечивают больший уровень изоляции ошибок и
Использование единой операционной системы приводит к тому, безопасности, чем системы с единой ОС, то они обеспечивают
что ресурсы утилизируются эффективно. К сожалению, уровень лучшие характеристики доступности.
доступности в такой системе невысок, так как выход из строя В тоже время, такая реализация легко управляется и позволяет
сервера ведет к недоступности для пользователей как базы данных, контролировать утилизацию ресурсов при помощи динамической
так и сервера приложений. Для улучшения этой характеристики реконфигурации.
можно использовать решения HA, но это ведет к удвоению общей Такая архитектура активно используется во многих продуктивных
стоимости комплекса. Использование S9RM и контейнеров системах.
ненамного повышает общий уровень доступности.
Можно сказать, что использование такой архитектуры в Горизонтальная 3-уровневая
продуктиве не желательно. В горизонтальной 3-уровневой архитектуре используется большое
количество относительно слабых серверов (см. рис. 14). В
Вертикальная 3-уровневая современных реализациях эти серверы имеют внутреннюю
Как и в предыдущем примере, в вертикальной 3-уровневой архитектуру x64 и обладают 1 - 4 процессорами.
архитектуре приложения и база данных расположены на едином
сервере (см. рис. 13).

31 32
Рисунок 14

Как уже обсуждалось выше, хотя каждый сервер обладает Рисунок 15


невысоким показателем RAS, в целом, такая архитектура
обеспечивает очень высокий уровень доступности. Видно, что стоимость более эффективно нагруженного 24-
В тоже время, комплекс обладает средней производительностью и процессороного сервера всего на 18% выше аналогичного по
статический утилизацией ресурсов. Также стоит помнить о производительности, но уступающего по масштабируемости и
сложности управления и мониторинга множества систем. сложности администрирования комплексу из шестнадцати 4-
процессорных серверов. В расчете не учитывались значительные
затраты на лицензии кластерного ПО.
Сравнение TCA горизонтальной и вертикальной 3-уровневых
реализаций Диагональная 3-уровневая
Для сравнения взяты приблизительно одинаковые по Диагональная 3-уровневая архитектура очень похожа на
производительности в зависимости от уровня загрузки горизонтальную. Основным отличием является то, что в ней вместо
конфигурации: множества маленьких (1-4 CPU) серверов используются несколько
1. шестнадцать 4-процессорных (Ultra SCAPC III) серверов Sun средних (например, с 24 CPU) (см. рис. 16).
Fire V480 (при средней утилизации 30%)
2. два 16-процессорных (Ultra SCAPC IV) серверов Sun Fire
E6900 (при средней утилизации 30%)
3. один 24-процессорный (Ultra SCAPC IV) сервер Sun Fire
E6900 (при средней утилизации 45%)

33 34
Рисунок 16

Такой компромиссный подход позволяет сохранить достаточно Рисунок 17


высокий уровень доступности приложений и базы данных. При
этом заметно улучшается характеристики утилизации ресурсов и Видно, что стоимость комплекса из шестнадцати 4-процессорных
снижаются затраты на управление и мониторинг всего комплекса. серверов всего на 10% ниже аналогичного по производительности
Дополнительную гибкость масштабирования такому решению комплекса из четырех «средних» 8-процессороных серверов и
придает возможность одновременного использования серверов сравнима со стоимостью более эффективно нагруженной системы
разных аппаратных конфигураций и, соответственно, различной из двух серверов E2900.
мощности.
Выводы.
Обе архитектуры занимают свою нишу в современных центрах
Сравнение TCA диагональной и горизонтальной 3-уровневых обработки данных.
реализаций Ключевым отличием горизонтальных и вертикальных архитектур
Для сравнения взяты приблизительно одинаковые по является интерконнект. В горизонтальных системах он внешний и
производительности в зависимости от уровня загрузки достаточно медленный, а в вертикальных он внутренний и
конфигурации: быстрый. В 3-уровневой архитектуре приложений вертикальные
4. шестнадцать 4-процессорных (Ultra SCAPC III) серверов Sun системы наиболее предпочтительны на уровне баз данных, а
Fire V480 (при средней утилизации 30%) горизонтальные - на уровне слабосвязанных приложений.
5. четыре 8-процессорных (Ultra SCAPC IV) серверов Sun Fire
E2900 (при средней утилизации 30%) Лучшим подтверждениями вышесказанного являются статистика и
6. два 24-процессорных (Ultra SCAPC IV) сервера Sun Fire прогнозы. Данные о продажах серверов (см. рис. 18) говорят о
E2900 (при средней утилизации 45%) значительном объеме продаж средних и «тяжелых» систем.

35 36
Рисунок 18

При этом распределение этих серверов между задачами в 3-


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

37 38
Vasily.Pantyukhin@lynx.ru

Санкт-Петербург 2005

39 40

Вам также может понравиться