Превратите Raspberry Pi в сетевое хранилище
СДЕЛАЙ САМ

Превратите Raspberry Pi в сетевое хранилище

У вас есть пара внешних жестких дисков и Raspberry Pi? Сделайте из них дешевое сетевое устройство хранения данных с низким энергопотреблением. Хотя конечный результат, конечно, не будет таким впечатляющим, как NAS-устройство за 500 долларов, такое как Synology DiskStation, оно обеспечит вам маломощное сетевое хранилище – особенно полезное, если вы устали от того, что все ваши данные просматриваются любопытными глазами АНБ – вы можете спрятать его на чердаке

У вас есть пара внешних жестких дисков и Raspberry Pi? Сделайте из них дешевое сетевое устройство хранения данных с низким энергопотреблением. Хотя конечный результат, конечно, не будет таким впечатляющим, как NAS-устройство за 500 долларов, например Synology DiskStation, это даст вам маломощное сетевое хранилище – особенно полезно, если вы устали от того, что все ваши данные просматриваются любопытными глазами АНБ – вы можете спрятать его на чердаке

Конечно, вам понадобится Raspberry Pi и один или два запасных диска. Маленькие 2,5-дюймовые диски можно питать напрямую через USB, но нам понадобится концентратор с питанием, так как мощности USB-портов RPi для них недостаточно. В качестве альтернативы можно использовать флешку или даже SD-карту. На самом деле, сегодня я использовал смесь из жесткого диска USB и флешки, но процедура идентична

С одним диском вы все равно сможете создать общую сетевую область хранения, но с двумя вы сможете настроить избыточность данных на случай, если один из них выйдет из строя

Подготовьте диски

Начните с форматирования дисков в формате NTFS с рабочего стола. Это сделано для удобства, чтобы, если что-то пойдет не так, мы могли отключить их от NAS и по-прежнему считывать данные с любого ПК

Мы можем отформатировать их с Raspberry Pi, но это займет несколько часов и гораздо быстрее выполнить это с настольного компьютера. Сделаем это сейчас

Чтобы настроить SSH и включить пользователя root, сначала создайте пароль для пользователя root:

sudo -i

 

passwd root

(введите свой пароль)

Затем запустите скрипт raspi-config из командной строки, используя sudo или выйдя и снова войдя в систему под именем root. В меню дополнительных опций включите SSH

После перезапуска вы должны иметь возможность войти в систему с другой машины, подключенной к сети, используя (используйте Putty, если вы работаете под Windows)

SSH root@ IP address

После входа в систему определите, какие устройства являются вашими дополнительными дисками. Я предполагаю, что вы будете использовать два для резервирования данных. Тип

fdisk -l

чтобы перечислить подключенные устройства хранения данных. Вы должны увидеть что-то вроде этого

Разделы / dev/mmc – это операционная система Pi, mmc – SD-карта. Смущает то, что разделы /dev/sda1 и /dev/sdb1 на самом деле не имеют никакого отношения к SD-карте, это ваши подключенные USB-накопители.(Первоначально ‘устройство SCSI’, но теперь означает любое подключенное устройство SATA или устройство хранения)

Установите ntfs-3g для linux, чтобы мы могли получить доступ к дискам Windows, отформатированным в NTFS

apt-get install ntfs-3g

Затем создайте каталоги для использования в качестве точек монтирования, а затем смонтируйте диски. Здесь я буду придерживаться простоты и обозначу их как 1 и 2

mkdir /media/1

mkdir /media/2

mount -t auto /dev/sda1 /media/1

mount -t auto /dev/sdb1 /media/2

mkdir /media/1/shares

mkdir /media/2/shares

 

Самба

Далее мы настроим Samba.Samba – это протокол общего доступа к сети, используемый Windows (и новейшей OSX Mavericks)

apt-get install samba

apt-get install samba-common-bin

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

nano /etc/samba/smb.conf

Если вы не знакомы с подобными конфигурационными файлами, символ # в начале строки означает, что она закомментирована, и поэтому в данный момент не установлена или не настроена. Чтобы включить что-то, вы можете либо добавить новую строку, либо снять комментарий с существующей строки, чтобы сделать ее активной

Мы начнем с включения безопасности пользователя; нажмите CTRL-W и введите ‘security’, чтобы найти соответствующий раздел. Удалите символ # из строки, в которой говорится

security = user

Наконец, прокрутите страницу вниз (или удерживайте CTRL V , пока не дойдете до нее) и добавьте столько сетевых ресурсов, сколько вам нужно. Используйте следующий формат:

 test

comment = Test share

path = /media/1/shares

valid users = @users

force group = users

create mask = 0660

directory mask = 0771

read only = no

Хотя это относится только к первому смонтированному диску – мы будем синхронизировать его позже со вторым ресурсом для обеспечения избыточности

Когда все готово, нажмите CTRL X , а затем y , чтобы сохранить

Затем перезапустите Samba с помощью следующей команды

service samba restart

Теперь добавьте нового пользователя в Pi, предполагая, что вам не нужен тот же логин (замените ‘jamie’ на своего пользователя)

useradd jamie -m -G users

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

passwd jamie

Затем мы можем продолжить и добавить этого системного пользователя в Samba. Вам нужно будет подтвердить пароль еще раз, дважды

smbpasswd -a jamie

Теперь проверьте сетевой ресурс – он должен быть виден с других машин (Windows или Mac), и вы должны иметь возможность записывать на него файлы

Единственная проблема на этом этапе заключается в том, что при перезагрузке Pi диски будут размонтированы. Чтобы решить эту проблему, установите autofs

apt-get install autofs

nano /etc/auto.master

Добавьте следующую строку под +auto.master

/media/ /etc/auto.ext-usb --timeout=10,defaults,user,exec,uid=1000

Теперь вы должны иметь возможность безопасно перезагрузиться, не сломав все

Избыточность данных

Предположим, что вы установили два диска, теперь мы можем настроить автоматический скрипт для синхронизации данных с первого диска на второй, тем самым обеспечив резервное копирование на случай сбоя одного из них. Для этого мы будем использовать утилиту rsync

apt-get install rsync

crontab -e

Кронтаб в linux – это способ автоматизации задач; я кратко рассказывал о нем ранее, когда показывал, как автоматизировать резервное копирование сайта. Добавьте следующую строку:

30 5 * * * rsync -av --delete /media/1/shares /media/2/shares/

Схема нумерации используется следующим образом:

minute | hour | day-of-the-month | month | day-of-the-week

Итак, в нашей новой добавленной строке команда rsync будет выполняться в 5:30 утра , каждый день (подстановочный знак * означает ‘каждый’, поэтому ‘каждый день каждого месяца’)

Если вы хотите сразу запустить резервное копирование, просто вставьте команду rsync следующим образом

rsync -av --delete /media/1/shares /media/2/shares/

В зависимости от того, что вы поместили в общую папку, отчет может занять несколько секунд или больше. Замечательная особенность rsync в том, что он знает, какие файлы обновляются, добавляются или должны быть удалены. Попробуйте выполнить ту же команду еще раз. Она должна завершиться мгновенно, потому что она знает, что ничего не изменилось

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

У вас возникли проблемы? Сообщите нам об этом в комментариях, и я посмотрю, что можно сделать, но, пожалуйста, убедитесь, что вы используете последнюю версию образа Raspian

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий