Мотивация
Вообще NAS штука полезная. Тут тебе и хранение бэкапов и и свое облако и виртуалки в локальной сети. До недавнего времени я был не очень счастливым обладателем крайне бюджетного и абсолютно бесполезного Zyxel NAS326. Проблем с этим NAS было кратно больше чем пользы. Тормозной, глючный, зависающий и крайне шумный. Причин тому несколько:
- Дохлый одноядерный CPU
- Малое количество памяти
- Пластиковый и от того резонирующий всем корпусом от вибраций диска
- Проприетарная и давно не обновляемая ОС (и если с проприетарностью я еще готов смириться, то с полным отсутствием поддержки нет)
- Всего 2 диска и как следствие либо у тебя 1 SSD и 1 HDD, либо 1 полноценный RAID1
Как итог было принято волевое решение искать замену. Требований, надо признать, было много:
- Не меньше 8 Sata. Лучше больше (конфиг задумывался как 2 RAID10 из SSD и HDD)
- Возможность запускать docker-контейнеры и разного рода рандомные сервисы (s3, rsync и все что мне там в голову придет)
- Возможность поднимать виртуалки
- Минималистичный внешний вид
- Максимальная нешумность
- Нормальное железо (в первую очередь для пунктов 2 и 3)
- Возможность запустить там NetCLient (об этой штуке я расскажу как-нибудь в другой раз. Сейчас же для понимания важно, что оно позволяет растянуть локальную сеть через все наты и фактически организовать кроссдатацентровую приватную сеть)
Вариантов под такое в готовом виде, скажем прямо - не особо много и все они называются Synology или Qnap. В начале лета нужные мне конфиги стоили что-то порядка 40k и на общей панике стремительно исчезали из продажи, а проприетарность операционки вне зависимости от ценника никуда не девалась. В общем, если отбросить всю лирику, было принято роковое волевое решение собрать NAS самому.
Первая кровь - подбор комплектующих
Корпус
Когда-то давно преподаватель информатики задал нашему классу вопрос: «C чего надо начать подбор комплектующих для PC?» Мы все в тот момент сошлись на мнении, что с материнской платы. И в целом для среднестатистического PC это правда. NAS, на мой взгляд, начинается с корпуса. Корпус для NAS крайне важен. Он должен отвечать сразу целому спектру взаимоисключающих требований:
- Компактность
- Вместительность (напоминаю - 4 HDD и 4 SSD не считая того, на котором будет стоять система)
- Шумоизоляция
- Продуваемость - хоть я и не планировал ставить в корпус печку типа мощной видеокарты или могучего Xeon Gold в качестве CPU охлаждение крайне важно
- Удобство сборки
Выбор пал на проверенного производителя корпусов - Fractal Design. Конкретная модель Node 304
.
У меня уже был опыт сборки компьютера в корпусе от этого производителя, а посему была надежда, что это будет также удобно (Spoiler - нет. Удобства не случилось. Размер корпуса и количество дисков сыграли свою роль. Покорячиться пришлось изрядно)
Материнская плата
Тут я плясал от возможностей корпуса. В данный корпус можно вставить или Mini-ITX или экзотику, про которую я доселе не слышал Mini-DTX. Из любопытства я погуглил, что такое Mini-DTX, понял, что выбор меня удручает и и решил не экспериментировать. К сожалению материнских плат стандарта Mini-ITX тоже оказалось крайне немного, а когда выставил 4+ SATA разъема узнал, что больше 6 SATA на таких материнских платах просто не бывает, а ценник за такие платы крайне негуманный. Исходно, я планировал взять что-то на AM4, однако все тоже требование в хотя бы 4 SATA убирает все платы на AM4 по вменяемой цене. Пришлось посмотреть в сторону Intel и я был приятно удивлен хорошим выбором. В итоге выбор пал на ASRock H510M-ITX/AC
. Однако сама по себе эта плата не давала мне нужного количества SATA разъемов под диски посему пришлось взять к ней в комплект PCI-E SATA3 модуль на 6 SATA разъемов. В моем случае это был некий Espada PCIe6SATAMar
CPU
И вот в этот момент я расслабился и совершенно зря. Я решил, что графика мне в сервере не нужна заказал CPU без встроенной графики и сэкономил… 200 рублей. Взял я Intel Core i3-10105F
. Чем я тогда думал я не знаю, однако я совершенно не принял во внимание тот пустяковый нюанс, что современные десктопные материнские платы не умеют стартовать без графики. Просто не проходят посткоды и материнка ребутается. Благо дождаться я этого CPU не успел, воворемя вспомнив (а на самом деле просто коллеги подсказали) о таком неприятном для меня моменте. Поэтому заказ на CPU был отменен, а взамен заказан Intel Core i3-10105
. Разница в названии минимальная, однако в моей голове с трудом укладывается концепция такого нейминга. Мне всегда казалось, что отсутствие чего-то не должно маркироваться, а наличие чего-то наоборот должно обозначаться дополнительными знаками. Здесь же все наоборот и буква F
в названии обозначает отсутствие видеоядра.
Память
Тут я взял рандомный AMD, с которыми все оказалось не без проблем. Но об этом ниже.
Диски
В наличии у меня уже был один Seagete на 2Tb, который стоял в старом NAS, так что решил взять к нему в комплект еще 3 таких же HDD (и как оказалось позже один из этих дисков пришел ко мне мертвым).
SSD
Приятным бонусом моей работы является тот факт, что можно иногда подрезать старые диски, которые в сервер уже никто ставить не будет, а для домашнего использования, да в RAID вполне себе сойдет. Так что SSD в бюджет не пошли) Зато был взят M2 накопитель под систему Western Digital WD Blue SN550
на 250G.
Блок питания
К нему у меня тоже было требование. Корпус небольшой, а посему мне была важна модульность проводов. И тут я совершил вторую ошибку. Я забыл, что количество проводов питания для SATA ограничено. Вернее я просто не задумывался о том, что они в теории могут закончится. И они таки закончились. По дефолту у меня в БП всего 6 проводов питания для SATA. Но об этом я узнал уже в момент сборки.
Про незаслуживающие внимания мелочи типа SATA кабелей, термопасты или кулера я растекаться не буду. Они были закуплены.
Итоговая стоимость со всеми дисками и прочей мелочевкой перевалила за 50000 рублей, но я не унывал и ждал заказанного ибо процесс такого мальчукового шоппинга вызывал неподдельное удовольствие.
Сборка
Комплектующие на месте и радости моей нет предела. Пора собирать.
Проблема №1
Корпус рассчитан на 6 дисков и не диском больше, а дисков у меня в наличие 8 (не считая M.2, но ему отдельного места не надо) Что делать? Правильно - колхозить. В итоге на один из подвесов было прикручено 4 SSD вместо положенных 2-х. Но SSD не сильно прихотливы, а потому без разницы.
Проблема №2
Питание. Как я уже упоминал выше - разъемов у меня всего 6, а питать надо 8 дисков. Тут на выручку пришел колхоз №2 - питание приделал через самопальный переходник на molex. Благо вольтаж и ампераж тот же самый, да и распиновка позволяет.
Проблема №3
Один из дисков не определяется. Ну просто не начинает крутить шпиндель и все тут. Тут колхозом не обойдешься. Пришлось возвращать диск.
Проблема №4
Ставлю систему и она… падает. Просто падает и все. Или в рандомный момент система перезагружается. Но чаще зависает. Иногда зависает при установке, иногда после, благо удалось выловить в что-то про segfault в логах ядра до момента когда все зависало намертво. Поменял местами плашки памяти и все заработало. Как это работает я не знаю. Но как-то работает и с тех пор проблем зафиксировано не было.
И вроде бы все просто если бы не одно “но” - корпус крайне маленький. Любые перемещения чего-либо внутри него это задача с пересборкой фактически всей системы.
Система
На самом деле выбор тут большой, но я выбрал для себя простой и незамысловатый debian. На хосте мне от него много не надо, лишь бы докер запускал, виртуалки, да NFS с SMB раздавал. Если долго, то подробности будут в какой-нибудь из будущих статей.
Выводы
Затея на любителя
Не нужна тебе такая машина, брат (c)
И я абсолютно серьезно. Мне, как Devops-у со стажем, работающему в одном из крупнейших хостингов понятно зачем все это. Но если ты среднестатистический пользователь, который не испытывает счастья от совокупления с железками - забудь про эту затею. Геморроя много, а в итоге получишь машину, которую еще придется отдельно настраивать за стоимость хорошего NAS с кучей уже встроенного софта. Сэкономить тоже не удастся. Забудьте. Лично для меня это был интересный квест и процесс меня в нем радует не меньше чем результат. Но я прекрасно осознаю, что я из того исчезающего меньшинства на которое ориентироваться не надо.
NAS бесшумным не бывает
HDD есть HDD и чудес ждать не стоит. Шуметь они будут в любом случае, каким бы ни был корпус. Ходят слухи, что есть какие-то волшебные HDD, которые не шумят вообще. Но слухи есть слухи, а я живу в реальности данной мне в ощущении.