Аппаратный и программный сервер.

02.11.2020 12:09

    Многие из нас слышали слова «сервер», «файл-сервер» и словосочетания «почтовый сервер», «выделенный сервер» и т. п.

    В этой статье мы рассмотрим, что такое сервер, как он устроен, и чем отличается от бытового или офисного компьютера.

    Слово server образовано от английского термина to serve (обслуживать). Таким образом, сервер — это «обслуживатель».

    Звучит не очень красиво, зато понятно, чем он занимается. Обслуживает запросы клиентов.

    Обслуживать можно на аппаратном («железном») и программном уровнях.

    Поэтому server включает в себя два понятия — «аппаратный сервер» и «программный сервер».

 

   АППАРАТНЫЙ СЕРВЕР.

    Сразу укажем первое отличие сервера от персонального компьютера (ПК). На персональном компьютере постоянно работает пользователь. А сервер (аппаратный), в большинстве случаев, стоит в отдельной комнате и работает самостоятельно.

    Обычный пользователь за ним не работает, к нему имеет доступ системный администратор — для настройки или иных служебных манипуляций. Он обязательно включен в локальную сеть, поэтому на него можно войти с любого компьютера из этой сети (при соответствующих настройках, разумеется). Аппаратный сервер, в отличие от ПК, работает круглосуточно и семь дней в неделю.

    Сервер (англ. server от англ. to serve — служить, мн. ч. серверы) — выделенный или специализированный компьютер для выполнения сервисного программного обеспечения (в том числе серверов тех или иных задач).

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

    Некоторые сервисные задачи могут выполняться на рабочей станции параллельно с работой пользователя. Такую рабочую станцию условно называют невыделенным сервером.

    Консоль (обычно — монитор/клавиатура/мышь) и участие человека необходимы серверам только на стадии первичной настройки, при аппаратно-техническом обслуживании и управлении в нештатных ситуациях (штатно, большинство серверов управляются удалённо). Для нештатных ситуаций серверы обычно обеспечиваются одним консольным комплектом на группу серверов (с коммутатором, например, KVM-переключателем, или без такового).

    Серверное оборудование зачастую предназначено для обеспечения работы сервисов в режиме 24/7, поэтому часто комплектуется дублирующими элементами, позволяющими обеспечить «пять девяток» (99,999 %; время недоступности сервера или простой системы составляет менее 6 минут в год). 
    Для этого конструкторами при создании серверов создаются специальные решения, отличные от создания обычных компьютеров: 
  • память обеспечивает повышенную устойчивость к сбоям. Например, для i386-совместимых серверов, модули оперативной памяти и кэша имеет усиленную технологию коррекции ошибок (англ. Error Checking and Correction, ECC). На некоторых других платформах, например SPARC (Sun Microsystems), коррекцию ошибок имеет вся память. Для собственных мэйнфреймов IBM разработала специальную технологию Chipkill™.
  • Повышение надёжности сервера достигается резервированием, в том числе с горячими подключением и заменой (англ. Hot-swap) критически важных компонентов:

    -при необходимости вводится дублирование процессоров (например, это важно для непрерывности выполнения сервером задачи долговременного расчёта — в случае отказа одного процессора вычисления не обрываются, а продолжаются, пусть и на меньшей скорости)

    -блоков питания,

    -жёстких дисков в составе массива RAID и самих контроллеров дисков,

    -групп вентиляторов, обеспечивающих охлаждение компонентов сервера.

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

    Серверы (и другое оборудование), которые требуется устанавливать на некоторое стандартное шасси (например, в 19-дюймовые стойки и шкафы), приводятся к стандартным размерам и снабжаются необходимыми крепёжными элементами.

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

    В так называемом «промышленном исполнении», кроме уменьшенных размеров, корпус имеет бо́льшую прочность, защищённость от пыли (снабжён сменными фильтрами), влажности и вибрации, а также имеет дизайн кнопок, предотвращающий случайные нажатия.

    Конструктивно аппаратные серверы могут исполняться в настольном, напольном и стоечном вариантах. Последний вариант обеспечивает наибольшую плотность размещения вычислительных мощностей на единицу площади, а также максимальную масштабируемость. С конца 1990-х всё большую популярность в системах высокой надёжности и масштабируемости получили так называемые блейд-серверы (от англ. blade — лезвие) — компактные модульные устройства, позволяющие сократить расходы на электропитание, охлаждение, обслуживание и т. п…

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

    Наращивание ресурсов преследует целью увеличение ёмкости (например, специализация для файл-сервера) и производительности сервера. Когда производительность достигает некоторого предела, дальнейшее наращивание продолжают другими методами, например, распараллеливанием задачи между несколькими серверами.

    Уменьшение ресурсов преследует цели уменьшения размеров и энергопотребления серверов.

    Крайней степенью специализации серверов являются, так называемые аппаратные решения (аппаратные роутеры, сетевые дисковые массивы, аппаратные терминалы и т. п.). Аппаратное обеспечение таких решений строится «с нуля» или перерабатывается из существующей компьютерной платформы без учёта совместимости, что делает невозможным использование устройства со стандартным программным обеспечением.

    Программное обеспечение в аппаратных решениях загружается в постоянную и/или энергонезависимую память производителем.

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

    В последнее время появилось большое количество бездисковых серверных решений на базе компьютеров (как правило x86) формфактора Mini-ITX и меньше со специализированной переработкой GNU/Linux на SSD-диске (ATA-флэш или флеш-карте), позиционируемых как «аппаратные решения». Данные решения не принадлежат к классу аппаратных, а являются обычными специализированными серверами. В отличие от (более дорогих) аппаратных решений они наследуют проблемы платформы и программных решений, на которых основаны.

    Масштабируемость — это возможность увеличить вычислительную мощность сервера или операционной системы (в частности, их способности выполнять больше операций или транзакций за определённый период времени, либо запускать больше различных служб) за счёт установки большего числа процессоров, оперативной памяти и т. д. или их замены на более производительные. Это масштабируемость аппаратная. Изначально серверы в продаже идут в базовой комплектации, но с заложенным потенциалом к «апгрейду» — аппаратная масштабируемость. К примеру, базовый набор сервера имеет один процессор, два модуля памяти, например, 2х2 ГБ и дисковый массив из двух жёстких дисков, допустим, 146 ГБ. Далее (или сразу) по мере потребности можно доустановить ещё один процессор, память или добавить диски в массив.

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

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

    В серверах всегда осуществляется резервирование. Для этого существует так называемый RAID (Redundant Array of Independent Disks, избыточный массив жестких дисков). Информационные файлы дублируются определенным образом. Способов дублирования может быть несколько, поэтому существует RAID-0, -1, -2, -3, -4, -5 и -6. Теперь, даже если какой-то винчестер выйдет из строя — информация не потеряется.

    Для конфигурации RAID существует аппаратный контроллер. Это то, чего чаще всего нет в бытовых или офисных компьютерах Контроллер RAID (точнее, та его часть, которая хранит конфигурацию) может иметь собственный источник резервного питания — аккумулятор небольшой емкости.

 

ПРОГРАММНЫЙ СЕРВЕР.

    Программный сервер — это программный комплекс, обслуживающий запросы клиентов.

    Эта идеология подразумевает наличие двух частей программного комплекса —серверную и клиентскую. Главная часть — серверная. Она располагается на аппаратном сервере (физически — на его жестком диске).

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

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

    Веб-сервер — это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, обычно вместе с HTML-страницей, изображением,файлом, медиа-потоком или другими данными.

    Веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно компьютер (см.: Сервер (аппаратное обеспечение)), на котором это программное обеспечение работает.

    Клиент, которым обычно является веб-браузер, передаёт веб-серверу запросы на получение ресурсов, обозначенных URL-адресами. Ресурсы — это HTML-страницы, изображения, файлы, медиа-потоки или другие данные, которые необходимы клиенту. В ответ веб-сервер передаёт клиенту запрошенные данные. Этот обмен происходит по протоколу HTTP.

    Почтовый сервер — это программа, работающая с почтой. Разумеется, есть и аппаратная его часть, где, собственно физически и хранятся письма.

    Любая поисковая система имеет в своем составе и почтовый сервис. В настоящее время завести себе почтовый ящик (или даже несколько) на сервере не проблема.

    Сервер приложений (англ. applicationserver) — это программная платформа (softwareframework), предназначенная для эффективного исполнения процедур (программ, механических операций, скриптов), которые поддерживают построение приложений. Сервер приложений действует как набор компонентов, доступных разработчику программного обеспечения через API (Интерфейс прикладного программирования), который определен самой платформой.

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

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

    Файловые сервера представляют собой сервера для обеспечения доступа к файлам на диске сервера.

    Прежде всего это сервера передачи файлов по заказу, по протоколам FTP, TFTP, SFTP и HTTP. Протокол HTTP ориентирован на передачу текстовых файлов, но сервера могут отдавать в качестве запрошенных файлов и произвольные данные, например динамически созданные веб-страницы, картинки, музыку и т. п.

    Другие сервера позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют сервера протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC.

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