mysurik.ru

Debian как домашний NAS: Samba, бэкапы и тишина в прихожей

Зачем мне NAS, когда есть облака

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

Готовые NAS смотрятся красиво, но цена на четырёхдисковые модели кусалась, а внутри — слабенький процессор и проприетарщина, которую не починить. Я же по жизни линуксоид, у меня завалялся системник, и решение пришло само: ставлю Debian и делаю из него NAS. В этой статье — вся моя история: от выбора дисков до настройки Samba, бэкапов и энергосбережения. Если собираете своё хранилище — забирайте мой опыт, вместе с ошибками.

Железо: что я нашёл в кладовке и что докупил

Основой стал старый системник на четырёхъядерном процессоре. Для NAS его более чем хватает: файловая помойка не требует вычислительной мощи. Оперативки я поставил восемь гигабайт, хотя для чисто файловой задачи хватит и двух. Запас пригодился, когда я добавил на эту же машину пару докер-контейнеров — но это уже другая история, я про неё писал, когда разбирался с Docker на домашнем сервере.

Диски — самое важное в NAS, и тут я наступил на первые шишки. Первая версия была из старых дисков разного калибра, и один из них, самый старый, начал сыпаться через полгода. С тех пор правило: в хранилище ставлю диски одного поколения и обязательно смотрю их здоровье по SMART перед запуском. Новые диски беру CMR, а не SMR — на SMR запись больших объёмов проседает безбожно, и бэкапы на нём ползут как жуки.

Ещё докупил маленький SSD под систему. Отдельный системный диск — это удобство, которое я оценил позже: при переустановке системы данные не трогаю, просто перекладываю SSD. И ИБП, недорогой, но честный: NAS, который гаснет от скачка напряжения, — это рулетка с данными.

Установка Debian: минимум графики, максимум стабильности

Ставил Debian 13 netinst, без графического окружения — только базовая система и SSH. NAS управляется из терминала, десктоп там просто жрёт ресурсы. Разметку сделал простую: система на SSD, диски данных — отдельными разделами, без хитростей.

Файловую систему для данных выбирал между ext4 и ZFS. Долго читал споры, в итоге поставил ext4 — на домашнем NAS мне важнее простота и предсказуемость. ZFS силён снимками и сжатием, но требует памяти и специфичной заботы. Мой выбор не истина в последней инстанции: если вам нужны снапшоты — смотрите в сторону ZFS или btrfs. Мне же хватило классики.

Из пакетов сразу поставил: openssh-server, samba, smartmontools, hdparm, mc. Дальше — настройка.

Samba: доступ с любых устройств в доме

Samba — сердце файлового NAS, если в доме есть Windows. Настройка у меня минимальная, но продуманная. В smb.conf завёл два ресурса: общий для всей семьи с доступом на чтение и запись, и личный только для меня, с авторизацией. Гостевой доступ я сразу прикрыл: домашняя сеть домашней сетью, но фотографии детей пусть лежат за паролем.

[family]
path = /srv/nas/family
valid users = @family
writable = yes

[private]
path = /srv/nas/private
valid users = mysurik
writable = yes

Пользователей добавлял через smbpasswd -a, группы создал заранее. Отдельно скажу про кодировку и имена файлов: русские имена Samba сейчас держит нормально, я ни разу не споткнулся. Двадцать лет назад это было приключение, а сейчас просто работает.

Скорость по гигабиту — стабильные 110 мегабайт в секунду на запись. Для дома больше и не надо: фильм перекидывается за минуту, бэкап ноутбука ночью вообще никто не замечает.

Момент Икс: диск отвалился после перезагрузки

А теперь про то, где я чуть не поседел. Через месяц после запуска я перезагрузил NAS после обновлений — и половина данных пропала из сети. Папки family нет, private нет. Сердце в пятки: там же всё!

Успокоился, зашёл по SSH, набрал df -h — дисков данных нет. Монтирую руками — всё на месте, файлы целы. Оказалось, я поленился прописать монтирование в fstab как следует, понадеялся на запись, которую добавил на скорую руку. В ней была ошибка в опциях, и при загрузке диск не подцепился. Исправил fstab, добавил проверку через systemd-analyze verify, и с тех пор всё встаёт на место само. Мораль: настройку монтирования проверяйте перезагрузкой сразу, а не через месяц.

Бэкапы: правило 3-2-1 в домашнем исполнении

NAS без бэкапов — это просто медленный диск с амбициями. Я настроил схему по классике: три копии данных, два разных носителя, одна копия вне дома. Внутри NAS — основной массив. На второй машине — nightly-копия через restic, о котором я писал отдельно: бэкапы, которые не подводят. А раз в неделю самый ценное — фото и документы — уезжает на зашифрованный диск, который живёт у родственников.

