[recovery mode] Делаем маршрутизатор и NAS на одном процессоре

У меня появился «домашний сервер» на Linux всего через несколько лет, как мне купили компьютер. Сейчас, с того момента прошло уже более пятнадцати лет и большинство этого времени у меня был какой-то второй дополнительный компьютер дома. Однажды, когда пришла пора его обновлять, я задумался:, а зачем мне отдельный роутер, если у меня и так уже есть свободный компьютер? Ведь тогда давно, в нулевые, для многих это была стандартная конфигурация.

Действительно: сегодня для этого можно завести отдельную виртуалку, пробросить туда USB или PCI карту Wi-Fi. А в качестве ОС можно одним махом использовать MikroTik RouterOS, получая за небольшие деньги ПО enterprise уровня.


Вступление

Обозначу мои цели и задачи, на момент, когда я только начинал проект:


  1. Сборка должна максимально состоять из самых распространенных стандартных комплектующих. Это значит, что никаких матплат размеров, отличных от mATX / mini-ITX и низких корпусов, в которых не влезают полноразмерные карты
  2. Места под диски должно быть много, но сами корзины — под 2.5»
  3. Модульность должна привести через какое-то время к экономии — ведь Wi-Fi карту старого стандарта 5, можно будет просто поменять на 7
  4. Поддержка хоть какого-то удаленного управления, чтобы можно было понять, почему не поднимается система, без физического подключения монитора и клавиатуры к чему-то, стоящему высоко и далеко
  5. Полная свобода в выборе ОС и их поддержка всех критических комплектующих в любой ОС
  6. Высокая производительность. Надоело ждать, пока Deluge «прожует» .torrent на несколько тысяч файлов или включенное шифрование приводит к падению скорости ниже дисков или сетевого подключения.
  7. Визуальная красота и аккуратность сборки
  8. Наивысшая компактность. Идеальный размер — современная игровая приставка.

Сразу предупрежу что, если вы верите, что ниже в статье я расскажу, как выполнить все пункты — вы очень наивны и вам лучше купить Synology или место в облаке.
На самом деле, я не вижу ничего нереального в таком решении, просто, возможно, я недостаточно хорошо изучил все предложение, а возможно — потому что рынок самосборных NAS давно в упадке и комплектующих для этой цели все меньше, а стоят они — дороже.


Немного о софте

В последнее время я стал так ленив, что мне даже не хотелось самому конфигурировать KVM, так что, я решил попробовать посмотреть, что такое unRAID, который LinusTechTips так много рекламировали как удобный GUI для настройки KVM и как хороший софт для NAS в целом. Так как мне также лень было ковыряться с mdadm — unRAID убивал двух зайцев.


Сборка


Корпус

Далее шла, на удивление, сложнейшая часть сборки самодельного NAS на стандартных компонентах: выбор корпуса! Как я и говорил, времена, когда корпуса с дверцей, за которой находятся корзины с дисками давно прошли. А мне еще очень хотелось использовать в качестве дисков 2,5» пятнадцатимиллиметровые Seagate (на момент написания, максимальная емкость — 5ТБ). Они бесшумные и занимают мало места. Пока 5ТБ мне хватало.
Очевидно, матплату хотелось miniITX, так как казалось, что одного слота расширения достаточно.

Оказалось, что есть компактные корпуса, размером с нетбук, но там всего одно место под 2,5 и «другие» корпуса, где есть уже парочка 3,5 соответсвующего размера. Середины просто не существует. Даже за деньги. Было что-то на Али, но снято с производства (ВСЕГДА чекайте Али, в поисках необычных вещей, иногда китайцы уже все изобрели и поставили в массовое производство). На каком-то мелком форуме я вычитал о SilverStone CS01B-HS, но цена совсем не вписывалась в категорию «бюджет». Устав от поисков, я заказал его на Амазоне через Шипито, чем полностью провалил третий пункт технического задания.

Зато теперь можно было не беспокоиться о бюджете вообще!

Советую вам сразу сделать 3Д модель корпуса Вашей Мечты и выточить ее на ЧПУ-станке из настоящего алюминия. Будет чуть дороже сильверстоуна, но в тысячу раз приятнее. Только, поделитесь ей потом на гитхабе!


Процессор

Конечно же, хотелось в качестве процессора взять АМД, 2019 год на дворе, штеуд только у тех, кто не сильно вникает. Но, пытаясь выполнить пункт четыре «Поддержка удаленного управления», нахожу у АМД только Ryzen DASH и понимаю, что в этом случае нужно выбрать Intel.

Далее, все как всегда: яндекс.маркет, фильтры, легкий гуглинг на детские проблемы и доставка завтра внутри МКАД бесплатно.


Матплата

Из матплат, фактически, выбор из одной — Gigabyte GA-Q170TN.
У меня нет ни малейшего понятия, почему слот расширения всего х4, но, если в будущем вы захотите поставить туда десятигигабитную сетевую карту — запаса хватит (но подключить хранилище, обеспечивающее такую производительность вы уже не сможете).

