Posted on: 2022-12-13 Posted by: tm Comments: 0
Создать сетевое хранилище для дома можно самому. Всё, что для этого нужно — Raspberry Pi, накопитель и немного свободного времени СТАТЬИ FAQ
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

Домашний NAS — пожалуй, лучшее решение для хранения ценных данных и обмена ими в локальной сети. Грубо говоря, это подключенный к Интернету компьютер с несколькими дисками и специальным программным обеспечением. Проблема лишь в том, что готовые устройства, предназначенные специально для этого, стоят недёшево — цены на них начинаются от 10 тысяч рублей, и это без учёта самих накопителей. Конечно, можно собрать обычный ПК из б/у-компонентов — это даже выйдет дешевле, но он будет слишком шумным и неэнергоэффективным для сервера, работающего 24/7. Компактный одноплатный компьютер Raspberry Pi подойдет как нельзя кстати для создания сетевого хранилища с одним или несколькими дисками. Разумеется, речь идёт не о серьёзных решениях с десятками больших накопителей.

⚠️ Те участки команд, которые вы должны будете заменить на свои значения, выделены жирным.

Содержание

Что для этого нужно

Подготовка ОС

Быстрая настройка через терминал (для опытных пользователей)

Лёгкая настройка с OpenMediaVault (для неопытных пользователей)

Подключение к NAS

Что для этого нужно

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

Для сборки NAS достаточно минимального набора компонентов: сама плата Raspberry Pi со всем необходимым для неё оборудованием, диск SSD или HDD, переходник для подключения его по USB. Желательно выбирать из новых моделей микрокомпьютера, ведь только у них есть порт Gigabit Ethernet — полезно, если в наличии есть роутер с гигабитным портом, а сама «малина» будет подключена к Интернету по проводу. Для отказоустойчивости следует использовать хотя бы два диска в режиме RAID1 (о том, что это такое, расскажу позже). В моём случае используются Raspberry Pi 4B, SSD-накопитель Kingston A400 на 250 ГБ и переходник SATA-USB. Объем диска маловат для нормального домашнего хранилища, да и RAID-массив для надежности сделать не получится, но в качестве примера для этой статьи его вполне хватит.

Подготовка ОС

Разворачивать домашнее сетевое хранилище проще всего с использованием официальной операционной системы Raspberry Pi OS Lite. Она не имеет графического интерфейса, но тот и не понадобится для конфигурации и работы NAS.

  • В тему: Установка OC на Rasbperry Pi — подробный гайд

Для дальнейшей настройки сетевого хранилища следует включить SSH, сконфигурировать Wi-Fi (если подключение к Интернету будет осуществляться с его помощью), подключиться к Raspberry Pi через приложение Termius, а также сменить стандартный пароль. Подробно о том, как подготовить систему, я рассказывал в предыдущей статье — просто следуйте ей по порядку, после чего можете переходить к следующему разделу уже этого материала.

Быстрая настройка через терминал (для опытных пользователей)

Этот метод быстрый, гибкий и эффективный, и, что самое главное, позволяет собрать RAID-массив, но может отпугнуть пользователей, незнакомых с терминалом. Специально для них в статье описан второй, более простой вариант настройки с использованием OpenMediaVault. Впрочем, следуя инструкции, проблем возникнуть не должно даже с этим методом.

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

Подготовка диска

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

Команда lsblk выводит подключенные к Raspberry Pi диски. В моём случае это /dev/sda/. Создание раздела на диске производим командой sudo fdisk/dev/sda. Вместо sda подставьте имя вашего диска. Далее введите n для создания нового раздела на диске, подтвердите клавишей Enter. На следующие вопросы также отвечайте нажатием клавиши Enter до тех пор, пока не появится сообщение Created a new partition 1. После этого введите w, подтвердите. Программа fdisk должна закрыться. Если используете сразу несколько дисков, проделайте для них ту же самую операцию, заменив лишь имя накопителя.

Создание RAID-массива

Следующим шагом станет создание RAID-массива. Смело переходите к этапу «Монтирование диска», если в наличии всего 1 накопитель.

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

Для работы с RAID-массивами нужно установить утилиту mdadm:

sudo apt install -y mdadm

