Создать сетевое хранилище для дома можно самому. Всё, что для этого нужно — Raspberry Pi, накопитель и немного свободного времени СТАТЬИ FAQ |
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/ifiles/1414732_2666ab_nas2-min.png_min1/nas-via-raspberry-pi-29.png?w=640&ssl=1)
Домашний NAS — пожалуй, лучшее решение для хранения ценных данных и обмена ими в локальной сети. Грубо говоря, это подключенный к Интернету компьютер с несколькими дисками и специальным программным обеспечением. Проблема лишь в том, что готовые устройства, предназначенные специально для этого, стоят недёшево — цены на них начинаются от 10 тысяч рублей, и это без учёта самих накопителей. Конечно, можно собрать обычный ПК из б/у-компонентов — это даже выйдет дешевле, но он будет слишком шумным и неэнергоэффективным для сервера, работающего 24/7. Компактный одноплатный компьютер Raspberry Pi подойдет как нельзя кстати для создания сетевого хранилища с одним или несколькими дисками. Разумеется, речь идёт не о серьёзных решениях с десятками больших накопителей.
⚠️ Те участки команд, которые вы должны будете заменить на свои значения, выделены жирным.
Содержание
Что для этого нужно
Подготовка ОС
Быстрая настройка через терминал (для опытных пользователей)
Лёгкая настройка с OpenMediaVault (для неопытных пользователей)
Подключение к NAS
Что для этого нужно
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374350_d941de/pxl_20210117_112704602.mp_original.jpg_min.jpg?w=640&ssl=1)
Для сборки 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](https://i0.wp.com/trashbox.ru/files/1411258_924647/termius_16.01.2021_21.00.22.png?w=640&ssl=1)
Команда 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](https://i0.wp.com/trashbox.ru/files/1374031_98bd09/termius_16.01.2021_22.33.56.png?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374032_4b62d6/termius_16.01.2021_23.27.20.png?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374033_60464c/termius_16.01.2021_23.28.34.png?w=640&ssl=1)
С одним обычным диском процесс монтирования будет чуть проще, но в целом, он аналогичен описанному выше методу.
Создаём точку монтирования.
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](https://i0.wp.com/trashbox.ru/files/1374296_9552a9/termius_16.01.2021_23.48.33.png?w=640&ssl=1)
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](https://i0.wp.com/trashbox.ru/files/1376578_a78ec8/chrome_19.01.2021_09.14.45.png_min.jpg?w=640&ssl=1)
Для доступа к веб-панели приложения необходимо узнать новый IP-адрес микрокомпьютера. Сделать это можно через панель управления роутером. Рекомендую там же сменить тип IP-адреса Rasbperry с динамического на статический.
Далее надо вставить найденный IP в адресную строку браузера и перейти. На открывшейся странице вводим логин adminи пароль openmediavault — это откроет доступ к множеству настроек.
Первым делом заходим в раздел «Общие настройки» и во вкладке «Пароль Web Администратора» меняем стандартный openmediavault на свой безопасный пароль, который будет использоваться для доступа к веб-панели. Не забываем подтверждать любое изменение кнопкой «Сохранить».
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1376721_51eb9b/chrome_19.01.2021_13.14.00.png_min.jpg?w=640&ssl=1)
Далее в разделе «Пользователи» создаём нового пользователя nas. Пишем надёжный пароль и добавляем созданный аккаунт в группы adm, backup, sambashare, ssh, sudo, users. Сохраняем текущую конфигурацию. Эти данные будем использовать для подключения по SSH и использования сетевой папки.
Самая важная часть конфигурации: форматирование накопителя и создание сетевой папки. Сразу обращу внимание на то, что OpenMediaVault не даёт возможности собрать RAID-массив из подключенных по USB дисков, аргументируя это низкой надёжностью.
Для начала перейдите в раздел «Диски», выберите диск, который будете использовать, нажмите «Стереть». В открывшемся окне нажмите кнопку «Быстро». После успешной очистки накопителя закройте окно и перейдите во вкладку «Файловые системы». Нажмите «Создать», в выпадающем меню выберите только что очищенный накопитель, в поле «Метка» введите желаемое название (в моём случае data), подтвердите выбор. Форматирование может занять несколько минут.
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1376589_6a2c50/chrome_19.01.2021_10.16.21.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1376590_af81f9/chrome_19.01.2021_10.21.39.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1376596_3b6ddb/chrome_19.01.2021_11.26.01.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1376597_94e048/chrome_19.01.2021_11.26.48.png_min.jpg?w=640&ssl=1)
Когда устройство будет готово, нажмите «Монтировать», после чего сохраните конфигурацию. Переходим во вкладку «Общие каталоги», нажимаем кнопку «Создать», в открывшемся окне вводим желаемое имя папки, путь к ней (она будет создана автоматически), выбираем отформатированный диск и меняем права доступа в соответствии со скриншотом ниже. Вы можете использовать более подходящие разрешения, например, открыть доступ к папке для всех пользователей в локальной сети, но помните, что это снижает уровень безопасности.
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1376612_cac007/chrome_19.01.2021_11.32.26.png_min.jpg?w=640&ssl=1)
Финальным этапом настройки OMV станет включение сервиса SMB в соответствующем разделе, а также добавление созданной папки в разделе «Общие ресурсы». Там можно более детально настроить различные атрибуты папки, например, включить функцию Time Machine для создания бэкапов компьютеров на macOS или открыть гостевой доступ.
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1376624_7bd508/chrome_19.01.2021_11.40.04.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1376625_162170/chrome_19.01.2021_11.40.44.png_min.jpg?w=640&ssl=1)
OpenMediaVault наполнена множеством других функций вроде уведомлений по почте, но их я сейчас затрагивать не буду и оставлю на рассмотрение конечному пользователю.
Подключение к NAS
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374314_a1a5dd/screenshot_2021-01-17_at_01.51.41.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374315_308e77/screenshot_2021-01-17_at_01.52.40.png_min.jpg?w=640&ssl=1)
На macOS и iOS подключение к файловому серверу максимально простое. В первом случае заходим в Finder, открываем вкладку «Сеть» на левой панели, выбираем устройство с IP-адресом NAS или же названием RASPBERRYPI, нажимаем Connect as и вводим логин/пароль пользователя SMB, которого создали ранее. На iOS же заходим в стандартное приложение Files, нажимаем на кнопку меню в правом верхнем углу, выбираем Connect to Server, вводим IP-адрес и логин/пароль пользователя SMB.
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374313_8aa8a9/png_image_1.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374308_471cd9/png_image_2.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374309_1c11c1/png_image_3.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374310_8eccda/png_image_4.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374311_4ea180/png_image_5.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374297_b3295e/screenshot_20210117-015403_mixplorer.jpg_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374298_b374df/screenshot_20210117-015451_mixplorer.jpg_min.jpg?w=640&ssl=1)
Для подключения к серверу с Android я использовал файловый менеджер MiXplorer. Там способ подключения абсолютно аналогичен представленным выше.
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374325_4b2608/explorer_17.01.2021_12.14.17.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374326_c07249/explorer_17.01.2021_12.14.51.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374327_731a5a/explorer_17.01.2021_12.15.21.png_min.jpg?w=640&ssl=1)
![Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi](https://i0.wp.com/trashbox.ru/files/1374328_8446df/explorer_17.01.2021_12.15.28.png_min.jpg?w=640&ssl=1)
На Windows нужно зайти в «Проводник», открыть вкладку «Сеть» на левой панели и выбрать компьютер с названием RASPBERRYPI. Если там он отсутствует, то следует нажать ПКМ на «Этот компьютер», выбрать пункт «Добавить новый элемент в сетевое окружение», в открывшемся окне вписать \\IP-адрес Raspberry\shared, при надобности ввести логин и пароль SMB-пользователя. Также можно подключить папку как сетевой диск. Для этого надо выбрать пункт «Добавить сетевой диск», нажав ПКМ на «Этот компьютер». Далее вписать \\IP-адрес Raspberry\shared и поставить галочку около пункта «Использовать другие учётные данные». После ввода логина и пароля аккаунта SMB, откроется доступ к сетевому хранилищу.