Наверняка многие задавались вопросом, что делать со старым железом после полного апгрейда. Продать? Чувство собственности стоит выше. Вы со своей старенькой, но верной платформой повидали в этом мире многое. Прошли через огонь 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)
- OpenMediaVault (Debian)
- 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).
- Хотя бы один диск с прямым подключением.
- Один физический сетевой порт.
Выбор железа определяется набором задач.
Установка
Скачиваем с официального сайта ISO образ (750 МБ) и устанавливаем.
Что-то вроде «как нарисовать сову», но нюансов нет. Есть масса инструкций по установке, легко гуглится по слову FreeNAS.
Статический IP-адрес лучше задавать через DHCP-сервер (отдельный или предустановленный на маршрутизатор). Это позволит переносить конфигурацию NAS на другое железо, в другую сеть и в другие условия без лишних манипуляций.
10 минут установки и операционная система готова к работе.
Логин для первой авторизации — root (во вкладке Accounts можно управлять пользователями). Пароль задается при установке операционной системы.
Что есть в коробке, и действительно ли это «running out-of-the-box» решение?
Веб-интерфейс
Удобный, современный, интуитивно понятный. Можно менять расцветку. Основные элементы мониторинга вынесены на главный экран.
Программный RAID
Перед работой любого NAS требуется собрать пул (Storage/Pools/Add).
Системный диск не может быть задействован в создании пула.
Чем больше накопителей в системе, тем шире выбор уровня RAID (он же ZFS RAID-Z). Изменять количество дисков в массиве нельзя.
Поддерживаемые уровни:
- Stripe (группа блоков, каждая из которых расположена на отдельном накопителе)
- Mirror
- RAID-Z
- RAID-Z2
- RAID-Z3
RAID-Z* из-за особенностей работы имеет повышенные требования к оперативной памяти. Отсюда и вытекает требование разработчика — «По 1 ГБ на каждый новый накопитель».
Статья о RAID-Z и зеркалах от Ixsystems: Часть 1, Часть 2
Доступ к сетевым дискам (SAMBA)
NAS без общих ресурсов не является полезным NAS. После создания пула перед нами открывается возможность сетевой шары.
Создаем Dataset (Storage/Pools).
Можно добавил zvol (том ZFS), но zvol это блочное хранение (фрагмент пространства). Применяется для репликации и экспорта.
Share Type — SMB.
Переходим в Sharing (Sharing/Windows Shares (SMB)/Add).
Выбираем Windows, т. к. его использую я. Да и большинство домашних клиентов управляются именно этой операционной системой.
На моменте создания общего ресурса дается определенный набор прав доступа, в том числе для незарегистрированных пользователей.
SMB по умолчанию отключен, при первом создании сетевой шары FreeNAS попросит включить службу.
Службу в любой момент можно отключить во вкладке Services.
Сетевой ресурс создан.
Edit ACL — Access Control List. Тоже немаловажный момент на случай, если у вас многопользовательский NAS — пользователи постоянно меняются и имеют разделение прав по группам.
Через проводник сетевой ресурс также доступен.
Сторонние плагины
Вкладка Plugins/Add.
Из интересного... Да тут все интересно и нет ничего лишнего. Начиная от домашних потребностей в виде торрент-клиента и домашнего PLEX медиа-сервера и до средств разработчика Jenkins для CI/CD.
Asigra Backup и BackupPC — два очень мощных интрумента для бэкапа данных, которые работают по разному принципу и разработаны для разных задач. Asigra Backup работает с API. Бэкапы можно снимать Snapshot`ами (для этого требуется его создать Storage/Snapshot). Snapshot представляет собой сохранение текущего состояния файловой системы. Все изменения, сделанные после снапшота, пишутся физически в другое (свободное) место на диске. То есть после удаления файла в снапшоте сохраняется его положение на диске, и запись новой информации в это место производиться не будет. В случае, если файл изменен, отличия от исходного файла снапшота также будут записаны в другое место, позволяя позже пересобрать файл в исходное состояние.
Снапшоты занимают не очень много места на диске, поскольку сохраняются только сделанные изменения, а не несколько экземпляров одного и того же файла (однако в случае удаления файла он сохраняется в снапшоте).
PLEX Media Server
Установка в два клика. Jail создается автоматически, установка через терминал не требуется.
PLEX сервер доступен по http запросу http://[YOUR_IP_FREENAS]:32400/web.
qBittorrent
После установки доступен по адресу http://[YOUR_IP_FREENAS]:8080/.
Логин/пароль — по умолчанию admin/adminadmin.
Из коробки мы получили веб-интерфейс, программный RAID, поднятый SMB с удобным управлением правами пользователей, и само создание/редактирование пользователей и групп. Добавьте сюда наличие виртуализации, мониторинга и поддержку сторонних программных плагинов. На выходе получается добротный NAS, который покрывает любые потребности. Останется только вовремя подносить оперативную память с ростом потребностей.