Найти в Дзене

Мой сервер и что он из себя представляет на 17.09.2023

Оглавление

Да, у меня есть свой сервер. Сегодня кратко расскажу о нем и его возможностях. Расскажу, о том, какие трудности встретил на пути его создания. Намекну, что ждет в будущем.

Можно посмотреть?

Посмотреть можно! Но ничего особенного не увидите. Смотрите сами:

С виду обычный ПК
С виду обычный ПК

Пусть и выглядит как обычный ПК, но выполняет функции настоящего сервера.

Он даже прокинут в сеть и можно посмотреть на одностраничный сайт на нем.

https://veleskb.ru/
https://veleskb.ru/

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

Все интересное "под капотом"?

И снова нет. Внутри сервера практически все тот же обычный ПК.

Железо

Материнская плата ASRock 4Core1600-GLAN. Источник: https://www.asrock.com/mb/Intel/4Core1600-GLAN
Материнская плата ASRock 4Core1600-GLAN. Источник: https://www.asrock.com/mb/Intel/4Core1600-GLAN

Здесь хотел бы описать кратко каждый пункт и почему все именно так, как есть.

Основная часть (корпус, материнская плата (+сеть) и видеокарта) была принята без изменений с исходного ПК. Этот ПК был куплен где-то в 2009-10 году и с тех пор использовался примерно до 2016 без изменений.

HW upgrade

В ходе превращения старенького ПК в сервер с ним были проведены следующие изменения:

Intel Core 2 Quad CPU. Источник: Яндекс.Картинки
Intel Core 2 Quad CPU. Источник: Яндекс.Картинки

Заменен процессор Intel Pentium E5200 @ 2.5GHz на Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz. Новый процессор примерно в 2.5 раза производительней, хоть и построен на более старой архитектуре.

Выбор именно Q9400 был обусловлен прямой поддержкой материнской платы, а также тем, что в случае с сервером не так важна производительность в режиме single-core. Так в GeekBench 5 Single-Core новый процессор всего на 20% мощнее старого, а в Multi-Core уже чуть больше, чем в два раза.

Что-то из Xeon'ов тоже можно было бы попробовать, но далеко не факт, что удалось бы запустить. И дело не только в Биосе, но и в VRM (Voltage Regulator Module). Новый, более мощный и более прожорливый процессор, могла не вытянуть материнская плата. Да и блок питания тоже не планировался под замену. Осмотр показал, что все компоненты БП в хорошем состоянии, несмотря на срок эксплуатации.

Более мощный процессор конечно же был и горячее. Потому к нему еще был докуплен советующий кулер.

DDR2. Источник: Яндекс.Картинки
DDR2. Источник: Яндекс.Картинки

Оперативная память была заменена парными планками по 2GB 800MHz, что дало 4GB в двухканальном режиме. Изначально была одна на 2GB 800MHz.

Почему не поставил к одной на плате ещё две купленные? Было бы все так просто... Для данной материнской платы максимальный объем - 4GB. Причем именно так и не иначе:

-6

Кроме того, если в слоты DDR2 DIMM на этой материнской плате установлен только один модуль памяти или три модуля памяти, она не сможет активировать технологию двухканальной памяти.

Сразу по двум причинам приходится довольствоваться 4GB.

SATA диски. Источник: Яндекс.Картинки
SATA диски. Источник: Яндекс.Картинки

Жесткие диски. Изначально их было два по 500ГБ. К ним были добавлены SATA2 SSD 500GB x1, SATA2 HDD 1TB x1.

Для системы, конечно же, был установлен SSD (500 - с избытком, но у меня на тот момент в наличии был только Samsung 860 EVO).

Я не зря везде указал SATA2, в том числе и для SSD. Дело в том, что материнская плата по спецификации 4 x SATA2 3.0 Гб/с, а это значит, что даже в случае с SSD, у которого заявлены скорости чтения/записи больше 500МБ/с, мы на практике не увидим более 300МБ/с из-за ограничения интерфейса SATA2.

Когда начинал апгрейд как-то даже не задумался, о том какие грабли могу собрать. А собрал все. И ограничение по процессору, и по ОЗУ, и даже по ПЗУ.

Хотя не все. Часть получилось обойти костылями в ПО.

Software

Операционная система Debian. Источник: https://www.debian.org/
Операционная система Debian. Источник: https://www.debian.org/

ОС была выбрана Debian 10 Buster. Причем неспроста.

Основным критерием выбора снова стало "железо". На более старших версиях не работали:

  • Переход в режим и выход из режима глубокого сна (первые пару месяцев сервер использовался периодически).
  • WOL (Wake on LAN) - технология удаленного запуска материнской платы, посредством отправки "магического пакета". Есть практически во всех сетевых картах.
  • Сетевая карта. Вернее работала, но скорость на передачу была невообразимо мала (Outbound). Скачать с сервера что-то было очень сложно. Но при этом Inbound, на самом сервере, был в порядке. Даже переход на Buster не решил проблему полностью. Повезло, что нашел форк драйвера, в котором был устранен этот баг. После сборки и установки драйвера сетевая карта наконец-то начала работать в обе стороны как 1000 Gb/s.
  • Драйвер видеокарты Nvidia Geforce GT 240 (GT215). Встроенный драйвер Nouveau позволял использовать графические оболочки, но с жуткими тормозами и дикими разрывами Vsync. Драйвера от Nvidia либо не ставились, либо ставились, но отказывались работать с такой старой видеокартой. Решение оказалось аналогичным решению с сетевой картой. Но пришлось повозиться чуть дольше. Опытным путем пришлось подобрать версию ядра, с которой драйвер смог корректно работать, а также прописать пару символических ссылок для запуска драйвера.

После всего этого ужаса наконец-то можно было продолжить установку приложений. Хотя каждое новое было тем ещё ребусом. Т.к. под старое ядро далеко не всегда можно было найти нужные пакеты, даже в ветке backports.

Резервирование. Источник: Яндекс.Картинки
Резервирование. Источник: Яндекс.Картинки

RAID и резервирование

Два диска HDD 500GB были объединены в RAID1 (зеркальный). На полученный массив (программный, конечно) были закинуты семейные фотографии и файлы, которые потерять было нельзя. RAID1 позволяет сохранить данные даже при выходе из строя одного из дисков.

Хотя, решение не оптимальное. При объединении двух дисков по 500 получаем, так скажем, один виртуальный, притом размера 500ГБ (а не 500+500).

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

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

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

В будущем нужно будет реализовать такое решение. Ну а пока вся надежда на локальные копии BorgBackup на рейде.

Менеджер рабочих столов был выбран LightDM за свою легкость, простоту и универсальность.

Рабочие столы были выбраны:

  • XFCE - для удаленных рабочих столов. Легкий и простой.
XFCE через VNC. Простота для простоты работы.
XFCE через VNC. Простота для простоты работы.
  • KDE Plasma - для домашнего кинотеатра. Пусть и тяжеловатый, но красивый.
KDE Plasma. Домашний кинотеатр с дружелюбным интерфейсом.
KDE Plasma. Домашний кинотеатр с дружелюбным интерфейсом.

Сервисы:

  • Nginx+Apache (выжимаем все соки из "железа") + БД - для работы сайта.
  • Klipper (on Nginx) - для обеспечения работы 3D принтера.
  • FTP (vsftpd) - для быстрой и простой передачи файлов по локальной сети. Есть мысли организовать SFTP с выходом в сеть, но пока не решил нужно ли.
  • SAMBA (SMB) - немного больше, чем FTP. Это предоставление доступа не только к папкам, но и к дискам. Штука очень удобная. Позволяет без загрузки на ПК открывать файлы и программы с дисков сервера.
  • Netdata - web-мониторинг сервера. Позволяет контролировать огромное количество параметров с графиками по каждому. Не раз выручала при возникновении "странностей".

Есть ещё некоторое количество сервисов, но не думаю, что они могут быть интересны.

Что дальше?

Обещал намекнуть, что будет дальше, но думаю тут и так все понятно - нужен новый сервер.

Сейчас сервер, конечно, тянет нагрузку, но каждая задача дается не без видимых трудностей.

Netdata. Сервер без нагрузки.
Netdata. Сервер без нагрузки.

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

В простое ОЗУ занято под 60%. Под нагрузкой залезть в swap - обычное явление. А каждое такое явление - как вытянутый ручник, даже несмотря на SSD (вспоминаем про ограничение скорости SATA2).

