[Из песочницы] Скромный NAS для дома

Это очередная статья о сборке очередного NAS для домашнего использования. Что побудило меня написать её? Начиная собирать себе NAS, я перечитал все нагугленные статьи, в которых люди рассказывали, как выбирали и собирали хранилища для себя. Благодаря этим статьям, я избежал некоторых ошибок при выборе железа и ПО. Собрал с первого раза конфигурацию, которая полностью меня устраивает по сей день. Поэтому уверен, кому-то моя статья может пригодиться.

Правда, надо сказать, что по профессии я системный администратор и это наложило на конфигурацию определённые требования, а на статью — подробность в описаниях с иллюстрациями на ~2 Мб. Так что да, NAS собирал сам. Но без фанатизма. В статье я не ограничился описанием железа, а рассказал ещё как использую получившуюся машину. Всем интересующимся добро пожаловать под кат!

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

  1. Хранение большого объёма данных. Это очевидно.
    Но был маленький нюанс в том, что я располагал некоторым количеством жёстких дисков. Скажем так, насисадминил. Именно их я и собирался использовать. Все диски разного объёма, производителей и временем отработки. В сумме давали вполне достаточный для меня объём в 2–3 терабайта.
  2. Торренты.
    На устройстве должен быть вменяемый клиент для этих целей.
  3. Гибкие настройки и дополнительные возможности.
    Такой расплывчатый критерий, как раз-таки на будущее, для возможности использования дополнительных сервисов, например, облачное хранение или медиасервер.
  4. Малое потребление электроэнергии.
  5. Низкий или отсутствующий уровень шума.
  6. Минимальная цена.


Готовые NAS


К тому времени я имел опыт общения на работе с Synology DiskStation DS411 и с D-Link DNS-320. В операционку Synology я был влюблён! Стабильно, удобно, понятно, свой репозиторий с приложениями, полезные обновления — это всё про неё. Само железо тоже радовало своим аптаймом и тишиной. Не радовала только цена (конец 2014 г.) Я не готов был отдать 20 000 руб. за то, чтобы просто хранить там фильмы с музыкой. Естественно были модели подешевле на два диска, но четыре диска для хранилища честь, а два и в стационарном компьютере есть.

На примере DNS-320 я увидел, что, если выбирать самое дешёвое, то и получу я более чем скромное устройство. Собственно, раздавать файлы в локалке — это единственное, что более-менее нормально умеет делать данная коробка.
На этом этапе стало понятно, что NAS придётся собирать из компьютерных комплектующих.

Вопрос с HDD
Исследуя цены на брендовые хранилища, я параллельно раздумывал о конфигурации дисков в системе. RAID? JBOD? Отдельными томами? С одной стороны, хранить на рэйде фильмы с музыкой — расточительно. В случае утраты, их можно скачать заново. С другой стороны, есть пара папок, которым надо бы обеспечить сохранность и желательно без разработки специальных сценариев бэкапа (за бэкапами надо следить и проверять). Кроме того, уже имеющиеся у меня диски — разного объёма. Соответственно после сборки любого RAID, я потеряю сотни гигабайт на «обрезке» дисков под самый маленький и целый диск под контрольные суммы (например).

JBOD выглядит привлекательно в том плане, что доступен весь объём всех дисков, а в случае отказа одного, данные на остальных останутся. Но ту пару важных папок всё равно нужно бэкапить. Кроме того, для меня остался открытым вопрос что произойдёт со всем массивом, если один из дисков откажет. Продолжит ли массив работу или всё придётся пересобирать/восстанавливать?

Работать с дисками как с отдельными томами тоже не с руки. Рано или поздно на всех дисках будет фарш из разных данных. В общем надо было думать дальше, ато:

1237c238a80646f8b9c5dfb2ef1d40d6.jpg

Выбор операционной системы


