Найти в Дзене
Клуб DNS

Как сделать NAS из обычного компьютера

Оглавление

Наверняка многие задавались вопросом, что делать со старым железом после полного апгрейда. Продать? Чувство собственности стоит выше. Вы со своей старенькой, но верной платформой повидали в этом мире многое. Прошли через огонь Skyim и воду Томми Версетти. Отложите свое старое железо, пока не подумаете: «Зачем мне нужен NAS (Network Attached Storage)?» При появлении второго вопроса, первый станет риторическим и исчезнет, как кубики в тетрисе.

NAS —  зачем он нужен

Первое, с чем стоит определиться, это какие задачи будет решать NAS. Основные его функции:

  • Снятие нагрузки с рабочего компьютера. Часть клиентов можно перенести на NAS. В случае с торрентами можно забыть про тонкие настройки скорости, кэширования, соединения.
  • Медиа-сервер. Отличная возможность обзавестись домашней библиотекой и делиться медиаконтентом по домашней сети. Смотрите фильмы с того момента, где остановились в последний раз, независимо от устройства. Транскодирование потребляет ресурсы процессора. Даже если дома гигабитная сеть, а скорость внешней сети достигает 500 Мбит/с, это не гарантирует корректной работы медиа-сервера, если процессор занят другими задачами. Для примера, возьмем один из самых популярных медиа-серверов PLEX. Системные требования — 2 ГБ оперативной памяти и процессор не медленнее Intel Core i3. 
  • Резервное копирование. Наверное, самая важная операция в NAS. Человек существо ленивое. Никто не хочет на каждодневной основе доставать с полки внешний накопитель данных и переносить на него файлы, которые скопились за сутки. Гораздо лучше осуществлять операции резервного копирования в автоматическом режиме задачей в планировщике или отдельным программным обеспечением. Еще лучше, когда резервное хранилище состоит из нескольких дисковых устройств и управляется RAID-контроллером.
  • Раздача файлов. Общее рабочее пространство.

Есть два вида RAID-контроллеров — аппаратный и программный. У каждого из видов есть свои преимущества и недостатки. Хороший аппаратный RAID обойдется недешево. Программный RAID будет работать медленнее. RAID-контроллер с материнской платы (аппаратный) способен выйти из строя, и никакой другой контроллер данные больше не прочитает. Для low-end систем достаточно использовать программный RAID.

В данном случае low-end является определяющим фактором. Строим NAS на обычном компьютере, т. е. предполагается использование типов памяти DDR3-DDR4 без поддержки ECC. Если планируется использовать NAS под задачи, связанные с бизнесом, то стоит пересмотреть свой подход и озадачиться вопросом приобретения буферизированной памяти.

Программная часть строится на *nix/GNU/Linux операционных системах. Есть масса сборок для реализации NAS, которые позволяют избежать избыточности. У каждой есть свои плюсы, но и еще не создан такой продукт, на который бы никто не жаловался. Под наш список основных задач подойдет любая ОС для NAS.

Список популярных операционных систем для NAS:

  • XigmaNAS (FreeBSD; он же NAS4free)
  • FreeNAS от Ixsystems (FreeBSD)
  • Xpenology (сборка от производителя NAS - Synology)

Построение NAS на примере FreeNAS

FreeNAS поддерживал 32-разрядную архитектуру до версии 9.2.1.9 (все еще доступна для скачивания). На момент написания статьи актуальная версия — 11.3-U3.1.

FreeNAS портативна. Операционную систему можно установить на USB-накопитель, изолировав ее от основных накопителей. В случае поломки, например, материнской платы, операционную систему можно будет запустить на любом другом оборудовании. Полезная функция в случае использования шифрования дисков. Нагрузка на флешку оказывается минимальная, быстрый износ ей не грозит. Основные настройки ОС можно бэкапить и подменить в случае смены USB накопителя на новый (вся конфигурация хранится в одном xml файле).

Минимальные требования к оборудованию:

С базовой производительностью для 1-4 пользователей.

  • 64-битный процессор.
  • Один диск для операционной системы (минимум 8 ГБ; USB-диск).
  • 8 ГБ ОЗУ будет поддерживать до 8 жестких дисков; для каждого дополнительного диска производитель предлагает добавлять по 1 ГБ ОЗУ.
  • Контроллер дисков SATA или SAS с отключенной аппаратной функциональностью RAID (это связано с особенностями файловой системы ZFS).
  • Хотя бы один диск с прямым подключением.
  • Один физический сетевой порт.

Выбор железа определяется набором задач.

Установка

-2

