Часть 1
В сознании многих пользователей сервер ассоциируется с высоким шкафом или хотя бы с корпусом типа Big Tower. Само понятие "сервер" окружено некой завесой таинственности и значимости. Невзначай оброненное слово "сервер" вызывает уважительные мысли о мощи и надежности информационных технологий, а также к человеку, его произнесшему. В этой статье будет рассказано как о серверах, действительно занимающих целую комнату, так и о серверах начального уровня, внешне неотличимых от обычных ПК. Статья будет состоять из нескольких частей, в которых будет дана подробная классификация серверов, рассказано об аппаратных технологиях, отличающих сервер от обычного ПК, о возможностях связки сервер-программное обеспечение и многом другом.
Стоит отметить, что сама тема серверных технологий бесконечна - все зависит лишь о степени детализации излагаемого материала. В этой статье я постарался изложить материал максимально подробно, настолько, что кое-где речь зайдет об архитектуре серверов на уровне, соприкасающемся с тонкостями программирования на ассемблере. Впрочем, я надеюсь, что моя статья будет интересна как можно более широкому кругу читателей - от технических специалистов до рядовых пользователей.
История
Чтобы лучше понять, что представляют собой современные серверы, кратко рассмотрим историю их возникновения. Изначально, вся электронная обработка данных проходила на мощных ЭВМ - мейнфреймах, у пользователей был лишь терминал для доступа к данным. Терминал представлял собой алфавитно-цифровой дисплей и клавиатуру, которые подключались к мейнфрейму. Сам по себе мейнфрейм (от англ. mainframe - основная стойка) представлял собой мощную, универсальную ЭВМ для массового одновременного обслуживания нескольких тысяч пользователей. Мейнфреймы на тот момент поставляли всего несколько компаний, но, как правило, их продукция была несовместима между собой, а, следовательно, компании-потребители были замкнуты на решения одного поставщика, который поставлял все аппаратное и программное обеспечение. Компьютерные системы были очень дорогими, а переход с одной системы на другую был очень болезненным. В 1971 г. компанией Intel был разработан первый микропроцессор (i4004), что сделало возможным появление персонального компьютера - IBM PC. С ростом мощности и количества ПК произошел постепенный переход от централизованной обработки информации к распределенной (на персональных компьютерах). Терминалы стали замещаться ПК, а от мэйнфреймов постепенно отказались.
Однако с ростом количества ПК и их мощности, развитием локальных сетей вновь возникла потребность в централизованном хранении и обработке данных.
Появилась необходимость в сервере для персональных компьютеров. Сервер - устройство в сети, предназначенное для обслуживания доступа к общим ресурсам (файлы, принтеры, базы данных, приложения и т.д.).
Изначально распространение получили файловые серверы, где пользователи хранили свои данные и обменивались ими. С ростом глобальной компьютерной сети интернет возникло новое направление - телекоммуникационные серверы (веб-серверы, ftp, доменных имен, почтовые). С развитием СУБД, в силу изменения формата хранения и доступа к данным, файловые серверы утратили свою популярность, и их во многом заменили серверы баз данных. Файловые серверы остаются и по сей день, но они приобрели второстепенное значение - их используют для хранения пользовательских файлов и различных архивов. Также на файловых серверах хранятся данные, предназначенные для совместной работы нескольких пользователей. В последнее время выросла популярность терминальных серверов - ПК пользователей служат лишь терминалом для отображения и ввода данных, а все пользовательские задачи выполняются на сервере. Таким образом достигается значительная экономия на ПК (на роль терминала годятся даже маломощные компьютеры), снижаются затраты на установку и поддержку программного обеспечения, решаются вопросы конфиденциальности и сохранности данных.
Для снижения совокупной стоимости владения (Total Cost of Ownership - TCO), куда входят затраты на оборудование, программное обеспечение и обслуживание техники, многие компании сегодня возвращаются к централизованной обработке данных.
Классификация серверных решений
Сегодня компании не замкнуты на одного поставщика аппаратного и программного обеспечения, имея возможность использовать различные программные и аппаратные решения от различных производителей - в первую очередь речь, идет о разнице в "глобальных" подходах (выбор между Windows - Unix системами и архитектурами CISC/RISC).
На сегодняшний день основным представителем архитектуры CISC (Complete Instruction Set Computer - компьютер с полным набором команд) являются процессоры x86 от AMD и Intel. Строго говоря, CISC/RISC архитектуры на самом деле являются идеализированными концепциями, поэтому классификация процессоров на их основе является несколько условной. Но процессоры х86 относят к CISC процессорам, поскольку они соответствуют наиболее важным характеристикам, свойственным CISC-системам:
- сравнительно небольшое число регистров общего назначения (16 регистров у классических CISC-архитектур);
- большое количество машинных команд (набор команд постоянно пополняется за счет нововведений производителей - MMX, SSE, 3DNow! и пр.);
- большое количество методов адресации;
- большое количество поддерживаемых форматов команд различной разрядности;
- преобладание двухадресного формата команд.
Поскольку на сегодняшний день AMD только обозначил свое присутствие на рынке серверных процессоров, то далее речь пойдет о развитии серверных процессоров Intel.
В 1995 г. компанией Intel был разработан процессор Pentium Pro (150МГц, 512Кб кэш), позиционирующийся как серверный. Он отличался от настольных аналогов большим кэшем и продвинутой архитектурой, частично заимствованной у процессоров с архитектурой RISC. В процессоре Pentium Pro Intel впервые включила технологию динамического исполнения (Dynamic Execution), то есть инструкции могут исполняться не только последовательно, но и параллельно с помощью предсказания ветвей кода и переупорядоченного исполнения инструкций. Тем самым значительно повысилась эффективность процессора - количество команд, выполняемых за такт.
Вторым нововведением стал большой встроенный кэш L2. Для серверных систем наличие большего кэша является очень важным. Процессоры всегда работают на частотах, в несколько раз превышающих частоту памяти. Половина инструкций стандартных приложений представляет собой команды работы с памятью - загрузку и выгрузку данных (Load-Store). Работа с памятью происходит по следующей схеме: если данные не были найдены в кэше L1, то следует обращение к кэшу L2, на это уходит 9-16 процессорных циклов, если данных нет и в кэше L2, то на обращение к памяти уходит до 150 процессорных циклов, в течение которых процессор ждет данные. Большой кэш L2 повышает вероятность быстрого доступа к данным, а, следовательно, увеличивает эффективность работы процессора.
Можно говорить о том, что Intel впервые применяет и обкатывает свои новые продвинутые технологии именно на серверных процессорах, потом эти технологии постепенно распространяются и на персональные компьютеры. Это уже произошло с интегрированным кэшем L2, динамическим исполнением, многопоточностью (hyper-threading). На очереди 64 битная адресация памяти (ЕM64Т).
За Pentium Pro последовали другие серверные процессоры: в 1998 г. - Intel Pentium II Xeon (400-450МГц, 1-2Мб кэш), Pentium III Xeon (700-900Мгц, 1-2Мб кэш). В 2001 г. был выпущен серверный аналог Pentium 4, Хeon, который развивается и используется и в настоящее время.
Так сложилось, что на сегодняшний день на долю Intel приходится около 90% всех поставок рынка серверов, но лишь половина доходов этого рынка попадает в ее карманы: сегмент серверов начального уровня, где Intel доминирует с середины 90х, велик, но прибыли от него, в силу дешевизны продукции, несравнимы с сегментом мощных серверов. К примеру, по моей информации, на сегодняшний день в Республике Беларусь установлено несколько тысяч одно- и двухпроцессорных серверов начального уровня и только несколько 48-процессорных серверов RISC - общая стоимость систем примерно одинакова. При одинаковой общей стоимости прибыль, полученная производителями от продажи этих систем, существенно разнится. Дело в том, что Intel позволяет производить серверы на основе своих процессоров целому ряду сторонних производителей, получая прибыль не со всей стоимости сервера (5000-15000 USD), а только со стоимости своих комплектующих - в основном, процессоров (т.е. с 1000-3000 USD).
В последнее время Intel активно борется за этот самый прибыльный сегмент серверного рынка (системы с количеством процессоров от 4 до 256), где достаточно прочно обосновались системы на базе RISC архитектуры. Основной надеждой Intel являются 64-битные процессоры Intel Itanium 2. Предыдущий процессор Intel Itanium так и остался непопулярным - с момента начала поставок работоспособных систем на его основе и до выпуска Itanium 2, по данным Gartner, было продано лишь около 3 тысяч серверов на его основе (за тот же период серверов с процессорами RISC было продано 4.7 млн.).
Архитектура, называемая компьютером с сокращенным набором команд (Reduced Instruction Set Computer - RISC), появилась благодаря тому, что еще в середине 70-х годов XX века некоторые разработчики компьютерных архитектур заметили, что даже у компьютеров сложной архитектуры большая часть времени уходит на выполнение простых команд. Справедливым оказалось правило 20/80, а именно - 20% команд используется в 80% случаев, а оставшиеся 80% команд используются в 20% случаев.
Основными чертами концепции RISC-архитектуры являются:
- одинаковая длина команд;
- единый формат команд. Или, по крайней мере, использование не более двух-трех форматов;
- операндами всех арифметических и логических команд могут быть только регистры;
- команды выполняют только простые действия;
- выполнение любой команды производится не дольше, чем за один такт;
- большой регистровый файл;
- только простая адресация.
Основными чертами RISC архитектуры обладают процессоры SPARC (масштабируемая процессорная архитектура - Scalable Processor ARChitecture). Всеобщим заблуждением среди любителей является соотнесение архитектуры SPARC только с компанией Sun. На самом деле архитектура SPARC - это стандартизированная архитектура, в рамках которой целый ряд производителей выпускают процессоры и крупные вычислительные системы на их основе. Первый процессор SPARC был изготовлен компанией Fujitsu на базе вентильной матрицы, работающей на частоте 16.67 МГц еще в 1987 году.
Основными конкурентами на этом рынке долгое время оставались компании Sun Microsystems и Fujitsu. Но не так давно эти компании объявили о новом направлении сотрудничества, результатом которого станет появление новой линейки систем APL (Advanced Product Line) на платформе SPARC/Solaris. Эта линейка появится в 2006 году и соединит все достоинства существующих линеек Sun Fire и PrimePower. На европейском рынке линейку PrimePower поставляет концерн Fujitsu Siemens Computers.
Эти системы изначально проектировались как масштабные 64-разрядные вычислительные системы enterprise уровня. Как уже отмечалось, системы RISC доминируют в классе мощных серверов. На это есть ряд причин, а именно - архитектура SPARC позволяет организовать максимальную масштабируемость, кроме того, немаловажную роль играет наличие специализированного программного обеспечения для масштабных систем. В серверах PrimePower используется операционная система Solaris, достаточно давно разрабатываемая специально для этих целей. А на рынке программного обеспечения для CISC систем ситуация плачевна: оригинального программного обеспечения для процессоров Itanium мало, а то, что есть - еще не опробовано и "сыро", чтобы на него делали ставку заказчики мощных серверов. Задачи, для решения которых нужны такие машины (финансовое моделирование, построение крупных электронно-коммерческих систем и т.п.), требуют идеальной надежности и проверки временем. Системы на базе SPARC такую проверку уже прошли.
Следующий параметр для классификации серверов - используемое программное обеспечение. Можно долго и бесплодно спорить, что же лучше - системы на базе Windows или *nix систем, но серверный рынок самостоятельно решил для себя этот вопрос - в серверах начального уровня в подавляющем большинстве случаев используется Windows 2000/2003 Server, тогда как в серверах enterprise уровня - *nix системы (большей частью Solaris).
На мой взгляд, это связано прежде всего с тем, что, кроме непосредственной стоимости оборудования, в общую стоимость (ТСО) серверов входят также затраты на администрирование. И в этом свете администраторы Windows "стоят" куда "дешевле" своих коллег, администрирующих *nix системы, что связано с достаточной сложностью администрирования таких систем и явным недостатком соответствующих квалифицированных специалистов. Поэтому доля подобных расходов в ТСО серверов начального уровня значительно превосходит такую же долю в ТСО мощных серверов. А владельцы дорогостоящих RISC систем зачастую готовы платить соответствующие деньги своим специалистам, зная, что один час простоя такого сервера обойдется им в сумму, превышающую десятки годовых зарплат системного администратора.
В следующей статье я расскажу о
классификации серверов по их
назначению, основных требованиях к
серверам и способах достижения
соответствия этим требованиям и др.
Если в ходе прочтения этой статьи у вас возникли вопросы или замечания, направляйте их на мой электронный адрес.
Кроме того, 27 сентября в Минске состоится семинар, проводимый компанией Fujitsu Siemens Computers и ее партнером в Беларуси ИП "ИТЦ-М", посвященный современным серверным технологиям, системам хранения данных, опыту внедрения, эксплуатации и сопровождения серверов в крупных ВЦ и др. В ходе проведения семинара специалисты и руководители служб ИТ/АСУ, работающие в этой области, смогут пообщаться со специалистами крупнейшего в Европе производителя серверов и компьютерного оборудования и получить исчерпывающую информацию по всем интересующим их вопросам. Следите за объявлением о регистрации на сайте www.itc.by и в прессе.
Михаил ЧУПРИНСКИЙ,
специалист ИП ИТЦ-М,
Mikhail.Chuprynski@itc.by,
тел. 216-10-13
Комментарии
Особенно, учитывая тот факт, что аффтар, по всей видимости, продает эти самые спарки.
Аффтар скромно умолчал о powerpc, pa-risc, mips; о том, что в 10-ке tpc-c спарков просто нет; о том, что по tpc-h спарком топчут те же ppc, itanium-ы и, конечно же, обычные xeon-ы.
Короче, СПАРК - мировой тормоз.