Сегодня большинство компаний и организаций ориентируются на сетевые вычисления, гибкая и масштабируемая архитектура которых позволяет без проблем расширять информационные системы по мере роста потребностей. Любой ИТ-менеджер знает, что сеть поглощает ресурсы так же, как ребенок съедает конфеты. Пользователи и разработчики ПО мгновенно находят способы задействовать все свободные вычислительные ресурсы и доступную емкость хранения. Потребность в более быстрых соединениях, все более сложных базах данных, приложениях электронной торговли и документах, а зачастую и в потоковом видео заставляет ИТ-менеджеров постоянно планировать очередную модернизацию. Известно, что серверы должны обеспечивать не только большие емкости хранения — пользователям необходимо и как можно меньшее время отклика системы. Сегодня трудно найти человека, наивно полагающего, что поставщики серверного оборудования просто берут настольную систему, добавляют большие, быстрые жесткие диски и называют все это сервером. На самом деле серверные продукты мало походят на настольные системы.
Широта выбора серверных систем требует от руководителей ИТ-служб реалистичной оценки потребностей в быстродействии и пропускной способности — необходимо выяснить, каковы будут требования к серверу со стороны сети, и определить будущие затраты на поддержку и модернизацию серверной техники.
Так называемые RISC/UNIX-серверы обеспечивают высокую пропускную способность и поставляются с расширенным набором утилит. Как правило, такие серверы работают под управлением ОС UNIX или Linux и поддерживают работу с конфигурациями, включающими несколько специализированных RISC-процессоров, оперативную и дисковую память большой емкости. Такие серверы предназначаются для достижения высокой пропускной способности и надежности, но для их установки, конфигурирования и эксплуатации требуются квалифицированные кадры. В общем случае серверы этого класса применяют для обеспечения работы приложений электронной торговли и больших баз данных, которым требуется надежный объемный трафик и постоянная скорость обработки данных.
Большую долю рынка занимают серверы на базе архитектуры Intel (Intel Architecture, IA). Эти системы, оптимизированные по пропускной способности, обычно могут оснащаться несколькими микропроцессорами Intel. В частности, достойную конкуренцию специализированным RISC-процессорам начинают составлять 64-разрядные кристаллы семейства Intel Itanium. Хотя IA-серверы намного дешевле, чем более мощные UNIX-системы, в ряде случаев они могут полноценно обслуживать работу небольших предприятий и ряда приложений баз данных и электронной торговли. Именно эти компьютеры обладают наилучшим соотношением цена/производительность.
Однако сервер — это не только процессоры. Для исключения задержек при перемещении данных в таких системах применяются модули памяти большого объема, а в ряде случаев — области общей памяти, помогающие организовать автоматическое выравнивание нагрузки. Для повышения надежности обработки и хранения данных обычно используется память с автоматическим определением и исправлением ошибок.
Встроенная в процессор кэш-память большого объема может повысить быстродействие, однако следует по возможности задействовать и дополнительную, внешнюю кэш-память, которая может совместно использоваться несколькими процессорами.
Основные требования
Работа и доходы большинства крупных компаний, фирм, государственных и финансовых учреждений существенно зависят от надежности используемых ими вычислительных систем, их устойчивости к сбоям, способности функционировать без простоев. Большинство компаний вкладывают немалые средства в информационные технологии. Современные вычислительные системы должны обеспечивать высокий уровень надежности хранения корпоративных данных, практически непрерывный доступ к данным, определяющий степень доступности, или готовности, а также удобство в обслуживании, т. е. возможность обслуживания системы с минимальным воздействием на рабочий процесс. Часто в качестве главных критериев, обуславливающих выбор сервера, называют масштабируемость, производительность, надежность и управляемость.
Масштабируемость
Под масштабируемостью, как правило, понимают способность сервера сохранять общую производительность при увеличении числа обслуживаемых пользователей или обрабатываемых транзакций. Иными словами, масштабируемость представляет собой возможность наращивания числа и мощности процессоров, объема оперативной и внешней памяти и других ресурсов вычислительной системы. Масштабируемость должна обеспечиваться архитектурой и конструкцией компьютера, а также соответствующими средствами программного обеспечения.
Добавление каждого нового процессора в действительно масштабируемой системе должно давать прогнозируемое увеличение производительности и пропускной способности при приемлемых затратах. Одна из основных задач при построении масштабируемых систем — минимизация стоимости расширения компьютера и упрощение планирования. В идеале добавление процессоров к системе должно приводить к линейному росту ее производительности. Однако на практике достичь линейности не получается. Потери производительности могут возникать, например, из-за недостаточной пропускной способности шин при возрастании трафика между процессорами и основной памятью, а также между памятью и устройствами ввода-вывода. В действительности реальное увеличение производительности трудно оценить заранее, поскольку оно в значительной степени зависит от динамики поведения прикладных задач.
Возможность масштабирования системы определяется не только архитектурой аппаратных средств, но и свойствами используемого ПО. Масштабируемость ПО затрагивает все его уровни — от простых механизмов передачи сообщений до работы с такими сложными объектами, как мониторы транзакций и вся среда прикладной системы. Необходимо, чтобы ПО минимизировало трафик межпроцессорного обмена, который может препятствовать линейному росту производительности системы. Аппаратные средства (процессоры, шины и устройства ввода-вывода) — это только часть масштабируемой архитектуры, на которой ПО может обеспечить предсказуемый рост производительности. Важно понимать, что простой переход, например, на более мощный процессор может привести к перегрузке других компонентов системы. Это означает, что действительно масштабируемая система должна быть сбалансирована по всем параметрам.
Готовность
Готовность обычно измеряется как доля времени, проведенного системой в работоспособном состоянии, от общего времени работы. Естественно, каждое приложение предъявляет свои требования к готовности. Готовность системы можно увеличить различными методами; выбор конкретного метода определяется в зависимости от стоимости системы и стоимости времени простоя. Как правило, более дешевые решения фокусируются в основном на снижении времени простоя после возникновения неисправности. Более дорогие позволяют системе продолжать функционировать и предоставлять сервис пользователям даже в том случае, когда один или несколько ее компонентов вышли из строя. Говорят, что по мере роста готовности системы ее цена увеличивается нелинейно; так же нелинейно увеличивается и стоимость ее поддержки. Относительно низкая стоимость оборачивается не самым высоким уровнем отказоустойчивости — не более 99%. Это означает, что около четырех дней в году информационная структура предприятия будет неработоспособна. На первый взгляд это не так уж много, если учесть, что сюда входят и плановые простои, связанные с проведением профилактических работ или реконфигурацией. Дорогие отказоустойчивые решения способны обеспечить заветные «пять девяток» — 99,999% надежности системы, что означает не более 5 мин простоев в год.
Надежность
По понятным причинам серверы изначально ориентированы на достижение высокой надежности. Подавляющее большинство фирм-производителей включают в поставку резервные блоки питания и вентиляторы, помогающие избежать полного отказа сервера. Многие поставщики предлагают компоненты (жесткие диски, адаптеры и т. д.) с возможностью горячей замены, что позволяет проводить ремонтные работы или модернизировать сервер, не прерывая его рабочий цикл. Возможность горячей замены блоков питания и других компонентов позволяет изменять конфигурацию или заменять неисправные детали без нарушения работы сети.
Особенности архитектуры
Высокая производительность обычно обеспечивается за счет использования быстрых и мощных процессоров, а также специальных архитектурных решений — специальных и локальных шин, скоростных интерфейсов (особенно для дисковых подсистем) и т. п. Широкое распространение получили архитектурные решения SMP (Symmetric Multi Processing, симметричные многопроцессорные системы) и NUMA (Non-Uniform Memory Access, системы с неоднородным доступом к памяти).
При использовании SMP-систем любая задача — прикладная программа, сетевая ОС, операции обмена с диском или обработка сетевого трафика — может выполняться на любом из имеющихся процессоров. Более того, в этом случае процессоры могут совместно выполнять одну и ту же задачу. Когда один процессор завершает свою работу, он может взять на себя часть нагрузки другого процессора. Таким образом, метод SMP позволяет эффективно использовать процессоры, уменьшая их время простоя. Большинство современных сетевых ОС поддерживают SMP. Отметим, что процессоры в SMP-системе взаимодействуют друг с другом с помощью так называемой шины межсоединения и используют общий пул памяти. При увеличении в сервере числа процессоров возрастает и трафик на данной шине. При значительном росте этого числа пропускная способность системы существенно снижается.
Архитектура неоднородного доступа к памяти (NUMA) используется в многопроцессорных системах, где время доступа зависит от места физического расположения памяти. Процессор может работать с собственной локальной памятью гораздо быстрее, нежели с нелокальной, которая в свою очередь является локальной для другого процессора или совместно используется несколькими процессорами. NUMA, как и SMP, позволяет получить объединенную вычислительную мощность большого числа процессоров, каждый из которых обращается к общему пулу памяти. Однако в этом случае процессоры организованы в небольшие группы — узлы, с помощью которых они могут связываться друг с другом. NUMA уменьшает нагрузку на шину по сравнению с SMP, поскольку процессоры в узлах взаимодействуют друг с другом и со своей локальной оперативной памятью через отдельные шины. Кроме того, они могут обращаться к пулам памяти других узлов, хотя время доступа зависит от того, насколько эти узлы удалены друг от друга. Поэтому такую архитектуру часто называют архитектурой с распределенной разделяемой памятью.
Нередко узким местом, ограничивающим масштабируемость системы на базе нескольких мощных процессоров, становится подсистема ввода-вывода. Ведь именно через нее подключается большинство высокопроизводительных периферийных адаптеров. В качестве подобных подсистем в современных серверах обычно используются шины PCI и PCI-X. Последняя обеспечивает пропускную способность более 1 Гбайт/с. Перспективная архитектура межкомпонентных последовательных соединений InfiniBand (см. http://www.infiniband.com) обеспечивает принципиально новые функциональные возможности одновременно с резким наращиванием масштабируемости и производительности компонентов самых разнообразных компьютерных платформ. В основе InfiniBand лежит структура коммутируемых межсоединений на базе двухточечных каналов.
Скорость обработки данных, быстродействие памяти и архитектура очень важны, но руководителям ИТ-служб также необходимо оценить характеристики дисковой подсистемы сервера, конфигурацию сетевых соединений и работу утилит управления.
В большинстве серверов используются дисковые подсистемы на основе шины SCSI, которые позволяют подключить к системе большее число дисков — в сравнении с IDE-стандартом, широко распространенным в настольных системах. Однако характеристики и возможности дисковой подсистемы существенно зависят от используемой версии стандарта SCSI, и в некоторых случаях наиболее совершенные типы IDE-дисков (например, ATA-100) превосходят по скоростям передачи данных системы на основе SCSI. Кроме того, диски SCSI дороже, чем диски IDE. В любом случае при выборе конкретного решения относительно дисковой подсистемы, как и других технологических компонентов, руководителям следует взвесить немедленные выгоды решения и возможные затраты на модернизацию сервера в будущем.
Некоторые поставщики решений включают сетевые порты (Ethernet) в архитектуру сервера, что позволяет оптимизировать передачу данных между этим портом и процессором. Поставщики недорогих систем и серверов среднего уровня обеспечивают Ethernet-соединение на основе шин PCI. Этот подход придает гибкость решению, позволяет упростить модернизацию имеющейся сетевой платы, а при необходимости — перевести сеть на более высокие скорости. Руководители, планирующие использовать сервер с дополнительными платами, должны позаботиться о достаточном числе разъемов расширения на системной плате сервера.
Утилиты управления могут помочь в снижении эксплуатационных затрат на сервер. В настоящее время многие продукты поддерживают функции удаленного управления с использованием протоколов сетевого управления (SNMP). Многие фирмы также предлагают диагностические утилиты, контролирующие характеристики сервера и помогающие идентифицировать некорректно работающие компоненты. Зная заранее о возможном отказе компонента, сотрудник технической службы может устранить проблему до того, как она нарушит работу сети. Удаленное управление и функции конфигурирования также позволяют поддерживать высокую работоспособность серверов. После того как сотрудники ИТ-службы начинают использовать ПО для управления и мониторинга, они уже полагаются на информацию, получаемую от этих утилит.
Оценка производительности
Крупнейшие производители компьютерного оборудования давно осознали важность тестов, оценивающих производительность процессоров на базе реальных прикладных программ. Еще в 1988 году была учреждена некоммерческая организация SPEC (System Performance Evaluation Cooperative), которая была затем преобразована в Standard Performance Evaluation Corporation (http://www.specbench.org). Основная цель организации — разработка и поддержка стандартизованного набора специально подобранных тестовых программ для оценки производительности новейших поколений высокопроизводительных компьютеров. Членом SPEC может стать любая организация, уплатившая вступительный взнос.
Главные виды деятельности SPEC — это разработка и публикация наборов тестов, предназначенных для измерения производительности компьютеров, а также публикация отчетов о новостях SPEC и результатах тестирования.
Как правило, тесты ориентированы на операционную систему UNIX, однако SPEC работает над переносом тестовых программ на разные платформы. Тесты SPEC отличаются от аналогичных свободно распространяемых программ. Хотя имена тех и других программ могут быть похожими или даже совпадать, время их выполнения в общем случае будет различаться. Тесты SPEC пользуются наибольшим признанием в мире UNIX и приняты за основную точку отсчета для сравнения систем разных производителей
В 1988 году был создан и Совет по оценке производительности обработки транзакций TPC (Transaction Processing Performance Council, http://www.tpc.org), членом которого может стать любая компания или организация, уплатившая соответствующий взнос. На сегодня в состав TPC входят практически все крупнейшие производители аппаратных платформ и ПО для автоматизации коммерческой деятельности. К настоящему времени TPC уже разработал несколько тестовых пакетов, предназначенных для объективного сравнения различных систем обработки транзакций; планируется также создание новых оценочных тестов.