Введение
В первой части статьи, посвящённой серверам и рабочим станциям, мы обсудили основные требования, предъявляемые к серверам, поговорили о характеристиках профессионального “железа” и рассмотрели примеры. Теперь настало время поговорить и о других характеристиках, о производителях и сервисе.
Сегодня на рынке присутствует большое количество систем, называемых серверами, хотя их характеристики сильно различаются. На нижнем ценовом сегменте присутствуют такие же простые компьютеры, которые вы можете использовать дома. Под словом “простые” мы не подразумеваем, что у вас слабая конфигурация, просто многие серверные функции у них отсутствуют. Подобные системы не используют комплектующие профессионального класса, но успешно играют роль сервера в домашней сети или в сети малого предприятия.
Пример можно привести следующий. Многие пользователи после покупки домой нового быстрого ПК оставляют старый компьютер работать в качестве сервера. На старый компьютер можно поставить Windows, но Linux справится с задачами лучше. Подобные компьютеры прекрасно работают в роли файловых серверов, серверов печати, серверов Интернета/шлюзов/маршрутизаторов, серверов потокового вещания аудио и видео. Впрочем, конечно, дело обычно ограничивается небольшим количеством пользователей, да и о расширенных аппаратных функциях приходится забыть: избыточности на случай сбоя здесь нет, а комплектующим может быть уже несколько лет. Конечно, многие специалисты всерьёз не посчитают такие компьютеры серверами, но всё же, если следовать определению, это именно серверы.
Домашние сети и сети малого бизнеса могут смириться с упомянутыми ограничениями (только постарайтесь резервировать данные регулярно), но в более серьёзном бизнес-окружении и подход должен быть серьёзным. High-end серверы представляют собой более сложные системы, которые построены на мощных и сложных комплектующих, таких, как блоки питания с избыточностью, подсистема памяти с избыточностью, два или четыре процессора с двумя или четырьмя ядрами каждый, дисковая подсистема с избыточностью, интерфейсы с избыточностью и, конечно, максимально возможное качество комплектующих и надёжность. Всё это призвано сократить до нуля время простоя сервера в случае сбоя или обслуживания.
Конечно, следует учесть и должное окружение: систему кондиционирования воздуха, подачу питания без перебоев. Не забывайте, что даже лучшие комплектующие не будут работать в негодном окружении. Если у вас есть сервер баз данных, отвечающий за денежные транзакции, то следует позаботиться, чтобы ваше решение работало всегда. Мы специально написали решение, а не сервер, поскольку даже серверы обычно устанавливаются с избыточностью, чтобы одна система подстраховывала другую. Иногда создают даже избыточные центры обработки данных, например, в банках.
Идеальное серверное окружение
Большинство людей вряд ли будет заводить детей, если не подготовится морально и денежно к этому событию. То же самое касается и серверов. Растущий бизнес в чём-то подобен ребёнку, конечно, если он расширяется и развивается. Не нужно идеализировать, но установке серверного окружения должно предшествовать серьёзное и детальное планирование. Подобно тому, как вы планируете детскую для своего ребёнка. Создание окружения для сервера – первый и важный шаг, поэтому следует потратить достаточно времени и ресурсов, чтобы продумать требования приложений и “железа”, а также параметры серверного окружения.
Интернет-серверы обычно находятся у провайдера (ISP). Там используются большие серверные фермы, в которые можно установить и ваш сервер по разумной цене. Некоторые считают, что важно выбирать расположение сервера с возможностью физического доступа, некоторые – нет. Уделите внимание тому, за что вы будете платить: большинство провайдеров предлагают полный пакет услуг, включающий питание, кондиционирование воздуха, один канал доступа в Интернет с одним или несколькими IP-адресами и определённой максимальной пропускной способностью. Обычно приходится отдельно платить за установку/снятие сервера и за переданные гигабайты. Не забывайте проверить гарантированную минимальную пропускную способность, если вам нужно, чтобы сервер был всегда доступен пользователям Интернета.
Если вы хотите разместить серверы у себя, то не забудьте проверить аппаратные спецификации и убедитесь, что окружение подходит. Есть ряд факторов, которые следует учитывать.
- Питание. Достаточно ли будет питания для всех компьютеров? Как будет обеспечиваться защита от перепадов напряжения и питание в аварийных случаях? Через блоки бесперебойного питания (UPS) или через аварийный генератор?
- Расположение сервера. Будет ли сервер защищён от наводнений, взлома и проникновения непрошенных гостей, землетрясений?
- Охлаждение. Справится ли система кондиционирования и вентиляции?
- Интерфейсы и доступ. Какой доступ к серверу потребуется? Какое будет подключение к сети, к Интернету?
Категории серверов
Серверы можно разбить на несколько категорий. Определения сервера тоже бывают разными, но мы используем следующее: сервер – это любой компьютер, на котором установлено серверное ПО и который обеспечивает серверные услуги для клиентов. Серверы часто разделяют по типу серверных приложений, отсюда появились web-серверы, файловые серверы, серверы баз данных (СУБД, SQL), серверы потокового вещания, серверы транзакций, серверы резервирования, серверы печати и т.д. Что интересно, иногда любому компьютеру приходится выступать в роли сервера, предоставляя другому компьютеру ту или иную услугу.
Но есть и другой способ разделения серверов: по выполняемым функциям сетевых приложений. По мере роста требований приложений или безопасности, вы уже не можете выполнять все приложения и сервисы на одном компьютере (если не учитывать виртуализацию, о ней чуть ниже), и вам нужно разделить нагрузку между несколькими серверами. Профессионалы обычно подразумевают внутренние серверы (back-end) и внешние (front end). Последние выдают HTML-страницы или занимаются внешними операциями ввода/вывода, например, взаимодействием с пользователями. А внутренние серверы отвечают за базу данных предприятия и большую часть вычислительной нагрузки – это ядро ваших приложений или бизнеса.
Форм-факторы: обычные, стоечные, “лезвия”
Снаружи не сразу поймёшь, обычный это компьютер, рабочая станция или сервер.
Если уж говорить о разных категориях серверов, то не следует забывать разные форм-факторы. Хотя форм-фактор является прямым следствием предъявляемых требований, общих правил по поводу формата сервера нет. Существуют обычные серверы с вертикальными корпусами, внешне напоминающие настольные ПК. Они позволяют устанавливать материнские платы ATX или EATX, можно легко использовать и стандартные комплектующие. Но чем глубже вы будете продвигаться в корпоративную сферу, тем больше будете встречать стоечные (rackmount) серверы. Они обычно устанавливаются в 19″ шкафы-стойки в горизонтальном положении. В результате в 19″ стойку входит несколько серверов. Стойки бывают разной высоты и глубины.
Обычные серверы напоминают обычные ПК, но внутри они оптимизированы для лёгкого обслуживания и эффективной вентиляции.
Стоечные серверы
Типичный стоечный сервер 1U 19″.
Комплектующие стоечных серверов часто специализированы, поэтому не ожидайте встретить много стандартных компонентов. За исключением, разве что, модулей памяти, процессоров и некоторых карт расширения. Высота 19″ серверов обычно выражается в U (unit, стандартный корпус, на жаргоне часто называют “юнит”). Серверы, как правило, встречаются высотой 1U, 2U и 4U. Есть серверы и с большей высотой, но они очень сильно специализированы. Приведённый выше пример является сервером 1U на двух Socket 771 для процессоров Xeon от Supermicro.
Для 19″ стоек выпускаются не только серверы: в стойки можно установить многие другие продукты, включая сетевые коммутаторы, маршрутизаторы и брандмауэры, патч-панели, студийные аудио- и видеоблоки, блоки бесперебойного питания (UPS), сетевые хранилища (NAS), телефонные станции т.д.
Обратите внимание на максимальное тепловыделение стоечных серверов, поскольку при высокой плотности компонентов можно легко выйти за типичные спецификации. 19″ стойки закрытые, поэтому они должны отводить несколько киловатт тепла с помощью вентиляторов или других вариантов охлаждения.
Нажмите на картинку для увеличения.
Blade-серверы (“лезвия”)
Есть и подкатегория стоечных серверов под названием blade-серверы. Они ещё меньше и тоньше (отсюда и “лезвие”) и обычно устанавливаются в blade-оснастки. Последние, в свою очередь, устанавливаются в 19″ стойки или стойки другого формата. Blade-серверы разработаны для повышения плотности расположения вычислительных блоков в условиях ограниченного пространства, да и для облегчения обслуживания систем, упрощая прокладку кабелей, обеспечивая модульность и лёгкость развёртывания. К стоечным серверам нужно подводить питание, кабели дисплея, сети и т.д., а blade-серверы попросту вставляются в слоты с “горячей” заменой. Обычно blade-серверы не содержат вентиляторов, поскольку они охлаждаются средствами blade-оснастки. В полноразмерную 19″ blade-оснастку 42U можно установить до 84 blade-серверов, что даёт 336 вычислительных ядер, если используется один сокет на сервер и четырёхядерные процессоры. Если же перейти на два сокета или восьмиядерные процессоры, вычислительную мощность в будущем можно будет легко удвоить.
Blade-серверы могут работать без жёстких дисков, поскольку концепция предполагает возможность загрузки операционной системы через сеть Storage Area Network (SAN), в которой сетевое соединение используется для транспортировки протокола хранения данных, частот SCSI/iSCSI. В данном сценарии жёсткие диски располагаются в других системах, часто даже удалённых.
Виртуализация
Виртуализация затрагивает не только аппаратное, но и программное обеспечение. Лучше всего описать виртуализацию как средство улучшения использования существующих системных ресурсов. Многие знакомы с виртуализацией благодаря таким программам, как VMWare, программному решению виртуализации. VMWare была разработана для запуска клиентской ОС под host-ОС с помощью Virtual Machine Manager (VMM). VMM отвечает за эффективное распределение существующих ресурсов и обеспечивает виртуальное аппаратное обеспечение (которого не существует). В результате под Windows Server можно запустить полноценную систему Linux.
AMD и Intel поддерживают виртуализацию аппаратно, на уровне процессора, то есть последние CPU способны обеспечивать систему виртуальными ресурсами. В результате VMM может запускать несколько операционных систем на одном процессоре. Кстати, повышение интереса к аппаратной поддержке виртуализации связано с увеличением числа ядер. С двумя или четырьмя вычислительными ядрами на процессор мощности уже достаточно, чтобы на одном компьютере работали две или больше операционных систем.
Для виртуализации с аппаратной поддержкой есть несколько моделей использования. В любом случае, вы можете запускать на одной системе несколько ОС, что приводит к новым моделям использования. Что касается клиентских компьютеров, то Intel считает важным добавление сервисной операционной системы, которая дополняет основную ОС. Сервисная ОС может отслеживать весь сетевой трафик, обеспечивая улучшенную безопасность и возможность ИТ-персоналу обслуживать систему удалённо. В мире серверов имеет смысл разделить опорные части приложений на несколько разделов операционных систем.
В следующем примере показана система, у которой работает раздел с сервером баз данных и два дополнительных раздела с web-серверами, причём, последние поддерживают избыточность. В данном примере сервер базы данных отделён от web-серверов, что обеспечивает уровень безопасности, который раньше достигался только с помощью двух физических компьютеров. Да и два web-сервера (для избыточности) гарантируют снижение времени простоя, поскольку если один из них станет недоступен, нагрузку примет на себя второй сервер. Наконец, второй web-сервер можно использовать для тестирования перед тем, как окончательно внести какие-либо изменения в систему.
Ещё один интересный аспект заключается в балансировке нагрузки. Впрочем, здесь мы можем упереться в ограничения остального аппаратного обеспечения. Хотя компоненты ввода/вывода тоже виртуальные, но аппаратной поддержки такой виртуализации пока нет. AMD и Intel сегодня работают над решением этой проблемы и выпустят продукты с расширенной поддержкой виртуализации для устройств ввода/вывода, то есть вскоре мы увидим аппаратную поддержку переназначения DMA и операций ввода/вывода.
Источник: Intel, презентация с IDF.
Источник: Intel, презентация с IDF.
Консолидация
Существует множество технических причин и поводов, связанных с приложениями, почему виртуализация сегодня столь важна. Но есть одна большая причина, почему виртуализация набирает популярность. Серверы дорого стоят, очень дорого, особенно большие деньги приходится выкладывать за high-end решения. Чем меньше физических серверов вам потребуется, тем больше денег можно сэкономить. Мощные серверы, способные запускать несколько или даже десятки разных разделов с операционными системами/сеансами, могут снизить издержки и на сами серверы, и на окружение.
Даже сегодня один мощный сервер с четырьмя сокетами и четырёхядерными процессорами (16 вычислительных ядер), при наличии достаточных ресурсов, способен справиться с несколькими операционными системами. Хотя, конечно, есть определённые ограничения, связанные с природой одной системы (ограниченные возможности ввода/вывода), подобные решения очень интересны для сфер, где требуется частое и быстрое развёртывание дополнительных серверов. Подумайте о разработчиках программного обеспечения или даже о провайдерах, которые могут в короткий срок внедрить дополнительные услуги хостинга, не закупая сотни физических серверов каждую неделю.
Если ваша программная архитектура мощная и масштабируемая, то high-end кластерное окружение позволяет переводить разделы ОС с одной системы на другую. Виртуальный раздел можно переводить с одного сервера на другой, не затрагивая физическое аппаратное обеспечение.
Добавим к этому приятные опции модернизации. В целом, покупка high-end серверов с поддержкой технологии виртуализации имеет смысл для потребителей, которые хотят минимизировать совокупную стоимость владения (TCO). Решение, если оно будет достаточно гибким для установки будущих процессоров с большим числом ядер, способное переводить разделы с операционными системам и приложениями по инфраструктуре, для корпоративной сферы просто бесценно.
Что такое RAS?
Под RAS скрываются три английских слова: Reliability, Availability и Serviceability, которые можно перевести как надёжность, доступность и возможность диагностики. По информации Wikipedia, этот термин был придуман IBM для продвижения своих мэйнфреймов (под этой аббревиатурой скрывается и Remote Access Service, так что не путайте). Но что понимают под RAS в профессиональной сфере?
- Reliability (надёжность).
Система может быть полностью надёжной, только если она способна определять проблемы и предотвращать поступление испорченных данных. И, при необходимости, исправлять ошибку самостоятельно. Если такой возможности нет, система должна сообщить администратору, что уже не работает надёжно. - Availability (доступность).
Большинство компаний используют этот термин вместе с указанием часов, минут и секунд простоя оборудования в год. Как правило, хорошей доступностью считается работа сервера в течение 99,9% времени, то есть из 8 760 часов в году сервер должен работать 8 751. Как видим, дозволяется лишь девять часов простоя в год. Доступность обеспечивается внедрением механизмов, которые позволяют системе работать стабильно, даже если возникает ошибка. - Serviceability (возможность диагностики).
Здесь подразумеваются возможности системы самостоятельно диагностировать вероятные проблемы. Если вы знаете о таких проблемах, то можно принять соответствующие превентивные меры, чтобы снизить время простоя.
Ниже перечислены наиболее распространённые черты RAS для серверов.
- Защита от перепадов напряжения, источники бесперебойного питания (UPS) или источники резервного питания;
- конфигурации RAID для подсистем хранения данных (полностью избыточные, без RAID 0);
- “горячая” замена комплектующих;
- коррекция ECC (Error Correcting Code), которая проверяет чётность памяти;
- троттлинг CPU и компонентов при перегреве;
- виртуализация для снижения влияния сбоя операционной системы;
- передача данных с кодом CRC (Cyclic Redundancy Check);
- память с избыточностью, DIMM для оперативной замены.
Ещё один источник полезной информации о серверах – наша статья “Четырёхядерные Xeon Clovertown в серверах DP: тесты.“.
Производители серверов
На мировом серверном рынке есть несколько ключевых игроков, на долю которых приходится 2 млн. серверов, а ежегодная прибыль составляет около 50 млрд. долларов.
Компания | Q3/2006 Прибыль (млн. US$) |
Рыночная доля |
IBM | 4 381 | 33,7 % |
Hewlett-Packard (HP) | 3 290 | 25,3 % |
Dell | 1 406 | 10,8 % |
Sun | 1 314 | 10,1% |
Fujitsu и Fujitsu Siemens (FSC) | 634 | 4,9 % |
Другие | 1 988 | 15,3 % |
Источник: Gartner (11-2006).
HP является доминирующим игроком на рынке blade-серверов, в то время как IBM можно назвать лидером в области суперкомпьютеров и серверов. Поскольку все пять ключевых игроков нацеливаются на массовый и high-end сегменты серверного рынка, давать какие-то рекомендации сложно. Когда дело касается специализированных профессиональных решений, вам нужна компания, которой вы можете доверять, с кем у вас был успешный опыт сотрудничества. Из российских компаний мы рекомендуем серверы Kraftway.