Из больших плюсов: два слота miniPCI-E. MikroTik выпускает все свои Wi-Fi карты (а нам нужны именно они, ведь только они и поддерживаются в RouterOS) в формате miniPCI-E, и, скорее всего, будет выпускать еще много лет, так как это их основной стандарт карт расширения. Например, вы можете купить их модуль LoRaWAN и легко получить поддержку устройств с LoRa.
Два Ethernet, но на 1 Гбит. В 2017 я выдвигал закон о запрете продажи материнских плат со скоростью Ethernet до 4 Гбит, но не успел собрать нужное количество подписей для прохода муниципального фильтра.


Диски

В качестве дисков берем два STDR5000200. По какой-то причине они стоят дешевле ST5000LM000, которые на самом деле там находятся. После покупки проверяем, разбираем, достаем ST5000LM000 и подключаем по SATA. При гарантийном случае — собираете обратно и сдаете, получив в обмен новый диск (не шучу, я так делал).

Я не стал использовать NVMe SSD, возможно, в будущем, если появится необходимость.

Intel в своих лучших традициях разложил грабли: недостаточно поддержки в матплате, поддержка vPro нужна еще и в процессоре, причем вы устанете искать таблицу совместимости. Каким-то чудом я узнал, что нужен минимум i5–7500. Но так как на бюджет больше не было лимита, я смирился.

В оставшихся компонентах ничего интересного не вижу, их можно заменить на любые аналоги, поэтому вот вам общая таблица с ценами на момент покупки:

Итого 66 930 рублей. Пункт три про экономическую часть вопроса разрушен в щепки, но греет душу мысль о том, что через десять лет это железо все еще будет в выполнять поставленную задачу.

Настройка софта далась довольно легко, благо, он к этому располагает: 95% можно накликать мышкой за один вечер. Могу описать это в отдельной статье, если будет интересно, так как не все было идеально, но нерешаемых негуглящихся проблем не было. Например, не так просто оказалось прокинуть проводные Ethernet адаптеры в RouterOS, ведь ее список поддерживаемого оборудования достаточно скудный.


Выводы после прохождения границы в сто дней uptime


  1. vPro именно для этой цели не нужен. Это сильно сужает выбор матплат и процессоров, а для домашнего применения вы обойдетесь беспроводным удлинителем HDMI и беспроводной клавиатурой. В крайнем случае (сервер стоит в подвале под железобетонной плитой) — используйте удлинитель на витой паре.
  2. 10 гигабит нужно было еще вчера. Средний жесткий диск читает быстрее, чем 120 мегабайт в секунду.
  3. Корпус съел четверть бюджета. Это недопустимо.
  4. Быстрый процессор в NAS/роутере — нужнее, чем казалось изначально
  5. unRAID — действительно хороший софт, есть все что нужно и нет того, что не нужно. Платишь один раз, если понадобиться больше дисков — просят только разницу в стоимости лицензий.

Мой бывший hap ac выдавал около 20 мегабит с включенным шифрованием VPN тоннеля. Сейчас всего одного ядра i5–7500 хватает, чтобы выдать гигабит.


m1i-kbxxfxmtko2p9bec5neooaq.png

P.S.

Я очень рад, если вы дочитали до конца и вам было интересно! Пожалуйста, задавайте вопросы, если что-то осталось неясно. Вполне мог забыть.

Сразу отвечу на очевидное:

— Зачем все это, можно просто купить Synology?
— Да, и я советую вам так поступить. Это проще, быстрее, дешевле и надежнее. Статья для энтузиастов, которые знают, зачем им дополнительные возможности.

— Почему не FreeNAS, там есть все, что есть в unRAID, но бесплатно?
— Увы, опенсорс уже совсем другой. FreeNAS пишут точно такие же программисты на зарплате. А если вы получаете их труд бесплатно, то конечный продукт — это вы. Или им скоро перестанет платить инвестор.

— Можно вообще все сделать на чистом Linux и еще сэкономить!
— Да. Когда-то и я так делал. Но зачем? Для меня всегда было проблемой настройка сети в Linux. Это пусть останется Computer Janitors. А RouterOS полностью решает этот класс проблем. То же и с MD RAID: несмотря на то, что mdadm не дает совершить глупых ошибок, данные я все равно терял. А unRAID просто не дает нажать не ту кнопку. Опять же, ваше время не стоит тратить на ручную настройку хранилища.

— Но ты же все равно установил обычную убунту в виртуалку!
— Ради этого все и затеивалось. Теперь у вас есть свой личный AWS с максимальной скоростью подключения к вашей СХД, домашней сети и интернету одновременно, чего не сможет вам дать никто. А какие сервисы запускать в этой виртуалке — решать вам.

— Любая проблема и в доме сразу нет ни Wi-Fi, ни интернета, ни хранилища.
— Лежит запасной роутер за 1 000 рублей, а с дисков никуда ничего не денется. За все время кроме дисков и кулеров ничего само не ломалось. Даже обычный неттоп проработал 24/7 почти десять лет и прекрасно себя чувствует сейчас. Пережил два диска.

© Habrahabr.ru