Расписания держу на systemd timers, и не устану повторять: с Persistent=true пропущенная ночью задача догоняет себя утром. Для бэкапов это критично, я на этом однажды обжёгся ещё до эпохи таймеров.

И обязательно тест восстановления! Раз в квартал я достаю случайный файл из бэкапа и восстанавливаю его. Бэкап, который ни разу не восстанавливали, — это надежда, а не бэкап. Проверено: дважды за два года я доставал данные по-настоящему, и оба раза всё поднялось.

Права и структура папок: меньше пользователей, меньше бардака

Первое время я плодил пользователей и папки под каждого. Через полгода запутался, кто куда может писать, и упростил всё до двух групп: family и admin. В family — домочадцы, им общие папки. В admin — я, мне виден весь массив. Права выставил через группы, а не через отдельных пользователей, и жизнь сразу стала проще.

Структуру папок тоже пересмотрел. Раньше я сваливал файлы в одну кучу с названиями вроде «новая папка (7)». Потом потратил вечер и разложил всё по четырём корням: Фото, Документы, Медиа, Архивы. Внутри — годы. Звучит банально, но именно эта структура спасла меня, когда я настраивал выборочный бэкап: фото и документы копируются каждый день, тяжёлые архивы — раз в неделю.

Отдельно про корзину. В Samba есть корзина через модуль recycle — удалённые файлы складываются в скрытую папку и лежат там тридцать дней. Я долго игнорировал эту опцию, пока однажды домочадец не удалил не тот каталог. С тех пор recycle включён на всех общих ресурсах, и я сплю спокойнее.

Ещё один штрих к правам: не давайте никому, включая себя, права записи на весь массив. У меня запись разрешена только в рабочие папки, а Архив смонтирован с опцией только для чтения. Случайно снести архив стало физически сложнее — и это отличное чувство.

Спящий режим и шум: как я приручил NAS в квартире

NAS стоит в прихожей, и первое время он гудел как трансформаторная будка. Жена начала коситься, и я занялся тишиной. Помогло три вещи: замена корпусного вентилятора на тихий, настройка кривых оборотов и спячка дисков через hdparm. Диски засыпают через двадцать минут простоя и просыпаются по обращению.

Но тут есть подводный камень, о котором мало пишут: если на диск регулярно что-то пишется мелочёвка — логи, индексы, метрики, — диски не заснут никогда. У меня так было: какой-то контейнер писал статистику каждые пять минут, и винчестеры молотили круглосуточно. Перенёс логи на системный SSD — и диски уснули. Электричество тоже стало уходить меньше: NAS в простое ест ватт тридцать, под нагрузкой — под сотню.

Ещё я выкрутил агрессивность процессора: governor на powersave, турбобусты выключил. Для файловой помойки производительность не пострадала, а температура упала. Тишина в прихожей стоит этих настроек, поверьте.

Доступ из мира: осторожно и через туннель

Хочется доставать файлы и вне дома. Наружу Samba торчать не должна — это небезопасно и я так не делаю. Мой путь — VPN-туннель до домашней сети. Настрою WireGuard на телефоне, подключаюсь — и NAS как будто рядом. Подробно про этот туннель я рассказывал в статье про WireGuard на VPS за 10 минут, там же и про то, почему проброс портов напрямую я даже не рассматривал.

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

Что бы я сделал иначе, если начинал сейчас

Полтора года спустя у меня накопились мысли на тему «а если бы начинал заново». Первое — сразу взял бы диски одного бренда и одной партии, чтобы стареть они синхронно и заменялись пачкой. Второе — сразу завёл бы мониторинг SMART с уведомлением в телеграм, а не раз в месяц глазами. Третье — не экономил бы на ИБП: один скачок напряжения стоил мне одного диска, и это был самый дешёвый урок в моей жизни.

И четвёртое, самое приятное: я бы ничего не менял в выборе Debian. За полтора года NAS ни разу не потребовал внимания вне плановых обновлений. Он просто стоит, жужжит тихонько и хранит моё. Именно так и должна выглядеть инфраструктура в доме: скучная, предсказуемая и всегда под рукой.

Если вкратце

  • Старый системник + Debian netinst без графики = домашний NAS за вечер.
  • Диски берите CMR, одного поколения, здоровье проверяйте по SMART до запуска.
  • Систему держите на отдельном SSD — переустановка не трогает данные.
  • Монтирование данных проверяйте перезагрузкой сразу, fstab не прощает лени.
  • Бэкапы по схеме 3-2-1 и обязательно тест восстановления раз в квартал.
  • Тишина: тихий вентилятор, powersave, спячка дисков и логи — на SSD.
  • Доступ извне — только через VPN-туннель, Samba наружу не торчит.

Собрать свой NAS оказалось проще, чем я боялся, и дешевле, чем я ожидал. Если у вас пылится старый системник — вы уже на полпути.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *