Spisu treści:

2 Raspberry Pis do łatwego i taniego zdalnego RAID: 19 kroków
2 Raspberry Pis do łatwego i taniego zdalnego RAID: 19 kroków

Wideo: 2 Raspberry Pis do łatwego i taniego zdalnego RAID: 19 kroków

Wideo: 2 Raspberry Pis do łatwego i taniego zdalnego RAID: 19 kroków
Wideo: Domowy Serwer NAS dla kamer IP i nie tylko, Darmowy serwer TrueNas instalacja i konfiguracja. 2024, Lipiec
Anonim
2 Raspberry Pis do łatwego i taniego zdalnego RAID
2 Raspberry Pis do łatwego i taniego zdalnego RAID
2 Raspberry Pis do łatwego i taniego zdalnego RAID
2 Raspberry Pis do łatwego i taniego zdalnego RAID

Cel, powód

  1. W przypadku incydentu w domu chcę mieć możliwość odzyskania moich głównych dokumentów cyfrowych (zdjęć, dokumentów tożsamości itp.) i opcjonalnie ich udostępnienia.
  2. Chcę podzielić się tym rozwiązaniem z kimś innym (komuś, komu ufam, rodzicom lub znajomym)
  3. Nie chcę polegać na chmurze publicznej (subskrypcja, opłaty, ewoluujące GTC itp.)

Zasada

  1. Stwórz 2 identyczne maszyny do przechowywania, umieść je w 2 różnych lokalizacjach (na przykład 2 domy).
  2. Przypisz dedykowaną przestrzeń do przechowywania do każdej lokalizacji na każdym komputerze.
  3. Regularnie synchronizuj 2 miejsca do przechowywania.

Kieszonkowe dzieci

Sprzęt komputerowy

Każda maszyna posiada:

  • 1x Raspberry Pi 4B 1GB
  • 1x pudełko dla Raspberry Pi 4
  • 1x zasilacz USB C 5V 3A
  • 1x karta SD Kingston SDC10/16 GB
  • 1x NAS HDD 1Do WD Red Mobile
  • 1x pudełko na dysk twardy BX-2525U3

Oprogramowanie Windows

  • balenaEtcher
  • Pełny pulpit Raspbian Buster
  • mobaxterm
  • Przeglądarka VNC (opcjonalnie)

Pakiety Raspbian

  • Rsync
  • samba

Krok 1: Plusy i minusy

Plusy i minusy
Plusy i minusy

Zalety

  1. To rozwiązanie jest tanie: nie mam abonamentu, a sprzęt jest przystępny.
  2. Ten "zdalny RAID" jest dość łatwy do zrobienia. Nie potrzebuję do tego dodatkowego materiału ani narzędzia.
  3. Raspberry Pi może być używane do dodatkowych aplikacji, takich jak centrum multimedialne (kodi, …) lub domotic (jeedom, domoticz, …).
  4. Moje dane nie są dostępne w chmurze publicznej, która może być celem masowej piractwa danych.
  5. Używając HDD o pojemności 1 To, średnie zużycie energii elektrycznej jest takie samo jak w chmurze.
  6. Firewall mojego routera i szyfrowanie SSH mojego połączenia zabezpieczają wymianę danych.

Wady/ulepszenia

  1. Ktoś inny ma kopię moich dokumentów. W moim przypadku ta osoba jest z mojej rodziny, więc mnie to nie obchodzi.
  2. Używam domyślnego konta „pi”, z dedykowanym hasłem dla obu komputerów. Mógłbym nieco lepiej zabezpieczyć dostęp, używając oddzielnego konta po każdej stronie, zamiast konta „pi”.
  3. Opieram się na moim dostawcy usług internetowych i szyfrowaniu SSH, aby zapewnić bezpieczeństwo połączenia między dwoma domami. Można przeprowadzić badania w celu poprawy poziomu bezpieczeństwa.
  4. Na razie stworzyłem tylko 2 partycje na dysk. Mniejsza trzecia partycja (~5Go) może być użyteczna dla innej aktywności Raspbian, aby zachować kartę µSD.

Krok 2: Przygotuj SD: Prześlij Raspbian

Z komputera (w moim przypadku z systemem Windows 10) postępuj zgodnie z oficjalnym przewodnikiem instalacji (https://www.raspberrypi.org/downloads/raspbian/), aby zainstalować „Raspbian Buster z pulpitem”.

Dodaj pusty plik o nazwie "ssh" na dysku "/boot/"

Dodaj plik o nazwie "wpa_supplicant.conf" na dysku "/boot/"

Otwórz wpa_supplicant.conf i wpisz tekst:

kraj=USA

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network= { ssid="Moja sieć Wi-Fi" psk="aVeryStrongPassword" key_mgmt=WPA-PSK }

Zapisz i zamknij plik.

Krok 3: Przygotuj SD: Dostosuj kartę

Przygotuj SD: Dostosuj kartę
Przygotuj SD: Dostosuj kartę

Dodaj pusty plik o nazwie "ssh" na dysku "/boot/"

Dodaj plik o nazwie "wpa_supplicant.conf" na dysku "/boot/"

Otwórz wpa_supplicant.conf i wpisz tekst:

kraj=USA

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network= { ssid="Moja sieć Wi-Fi" psk="aVeryStrongPassword" key_mgmt=WPA-PSK }

Zapisz i zamknij plik.

Krok 4: Przygotuj Raspberry Pi

Włóż kartę SD do Pi

Włącz Raspberry Pi, wybierz sposób na otwarcie pulpitu:

  1. Korzystanie z kabla HDMI, ekranu, klawiatury i myszy
  2. Korzystanie z VNC z komputera.

Więcej informacji można znaleźć na stronie

Krok 5: Sposób 1: Połącz się z Pi za pomocą ekranu, klawiatury, myszy

Sposób 1: Połącz się z Pi za pomocą ekranu, klawiatury, myszy
Sposób 1: Połącz się z Pi za pomocą ekranu, klawiatury, myszy
Sposób 1: Połącz się z Pi za pomocą ekranu, klawiatury, myszy
Sposób 1: Połącz się z Pi za pomocą ekranu, klawiatury, myszy

Podłącz port HDMI0 Raspberry Pi do ekranu za pomocą kabla micro-hdmi do hdmi

Podłącz klawiaturę i mysz USB (lub bezprzewodową mini klawiaturę, taką jak „Rii Mini i8 Wireless”)

Podłącz zasilacz USB C i włącz Raspberry Pi.

Na ekranie pojawi się Raspbian.

Gdy pojawi się pulpit, odpowiedz na panel konfiguracyjny, aby zakończyć konfigurację swojego Pi.

Krok 6: Sposób 2: Połącz się z Pi za pomocą VNC z komputera

Sposób 2: Połącz się z Pi za pomocą VNC z komputera
Sposób 2: Połącz się z Pi za pomocą VNC z komputera
Sposób 2: Połącz się z Pi za pomocą VNC z komputera
Sposób 2: Połącz się z Pi za pomocą VNC z komputera
Sposób 2: Połącz się z Pi za pomocą VNC z komputera
Sposób 2: Połącz się z Pi za pomocą VNC z komputera

Podłącz Raspberry Pi do sieci Ethernet (przez Wi-Fi lub za pomocą kabla).

Na komputerze otwórz Mobaxterm (lub putty), uruchom nowe połączenie ssh (login pi, hasło raspberry) i skonfiguruj swoje Pi:

ssh pi@raspberry_ip

sudo raspi-config

  • w opcji interfejsu / VNC: ustaw Tak
  • w Opcjach zaawansowanych / Rozdzielczość: ustaw Tryb DMT 82 1920x1080 60Hz 16:9
  • w opcjach zaawansowanych / sterownik GL: ustaw G1 Legacy Original non-GL desktop drive

Zapisz i wyjdź z raspi-config

Uruchom ponownie Pi:

ponowne uruchomienie sudo

Na komputerze otwórz przeglądarkę VNC i połącz się z Pi, używając loginu pi, hasła raspberry: powinien pojawić się pulpit Pi.

Odpowiedz na panelu konfiguracyjnym, aby zakończyć konfigurację swojego Pi.

Po zmianie hasła Pi połączenie VNC może zostać zamknięte. Uruchom go ponownie, używając nowego hasła.

Krok 7: Przygotuj dysk twardy

Przygotuj dysk twardy
Przygotuj dysk twardy
Przygotuj dysk twardy
Przygotuj dysk twardy
  1. Podłącz dysk twardy do komputera.
  2. Otwórz menedżera partycji Windows, wybierz dysk twardy i utwórz 2 partycje NTFS (lub 3, jeśli chcesz mieć małą wolną przestrzeń do zachowania karty µSD). Na przykład nazywam 2 części „loic” i „vincent”
  3. Podłącz dysk twardy do Pi: Raspbian powinien automatycznie zamontować 2 dyski na pulpicie. Dyski są połączone z folderami /media/pi/loic/ i /media/pi/vincent/

Krok 8: Skonfiguruj Rsync: Utwórz skrypt synchronizacji

Skonfiguruj Rsync: Utwórz skrypt synchronizacji
Skonfiguruj Rsync: Utwórz skrypt synchronizacji

otwórz monit na pulpicie Pi

W /home/pi/ utwórz skrypt:

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

wpisz tekst:

#!/kosz/sz

######## KONFIGURATOR ########### 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=`data+"%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 Synchronizacja w toku: de ${machine_locale} ${media_local}/ vers ${machine_distante} ${media_distant}/ " >> ${log_local}/0.synchro_en_cours_${machine_locale}_vers_${machine_distante} ${machine} 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 "--------- - Debiut: "`data +"%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: "`data +"%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}

Skonfiguruj linie 3 do 7:

  • zastąp „loic” i „vincent” nazwą swoich dysków
  • port_distant: na razie użyj 22 jako portu zdalnego. W ostatnim kroku będziesz musiał zastąpić ją inną wybraną wartością (na przykład: 34567)

zapisz plik i wyjdź.

Krok 9: Skonfiguruj Rsync: wykonaj synchronizację raz dziennie

W wierszu polecenia otwórz crontab:

sudo crontab -u pi -e

na końcu pliku dodaj crona:

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

W tym cronie skrypt SB_sync będzie uruchamiany codziennie o godzinie 1:00. Wybierz żądaną godzinę, ale zmieniaj ją między 2 komputerami, aby 2 synchronizacje były wykonywane jedna po drugiej.

Zapisz i zamknij plik.

Krok 10: Przygotuj Sambę

Samba łączy pamięć linuksową z siecią Windows.

Otwórz monit i zainstaluj pakiety:

sudo apt-get zainstaluj sambę samba-common-bin -y

Autoryzuj konto „pi”, aby uzyskać dostęp do Samby:

sudo smbpasswd -a pi

Zapisz domyślny plik konfiguracyjny Samby:

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

Otwórz plik:

sudo nano /etc/samba/smb.conf

A na końcu pliku dodaj te wiersze, aby skonfigurować dysk do udostępniania:

[LOIC DOKUMENTÓW]

comment = NAS de loic path = /media/pi/loic poprawni użytkownicy = @users force group = użytkownicy tworzą maskę = 0660 maska katalogu = 0775 tylko do odczytu = nie do przeglądania = tak public = tak

Zapisz plik i wyjdź.

Krok 11: [Opcjonalnie] Samba: Skonfiguruj dostęp do odczytu dysku sieciowego Vincent

Otwórz plik konfiguracyjny Samby:

sudo nano /etc/samba/smb.conf

A na końcu pliku dodaj te wiersze, aby skonfigurować drugi dysk, do którego chcesz uzyskać dostęp:

[DOKUMENTY VINCENT]

comment = kopia zapasowa de vincent ścieżka = /media/pi/vincent poprawni użytkownicy = @users force group = użytkownicy tworzą maskę = 0660 maska katalogu = 0775 tylko do odczytu = tak dostępny do przeglądania = tak public = tak

Zapisz plik i wyjdź.

Krok 12: [Opcjonalnie] Samba: Dostęp do dziennika

Otwórz plik konfiguracyjny Samby:

sudo nano /etc/samba/smb.conf

A na końcu pliku dodaj te wiersze, aby uzyskać dostęp z okien do stanu synchronizacji:

[LOG SYNCHRO]comment = "dzienniki synchronizacji wszystkich maszyn"

path = /home/pi/SB_sync_logs/ valid users = @users force group = users create mask = 0660 maska katalogu = 0771 tylko do odczytu = yes browsable = yes public = yes

Zapisz plik i wyjdź.

Krok 13: [Opcjonalnie] Samba: Ukryj niepotrzebny folder "/home/pi"

Otwórz plik konfiguracyjny Samby:

sudo nano /etc/samba/smb.conf

W pliku znajdź następujące wiersze i dodaj ";" na początku skomentuj to:

;[domy]

; comment = Katalogi domowe; do przeglądania = nie; tylko do odczytu = tak; utwórz maskę = 0700; maska katalogu = 0700; poprawni użytkownicy = %S

Zapisz plik i wyjdź.

Krok 14: Dostęp do dysku sieciowego z systemu Windows

Dostęp do dysku sieciowego z systemu Windows
Dostęp do dysku sieciowego z systemu Windows

Na komputerze z systemem Windows otwórz eksploratora.

Kliknij „Sieć” i odśwież okno.

Pojawi się komputer z nazwą twojego Rapberry Pi.

Otwórz go za pomocą konta „pi” i swojego hasła.

Powinieneś zobaczyć foldery dodane wcześniej w pliku konfiguracyjnym Samby.

Krok 15: Przygotuj drugą maszynę

Twoja pierwsza maszyna jest przygotowana.

Powtórz poprzednie kroki dla drugiej maszyny, zastępując (na przykład) „loic” słowem „vincent”.

Po przygotowaniu 2 maszyn będziesz musiał wymienić klucz ssh, aby autoryzować dostęp między nimi, patrz następny krok.

Krok 16: Utwórz SSH między maszyną lokalną i zdalną

Aby uprościć udostępnianie klucza SSH, każdy Raspberry Pi powinien być podłączony do tej samej sieci Ethernet.

Na każdym Raspberry Pi otwórz monit na pulpicie Pi i wpisz:

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

ssh-copy-id pi@IP_innej_maliny

Krok 17: Przetestuj synchronizację

Przetestuj synchronizację
Przetestuj synchronizację
Przetestuj synchronizację
Przetestuj synchronizację
Przetestuj synchronizację
Przetestuj synchronizację

Twoje 2 maszyny są gotowe.

Możesz przetestować synchronizację na swoim komputerze z systemem Windows:

  1. dodaj plik na lokalnym dysku sieciowym (np. \Rpi4-loic\documents loic\test\test.txt),
  2. uruchom skrypt na lokalnym pulpicie Pi (wykonaj SB_sync w /home/pi/scripts)
  3. sprawdź, czy plik znajduje się na dysku sieciowym kopii zapasowej (np. \Rpi4-vincent\documents loic\test\test.txt).

Powinieneś móc czytać i zapisywać pliki w \Rpi4-loic\documents loic\test\, ale tylko czytać pliki w \Rpi4-vincent\documents loic\test\.

Następnym i ostatnim krokiem jest przeniesienie maszyny "zdalnej" do sieci w innym miejscu i skonfigurowanie połączenia między dwoma routerami przez internet.

Krok 18: Skonfiguruj trasy internetowe

W moim przypadku dla lokalnej maszyny w domu wykupuję dostęp do internetu, w tym router i stały adres IP.

W przypadku zdalnej maszyny dostawca usług internetowych jest taki sam, więc konfiguracja jest łatwiejsza i nie potrzebuję DNS.

W moim domu:

  • W moim routerze tworzę trasę portu od „remote_internet_fixed_IP” w „port_34567” do „my_raspberry_IP” w porcie „22”
  • W mojej malinie, w /home/pi/scripts/SB_sync, zamieniam wartość "port_distant" "22" na "port_34567"

W odległym miejscu:

  • W routerze tworzę trasę portu od „my_internet_fixed_IP” w „port_34567” do „my_raspberry_IP” w porcie „22”
  • W zdalnym Raspberry w /home/pi/scripts/SB_sync zamieniam wartość "port_distant" "22" na "port_34567"

Do Twojej aplikacji:

  • Musisz samodzielnie zamienić adresy IP i port_34567.
  • W przypadku dynamicznego adresu IP, musisz subskrybować DNS.

Z pomocą właściciela zdalnej maliny powtórz test z poprzedniego kroku.

Skończone!

Krok 19: Bibliografia

Zainstaluj Raspbian na karcie µSD

Dostosuj kartę µSD po sformatowaniu (SSH i WiFi)

Korzystanie z Raspberry Pi

Raspberry Pi Sync z rysnc od feralhosting

Określony port SSH dla Rsync

Zainstaluj i używaj Samby

Zalecana: