Оглавление:

2 Raspberry Pis для простого и дешевого удаленного RAID: 19 шагов
2 Raspberry Pis для простого и дешевого удаленного RAID: 19 шагов

Видео: 2 Raspberry Pis для простого и дешевого удаленного RAID: 19 шагов

Видео: 2 Raspberry Pis для простого и дешевого удаленного RAID: 19 шагов
Видео: Как настроить домашнюю сеть с сетевым хранилищем Raspberry Pi 2 и синхронизацией данных 2024, Ноябрь
Anonim
2 Raspberry Pis для простого и дешевого удаленного RAID
2 Raspberry Pis для простого и дешевого удаленного RAID
2 Raspberry Pis для простого и дешевого удаленного RAID
2 Raspberry Pis для простого и дешевого удаленного RAID

Цель

  1. В случае домашнего инцидента я хочу иметь возможность восстановить свои основные цифровые документы (фотографии, документы, удостоверяющие личность и т. Д.) И, при желании, поделиться ими.
  2. Я хочу поделиться этим решением с кем-то еще (с кем-то, кому я доверяю, родителями или другом)
  3. Я не хочу зависеть от общедоступного облака (подписка, сборы, развивающиеся GTC и т. Д.)

Принцип

  1. Создайте 2 одинаковые складские машины, поместите их в 2 разных места (например, 2 дома).
  2. Назначьте выделенное пространство для хранения для каждого места на каждой машине.
  3. Регулярно синхронизируйте 2 места для хранения.

Запасы

Аппаратное обеспечение

В каждой машине есть:

  • 1x Raspberry Pi 4 B 1 ГБ
  • 1x коробка для Raspberry Pi 4
  • 1x блок питания USB C 5V 3A
  • 1x SD-карта Kingston SDC10 / 16 ГБ
  • 1x NAS HDD 1 для WD Red Mobile
  • 1x HDD бокс BX-2525U3

Программное обеспечение Windows

  • BalenaEtcher
  • Рабочий стол Raspbian buster full
  • Mobaxterm
  • Программа просмотра VNC (необязательно)

Пакеты Raspbian

  • Rsync
  • самба

Шаг 1. Плюсы и минусы

Плюсы и минусы
Плюсы и минусы

Преимущества

  1. Это дешевое решение: у меня нет абонентской платы, а оборудование доступно.
  2. Этот «удаленный RAID» сделать довольно просто. Для этого мне не нужны дополнительные материалы или инструменты.
  3. Raspberry Pi можно использовать для дополнительных приложений, таких как медиацентр (kodi,…) или домотик (jeedom, domoticz,…).
  4. Мои данные недоступны в общедоступном облаке, которое может стать целью массового пиратства данных.
  5. При использовании жесткого диска 1To среднее потребление электроэнергии такое же, как в облаке.
  6. Брандмауэр моего маршрутизатора и шифрование SSH моего соединения обеспечивают безопасность обмена данными.

Недостатки / улучшения

  1. У кого-то есть копия моих документов. В моем случае этот человек из моей семьи, поэтому мне все равно.
  2. Я использую учетную запись «пи» по умолчанию с выделенным паролем для обеих машин. Я мог бы защитить доступ немного больше, используя отдельную учетную запись на каждой стороне, а не учетную запись «пи».
  3. Я полагаюсь на своего интернет-провайдера и шифрование SSH для безопасности соединения между двумя домами. Можно провести исследования для повышения уровня безопасности.
  4. На данный момент я сделал только 2 раздела на диск. Третий раздел меньшего размера (~ 5Go) может быть полезен для других операций с Raspbian, чтобы сохранить карту µSD.

Шаг 2: Подготовьте SD: Загрузите Raspbian

С компьютера (в моем случае Windows 10) следуйте официальному руководству по установке (https://www.raspberrypi.org/downloads/raspbian/), чтобы установить «Raspbian Buster с рабочим столом».

Добавьте пустой файл с именем "ssh" на диск "/ boot /"

Добавьте файл с именем "wpa_supplicant.conf" на диск "/ boot /"

Откройте wpa_supplicant.conf и введите текст:

страна = США

ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "MyWiFiNetwork" psk = "aVeryStrongPassword" key_mgmt = WPA-PSK}

Сохраните и закройте файл.

Шаг 3: Подготовьте SD: Настройте карту

Подготовьте SD: настройте карту
Подготовьте SD: настройте карту

Добавьте пустой файл с именем "ssh" на диск "/ boot /"

Добавьте файл с именем "wpa_supplicant.conf" на диск "/ boot /"

Откройте wpa_supplicant.conf и введите текст:

страна = США

ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "MyWiFiNetwork" psk = "aVeryStrongPassword" key_mgmt = WPA-PSK}

Сохраните и закройте файл.

Шаг 4: подготовьте Raspberry Pi

Вставьте SD-карту в Pi

Включите Raspberry Pi, выберите способ открытия рабочего стола:

  1. Использование кабеля HDMI, экрана, клавиатуры и мыши
  2. Использование VNC с вашего компьютера.

Для получения дополнительной информации посетите

Шаг 5: Способ 1: подключитесь к Pi с помощью экрана, клавиатуры, мыши

Способ 1: подключение к Pi с помощью экрана, клавиатуры, мыши
Способ 1: подключение к Pi с помощью экрана, клавиатуры, мыши
Способ 1: подключитесь к Pi с помощью экрана, клавиатуры, мыши
Способ 1: подключитесь к Pi с помощью экрана, клавиатуры, мыши

Подключите порт HDMI0 Raspberry Pi к экрану с помощью кабеля micro-hdmi-hdmi.

Подключите USB-клавиатуру и мышь (или беспроводную мини-клавиатуру, такую как "Rii Mini i8 Wireless")

Подключите блок питания USB C и включите Raspberry Pi.

Raspbian запустится на вашем экране.

Когда появится рабочий стол, ответьте на панель конфигурации, чтобы завершить настройку вашего Pi.

Шаг 6: Способ 2: подключитесь к Pi с помощью VNC с вашего компьютера

Способ 2: подключитесь к Pi с помощью VNC с вашего компьютера
Способ 2: подключитесь к Pi с помощью VNC с вашего компьютера
Способ 2: подключитесь к Pi с помощью VNC с вашего компьютера
Способ 2: подключитесь к Pi с помощью VNC с вашего компьютера
Способ 2: подключитесь к Pi с помощью VNC с вашего компьютера
Способ 2: подключитесь к Pi с помощью VNC с вашего компьютера

Подключите Raspberry Pi к вашей сети Ethernet (по Wi-Fi или с помощью кабеля).

На вашем компьютере откройте Mobaxterm (или putty), запустите новое ssh-соединение (логин pi, пароль raspberry) и настройте свой Pi:

ssh pi @ raspberry_ip

sudo raspi-config

  • в опции интерфейса / VNC: установите Да
  • в Дополнительные параметры / Разрешение: установите режим DMT 82 1920x1080 60 Гц 16: 9
  • в Advanced options / GL driver: установите G1 Legacy Original без GL настольный диск

Сохраните и выйдите из raspi-config

Перезагрузите Pi:

перезагрузка sudo

На вашем компьютере откройте VNC Viewer и подключитесь к Pi, используя логин pi, пароль raspberry: должен появиться рабочий стол Pi.

Ответьте на панель конфигурации, чтобы завершить настройку вашего Pi.

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

Шаг 7: подготовьте жесткий диск

Подготовьте жесткий диск
Подготовьте жесткий диск
Подготовьте жесткий диск
Подготовьте жесткий диск
  1. Подключите жесткий диск к компьютеру.
  2. Откройте диспетчер разделов Windows, выберите жесткий диск и создайте 2 раздела NTFS (или 3, если вам нужно небольшое свободное место для хранения карты µSD). Например, я называю 2 части «loic» и «vincent».
  3. Подключите жесткий диск к Pi: Raspbian должен автоматически смонтировать 2 диска на рабочем столе. Диски связаны с папкой / media / pi / loic / и / media / pi / vincent /

Шаг 8: Настройте Rsync: создайте сценарий синхронизации

Настроить Rsync: создать сценарий синхронизации
Настроить Rsync: создать сценарий синхронизации

открыть приглашение на рабочем столе Pi

В / home / pi / создайте скрипт:

mkdir / home / pi / scriptsnano / home / pi / scripts / SB_sync

введите текст:

#! / bin / sh

######## КОНФИГУРАТОР ########### ip_distante = "192.168.0.19" port_distant = "xxxxx" media_local = "/ media / pi / loic" media_distant = "pi @ $ { ip_distante}: / media / pi / loic "machine_locale =" RPi4_loic "machine_distante =" RPi4_vincent "############################ ## log_local = "/ home / pi / SB_sync_logs" log_distant = "pi @ $ {ip_distante}: / home / pi / SB_sync_logs" currentDate = `date +"% Y-% m-% d% T "` mkdir -p / home / pi / SB_sync_logs #synchro de $ {machine_locale} $ {media_local} / vers $ {machine_distante} $ {media_distant} / echo $ currentDate> $ {log_local} /0.synchro_en_cours _ $ {machine_locale} _vers _ $ {machine_distante} Синхронизация в процессе: $ {machine_locale} $ {media_local} / vers $ {machine_distante} $ {media_distant} / ">> $ {log_local} /0.synchro_en_cours _ $ {machine_locale} _vers _ $ {machine_distante} $ {machine_distante} $ { media_distant} / ">> $ {log_distant} /0.synchro_en_cours _ $ {machine_locale} _vers _ $ {machine_distante} echo" Compte `whoami`"> $ {log_local} / 1. $ {machine_locale} _vers _ $ {machine_distante}.log echo "--------- -Début: "` date + "% Y-% m-% d% T" `" ---------- ">> $ {log_local} / 1. $ {Machine_locale} _vers _ $ {machine_distante}.log / usr / bin / rsync -avhPS --chmod = a + rwx --delete -e "ssh -p $ {port_distant}" $ {media_local} / $ {media_distant} / 2> & 1 >> $ {log_local} /1.${machine_locale}_vers_${machine_distante}.log

echo "---------- Fin:" `date +"% Y-% m-% d% T "` "----------" >> $ {log_local} / 1. $ {machine_locale} _vers _ $ {machine_distante}.log

rm $ {log_local} /0.synchro_en_cours _ $ {machine_locale} _vers _ $ {machine_distante}

Настройте строки с 3 по 7:

  • замените "loic" и "vincent" на имя вашего диска
  • port_distant: сейчас используйте 22 как удаленный порт. На последнем шаге вам нужно будет заменить его другим значением по вашему выбору (например, 34567).

сохраните файл и выйдите.

Шаг 9: Настройте Rsync: выполняйте синхронизацию один раз в день

В командной строке откройте crontab:

sudo crontab -u pi -e

в конце файла добавьте cron:

0 1 * * * / usr / bin / flock -xn /tmp/flocktmp.lock -c "/ home / pi / scripts / SB_sync"

В этом cron скрипт SB_sync будет запускаться каждый день в 1:00. Выберите желаемый час, но измените его между двумя машинами, чтобы 2 синхронизатора выполнялись один за другим.

Сохраните и закройте файл.

Шаг 10: подготовьте Samba

Samba подключает хранилище Linux к сети Windows.

Откройте приглашение и установите пакеты:

sudo apt-get install samba samba-common-bin -y

Авторизуйте учетную запись «pi» для доступа к Samba:

sudo smbpasswd -a pi

Сохраните файл конфигурации Samba по умолчанию:

cp /etc/samba/smb.conf /etc/samba/smb.old

Откройте файл:

судо нано /etc/samba/smb.conf

И в конце файла добавьте эти строки, чтобы настроить общий доступ к диску:

[ДОКУМЕНТЫ]

comment = NAS de loic path = / media / pi / loic допустимые пользователи = @users force group = users create mask = 0660 directory mask = 0775 read only = no browseable = yes public = yes

Сохраните файл и выйдите.

Шаг 11: [Необязательно] Samba: настройте доступ для чтения к сетевому диску Винсент

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

судо нано /etc/samba/smb.conf

И в конце файла добавьте эти строки, чтобы настроить другой диск, к которому вы хотите получить доступ:

[ДОКУМЕНТЫ ВИНСЕНТ]

comment = backup de vincent путь = / media / pi / vincent допустимые пользователи = @users force group = users create mask = 0660 directory mask = 0775 только чтение = да browseable = yes public = yes

Сохраните файл и выйдите.

Шаг 12: [Необязательно] Samba: доступ к журналу

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

судо нано /etc/samba/smb.conf

И в конце файла добавьте эти строки для доступа из окон к статусу синхронизации:

[LOG SYNCHRO] comment = "регистрирует синхронизирующие машины"