Скачиваем с официального сайта ISO образ (750 МБ) и устанавливаем.

-3

Что-то вроде «как нарисовать сову», но нюансов нет. Есть масса инструкций по установке, легко гуглится по слову FreeNAS.

Статический IP-адрес лучше задавать через DHCP-сервер (отдельный или предустановленный на маршрутизатор). Это позволит переносить конфигурацию NAS на другое железо, в другую сеть и в другие условия без лишних манипуляций.

-4

10 минут установки и операционная система готова к работе.

-5

Логин для первой авторизации — root (во вкладке Accounts можно управлять пользователями). Пароль задается при установке операционной системы.

Что есть в коробке, и действительно ли это «running out-of-the-box» решение?

Веб-интерфейс

-6

Удобный, современный, интуитивно понятный. Можно менять расцветку. Основные элементы мониторинга вынесены на главный экран.

Программный RAID

Перед работой любого NAS требуется собрать пул (Storage/Pools/Add).

-7

Системный диск не может быть задействован в создании пула.

Чем больше накопителей в системе, тем шире выбор уровня RAID (он же ZFS RAID-Z). Изменять количество дисков в массиве нельзя.

Поддерживаемые уровни:

  • Stripe (группа блоков, каждая из которых расположена на отдельном накопителе)
  • Mirror
  • RAID-Z
  • RAID-Z2
  • RAID-Z3

RAID-Z* из-за особенностей работы имеет повышенные требования к оперативной памяти. Отсюда и вытекает требование разработчика — «По 1 ГБ на каждый новый накопитель».

Статья о RAID-Z и зеркалах от Ixsystems: Часть 1, Часть 2 

Доступ к сетевым дискам (SAMBA)

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

-8

Создаем Dataset (Storage/Pools).

Можно добавил zvol (том ZFS), но zvol это блочное хранение (фрагмент пространства). Применяется для репликации и экспорта.

-9

Share Type — SMB.

Переходим в Sharing (Sharing/Windows Shares (SMB)/Add).

Выбираем Windows, т. к. его использую я. Да и большинство домашних клиентов управляются именно этой операционной системой.

На моменте создания общего ресурса дается определенный набор прав доступа, в том числе для незарегистрированных пользователей.

SMB по умолчанию отключен, при первом создании сетевой шары FreeNAS попросит включить службу.

-10

Службу в любой момент можно отключить во вкладке Services.

-11

Сетевой ресурс создан.

Edit ACL — Access Control List. Тоже немаловажный момент на случай, если у вас многопользовательский NAS — пользователи постоянно меняются и имеют разделение прав по группам.

-12

Через проводник сетевой ресурс также доступен.

Сторонние плагины

Список плагинов

Вкладка Plugins/Add.

-13

Из интересного... Да тут все интересно и нет ничего лишнего. Начиная от домашних потребностей в виде торрент-клиента и домашнего PLEX медиа-сервера и до средств разработчика Jenkins для CI/CD.

Asigra Backup и BackupPC — два очень мощных интрумента для бэкапа данных, которые работают по разному принципу и разработаны для разных задач. Asigra Backup работает с API. Бэкапы можно снимать Snapshot`ами (для этого требуется его создать Storage/Snapshot). Snapshot представляет собой сохранение текущего состояния файловой системы. Все изменения, сделанные после снапшота, пишутся физически в другое (свободное) место на диске. То есть после удаления файла в снапшоте сохраняется его положение на диске, и запись новой информации в это место производиться не будет. В случае, если файл изменен, отличия от исходного файла снапшота также будут записаны в другое место, позволяя позже пересобрать файл в исходное состояние.

Снапшоты занимают не очень много места на диске, поскольку сохраняются только сделанные изменения, а не несколько экземпляров одного и того же файла (однако в случае удаления файла он сохраняется в снапшоте).

PLEX Media Server

Установка в два клика. Jail создается автоматически, установка через терминал не требуется.

-14

PLEX сервер доступен по http запросу http://[YOUR_IP_FREENAS]:32400/web.

-15

qBittorrent

После установки доступен по адресу http://[YOUR_IP_FREENAS]:8080/.

-16

Логин/пароль — по умолчанию admin/adminadmin.

-17

Из коробки мы получили веб-интерфейс, программный RAID, поднятый SMB с удобным управлением правами пользователей, и само создание/редактирование пользователей и групп. Добавьте сюда наличие виртуализации, мониторинга и поддержку сторонних программных плагинов. На выходе получается добротный NAS, который покрывает любые потребности. Останется только вовремя подносить оперативную память с ростом потребностей.