Смешайте один Raspberry Pi и несколько дешевых внешних жестких дисков, и вы получите рецепт сверхнизкого энергопотребления и постоянно включенного сетевого устройства хранения. Читайте дальше, поскольку мы покажем вам, как настроить собственное NAS на базе Pi.
Почему я хочу это сделать?
Преимущество постоянного сетевого запоминающего устройства заключается в том, что ваши данные (или место назначения резервных копий) всегда доступны для компьютеров как внутри, так и за пределами вашей сети. Обратной стороной является то, что в большинстве случаев вы потребляете изрядное количество энергии для удобства.
Например, наш офисный сервер работает круглосуточно и без выходных, потребляя электроэнергии почти на 200 долларов в год. С другой стороны, сетевое запоминающее устройство на базе Raspberry Pi потребляет электроэнергии на сумму около 5 долларов в год.
Мы первыми сообщим вам, что на полноценном сервере будет больше места для хранения данных и возможность выполнять больше работы (например, перекодировать многотерабайтную коллекцию видео за разумный промежуток времени). Однако для большинства людей основная цель наличия постоянно включенного компьютера где-нибудь в доме - служить файловым сервером и хранилищем резервных копий файлов. Для таких задач Raspberry Pi более чем достаточно мощен и избавит вас от значительных изменений в энергопотреблении.
Что мне нужно?
Это руководство основано на нашем предыдущем руководстве: Руководство HTG по началу работы с Raspberry Pi и мы предполагаем, что вы это уже выполнили - другими словами, у вас уже есть Raspberry Pi, он включен, подключен к мыши и клавиатуре, и вы установили на нем Raspbian.
В дополнение к оборудованию, которое вам понадобится из учебника по началу работы с Raspberry Pi, у вас будет только следующее оборудование:
- Один (как минимум) внешний жесткий диск USB для простого резервного копирования по сети и обслуживания файлов
или
- Два (минимум) внешних жестких диска USB для локального резервирования данных
Это оно! Если вам нужен простой сетевой диск, вам понадобится только один жесткий диск. Мы настоятельно рекомендуем использовать как минимум два жестких диска, чтобы обеспечить локальную (на Raspberry Pi) избыточность данных. Для целей этого руководства мы используем соответствующую пару Портативные внешние жесткие диски Seagate Backup Plus емкостью 1 ТБ . Они очень маленькие, не требуют внешнего источника питания и продавались, когда мы покупали запчасти.
Вы можете использовать любые внешние жесткие диски, которые у вас есть под рукой, но по возможности лучше всего использовать небольшие диски с низким энергопотреблением, так как вся цель проекта - создать крошечный и маломощный NAS, который вы можете просто убрать с дороги и забудь.
Прежде чем мы продолжим, есть несколько вариантов дизайна, которые мы сделали с точки зрения настройки нашего NAS Raspberry Pi, о которых вам следует знать. Хотя большинство пользователей захотят повторить то же, что и мы, вы можете настроить конкретные шаги, чтобы они лучше соответствовали вашим потребностям и способам использования компьютеров в сети.
Во-первых, мы используем жесткие диски в формате NTFS. Если по какой-либо причине Raspberry Pi NAS выйдет из строя или мы хотим быстро копировать информацию через соединение USB 3.0, а не через сеть, наличие дисков в формате NTFS значительно упрощает перенос портативных USB-накопителей, которые мы используем в сборке NAS, и подключать их прямо к одной из многих Windows машины, которыми мы пользуемся каждый день.
Во-вторых, мы используем Samba для общих сетевых ресурсов, опять же из-за удобства объединения Raspberry Pi NAS с нашей преимущественно сетью Windows.
Подготовка и установка внешних жестких дисков
После того, как вы собрали оборудование и следуете руководству по началу работы с Raspberry Pi, чтобы набрать скорость (и запустить Raspian), самое время начать настройку вашего Pi в качестве NAS.
Первым делом необходимо подключить жесткие диски к Raspberry Pi (или к подключенному USB-концентратору, в зависимости от вашей конфигурации и независимо от того, имеют ли жесткие диски автономное питание или внешнее питание). Как только жесткие диски подключены и Pi включен, пора приступать к работе.
Примечание: Мы используем два жестких диска. Если вы решили использовать только один жесткий диск, просто проигнорируйте все команды в этом разделе, предназначенные для монтирования / изменения или иного взаимодействия со вторым жестким диском.
Мы собираемся выполнять всю нашу работу в терминале. Таким образом, вы можете либо работать непосредственно на своем Raspberry Pi, используя LXTerminal в Raspian, либо вы можете подключиться к Raspberry Pi по SSH с помощью такого инструмента, как Putty. В любом случае это хорошо.
Как только вы войдете в командную строку, первое, что вам нужно сделать, это добавить поддержку Rasbian для дисков в формате NTFS. Для этого введите следующую команду:
sudo apt-get install ntfs-3g
Скачивание, распаковка и установка пакетов займет минуту или две. После того, как пакет NTFS установлен, пора поискать отключенные разделы подключенных внешних жестких дисков.
sudo fdisk -l
Как минимум, вы должны увидеть два диска, если вы добавили дополнительный диск для зеркалирования данных (как у нас), вы должны увидеть три таких:
Первый диск
/ dev / mmcb1k0
это SD-карта внутри Raspberry Pi, на которой находится наша установка Raspbian. Мы собираемся оставить его в покое.
Второй диск,
/ dev / sda
это наш первый внешний жесткий диск емкостью 1 ТБ. Третий диск,
/ dev / sdb
это наш второй внешний жесткий диск емкостью 1 ТБ. Фактические разделы, которые нас интересуют на этих двух дисках:
/сда1/
а также
/ sdb1 /
соответственно. Запишите имена жестких дисков.
Прежде чем мы сможем смонтировать диски, нам нужно создать каталог для монтирования дисков. Для простоты мы просто создадим каталог под названием USBHDD1 и USBHDD2 для каждого диска. Сначала нужно сделать диски. В командной строке введите следующие команды:
судо mkdir / носитель / USBHDD1судо mkdir / носитель / USBHDD2
После того как вы создали два каталога, пора смонтировать внешние диски в каждое место. Снова в командной строке введите следующие команды:
sudo mount -t auto / dev / sda1 / media / USBHDD1sudo mount -t авто / dev / sdb1 / media / USBHDD2
На данный момент у нас есть два внешних жестких диска, подключенных к каталогам USBHDD1 и USBHDD2 соответственно. Пришло время добавить к обоим дискам определенный каталог для хранения наших общих папок (для поддержания порядка и разделения нашей работы с дисками). Введите следующие команды:
sudo mkdir / media / USBHDD1 / общие ресурсыsudo mkdir / media / USBHDD2 / общие ресурсы
Пришло время установить Samba, чтобы мы могли получить доступ к хранилищу из любого места в сети. В командной строке введите:
sudo apt-get install samba samba-common-bin
Когда будет предложено продолжить, введите Y и введите. Устройтесь поудобнее и расслабьтесь, пока все распаковывается и устанавливается. После завершения установки пакета Samba самое время выполнить небольшую настройку. Прежде чем делать что-либо еще, давайте сделаем резервную копию файла конфигурации Samba на случай, если нам потребуется вернуться к нему. В командной строке введите следующую командную строку:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
Это просто создает резервную копию файла конфигурации с именем smb.conf.old и оставляет ее в том же каталоге, что и исходный файл конфигурации.
После того, как мы создали резервную копию, пришло время внести основные изменения в файл конфигурации Samba. Введите в командной строке следующее:
Судона / Etc / Samba / smb. Кон ф
Это откроет текстовый редактор nano и позволит нам внести некоторые простые изменения. Если вы впервые используете nano, мы настоятельно рекомендуем проверить Руководство для начинающих по Nano, текстовому редактору командной строки Linux . В окне терминала вы должны увидеть что-то вроде следующего:
Nano полностью управляется клавиатурой, используйте клавиши со стрелками, чтобы переместить курсор в то место, которое вы хотите отредактировать. По мере того, как вы нажимаете на настройки конфигурации, вы увидите некоторые из них, которые стоит отметить или изменить.
Первый - это идентификатор рабочей группы, по умолчанию рабочая группа = WORKGROUP. Если вы используете другое имя для домашней рабочей группы, перейдите вперед и перейдите к нему, чтобы изменить его сейчас, в противном случае оставьте его по умолчанию.
Наша следующая остановка - включить аутентификацию пользователей для нашего хранилища samba, иначе любой, кто имеет общий доступ к нашей сети (например, гостевые пользователи Wi-Fi), сможет войти прямо в него. Прокрутите файл конфигурации Samba вниз, пока не дойдете до раздел, который гласит:
Удалите символ # из строки security = user (выделив его курсором и нажав delete), чтобы включить проверку имени пользователя / пароля для общих ресурсов Samba.
Затем мы собираемся добавить совершенно новый раздел в файл конфигурации. Прокрутите до самого низа файла и введите следующий текст:
[Backup]
comment = Резервная папка
путь = / media / USBHDD1 / share
допустимые пользователи = @users
force group = users
создать маску = 0660
маска каталога = 0771
только чтение = нет
Запись : Все, что вы поместите в скобки в верхней строке, будет именем папки, которое отображается в общей сетевой папке. Если вам нужно другое имя, кроме «Резервное копирование», сейчас самое время его отредактировать.
Нажмите CTRL + X, чтобы выйти, нажмите Y, когда вас спросят, хотите ли вы сохранить изменения и перезаписать существующий файл конфигурации. Вернувшись в командную строку, введите следующую команду для перезапуска демонов Samba:
sudo /etc/init.d/samba перезапуск
На этом этапе нам нужно добавить пользователя, который может получить доступ к общим ресурсам самбы Pi. Мы собираемся создать учетную запись с резервными копиями имен пользователей и паролей4ever. Вы можете указать любое имя пользователя и пароль. Для этого введите следующие команды:
sudo useradd backups -m -G пользователиsudo passwd резервные копии
Вам будет предложено дважды ввести пароль для подтверждения. После подтверждения пароля пора добавить «резервные копии» в качестве законного пользователя Samba. Введите следующую команду:
sudo smbpasswd -a резервные копии
При появлении запроса введите пароль для учетной записи резервного копирования. После того как вы создали учетную запись пользователя и пароль, вам не нужно снова перезапускать демон Samba, поскольку мы уже проинструктировали его, чтобы он был начеку для аутентифицированных пользователей. Теперь мы можем подключиться к любой машине с поддержкой Samba в нашей сети и протестировать подключение к общему сетевому ресурсу.
На соседнем компьютере с Windows мы открыли проводник файлов Windows, щелкнули по сети, подтвердили, что имя хоста RASPBERRYPI находится в рабочей группе WORKGROUPS, и щелкнули по общей папке Backups:
При появлении запроса введите учетные данные, которые вы создали на предыдущем шаге (если вы следуете строчка за строчкой, логин будет резервным, а пароль - резервным).
Как только ваши учетные данные будут приняты, вы перейдете в пустую папку, поскольку в общей папке еще ничего нет. Чтобы еще раз убедиться, что все работает нормально, давайте создадим простой файл на компьютере, с которым мы тестировали соединение (в нашем случае - на рабочем столе Windows 7). Создайте такой текстовый файл:
Теперь, из командной строки, с которой мы работали все это время, давайте проверим, правильно ли отображается файл, который мы создали на рабочем столе Windows, в созданном нами общем каталоге. В командной строке введите следующую команду:
cd / media / USBHDD1 / общие ресурсыls
hello-is-it-me-you-are-looking-for.txt находится в каталоге; Наш простой эксперимент с общим каталогом удался!
Прежде чем мы покинем этот раздел руководства, нам нужно сделать еще кое-что. Нам нужно настроить наш Pi так, чтобы при перезапуске он автоматически монтировал внешние жесткие диски. Для этого нам нужно запустить редактор nano и сделать быстрое редактирование. В командной строке введите:
судо нано / и т. д. / fstab
Это откроет таблицу файловых систем в nano, чтобы мы могли добавить несколько быстрых записей. В редакторе nano добавьте следующие строки:
/ dev / sda1 / media / USBHDD1 автоматическое уведомление 0 0/ dev / sda2 / media / USBHDD2 автоматическое уведомление 0 0
Нажмите CTRL + X для выхода, нажмите Y, чтобы сохранить и перезаписать существующий файл.
Если вы используете только один жесткий диск для простого сетевого доступа без избыточности, то это все! Вы закончили настройку и можете приступить к работе с NAS со сверхнизким энергопотреблением.
Настройка сетевого хранилища Raspberry Pi для простого резервирования данных
Пока что наш Raspberry Pi NAS подключен к сети, передача файлов работает, но не хватает одной вопиющей вещи. Этот дополнительный жесткий диск настроен, но полностью простаивает.
В этом разделе руководства мы собираемся использовать два простых, но мощных инструмента Linux, rsync и cron, чтобы настроить наше сетевое хранилище Raspberry Pi для выполнения ночного зеркалирования данных из папки / share / на основном диске в / share /. папку на дополнительном диске. Это не будет зеркальное отображение данных в режиме реального времени, подобное RAID, но ежедневное (или полу-ежедневное) резервное копирование данных на дополнительный диск - отличный способ добавить еще один уровень безопасности данных.
Во-первых, нам нужно добавить rsync в нашу установку Rasbian. Если вы впервые используете rsync и хотите получить более полное представление о команде, рекомендуем ознакомиться с Как использовать rsync для резервного копирования ваших данных в Linux .
В командной строке введите следующую команду:
sudo apt-get install rsync
После установки rsync пора настроить задание cron для автоматизации процесса копирования файлов с USBHDD1 на USBHDD2. В командной строке введите следующую команду:
crontab -e
Команда откроет вашу таблицу расписания cron в текстовом редакторе nano, который должен быть вам довольно знаком на этом этапе обучения. Прокрутите вниз до конца документа и введите следующую строку:
0 5 * * * rsync -av --delete / media / USBHDD1 / share / media / USBHDD2 / share /
Эта команда указывает, что каждый день в 5:00 (часть 0 5), каждый день (* * *, символы года, месяца, дня), мы хотим, чтобы rsync сравнивал два каталога, копируя все с HDD1. на HDD2 и удалив в резервном каталоге все, что больше не соответствует чему-то в основном каталоге, т.е. если у нас есть файл фильма на HDD1, который мы удаляем, мы также хотим, чтобы этот файл был удален из резервной копии при следующей синхронизации.
Важной частью настройки этой команды является то, что вы выбираете время, которое не мешает никакой другой сетевой активности в общих папках, которые вы, возможно, запланировали. Например, если вы используете свой Raspberry Pi NAS в качестве места назначения резервного копирования для какого-то автоматизированного программного обеспечения, которое копирует ваши файлы на NAS каждое утро в 5 часов утра, вам необходимо либо настроить время резервного копирования в своем программном обеспечении для резервного копирования, либо вам нужно чтобы настроить время для задания cron на Pi, но у вас не может быть одновременно удаленной резервной копии, сбрасывающей данные в общий сетевой ресурс, и Raspberry Pi, пытающегося синхронизировать эти данные между локальными дисками одновременно.
После того, как вы ввели запись crontab, нажмите CTRL + X, чтобы выйти и сохранить файл. Если вы хотите запустить rsync немедленно, чтобы ускорить зеркальное отображение данных и облегчить начальную задачу cron в системе, введите ту же команду rsync, которую вы вводите в crontab в командной строке, например:
rsync -av --delete / media / USBHDD1 / share / media / USBHDD2 / share /
Это оно! Все, что вам нужно сделать на этом этапе, - это проверить свой Raspberry Pi на следующий день или два, чтобы убедиться, что запланированное задание запускается, как ожидалось, и данные из
/ USBHDD1 / акции /
появляется в
/ USBHDD2 / акции /
.
С этого момента все, что вы помещаете в свой NAS на базе Raspberry Pi, будет ежедневно зеркалироваться на обоих жестких дисках.
Прежде чем мы полностью оставим тему, вот несколько дополнительных статей с практическими рекомендациями, которые вы, возможно, захотите проверить, чтобы добавить больше возможностей вашему новому NAS на базе Raspberry Pi:
- Как сделать резервную копию вашей учетной записи Gmail с помощью ПК с Ubuntu - хотя инструкции предназначены для Ubuntu, вы можете легко изменить тему для Raspbian, чтобы превратить Pi NAS в машину для автоматического резервного копирования электронной почты.
- Какие файлы следует резервировать на ПК с Windows? - Если вы не уверены, какие файлы следует копировать на NAS, это хорошее место для начала.
- Как удаленно сделать резервную копию ваших данных бесплатно с помощью CrashPlan — CrashPlan - это бесплатное приложение для резервного копирования, доступное для машин Windows, Mac и Linux, которое упрощает планирование регулярного резервного копирования на NAS.
У вас есть проект Raspberry Pi, которым вы бы хотели, чтобы мы его реализовали? Большой или маленький, мы любим поиграть с Pi - не говорите в комментариях о своих идеях.