А при работе с дисками часто можно заметить зашкаливающий iowaits. На паре дисков появились Reallocated Sectors Count и Offline Uncorrectable Sector, стали расти Current Pending Sector. В общем жесткие диски тоже пора под замену.

Потому принято решение собрать новый сервер с нуля.

Материнская плата MACHINIST X99 D8 MAX,
Материнская плата MACHINIST X99 D8 MAX,

На данный момент уже куплены:

  • башенные кулеры для охлаждения процессоров (2 шт. по 2200р)
  • корпусные кулеры для продувки корпуса (3200р)
  • блок питания на 2000 Вт (с двойным запасом, 6100 р.)
  • NVLink Bridge для RTX2070 Super или RTX2080 Ti (900 р.)
  • 128 ГБ = 16 Гб * 8 DDR4 ECC ОЗУ (8 шт. по 2400 р.)
  • пара процессоров Xeon E5 2686 V4 (2 шт. по 3600 р.)
  • в пути, второй раз заказанная, материнская плата MACHINIST X99 D8 MAX, первая оказалась неработоспособная (16000 р.)

Если брать комплектом CPU+RAM+материнская плата, то можно посмотреть тут или тут.

Предстоит купить:

  • корпус для E-ATX (пока даже нет вариантов, где взять, основная проблема - маленькие размеры, плохая продуваемость и отсутствие слотов для десяти 2.5-дюймовых дисков, очень желательно горизонтальное исполнение)
  • SSD SATA3 1TB x10 дисков (цена за 10 шт. около 45 000 р.)
  • RTX2070 Super / RTX2080 Ti x2 (последняя предпочтительнее, общая стоимость за пару около 70 000 р.)
  • ИБП. В идеале типа on-line. На вторичном рынке можно найти без аккумуляторов в хорошем состоянии экземпляры на 1-3КВт. (пока не обязательно).

Что имеем на данный момент?

Вложено около 57 т.р. и сервер даже не запущен. Требуется ещё около 100 т.р. только для комплектации. Без учета корпуса, ИБП, аккумуляторов и самой работы.

Зачем все это нужно?

В ближайшем будущем на новом сервере будет разрабатываться крупный и интересный проект. Какой сказать не могу, боюсь сглазить ;).

Видеокарты тоже необходимы для нового проекта. Но первое время буду осваивать ИИ и его применения.

Я и сейчас по вечерам засиживаюсь за моделями LLaMA, RuGPT и, конечно же, Stable Diffusion на своем ноутбуке.

Если запускать модели для генерации на процессоре i7-12700H (32GB) или видеокарте RTX3050 Ti (4GB) ещё получается, то вот обучение превращает ноутбук в ревущий турбо-чайник, который боишься, что вот-вот выпустит волшебный дым и присоединится к тем, кто в коробке "доноров".

Новый сервер откроет для меня новые пути развития как в Web-разработке, так и в ИИ. Собрать бы только его...

Stable Diffusion. Prompt: server, powerful futuristic
Stable Diffusion. Prompt: server, powerful futuristic

А пока занимаюсь файтюнингом (Fine Tuning) GGML моделей, который требует не так много ресурсов, и присматриваю, где и как можно урвать компоненты для сервера.

Помощь проекту

Если вы можете помочь материально, например необходимыми деталями, то буду рад помощи. Если не деталями, то не откажусь от любой копейки. Я есть на Boosty и ЮMoney.

Если вам кажется, что ни один из вариантов помощи вам не под силу, то вы все-равно можете помочь мне!

Порекомендуйте пожалуйста этот канал друзьям. Если ещё не подписаны - подпишитесь, поставьте лайк и, если хотите, оставьте комментарий.

Буду рад любой обратной связи от вас)

—————————————————————————

Спасибо, что дочитали статью!

Подпишитесь пожалуйста на мой канал "Заметки Электроника | Alexander.Chad", этим Вы очень сильно поможете мне. Канал существует только за счет наличия и участия подписчиков.

Если Вам понравился материал - поддержите его лайком или даже донатом (ЮMoney). Есть что сказать? Оставьте комментарий! Это тоже будет помощью.

Сейчас канал нуждается в Вас как никогда прежде!