Выполните следующую команду, подставив в –raid-devices количество используемых дисков, заменив sda1 и sdb1 именами ваших накопителей, а в –level подставьте тип RAID. К примеру, для RAID10 нужно прописать –level=10.

sudo mdadm –create –verbose /dev/md0 –level=1 –raid-devices=2 /dev/sda1 /dev/sdb1

Создадим точку монтирования (raid1 везде замените на выбранный тип). 

sudo mkdir -p /mnt/raid1

Отформатируем логический диск в файловую систему ext4.

sudo mkfs.ext4 /dev/md0

Примонтируем диск к созданной точке монтирования.

sudo mount /dev/md0 /mnt/raid1

Откроем файл fstab, который хранит информацию о том, как диски используются в системе.

sudo nano /etc/fstab

Добавим в него следующие строки:

/dev/md0 /mnt/raid1 ext4 defaults,noatime 0 1

Сохраним файл сочетанием клавиш Ctrl+X и подтвердим вводом Y.

Введём эту команду, чтобы система знала, какие RAID-массивы ей нужно инициализировать при запуске:

sudo mdadm –detail –scan | sudo tee -a /etc/mdadm/mdadm.conf

Перезагрузим Raspberry Pi командой sudo reboot и заново подключимся через Termius. Переходим сразу к установке SMB.

Монтирование диска

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

С одним обычным диском процесс монтирования будет чуть проще, но в целом, он аналогичен описанному выше методу.

Создаём точку монтирования.

sudo mkdir -p /mnt/disk1

Отформатируем диск в файловую систему ext4.

sudo mkfs.ext4 /dev/sda1

Примонтируем диск к созданной точке монтирования.

sudo mount /dev/sda1 /mnt/disk1

Откроем файл fstab, который хранит информацию о том, как диски используются в системе.

sudo nano /etc/fstab

Добавим в него следующие строки:

/dev/sda1 /mnt/disk1 ext4 defaults,noatime 0 1

Сохраним файл сочетанием клавиш Ctrl+Xподтвердим вводом Yи нажмем Enter.

Перезагрузим Raspberry Pi командой sudo reboot и заново подключимся через Termius.

Установка SMB

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

SMB — сетевой протокол для удалённого доступа к данным, который поддерживается многими операционными системами, в том числе и Windows. Убедитесь, что вы обновили пакеты сразу после установки ОС. Если ещё не сделали этого, выполните следующую команду:

sudo apt-get update && sudo apt-get upgrade -y

Установим на Raspberry Pi приложение:

sudo apt install -y samba samba-common-bin

Настройка SMB

Создадим директорию на настроенном ранее диске и предоставим права на чтение, запись и исполнение:

sudo mkdir /mnt/disk1/shared
sudo chmod -R 777 /mnt/disk1/shared

Отредактируем файл конфигурации:

sudo nano /etc/samba/smb.conf

В середине файла находим строчку map to guest = bad userи меняем её на map to guest = never. Делаем это для того, чтобы не возникало ошибок при подключении с Windows. В самый конец открытого файла, предварительно заменив disk1 именем своей точки монтирования, введём:

[shared]
path = /mnt/disk1/shared
writeable = yes
browsable = yes
security = SHARE
create mask = 0777
directory mask = 0777
public = no

Сохраним файл сочетанием клавиш Ctrl+X, подтвердим вводом Y и нажмём Enter.

Перезапустим сервис Samba:

sudo systemctl restart smbd

Создаём нового пользователя pi (можно назвать иначе):

sudo smbpasswd -a pi

Вводим новый надёжный пароль и подтверждаем его. Активируем пользователя:

sudo smbpasswd -e pi

Готово, можете переходить к разделу статьи про подключение.

Лёгкая настройка с OpenMediaVault (для неопытных пользователей)

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

Установка OpenMediaVault

По очереди введите следующие команды в терминале для того, чтобы обновить список доступных для установки пакетов и уже установленные пакеты, если не сделали это ранее:

sudo apt-get update
sudo apt-get upgrade -y

После успешного выполнения введите следующую команду:

wget -O — github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

Запустится автоматическая загрузка и установка программы OpenMediaVault, которая будет длиться 15-30 минут (в зависимости от модели и скорости соединения). После успешной инсталляции Raspberry Pi перезагрузится и сменит свой локальный IP-адрес.