path = / home / pi / SB_sync_logs / valid users = @users force group = users create mask = 0660 directory mask = 0771 только чтение = да просматриваемый = да общедоступный = да

Сохраните файл и выйдите.

Шаг 13: [Необязательно] Samba: скрыть бесполезную папку "/ home / pi"

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

судо нано /etc/samba/smb.conf

Найдите в файле следующие строки и добавьте ";" в начале прокомментируйте это:

; [дома]

; comment = Домашние каталоги; browseable = нет; только чтение = да; создать маску = 0700; маска каталога = 0700; допустимые пользователи =% S

Сохраните файл и выйдите.

Шаг 14: доступ к сетевому диску из Windows

Доступ к сетевому диску из Windows
Доступ к сетевому диску из Windows

На компьютере с Windows откройте проводник.

Щелкните «Сеть» и обновите окно.

Появится компьютер с именем вашего Rapberry Pi.

Откройте его, используя учетную запись «пи» и свой пароль.

Вы должны увидеть папки, добавленные ранее в файл конфигурации Samba.

Шаг 15: подготовьте вторую машину

Ваша 1-я машина готова.

Повторите предыдущие шаги для второй машины, заменив (например) «loic» на «vincent».

Как только 2 машины будут подготовлены, вам нужно будет обменяться ssh-ключом для авторизации доступа между ними, см. Следующий шаг.

Шаг 16. Создайте SSH между локальным и удаленным компьютером

Чтобы упростить совместное использование ключа SSH, каждый Raspberry Pi должен быть подключен к одной и той же сети Ethernet.

На каждом Raspberry Pi откройте приглашение на рабочем столе Pi и введите:

ssh-keygen -q -t rsa -b 2048 -N ''

ssh-copy-id pi @ IP_of_other_raspberry

Шаг 17: проверьте синхронизатор

Проверьте синхронизатор
Проверьте синхронизатор
Проверьте синхронизатор
Проверьте синхронизатор
Проверьте синхронизатор
Проверьте синхронизатор

Ваши 2 машины готовы.

Вы можете проверить синхронизацию на своем компьютере с Windows:

  1. добавьте файл на локальный сетевой диск (например, / Rpi4-loic / documents loic / test / test.txt),
  2. запустите сценарий на локальном рабочем столе Pi (выполните SB_sync в / home / pi / scripts)
  3. убедитесь, что ваш файл отображается на резервном сетевом диске (например, / Rpi4-vincent / documents loic / test / test.txt).

Вы должны иметь возможность читать и записывать файлы в / Rpi4-loic / documents loic / test \, но только читать файлы в / Rpi4-vincent / documents loic / test \.

Следующим и последним шагом является перемещение «удаленной» машины внутри сети другого места и настройка соединения между двумя маршрутизаторами через Интернет.

Шаг 18: Настройте Интернет-маршруты

В моем случае для локальной машины дома я подписываюсь на доступ в Интернет, включая маршрутизатор и фиксированный IP-адрес.

Для удаленного компьютера поставщик услуг Интернета тот же, поэтому настройка проще, и мне не нужен DNS.

В моем доме:

  • В моем маршрутизаторе я создаю маршрут порта от «remote_internet_fixed_IP» на «port_34567» до «my_raspberry_IP» на порту «22».
  • В моем raspberry в / home / pi / scripts / SB_sync я заменяю значение «port_distant» «22» на «port_34567».

В глубинке:

  • В маршрутизаторе я создаю маршрут порта от «my_internet_fixed_IP» на «port_34567» до «my_raspberry_IP» на порту «22»
  • В удаленной малине, в / home / pi / scripts / SB_sync, я заменяю значение «port_distant» «22» на «port_34567»

Для вашего приложения:

  • Вам необходимо заменить IP-адреса и port_34567 своими собственными.
  • В случае динамического IP-адреса в Интернете вам необходимо подписаться на DNS.

С помощью удаленного хозяина малины повторите тест предыдущего шага.

Законченный!

Шаг 19: Библиография

Установите Raspbian на карту µSD

Настройте карту µSD после форматирования (SSH и WiFi)

Использование вашего Raspberry Pi

Синхронизация Raspberry Pi с rysnc от feralhosting

Определенный порт SSH для Rsync

Установите и используйте Samba

Рекомендуемые: