Мой новый домашний сервер, часть 1: выбор железа

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

Домашний сервер у меня дома уже много лет существует. По-моему, первый был на базе к6-2 собран ещё в начале нулевых. С того времени сменилось много разных вариантов, быстрых и медленных, больших и маленьких, виндовых и линуксовых. Последние десять лет сервером у меня работает HP Microserver, сперва был Gen7, а где-то с 2015 — Gen8, который был куплен с целероном и двумя гигабайтами ОЗУ, а затем «прокачан» до Xeon'a и 16GB (максимум).

На фото — момент переезда из gen7 в gen8.



Почему захотелось поменять


Я из него вырос. Достаточно долго мне его хватало, но за последние пару лет у меня выросли как аппетиты по оперативной памяти, так и по количеству жестких дисков. В микросервер, если сильно не колхозить, влезает 4-5 дисков. Какое-то время я вполне обходился четырьмя (плюс ssd под систему), меняя маленькие диски на большие по мере заполнения, но за последнее время диски ощутимо подорожали (не только в деньгах, ещё и более приоритетные траты появились), потому менять их по заполнению уже не получается. При этом у меня скопилось некоторое количество неиспользуемых дисков объёмом от 2 до 8 терабайт, которые вполне можно было бы засунуть в сервер — если бы там было место.

Ну и оперативная память — для микросерверов 7 и 8 предел — 16 гигабайт. Потому с толстыми виртуалками приходилось играть на домашнем десктопе, хотя это должна быть одна из задач домашнего сервера.

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

На фото — gen7 на фоне чего-то другого. Правда, это тот момент, когда «другое» уходит на покой в силу избыточности (если память не изменяет, там был q8200/8GB), а микросервер занимает его место.



Что хотелось получить


  1. Возможность поставить 64 гигабайта оперативки (не сразу, со временем). Если можно будет больше 64 — хорошо. Но вот прямощазз уже нужно было 32. При этом терабайты ОЗУ мне не нужны, такие задачи я дома не решаю.
  2. В меру производительный процессор, в котором мне нужнее потоки, чем производительность на поток. Xeon 1260L 4c/8t на текущий момент меня вполне устраивал, так что гнаться за всякими Core i10 не нужно было. Вполне хватило бы чего-то не сильно быстрого (в определённых пределах), но многоядерного. Хотя и возможность поставить что-то более производительное не помешала бы.
  3. Возможность менять диски, не доставая сервер с антресолей. В идеале — отсеки с внешним доступом.
  4. Возможность поставить хотя бы шесть дисков, в идеале восемь, можно и больше.
  5. Габариты в районе микросерверных. По высоте ограничение около 30 сантиметров.
  6. Возможность поставить видеокарту для транскодинга видео, сетевушку 10 гигабит и SATA-контроллер. Со временем.
  7. Более-менее тихое и экономичное решение. Понятно, что комп с 6-8 жесткими дисками бесшумным не будет, но жрать на холостом ходу 500 ватт и выть вентиляторами на весь дом тоже не нужно.
  8. Иметь свободу апгрейда на будущее — без замены корпуса.

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

Что рассматривал


Во-первых, у меня давно валяется супермикровский корпус с восьмидисковой корзиной, плюс материнка на АМ3+ с FX-8320.



Туда можно запихнуть 64 гигабайта китайской памяти AMD Only. Процессор по производительности примерно такой же, как у меня в gen8 стоит, потому думал собрать новый сервер на базе этого. Но больно уж он большой и тяжелый, а FX-8320 даже без винтов под нагрузкой может 150-200 ватт сожрать. Потому корпус остался валяться, а FX-8320 пошел на апгрейд моего персонального вебсервера, что живёт на работе в серверной — благо там есть кондиционеры, а электричество никто не считает.

Во-вторых, смотрел на ITX'ные корпуса. Они, конечно, по размерам как микросервер, а иногда и меньше. Но использование ITX-материнок слишком уж ограничивает возможности расширения. Потому решил согласиться на увеличение габаритов и на базе mATX что-то собирать. У китайцев продаются внешне интересные корпуса «под NAS» и mATX-материнку, но у них явно придётся колхозить дополнительное охлаждение, плюс отзывы от качестве материалов не впечатляют.