Так как хранилище теперь собиралось из обычных компьютерных комплектующих, то выбор операционки был широк. Linux, Windows, XPenology, FreeNAS, NAS4Free. Классическому Линуксу (Ubuntu, Debian и т.п.) сразу нет. Я в нём не большой спец и прикручивание каждой функции сопровождалось бы многочасовыми работами. FreeNAS и NAS4Free очень интересные и функциональные решения, но смутила статья про флешки, с которых грузятся эти операционки. Кроме того, т.к. эти системы основаны на FreeBSD, то в случае расширения их функционала или возникновении проблем, я столкнусь всё с тем же малоизвестным мне Линуксом. С HDD они работают всё в тех же линуксовых форматах. Как правильно было написано в одной статье:

вы должны понимать — что происходит под капотом.


XPenology выглядел самым привлекательным, т.к. имелся положительный опыт работы с ним. Да, в основе это всё тот же Линукс, но все задачи и не многочисленные проблемы мне удавалось решать через веб-интерфейс.

Ах да, Windows. Ну это выглядело для меня как-то скучно и громоздко. Мне хотелось чего-то лёгкого и нового, а не ещё один Win сервер, которые уже надоели на работе.

И тут я нахожу статью на хабре StableBit DrivePool — дисковый массив с дублированием файлов. В статье автор сделал небольшой обзор софтовых решений для работы с массивами дисков. Его целью было отказаться от RAID, не потеряв при этом в сохранности файлов. А в случае проблем, не «шаманить» с восстановлением. Прочитав её, я понял, что StableBit DrivePool — как раз то, что мне нужно! Принцип работы программы хорошо описан в конце статьи автора.

Программа платная, но в 2014-м в пересчёте на рубли она стоила всего 700+. Я не стал париться и купил лицензию. Сейчас цена ощутимо больше, поэтому вот вам инфа: за год программа не обновлялась. Работает стабильно, косяков не обнаружено.

Найдя способ, как объединить диски в пул, выбор операционки стал очевиден — Windows. StableBit DrivePool доступна только под эту платформу. Я выбрал Server 2008R2.

Железо


Определившись с операционной системой, можно выбирать железо. Хотелось, чтобы оно было компактным, бесшумным и дешёвым. В плане компактности и бесшумности обратил внимание на материнские платы с встроенным процессором и с охлаждением без вентилятора. Они оказались ещё и не дорогими, поэтому достаточно быстро выбрал Asus AT4NM10T-I:

54a477417b884d85a24de3592f897e8c.jpg

Плата оставила очень приятные ощущения. Судя по набору и количеству портов/разъёмов, при создании этой платы наверняка рассчитывали на всяких самоделкиных. Есть даже разъём для LVDS.

Производительность объективно оценить не могу. С задачами NAS на Windows Server она справляется замечательно. Синтетические тесты не делал.

76782c45625945a18e404435fd43620a.png42fd2642541f4f7f883d7b12a77adade.png

Корпус по оптимальным соотношениям цена/качество нашёлся быстро. Cooler Master Elite 120.

b990ad3b826b48acb7d89580a2bca007.jpg

Смотрел корпуса и покомпактнее, но цены у них были уже не такие компактные. Корпус оказался удобным и качественным. Три HDD вставляются штатно.

0b03ab35e8b44d69b0d506d38ea5cc15.jpg

Четвёртый через докупаемый переходник в отсек для CD-ROM. (да да, переходник пришлось колхозить, другого в магазинах не было)

46d81cbcefda449ababf616821c612b5.jpg

В комплекте с корпусом 2 вентилятора. Один на 120 мм для HDD и один на 80 для радиатора материнской платы (вы его уже заметили на предыдущих фото).

9f287771b3bb43d7879cbe18aca494c2.jpg

Приятной мелочью в комплекте оказались два переходника с 3,5' на 2,5' HDD. Особая приятность в том, что переходники подходят для любого другого корпуса. Отверстия под болты у них на стандартном месте, а высота конструкции с установленным диском не превышает высоту обычного HDD.

1da16c9d7db74281be8e9645e68d8383.jpg

8290f3b13e984010b5c8e5011683bfb6.jpg

В процессе сборки никаких проблем не возникло. Длинны всех проводов достаточно, установка и последующий доступ к комплектующим удобен (за исключением очевидных вещей). В общем корпус для людей!

