Доброго времени суток, Уважаемый читатель! Если Вы тут впервые, - надеюсь не разочаровать. А если пришли по моим следам с площадки на YouTube - добро пожаловать, старый знакомый!)
Проанализировав свою деятельность в области просвещения народных масс по созданию и настройке собственного сервера, пришёл к выводу, что в ряде случаев текстовая форма изложения будет намного лучше, чем снятый ролик. Да и времени, которое застрачивается на подготовку материала, требуется меньше. Итак...
Если Вы ещё не подписаны на канал - скорее исправьте это! Благодаря подпискам, мне проще анализировать востребованность контента. А ещё, постоянно растущая аудитория неслабо так мотивирует)
Что подразумевается под серверным железом?
Как бы то ни было странно, но под серверным железом всегда подразумевается набор компонентов, предназначенных для использования в серверных (Enterprise) решениях. По-сути, это такое железо, которое отвечает определённым критериям, основными из которых являются:
- возможность выдерживать высокие нагрузки в течение длительного периода времени;
- высокая производительность при выполнении параллельных операций ввода/вывода и обработки информации;
- поддержка "горячей замены" - когда можно заменить компонент, не выключая сам сервер;
- повышенная надёжность и ресурс.
Вроде как, всё понятно. Да вот только с последним пунктом не согласен я сам (вернее, согласен, но не всегда). Давайте в качестве примера рассмотрим процессор (Надеюсь, это не будет выглядеть с моей стороны, как попытка стартануть очередной Холивар по этой теме).
В правом углу ринга у нас будет выступать серверный 16-ядерный AMD Epyc 7313, а в левом - десктопный AMD 5950x:
Мы могли бы взять более или менее похожие между собой процессоры, но я выбрал именно эти две модели. У них одинаковое количество ядер и потоков, одинаковый объём кэша 1 и 2 уровня, и выпущены они были почти в одно время (с разницей в 3 месяца). Стоимость EPYC 7313 в РФ стартует от 80 000р, а Ryzen 5950X - от 42 000р.
Если эту статью читает профессиональный IT-специалист, хотел бы обратить его внимание, что мой формат изложения ориентирован на менее опытных пользователей. Поэтому я позволяю себе в ряде случаев не обращать внимание на незначительные технические особенности, а также объяснять ряд вопросов "на пальцах".
И вот, вроде бы мы видим, что за исключением разного объёма Кэша 3-го уровня, а также базовых и максимальных частот, эти процессоры примерно одинаковые. А бенчмарк нам и вовсе сообщает, что 5950x "делает" Epyc как сосунка:
И в большинстве случаев, это так и будет. Если Вы рассматриваете установку одного из этих процессоров в домашний ПК, либо в домашний сервер (количество одновременных пользователей не превышает 10-15*), Ryzen будет выигрывать за счёт более высоких частот. А вот если требуется реализовать сервер базы данных (далее, везде - БД), скажем, на 50 человек, то Epyc перехватит инициативу. И это первая особенность серверного процессора: способность длительное время работать с несколькими параллельными потоками, без снижения производительности.
(*) - зависит от того, что именно делают эти пользователи. Если фильмы смотрят - да хоть 50.
Далее обратимся к такой спецификации процессоров, как доступное количество линий PCI. У Ryzen 5950x доступно 20 линий PCI 4.0, а у Epyc - 128. На мой взгляд, это самое существенное отличие серверного процессора от десктопного. Зачем так много? Для подключения различной периферии: нескольких видеокарт, которые будут проброшены в виртуальные машины, подключение контроллеров и плат расширения SAS/SATA, использование PCI-слотов под создание скоростного массива на быстрых NVME-накопителях, в конце концов!) Только взгляните на серверную материнскую плату:
В глаза сразу бросается 2 сокета для процессоров (представляете всю мощь?), 16 слотов для оперативной памяти, большое количество PCI-слотов, встроенное графическое ядро, позволяющее подключать монитор без использования внешней видеокарты (в серверах не так часто требуется подключать монитор, чтобы ради него жертвовать целым слотом PCI). А ещё, на блоке внешних разъёмов притаился IPMI. Это такой интерфейс, использующий, как правило, разъём типа Ethernet, для удалённого подключения к BIOS сервера.
На самом деле, IPMI - это мини-компьютер на борту материнской платы, главной задачей которого является предоставить удалённый доступ к настройке BIOS или загрузчика (позволю себе такое упрощение). Иными словами, имя сервак без установленной операционки, сисадмин может дистанционно подключиться через IPMI к этому самому серваку, накатить операционку, изменить параметры загрузки и ещё много чего. IPMI - удел серверных материнок.
Так вот, возвращаясь к "серверности", следует не забывать о том, что серверное оборудование в большинстве случаев спроектировано нормально, что не всегда можно сказать в отношении десктопного железа (особенно бюджетного). Под нормальным проектированием я подразумеваю учёт нагрева компонентов, теплоотвод, а также требования к ЭМС (электро-магнитная совместимость). Если Вы засунете Ryzen 5950X в самую дешёвую материнскую плату с сокетом АМ4, то либо это дело не запустится, либо будет работать не на полную мощность, а в худшем случае, рано или поздно сгорит.
Дополнительно реализовывается функционал горячей замены. Наиболее актуален он в отношении жёстких дисков или ssd, а также блоков питания. Последние, как правило, устанавливаются в паре. Если один выход из строя, в работу тут же включается второй, а система предоставляет возможность без остановки сервера произвести замену вышедшего из строя БП.
Аналогично и с дисковой подсистемой. Когда выходит из строя один диск, системный администратор получает уведомление об этом, и идёт менять вышедший диск на новый, без выключения сервера. Такая возможность реализовывается только при наличии избыточности хранилища - когда информация хранится на нескольких дисках сразу (об этом мы ещё поговорим в других статьях).
Про ECC-память (коррекция ошибок)
Ещё одной особенностью серверных процессоров и материнских плат является поддержка регистровой оперативной памяти с коррекцией ошибок. Вообще, коррекция ошибок ECC - уже признак некоторой "серверности", однако встречается также и в рабочих станциях, и настольных ПК. Коррекция ошибок бывает не только у ОЗУ, но также и в ssd.
На примере оперативки, кратко расскажу как работает ECC. Не стану мудрить и возьму определение из интернета: память ECC - это ОЗУ с коррекцией ошибок. Физически эти планки «оперативки» содержат дополнительные микросхемы памяти для битов четности, корректирующих ошибки чтения/записи данных. Когда при проверке данных обнаруживается несовпадение бита четности и вычисленного значения на основе содержащихся данных в ячейке ОЗУ, происходит восстановление данных. ECC позволяет восстановить один бит данных в 1 байте информации.
Так как в процессе записи/чтения информации из/в ОЗУ часть данных может быть искажена (по разным причинам, в т.ч. под действием внешних электромагнитных полей и космического излучения), для обеспечения сохранности данных следует применять ОЗУ с коррекцией ошибок.
Ryzen 5950X, хоть и является десктопным процессором, но поддерживает ECC-память. Только не регистровую:
Регистровая же память, за счёт наличия специального регистра на борту (внезапно), позволяет увеличить объём одной планки до 128Гб (против 32Гб у небуферизованной), а также использовать несколько модулей памяти на одной шине процессора.
Вот ещё картинка для сравнения обычной оперативки и ECC-unreg:
Небольшой итог по поводу ОЗУ:
В бытовых компьютерах, где не предъявляется особых требований к отказоустойчивости и хранению информации, а синий экран смерти не приведёт к фатальным последствиям, применяется обычная оперативная память, без коррекции ошибок.
В рабочих станциях, а также небольших и средних серверах используется память с коррекцией ошибок ЕСС небуферизированная (нерегистровая).
В больших серверах, где необходимо набрать ОЗУ от 128Гб используется буферизованная (регистровая) ECC память.
Повышенная надежность серверного железа
Возвращаясь чуть чуть назад, хотел бы заметить, что серверное железо обладает не то, чтобы повышенной надёжностью, но больше нормируемой. Производитель и дистрибьютор несут ответственность перед своим заказчиком, представляя гарантию на дорогое серверное железо. Поэтому проектируется оно не то, чтобы особенным образом. Нет, оно просто проектируется нормально. А вот бюджетные бытовые железки могут проектироваться спустя рукава.
Детальный анализ тех же блоков питания говорит о том, что хороший "бытовой" блок питания ничем не уступает по качеству серверному. За исключением форм-фактора и возможности организации горячей замены. Качество проектирования и комплектующих одинаковое, а иной раз, в игровом БП даже лучше, чем в серверном. Дело в том, что все серверы предполагают размещение в специальных помещениях, со своим микроклиматом. А вот игровой ПК геймера может пылиться в углу летом при температуре окружающей среды +32. Кроме того, утаить качество комплектующих, входящих в состав блока питания, достаточно сложно, если речь про трендовые игровые модели - техноблогеры обязательно его разберут по частям и проведут анализ. А вот будет ли кто заниматься обзором промышленного БП - большой вопрос.
Единственное, где серверное железо в 99% случаев реально отыгрывает свой статус - это жёсткие диски. Да, они ощутимо дороже, но на круг эта покупка может обойтись дешевле. Для того, чтобы понять, в чём отличие серверных дисков от бытовых, предлагаю изучить мою статью о выборе HDD.
Краткие итоги
Итак, мы разобрались с Вами (по крайней мере попытались разобраться), чем же отличается серверное железо от бытового. Основные тезисы:
- серверное железо дорогое, бытовое намного дешевле;
- серверное железо обеспечивает возможность горячей замены составных частей, позволяет подключать большее количество периферии в PCI слоты и устанавливать большие объёмы буферизованной оперативной памяти с коррекцией ошибок;
- серверное железо имеет преимущество при обработке большого количества потоков данных, поступающих от большого количества пользователей;
- десктопное железо предоставляет более высокую производительность для ограниченного числа пользователей при меньшей стоимости;
- серверное железо имеет ряд фишек, недоступных бытовому железу (например, IPMI).
- Если собираете домашний сервер и рассчитываете на его работу в режиме 24/7, рекомендую выбирать именно серверные HDD.
У меня дома трудится небольшой сервер, обслуживающий в общей сложности 16 человек, построенный на базе AMD Ryzen 3600 (6 ядер/12 потоков, 3.6ГГц), работающий в паре с 4х32Гб ОЗУ ECC (unreg). В нём используется лишь 2 бытовых жёстких диска, и те под видеонаблюдение (не шибко ценная информация). Остальные данные хранятся на 6 серверных HDD, по 8Тб каждый. Блок питания BeQuite, материнская плата AsRock B550m pro4. Кстати, почти все процессоры Ryzen поддерживают ЕСС-память. Но не все материнские платы, куда можно установить такой процессор, её поддерживают (об этом будет дополнительная статья).
А на этом у меня всё. Пожелания по тематикам следующих выпусков (как текстовых, так и видео) оставляйте в комментариях. Всем пока!)