Что не рассматривал — это готовые NAS'ы и Microserver gen10 и gen10+. Первые по моим запросам будут очень дороги, а вторые стали слишком уж сильно урезанными. Да и тоже недешевые. Прошли времена, когда можно было взять настоящий сервер (пусть и маленький) за 200 евро. Сегодня за gen10+ просят уже 600-700 в базовой комплектации. А если туда добавить ILO, память и поменять процессор с двухъядерного пентиума на что-то многопоточное, то цена запросто за 1000 евро уйдёт. Плюс у gen10+ можно строго четыре диска поставить, даже ssd загрузочный теперь так просто не приколхозить — только в pci-e ставить, забив на другие возможности расширения. В общем, мне последние версии микросервера не нравятся. Хотя внешне выглядят симпатично.

Слева gen10, справа gen10+. gen8 по габаритам примерно такой же, как и gen10.



Что стало


Корпус
Корпус выбрал Fractal Design Node 804. По высоте он вышел больше, чем хотелось, но, в принципе, влезает. Как уже сказал, китайцы не впечатлили по качеству, потому решил взять корпус с хорошей репутацией, пусть и ценой размера и отсутствия внешних отсеков для дисков. Решил поставить корпус на полку боком — отсеком с дисками наружу — и тогда можно будет просто снимать боковую крышку и вынимать салазки с дисками, не двигая сам корпус. Конечно, это касается только 3.5" дисков в салазках, другие посадочные места потребуют доставания корпуса с полки. Надо это учитывать и постараться туда поставить такие диски, которые редко меняться будут. Плюс размеры корпуса позволяют некоторый колхозинг внутри, у меня уже есть планы.

Вышло заметно крупнее, но терпимо:



Материнская плата

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

Во-первых, это более бюджетное решение, чем актуальные интелы. На али есть много бэушных процессоров, плюс у меня вокруг везде АМ4 — и я вполне могу что-то где-то скрутить нахаляву. Память там позаимствовать, с процессорами поиграть, если вдруг что-то не срастётся.
Во-вторых, хоть сокет уже и на исходе жизни, на горизонте виднеется АМ5, он ещё вполне актуален. Особенно для серверов, которые служат годами. В микросервере gen8 вообще 1155 — и он ещё вполне пользуется спросом, за разумные деньги довольно быстро уходит.

Насчёт платы сперва думал про что-то типа ASUS TUF GAMING B450M-PRO II — всё же сервер домашний, можно было бы и ширпотребной материнкой удовлетвориться. По возможностям она меня вполне устраивала.

Но подумал ещё, немного придушил жабу и остановился на ASRock X470D4U: официальная поддержка до 128 гигабайт ECC-памяти (можно использовать и обычную), 8 SATA-портов, две гигабитных сетевушки, встроенная видеокарта (не требуется процессор с видеоядром или дискретное видео), IPMI для любителей этого дела (я не любитель, но и не особо против)…



Из замеченных тонкостей и недостатков:

  1. Мало портов USB. Два сзади, два на плате. Хорошо хоть все usb3.
  2. «Большие» PCI-E работают либо 2 по х8, либо 1 на х16, тогда второй слот отрубается.
  3. m2 — только 3.0 x2 или 2.0 x4 — то есть 2 ГБ/сек. Более скоростные диски придётся втыкать в PCI-E.
  4. Слоты PCI-E рядом, плата с толстым охлаждением соседний слот заблокирует. Или в дно корпуса упрётся, если в нижний слот ставить.
  5. Память и крепление для процессорного кулера повёрнуты на 90 градусов. Если кулер-башня подразумевает крепление вентиляторов только вдоль одной оси, то придётся воздушный поток направлять в потолок корпуса. А если кулер низкий, то он может один-два слота памяти заблокировать.
  6. Если монтировать установочные iso через IPMI, то скорость передачи данных около трёх мегабайт/сек. Винда будет ставиться долго.
  7. IPMI работает только через свою сетевушку, то есть подавай ему отдельный порт в свитче. ILO в микросервере умело совмещать.
  8. Это одна из немногих «серверных» материнок под райзены, потому поддержка и исправление ошибок могут хромать относительно аналогичных материнок под интел. У меня была уже пара-тройка неясных зависаний, так что тут ещё есть, куда копать.
  9. ECC-память надо покупать UDIMM. Она встречается реже, чем регистровые RDIMM.
  10. Не может рулить трёхпиновыми вентиляторами, надо четырёхпиновые. А все корпусные 120 — трёхпиновые.

В целом — это неплохой выбор для бюджетного самодельного сервера. Но в продакшн я бы её не взял.

В принципе, у асрока есть модель на Х570 — X570D4U, там и PCI-E побыстрее, и m2, и ещё какие-то проблемы поправили… Но она поддерживает только процессоры от третьего поколения, плюс сама плата стоит в полтора раза дороже — что здорово увеличивает бюджет, на что я пойти не готов, да и просто нет смысла.

Процессор

Чтобы было побольше потоков, но при этом недорого, решил взять бэушный Ryzen 7 1700 на aliexpress. Официально, правда, материнка поддерживает только процессоры начиная со второго поколения, но неофициально первое поколение на ней запускали. В итоге выяснилось, что первое поколение работает, но нужен старый биос. А материнка шла с новым — пришлось перепрошивать. Благо IPMI позволяет это сделать даже в том случае, если сама плата не грузится.



Кулер переставил со своего десктопа (тот попутно в новый корпус переезжает, так что кой-какие запчасти освобождаются). GAMMAXX 300. Если он справляется с 3600X и не шумит при этом, то и на 1700 его должно хватить. А не будет хватать — можно что угодно поставить, благо размеры корпуса позволяют.

Память
Конечно, лучше бы было сразу взять ECC-память, но насущной необходимости в ней пока нет, а желание сэкономить есть. Потому я просто взял два модуля по 16 гигабайт 2666 MHz с десктопа (туда возьму парочку 3200). А серверу и 2666 хватит. Плюс память проверенная.



Блок питания

На время сборки и настройки поставил лежавший на полке шестисотваттный FSP, но вообще это перебор.

Максимум 100 ватт на проц, под 10 ватт на каждый диск, сотню на материнку и прочую периферию и сотню про запас — так что с запасом должно будет хватать и 400 ватт, даже если вдруг удастся систему на полную раскочегарить. Так что переставлю сюда c десктопа be quiet! Pure Power 11. Надо только найти, куда я от него кабеля задевал.



Заключение

Ну и как бы всё по выбору железа. Про переходники и кулеры рассказывать тут не буду.

Жесткие диски идут со старого сервера и с полки.

TOSHIBA_MG06ACA800E 8 TB
WDC_WD30EFRX 3 TB
WDC_WD30PURZ 3 TB
TOSHIBA_MD04ACA50D 5 TB
ST8000AS0002 8 TB
ST6000DM003 6 TB

Итого — 33ТВ. На микросервере стояло 3+5+6+8=22ТВ.

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



Пара терабайтных ssd под кэш для массива и виртуалки-контейнеры переставляются с десктопа.



Наличие 8 SATA-портов на материнке позволяет пока что не заморачиваться на тему дополнительного контроллера и восьмипортовый LSI можно будет в другую сборку пристроить.



Хотя я из интереса заказал у китайцев sata-контроллер в m2 — он позволит использовать два свободных места в корзинах. Насущной необходимости в дисках NVME у меня пока что нет, так что лучше вместо одного NVME я получу ещё 4-5 SATA, будет полезней. Плюс не буду занимать PCI-E.



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



Пока я буду обживаться, лично мне не до фильмов будет. А по мелочи и проц справится, Xeon же справлялся.

А 10 гигабит — это точно не этого года вопрос. Может следующего, когда ремонт закончится и станет понятно, что где будет стоять.

По деньгам вышло 12К за корпус, 22К за материнку, 9К процессор. Ещё где-то 10К пойдёт на новую память для десктопа и 2-3К на новый кулер туда же (нужен тихий и низкопрофильный). Итого получается примерно 56К — чуть вышел за бюджет, но вполне переживу, думаю.

Тысяч 30 компенсирует продажа микросервера (надеюсь), по остальному договорюсь со знакомым магазином.

В следующей части расскажу, что у меня было на старом сервере с программной точки зрения и почему я не захотел просто перенести старый софт на новый сервер, а захотел чего-то нового.
Источник: https://habr.com/ru/post/599709/


Интересные статьи

Интересные статьи

Опыт внедрения многомодульности в (еще) не разросшееся приложение (часть 1)
Не мне вам рассказывать, насколько увлекательно возиться с компьютерами. Но иногда всё-таки тянет к более простой технике, где даже самую мелкую деталь можно подержать в руках, а если она...
PuppetConf 2016. Kubernetes для сисадминов. Часть 1 PuppetConf 2016. Kubernetes для сисадминов. Часть 2 Мы берем приложение Lobsters и создаем новый образ с новыми требованиями. С...
Эта картинка, за авторством Артура Кузина (n01z3), достаточно точно суммирует содержание блог поста. Как следствие, дальнейшее повествование должно восприниматься скорее как пятничная история, ...
Сегодня мы заканчиваем нашу серию статей о функциональном программировании. Получилось 11 частей. Я считаю, что это достижение. В этой статье реализуем простой стековый калькулятор (также известн...