Настройка OpenMediaVault

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

Для доступа к веб-панели приложения необходимо узнать новый IP-адрес микрокомпьютера. Сделать это можно через панель управления роутером. Рекомендую там же сменить тип IP-адреса Rasbperry с динамического на статический.

Далее надо вставить найденный IP в адресную строку браузера и перейти. На открывшейся странице вводим логин adminи пароль openmediavault — это откроет доступ к множеству настроек.

Первым делом заходим в раздел «Общие настройки» и во вкладке «Пароль Web Администратора» меняем стандартный openmediavault на свой безопасный пароль, который будет использоваться для доступа к веб-панели. Не забываем подтверждать любое изменение кнопкой «Сохранить».

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

Далее в разделе «Пользователи» создаём нового пользователя nas. Пишем надёжный пароль и добавляем созданный аккаунт в группы adm, backup, sambashare, ssh, sudo, users. Сохраняем текущую конфигурацию. Эти данные будем использовать для подключения по SSH и использования сетевой папки.

Самая важная часть конфигурации: форматирование накопителя и создание сетевой папки. Сразу обращу внимание на то, что OpenMediaVault не даёт возможности собрать RAID-массив из подключенных по USB дисков, аргументируя это низкой надёжностью.

Для начала перейдите в раздел «Диски», выберите диск, который будете использовать, нажмите «Стереть». В открывшемся окне нажмите кнопку «Быстро». После успешной очистки накопителя закройте окно и перейдите во вкладку «Файловые системы». Нажмите «Создать», в выпадающем меню выберите только что очищенный накопитель, в поле «Метка» введите желаемое название (в моём случае data), подтвердите выбор. Форматирование может занять несколько минут.

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

Когда устройство будет готово, нажмите «Монтировать», после чего сохраните конфигурацию. Переходим во вкладку «Общие каталоги», нажимаем кнопку «Создать», в открывшемся окне вводим желаемое имя папки, путь к ней (она будет создана автоматически), выбираем отформатированный диск и меняем права доступа в соответствии со скриншотом ниже. Вы можете использовать более подходящие разрешения, например, открыть доступ к папке для всех пользователей в локальной сети, но помните, что это снижает уровень безопасности.

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

Финальным этапом настройки OMV станет включение сервиса SMB в соответствующем разделе, а также добавление созданной папки в разделе «Общие ресурсы». Там можно более детально настроить различные атрибуты папки, например, включить функцию Time Machine для создания бэкапов компьютеров на macOS или открыть гостевой доступ.

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

OpenMediaVault наполнена множеством других функций вроде уведомлений по почте, но их я сейчас затрагивать не буду и оставлю на рассмотрение конечному пользователю.

Подключение к NAS

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

На macOS и iOS подключение к файловому серверу максимально простое. В первом случае заходим в Finder, открываем вкладку «Сеть» на левой панели, выбираем устройство с IP-адресом NAS или же названием RASPBERRYPI, нажимаем Connect as и вводим логин/пароль пользователя SMB, которого создали ранее. На iOS же заходим в стандартное приложение Files, нажимаем на кнопку меню в правом верхнем углу, выбираем Connect to Server, вводим IP-адрес и логин/пароль пользователя SMB.

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

Для подключения к серверу с Android я использовал файловый менеджер MiXplorer. Там способ подключения абсолютно аналогичен представленным выше.

Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi
Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

На Windows нужно зайти в «Проводник», открыть вкладку «Сеть» на левой панели и выбрать компьютер с названием RASPBERRYPI. Если там он отсутствует, то следует нажать ПКМ на «Этот компьютер», выбрать пункт «Добавить новый элемент в сетевое окружение», в открывшемся окне вписать \\IP-адрес Raspberry\shared, при надобности ввести логин и пароль SMB-пользователя. Также можно подключить папку как сетевой диск. Для этого надо выбрать пункт «Добавить сетевой диск», нажав ПКМ на «Этот компьютер». Далее вписать \\IP-адрес Raspberry\shared и поставить галочку около пункта «Использовать другие учётные данные». После ввода логина и пароля аккаунта SMB, откроется доступ к сетевому хранилищу.

Leave a Comment