Как устроено разбор
Что такое сервер и как он устроен: простыми словами
Сервер — это компьютер или программа, которая постоянно ждёт запросов и отвечает на них: отдаёт страницы сайтов, хранит почту, файлы и базы данных. Внутри у него те же процессор, память и диски, что у обычного ПК, но всё рассчитано на работу круглые сутки без остановки и с запасом на поломку.
Редакция «Как устроено», разборы по первоисточникам 6 мин чтения
Моё избранноеСервер — это компьютер или программа, которая обслуживает других: получает запрос и отправляет ответ. Когда вы открываете сайт, смотрите видео или проверяете почту, где-то далеко работает сервер, который отдаёт вам нужные данные. Слово пришло из английского (server — «тот, кто обслуживает»). Внутри сервер устроен так же, как обычный компьютер, но рассчитан на то, чтобы годами работать без выключения, выдерживать тысячи обращений сразу и не терять данные, когда ломается одна из деталей.
Клиент и сервер: кто кого обслуживает
В сети почти всё построено по схеме «клиент — сервер». Клиент — тот, кто просит: браузер, почтовое приложение, игра на телефоне. Сервер — тот, кто отвечает. Похоже на кафе: гость делает заказ, официант передаёт его на кухню и приносит блюдо. Гость не знает, как устроена кухня, ему важно получить то, что просил.
Отсюда важная мысль: сервер — это роль. Одна и та же программа может работать на огромной машине в дата-центре и на ноутбуке разработчика. Домашний роутер тоже сервер в маленьком масштабе: он раздаёт устройствам в квартире адреса. А мощный компьютер, на котором никто ничего не запрашивает, — просто компьютер.
Из чего состоит серверное железо
Детали те же, что в устройстве компьютера, но каждая выбрана под круглосуточную работу.
| Часть | Что делает и чем отличается от домашней |
|---|---|
| Процессор | Выполняет запросы; в сервере часто стоят два процессора с большим числом ядер, чтобы обслуживать много клиентов одновременно |
| Оперативная память | Хранит данные для быстрых ответов; модули с коррекцией ошибок (ECC) сами находят и исправляют сбой в отдельном бите |
| Накопители | Хранят сайты, базы, файлы; собраны в массив RAID, чтобы поломка одного диска не уничтожила данные |
| Корзина для дисков | Позволяет вынуть неисправный диск и вставить новый, не выключая сервер |
| Блоки питания | Обычно два: если один сломается, второй продолжит работу |
| Сетевые карты | Несколько быстрых подключений к сети, в том числе на случай, если один кабель выйдет из строя |
| Плата удалённого управления | Отдельный маленький компьютер внутри, через который администратор может включить, перезагрузить и настроить сервер из другого города |
| Вентиляторы | Мощные и шумные, гонят воздух через плотно набитый корпус спереди назад |
Программная часть не менее важна: операционная система (чаще всего Linux или Windows Server) и серверные программы — веб-сервер, почтовый сервер, база данных. Именно они принимают запросы и готовят ответы.
Как сервер отвечает на запрос
Посмотрим, что происходит, когда вы открываете страницу интернет-магазина.
- Браузер узнаёт IP-адрес сервера магазина по его имени — об этом подробнее в статье о том, как работает интернет.
- Запрос уходит по сети к дата-центру и попадает на сетевую карту сервера.
- Программа веб-сервера разбирает запрос: какую страницу хотят, от какого пользователя.
- Если нужны данные — цены, остатки, корзина, — веб-сервер обращается к серверу базы данных. Часто это другая машина в той же стойке.
- Из ответа базы собирается страница, и сервер отправляет её обратно браузеру.
- Браузер видит, что к странице нужны ещё картинки и скрипты, и делает новые запросы. Сервер отвечает на каждый.
Всё это занимает доли секунды, а сервер в это время параллельно обслуживает сотни и тысячи других посетителей.
Какие бывают серверы
По задаче. Веб-сервер отдаёт сайты. Почтовый принимает и хранит письма. Файловый хранит документы для общего доступа. Сервер базы данных хранит таблицы и быстро отвечает на запросы к ним. DNS-сервер переводит имена сайтов в адреса. Игровой сервер держит общий мир, в котором встречаются игроки.
По корпусу. Башенный (tower) похож на большой системный блок и ставится под стол в небольшом офисе. Стоечный — плоская коробка, которая вдвигается в стойку, как ящик в комод. Блейд-серверы — тонкие платы-лезвия, которые вставляются в общее шасси с общим питанием и охлаждением.
Физический и виртуальный. Один мощный физический сервер можно разделить программой на несколько виртуальных, у каждого своя система и свои ресурсы. Именно так продают недорогие VPS и облачные серверы: клиент арендует кусочек большой машины.
Чем сервер отличается от домашнего компьютера
- Режим работы. Домашний ПК включают на несколько часов, сервер работает годами. Детали подбирают с расчётом на постоянный нагрев и нагрузку.
- Запас на поломку. Дома сгоревший блок питания — это выключенный компьютер. В сервере второй блок подхватывает нагрузку, а администратор получает уведомление.
- Без монитора и клавиатуры. Сервером управляют по сети. К большинству машин в дата-центре человек подходит, только когда нужно заменить деталь.
- Нет красивой графики. Видеокарта в обычном сервере — простенькая, только чтобы вывести консоль. Исключение — серверы для нейросетей и расчётов, где видеокарты главные.
Ещё одна частая путаница — сервер, хостинг и сайт. Сайт — это файлы и программа, которые показывают страницы. Сервер — машина, на которой они работают. Хостинг — услуга компании, которая сдаёт место на своих серверах и следит, чтобы они были включены и подключены к сети. Когда говорят «сайт лежит на хостинге», имеют в виду: файлы сайта хранятся на чьём-то сервере в дата-центре. Владельцу небольшого сайта сервер руками трогать не нужно вовсе — он видит только панель управления, а железо обслуживают инженеры хостинга.
Стойки и дата-центры
Серверы ставят в стойки — металлические шкафы шириной 19 дюймов под оборудование. Высоту измеряют в юнитах: один юнит (1U) — 44,45 мм. Тонкий сервер занимает 1U, более толстый — 2U или 4U, а в стандартную стойку помещается несколько десятков таких «этажей».
Дата-центр — здание или зал, где стоят сотни стоек. Там есть всё, чтобы серверы не останавливались: два независимых ввода электричества, источники бесперебойного питания, дизельные генераторы на случай долгой аварии, мощные кондиционеры, пожаротушение газом (вода испортила бы технику) и охрана. Стойки часто ставят рядами лицом друг к другу: спереди в «холодный коридор» подают охлаждённый воздух, а горячий выходит сзади. Дома ту же задачу в миниатюре решает ИБП — о нём в статье о том, как выбрать ИБП.
Почему серверы падают и на что смотреть
- Перегрузка. Слишком много запросов сразу — например, во время распродажи или атаки. Сервер отвечает всё медленнее, пока не перестаёт отвечать совсем.
- Сбой программы. Ошибка в коде или обновлении роняет веб-сервер или базу, хотя железо в порядке. Это одна из самых частых причин, по которым сайт перестаёт открываться.
- Износ дисков. Накопители работают без отдыха и выходят из строя чаще других деталей. RAID спасает данные, но только если сломанный диск вовремя заменили.
- Питание и связь. Отключение электричества, перерубленный кабель, сбой у провайдера. Поэтому важные сервисы держат копии в разных дата-центрах.
Главный вывод для владельца любого сайта или домашнего хранилища: RAID — не резервная копия. Он защищает от поломки диска, но не от случайного удаления или вируса. Копию данных держат отдельно.
Вопросы
Можно ли сделать сервер из старого компьютера?
Да, для дома — файловое хранилище, медиатека, игровой сервер для друзей. Нужно поставить подходящую программу и оставить машину включённой. Но у домашнего ПК нет запаса надёжности, поэтому важные данные на нём всё равно стоит копировать в другое место.
Почему сайт иногда открывается, а иногда пишет «ошибка 502» или «503»?
Коды 5xx означают, что проблема на стороне сервера: он перегружен, программа за ним упала или не отвечает соседний сервер в цепочке. Со стороны пользователя здесь почти ничего не сделать, кроме как подождать и обновить страницу.
Что такое «облако»?
Это серверы в чужом дата-центре, мощность которых сдают в аренду по частям. Файлы в облачном хранилище лежат на обычных дисках, просто не у вас дома, а в стойке провайдера.
Сервер сильно шумит?
Стоечный сервер под нагрузкой гудит как пылесос: маленькие вентиляторы крутятся очень быстро, чтобы продуть плотно набитый корпус. Поэтому их держат в отдельных помещениях, а не в офисе.
Автор
разборы по первоисточникам
Пишем по учебникам, исследованиям и клиническим рекомендациям, источники под каждым материалом. Нашли ошибку — напишите на redakciya@kakustroeno.ru, исправим.
Источники
- Таненбаум Э., Уэзеролл Д. Компьютерные сети. 5-е изд. СПб.: Питер, 2012.