d8f2d1299ce4484a9cbfae7738196ecf.jpg

Всё остальное железо, а именно диски, БП и оперативная память (SO-DIMM) у меня имелись. В сумме я уложился в 5 085 рублей.

Отмечу, что двух гигабайт оперативки ощутимо мало. Я держу на серверах минимально возможный набор программ. У меня не висят всякие Апдейтеры от Гуглов и Адобов, каких-то приложений от драйверов и т.п. Минимальный набор, только самое нужное. При всём этом в спокойном состоянии занято 800 мегабайт памяти. Понятно, что при определённой активности пользователя, начинается активное использование файла подкачки со всеми вытекающими. В общем памяти берите больше.

Шум
Он есть. Рядом с кроватью не поставишь. Самый шумный из вентиляторов обдувает радиатор на материнской плате. Вентилятор в блоке питания и на корзине жёстких дисков не слышно за звуком самих дисков. Очень жаль, что корпусные вентиляторы из комплекта не поддерживают PWM. Тогда бы их скоростью управляла материнская плата:

12f7284145a045febb7d1e6250defe15.jpg

И наверняка всегда держала бы на минимуме. Ещё склоняюсь к тому, что радиатору на процессоре не требуется дополнительное охлаждение, предусмотренное в корпусе. Как бы то ни было, вопрос с шумом отошёл на второй план. Я поставил системник там, где его шум совершенно не мешает и пока забыл об этом. Когда придёт время, либо вентиляторы будут заменены на поддерживающие PWM, либо приобретён контроллер для них. Ну, например:

a12fac7abf1841f79addb7ce456bb682.jpg

Софт


Для работы с торрентами я поначалу установил классический μTorrent. У него в настройках есть замечательная фишка: можно указать папку, которую μTorrent будет постоянно мониторить на предмет наличия торрент-файла. Как только обнаруживается новый файлик, программа начинает закачку. И есть ещё одна галочка «Удалить торрент-файл когда началась закачка». Что получается. Я за своим компьютером, скачиваю торрент-файл и кладу в специальную папку на NAS. Через 5–10 секунд он пропадает. Это значит μTorrent «взял» его и начал закачку. Ещё одна галочка под названием что то вроде «Добавлять случайное расширение к файлу пока он не скачался полностью» позволяет видеть в папке с закачками, какие файлы ещё качаются, а какие уже скачаны. По такой схеме, для скачивания торентов мне вообще не был нужен интерфейс μTorrent.

Я пошёл ещё дальше и установил на мой сервер ЯндексДиск, указав в μTorrent искать торрент-файлы в папке ЯДиска. Теперь, сидя на работе и подбирая себе киноленту на вечер, я клал торрент-файл на ЯДиск и через 20–30 секунд он пропадал…

Очень пригодилась программа HWMonitor, отображающая на рабочем столе приятное окно с температурой датчиков и скоростью вентиляторов (кстати, о температуре в корпусе):

772d21a28de842f3adccf8ff6a380f82.png

Когда заходишь по RDP, сразу можно оценить, что всё крутится, вертится и не объято пламенем пожара.

К сожалению автор в новых версиях программы разделил её на платную и бесплатную. В бесплатной остался только минимальный базовый функционал. А все плюшки типа экранчика как на скрине, видимо, перенесены в платную. У меня версия 0.6.0 beta.

wake-on-lan


Такая схема проработала у меня не долго. Я задумался о том, что большую часть времени сервер просто стоит и тратит электричество. Он конечно раздаёт торренты, но те несчастные пара десятков моих любимых фильмов, которые я храню для себя, это даже не капля в море. В общем торрент-сеть совсем не обеднеет если я прекращу раздачу.

Итак, хочу, чтобы NAS работал только тогда, когда он мне нужен. А всё остальное время спал. И будить его по сети, а не кнопкой. Для этого есть технология Wake-on-LAN. Эту фичу должна поддерживать материнская плата и сетевой контроллер (если он внешний). Благо, на многих моделях эта функция есть, как и на моей. Пробуждается компьютер при помощи «волшебного пакета», отправленного в сеть с указанием МАС-адреса сетевой карты. Для этого есть специализированные бесплатные программы или, например, в моём роутере Asus есть такая функция. Но в процессе эксплуатации оказалось, что Windows сам шлёт это волшебство при обращении к сетевому ресурсу. И при обращении по RDP и при обращении к сетевой папке. Это и хорошо, и плохо. Хорошо тем, что не нужны дополнительные программы. А плохо вот чем, если расшаренную папку подключить на клиенте как сетевой диск, или добавить в избранное:

1cda18ba6a704773a32d0ca2ff9293f6.png

то при включении клиента, на сервер будет автоматически отправляться «волшебный пакет» и будить его. Это я выяснил, когда пытался понять почему мой NAS просыпается сам. В случае с сетевым диском поведение понятно — клиент пытается получить информацию о диске, чтобы отобразить его статус (объём, доступность). Но зачем Windows проверяет ссылки в избранном, мне не понятно. Хотя кому-то эта особенность может наоборот пригодиться — включил свою рабочую машину, вместе с ней автоматом стартовал NAS.

Беспокойно «спать» сервер может не только из-за windows-машин в сети. Бывало несколько дней подряд NAS засыпал и тут же просыпался. Грешу на роутер, но доказательств пока нет.

В сон сервер отправляется своим стандартным средством, если в течении указанного времени нет сетевой активности.

μTorrent был заменён на Free Download Manager. У него есть галочка «Закрыть программу по завершении закачки». Запускаю закачку, ставлю галку, отключаюсь от удалённого рабочего стола. Free Download Manager закрывается по завершении скачивания, NAS засыпает по таймеру бездействия.

ЯндексДиск естественно тоже пришлось убрать с сервера.

wi-fi


Когда думал, куда в квартире поставить NAS, решил попробовать Wi-Fi. Модно, удобно, современно. Был приобретён TP-LINK TL-WN881ND:

861663702c8b427b8d9a26ff023e808d.jpg

Подключалось всё через роутер Asus RT-N12. Всё было классно до того момента, пока я не сел смотреть фильм в хорошем качестве. Обычный .mkv 1080р размером ~20 Гб. В середине фильма картинка и звук начали прерываться. Media Player Classic показывал, что все его буферы пусты и еле-еле подтягивал очередной кусок видео. Так было со всеми «тяжёлыми» фильмами. На простом копировании большого объёма информации тоже заметил, что через некоторое время скорость значительно проседала. Поверхностный поиск информации по данной проблеме результатов не дал, а прокинуть витую пару до сервера мне было проще, чем дальше разбираться с Wi-Fi.

Ни в коем случае не хочу наговаривать на wi-fi и делать громкие заявления о его готовности к длительной и высокой нагрузке. Но если вы собираетесь подключать свой NAS через него, то имейте в виду, что могут быть проблемы.

Заключение


Что в заключении? Само по себе сетевое хранилище — штука крайне полезная. Сценариев его применения можно придумать сколько угодно, особенно если вы будете использовать полноценную операционку. Предлагаю в комментариях поделиться своим опытом или идеями, для чего можно использовать домашний NAS помимо «файлопомойки».

Например, банальные бэкапы данных. Если по локалке, то тем же Cobian Backup по расписанию в специальную папку. Если по интернету, то BitTorrent Sync. В случае с Кобианом — не подключайте папку для бэкапов как сетевой диск. В случае с BitTorrent Sync, используйте на сервере теневые копии (что это и как настроить). Вирусы-шифровальщики станут уже не так страшны.

Мне частенько пригождается домашний сервер на работе, когда нужно проверить доступ к рабочим ресурсам с другого IP из интернета. Всякие VPN, OpenVPN и т.п.

Медиасервер. В тандеме со Smart TV все мультимедийные функции можно полностью переложить на них. Если на телевизоре есть нормальный браузер и поддержка клавиатуры с мышью, то даже закачкой контента можно заниматься через телевизор.

Сервер видеонаблюдения в дверной глазок. Или видео фиксация активности кота…

Что ещё?

© Geektimes