Съдържание:

2 Raspberry Pis за лесен и евтин отдалечен RAID: 19 стъпки
2 Raspberry Pis за лесен и евтин отдалечен RAID: 19 стъпки

Видео: 2 Raspberry Pis за лесен и евтин отдалечен RAID: 19 стъпки

Видео: 2 Raspberry Pis за лесен и евтин отдалечен RAID: 19 стъпки
Видео: Server Storage Revolution: Navigating Fabrics, Arrays, and More 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 1GB
  • 1x кутия за Raspberry Pi 4
  • 1x захранване USB C 5V 3A
  • 1x SD карта Kingston SDC10/16GB
  • 1x NAS HDD 1To WD Red Mobile
  • 1x HDD кутия BX-2525U3

Софтуер Windows

  • balenaEtcher
  • Работният плот на Raspbian buster е пълен
  • mobaxterm
  • VNC viewer (по избор)

Пакети Raspbian

  • Rsync
  • самба

Стъпка 1: За и против

За и против
За и против

Предимства

  1. Това решение е евтино: нямам абонаментни такси и хардуерът е достъпен.
  2. Този "отдалечен RAID" е доста лесен за правене. Не се нуждая от допълнителни материали или инструменти, за да го направя.
  3. Raspberry Pi може да се използва за допълнителни приложения като медиен център (kodi, …) или domotic (jeedom, domoticz, …).
  4. Моите данни не са достъпни в публичен облак, който може да бъде цел за масово пиратство на данни.
  5. Използвайки твърд диск от 1To, средната консумация на електроенергия е същата като облака.
  6. Защитната стена на моя рутер и SSH криптирането на моята връзка обезопасяват обмена на данни.

Недостатъци/подобрения

  1. Някой друг има копие от документите ми. В моя случай този човек е от семейството ми, така че не ме интересува.
  2. Използвам профила по подразбиране "pi", със специална парола за двете машини. Бих могъл да осигуря достъп малко повече, като използвам отделен конкретен акаунт от всяка страна, а не акаунта "pi".
  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 с помощта на екран, клавиатура, мишка

Свържете порта Raspberry Pi HDMI0 към екран с кабел 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 мрежа (чрез wifi или с кабел).

От вашия компютър отворете Mobaxterm (или замазка), стартирайте нова ssh връзка (вход pi, парола малина) и конфигурирайте своя Pi:

ssh pi@raspberry_ip

sudo raspi-config

  • в опцията за свързване / VNC: задайте Да
  • в Разширени опции / Резолюция: задайте DMT Mode 82 1920x1080 60Hz 16: 9
  • в Разширени опции / GL драйвер: задайте G1 Legacy Original оригинално не GL GL настолно устройство

Запазете и излезте от raspi-config

Рестартирайте Pi:

sudo рестартиране

От вашия компютър отворете VNC Viewer и се свържете с Pi, като използвате данните за вход pi, малина парола: работният плот Pi трябва да се появи.

Отговорете на панела за конфигуриране, за да завършите конфигурацията на вашия Pi.

След като промените паролата за Pi, VNC връзката може да се затвори. Рестартирайте го, като използвате новата си парола.

Стъпка 7: Подгответе HDD

Подгответе HDD
Подгответе HDD
Подгответе HDD
Подгответе HDD
  1. Свържете твърдия диск към компютъра.
  2. Отворете мениджъра на дялове на Windows, изберете вашия HDD и създайте 2 NTFS дяла (или 3, ако искате малко свободно място за запазване на µSD картата). Например, аз наричам двете части "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} ехо " Синхронизация en cours: de $ {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 "--------- -Дебют: "` 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 пи -е

в края на файла добавете cron:

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

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

Запишете и затворете файла.

Стъпка 10: Подгответе самба

Samba свързва Linux хранилище към мрежата на Windows.

Отворете подкана и инсталирайте пакетите:

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

Упълномощете акаунта „pi“за достъп до Samba:

sudo smbpasswd -a пи

Запазете конфигурационния файл по подразбиране на Samba:

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

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

sudo nano /etc/samba/smb.conf

И в края на файла добавете тези редове, за да конфигурирате вашето устройство да споделя:

[ДОКУМЕНТИ LOIC]

коментар = NAS de loic path =/media/pi/loic валидни потребители = @users force group = потребителите създават маска = 0660 маска на директория = 0775 само за четене = не може да се преглежда = да публично = да

Запазете файла и излезте.

Стъпка 11: [Незадължително] Samba: Конфигурирайте достъпа за четене към мрежовото устройство Vincent

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

sudo nano /etc/samba/smb.conf

И в края на файла добавете тези редове, за да конфигурирате другото устройство, до което искате да получите достъп:

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

коментар = резервно копие на vincent път =/media/pi/vincent валидни потребители = @users force group = потребителите създават маска = 0660 маска на директория = 0775 само за четене = да прегледен = да публичен = да

Запазете файла и излезте.

Стъпка 12: [Незадължително] Samba: Достъп до Log

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

sudo nano /etc/samba/smb.conf

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

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

пътека =/home/pi/SB_sync_logs/valid users = @users force group = users create mask = 0660 directory mask = 0771 only read = yes browseable = yes public = yes

Запазете файла и излезте.

Стъпка 13: [По избор] Samba: Скриване на безполезна папка „/home/pi“

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

sudo nano /etc/samba/smb.conf

Във файла намерете следните редове и добавете „;“в началото да го коментирам:

; [домове]

; коментар = Начални директории; прегледен = не; само за четене = да; създаване на маска = 0700; указателна маска = 0700; валидни потребители = %S

Запазете файла и излезте.

Стъпка 14: Достъп до мрежово устройство от Windows

Достъп до мрежово устройство от Windows
Достъп до мрежово устройство от Windows

От компютър с Windows отворете изследовател.

Кликнете върху „Мрежа“и опреснете прозореца.

Ще се появи компютър с името на вашата Rapberry Pi.

Отворете го, като използвате акаунта "pi" и паролата си.

Трябва да видите папките, добавени преди това в конфигурационния файл на Samba.

Стъпка 15: Подгответе втората машина

Вашата първа машина е подготвена.

Повторете предишните стъпки за втората машина, като замените (например) „loic“с „vincent“.

След като двете машини ще бъдат подготвени, ще трябва да обмените 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: Тествайте синхронизацията

Тествайте Synchro
Тествайте Synchro
Тествайте синхронизатора
Тествайте синхронизатора
Тествайте Synchro
Тествайте Synchro

Вашите 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“
  • В моята малинка, в/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 Sync с rysnc чрез feralhosting

Специфичен SSH порт за Rsync

Инсталирайте и използвайте Samba

Препоръчано: