Внутренняя структура и архитектура сервера
Сервер – крайне важный элемент современной IT-инфраструктуры. В основе этого слова лежит американский глагол «to serve», переводимый как «служить» или «обслуживать». Если проще – это компьютер, который обслуживает информационную сеть и позволяет ей полноценно работать. При этом для функционирования используется разнообразные по своей сути архитектура и структура сервера.
Общее понятие
Сервер – это мощное устройство с определенным ПО, обслуживающее клиента, а именно, другой компьютер. В центрах обработки данных физический компьютер, на котором устанавливается софт, называется аналогично.
В стандартной модели функционирования связи “сервер-клиент” программа принимает и выполняет запросы от клиентских устройств. Они могут быть запущены на том же или других компьютерах. Принцип работы и архитектура могут отличаться.
Например, в некоторых форматах server применяется для:
- хранения информации одного или определенного количества сайтов – это серверы хостинг-провайдеров;
- координации работы компьютеров в сети (игровые, локальные);
- хранения базы файлов организации и простого доступа к ней сотрудников (компьютер в центральном отделении организации, на котором запущено бухгалтерское или иное ПО).
Различают виды серверов:
- Локальный, физический или выделенный сервер - находиться в определенном помещении - серверной комнате, или центре обработки данных (ЦОД). Это устройства с определенным, четко обозначенным физическим местоположением;
- Облачный – представляет собой некое виртуальное пространство, ресурсы которого используются одновременно несколькими пользователями. В таком формате клиенту не нужно оборудовать помещение и обеспечивать работоспособность вычислительной техники. Все операции производятся через интернет.
Серверы обычно классифицируются по назначению. Среди основных категорий можно выделить:
- Веб-сервер – программа для ПК, обслуживающая запросы на открытие HTML-кода и файлов. В такой системе клиентом является браузер;
- Для приложений – ПО для компьютера в распределительной сети, через него проходят бизнес-операции прикладных программ;
- Прокси – это посредник между конечным устройством и другим сервером, через которого клиент отправляет свои запросы;
- Почтовый – локальные пользователи направляют ему электронные сообщения, также взаимодействует с удаленным клиентами, присылающими исходящую информацию;
- Виртуальный – ПО, установленное на общую вычислительную машину и настроенное в таком формате, что клиент думает, что эта программа полностью контролирует всю систему;
- Блейд-сервер – шасси, на котором устанавливается несколько небольших модульных плат (серверные лезвия), выступающих отдельными серверами и обслуживающих конкретный софт;
- Файловое хранилище – отвечает за структурирование хранение и управление данным, чтобы другие клиенты в сети могли получать доступ к общим файлам;
- Для политик – часть общей сети, обеспечивающая безопасность политик: отвечает за права авторизации и следит за состоянием, доступом к файлам;
- Для базы данных – на нем хранится одна или более баз данных. Когда пользователь направляет к ним запрос, то получает информацию из базы или вносит изменения в существующую структуру;
- Сервер печати – позволяет клиентам подключиться к сети принтеров или других печатающих устройств. Некоторые варианты позволяет контролировать приоритет запросов.
Исходя из поставленной задачи, требуемого набора функций, политики безопасности и других нюансов определяется архитектура веб-серера и структура вычислительных машин.
Внутренняя структура сервера
Среди основных внутренних компонентов сервера можно выделить:
- Операционные системы – это может быть Windows Server или Linux. Речь о платформе, для работы приложений. Через ОС осуществляется доступ приложений ко всем аппаратным ресурсам и сетевое подключение. Приложением называют то, что позволяет серверу функционировать по определенному алгоритму. Например, обработка запросов базы данных запускает софт для работы с этими базами данными. По аналогичному механизму сервер электронной почты должен уметь принимать почтовые сообщения через приложение.
- Аппаратное обеспечение. Сервер учитывает компоненты разного уровня. Аппаратная система обычно складывается из шасси для установки в стойку: блока питания, модульной платы, процессора (одного или нескольких), памяти, систем хранения, интерфейса сетевых подключений. Основная масса систем может управляться через специальный сетевой порт. Это позволяет контролировать работу на низшем уровне и отслеживать функционирование независимо от ОС. Системы управления применяются для удаленной активации, установки операционной системы, контроля состояния и настройки.
Также в структуру веб-сервера можно включить файловые системы – это наборы файлов, каталогов и прочих элементов. Они нужны для хранения информации, распределения ее по дискам и разделам.
Если говорить о файловой системе операционной системы Linux, то это структура в виде дерева, которая работает независимо от того, сколько устройств подключено. В основном формате представлены все элементы ОС.
Для Windows подобная структура непривычна. В этой операционной системе каждый жесткий диск является собственной файловой системой, которая обозначается буквами (например, С: - является стандартным каталогом верхнего уровня иерархии файлов, а другим дискам выдаются иные буквенные обозначения.
В Linux все файла или устройства в системе хранятся в корневом каталоге, который помечается символом слеша - /.
Архитектура сервера
Обычно архитектура сервера подразумевает соединение «клиент-сервер». В нем три класса: одно-, двух- и трехуровневый. Однако специалисты не достигли единого мнения в вопросе разделения этих уровней, потому могут встречаться разные варианты. Подробнее о классах:
- Одноуровневая архитектура – все используемые программы распределены по рабочим устройствам, которые направляют запросы серверу баз данных или файловому хранилищу. Прикладного ПО на самом сервере не предусматриваются – он только предоставляет информацию. Это надежная, но сложная в управлении архитектура из-за проблем синхронизации на разных устройствах.
- Двухуровневая архитектура – прикладное ПО установлено на машине для приложений, а на устройствах используются программы-клиенты, которые обеспечивают пользователю удобный интерфейс для обращения. Это оптимальная архитектура для взаимодействия «клиент-сервер».
- Трехуровневая архитектура – в таком формате машина баз данных, файловое хранилище и прочие элементы устроены на отдельном уровне, результаты работы которого отображаются на сервере приложений. Вся логика информации и бизнес-процессов установлена на нем же. Клиенты обращаются через промежуточное ПО, которое обеспечивает гибкость взаимодействия и высокую производительность.
Также есть многоуровневая архитектура «клиент-сервер», серверы приложения взаимодействуют с результатами вычислений друг друга, а также запросами от баз данных и других элементов. В принципе, трехуровневая система – это частный случай многоуровневой. Из плюсов архитектуры выделяется гибкость услуг, возможность комбинировать работу приложений серверов на всех уровнях. Минус такого подхода – сложность обустройства системы.
В типовой сетевой архитектуре используется два базовых компонента – сетевой драйвер и сервис. Драйвер функционирует на уровне ядра ОС, имея возможность пропускать, фильтровать и задерживать трафик для контроля скорости. У сетевой карты может быть активирован режим «прослушки», когда она принимает не только свои, но и чужие пакеты. Это позволяет учитывать весь трафик в сети, а не только тот, что проходит через сервер.
Рассматривая архитектуру файловой системы (ФС), то разработчики стремятся предоставить пользователю возможность работать сразу с нескольких вариантами. На верхнем уровне используется переключатель ФС. Он обеспечивает удобство управления запросами приложений и конкретных ФС, к которым они обращаются. Переключатель преобразует сигналы в формат, воспринимаемый уровнем ФС. Каждый компонент архитектуры ФС - это драйвера, поддерживающий определенную организацию. Переключатель – это базовый модуль, способный обращаться к драйверу. Приложение не наделено такими полномочиями. Для выполнения своих задач ФС обращаются к подсистеме ввода-вывода, образующий другой слой архитектуры. Это составная часть ФС, отвечающая за загрузку и управление всему модулями низших уровней.
Программное обеспечение
Серверы используют программное обеспечение, необходимое для непосредственной работы, защиты и устойчивости. В рамках виртуальных хостингов часть этих механизмов предустановлена, но изменить конфигурацию или установить новые компоненты там невозможно. На выделенных машинах можно использовать любое требуемое ПО.