У вас есть пара внешних жестких дисков и 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
Комментировать