Cuprins:

2 Raspberry Pis pentru RAID la distanță ușor și ieftin: 19 pași
2 Raspberry Pis pentru RAID la distanță ușor și ieftin: 19 pași

Video: 2 Raspberry Pis pentru RAID la distanță ușor și ieftin: 19 pași

Video: 2 Raspberry Pis pentru RAID la distanță ușor și ieftin: 19 pași
Video: Treaba mea este să observ pădurea și aici se întâmplă ceva ciudat. 2024, Noiembrie
Anonim
2 Raspberry Pis pentru RAID la distanță ușor și ieftin
2 Raspberry Pis pentru RAID la distanță ușor și ieftin
2 Raspberry Pis pentru RAID la distanță ușor și ieftin
2 Raspberry Pis pentru RAID la distanță ușor și ieftin

Scop

  1. În cazul unui incident la domiciliu, vreau să pot recupera documentele mele digitale majore (imagini, acte de identitate etc.) și, în mod opțional, să le împărtășesc.
  2. Vreau să împărtășesc această soluție cu altcineva (cuiva în care am încredere, părinți sau prieteni)
  3. Nu vreau să depind de un cloud public (abonament, taxe, GTC în evoluție etc.)

Principiu

  1. Creați 2 mașini de stocare identice, puneți-le în 2 locații diferite (de exemplu, 2 case).
  2. Alocați un spațiu de stocare dedicat fiecărei locații de pe fiecare mașină.
  3. Sincronizați în mod regulat cele 2 spații de stocare.

Provizii

Hardware

Fiecare mașină are:

  • 1x Raspberry Pi 4 B 1GB
  • 1 x cutie pentru Raspberry Pi 4
  • 1x sursa de alimentare USB C 5V 3A
  • 1x card SD Kingston SDC10 / 16GB
  • 1x NAS HDD 1To WD Red Mobile
  • 1x cutie HDD BX-2525U3

Software Windows

  • balenaEtcher
  • Raspbian buster desktop plin
  • mobaxterm
  • Vizualizator VNC (opțional)

Pachete Raspbian

  • Rsync
  • samba

Pasul 1: Pro și Contra

Pro și Contra
Pro și Contra

Avantaje

  1. Această soluție este ieftină: nu am taxe de abonament și hardware-ul este accesibil.
  2. Acest „RAID la distanță” este destul de ușor de făcut. Nu am nevoie de material sau instrument suplimentar pentru ao face.
  3. Raspberry Pi poate fi utilizat pentru aplicații suplimentare precum media center (kodi, …) sau domotic (jeedom, domoticz, …).
  4. Datele mele nu sunt disponibile pe un cloud public care ar putea fi o țintă pentru pirateria masivă a datelor.
  5. Folosind un HDD de 1To, consumul electric mediu este același cu un nor.
  6. Paravanul de protecție al routerului meu și criptarea SSH a conexiunii mele securizează schimburile de date.

Dezavantaje / îmbunătățiri

  1. Altcineva are o copie a documentelor mele. În cazul meu, această persoană este din familia mea, așa că nu-mi pasă.
  2. Folosesc contul „pi” implicit, cu o parolă dedicată pentru ambele aparate. Aș putea asigura accesul un pic mai mult folosind un cont specific separat de fiecare parte, mai degrabă decât contul „pi”.
  3. Mă bazez pe furnizorul meu de servicii Internet și pe criptarea SSH pentru securitatea conexiunii dintre cele două case. Se pot face cercetări pentru a îmbunătăți nivelul de securitate.
  4. Deocamdată, am făcut doar 2 partiții pe unitate. O a treia partiție mai mică (~ 5Go) ar putea fi utilă pentru alte activități Raspbian, pentru a păstra cardul µSD.

Pasul 2: Pregătiți SD: Încărcați Raspbian

De pe un computer (Windows 10 în cazul meu), urmați ghidul oficial de instalare (https://www.raspberrypi.org/downloads/raspbian/) pentru a instala „Raspbian Buster with desktop”.

Adăugați un fișier gol numit "ssh" în discul "/ boot /"

Adăugați un fișier numit "wpa_supplicant.conf" în discul "/ boot /"

Deschideți wpa_supplicant.conf și introduceți textul:

country = SUA

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

Salvați și închideți fișierul.

Pasul 3: Pregătiți SD: Personalizați cardul

Pregătiți SD: Personalizați cardul
Pregătiți SD: Personalizați cardul

Adăugați un fișier gol numit "ssh" în discul "/ boot /"

Adăugați un fișier numit "wpa_supplicant.conf" în discul "/ boot /"

Deschideți wpa_supplicant.conf și introduceți textul:

country = SUA

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

Salvați și închideți fișierul.

Pasul 4: Pregătiți Raspberry Pi

Introduceți cardul SD în Pi

Porniți Raspberry Pi, alegeți o modalitate de a deschide un desktop:

  1. Folosind cablu HDMI, ecran, tastatură și mouse
  2. Folosind VNC de pe computer.

Pentru informații suplimentare, vizitați

Pasul 5: Modul 1: Conectați-vă la Pi folosind ecranul, tastatura, mouse-ul

Modul 1: Conectați-vă la Pi folosind ecranul, tastatura, mouse-ul
Modul 1: Conectați-vă la Pi folosind ecranul, tastatura, mouse-ul
Modul 1: Conectați-vă la Pi folosind ecranul, tastatura, mouse-ul
Modul 1: Conectați-vă la Pi folosind ecranul, tastatura, mouse-ul

Conectați portul Raspberry Pi HDMI0 la un ecran cu un cablu micro-hdmi la hdmi

Conectați o tastatură și mouse USB (sau o mini tastatură wireless, cum ar fi „Rii Mini i8 Wireless”)

Conectați sursa de alimentare USB C și porniți Raspberry Pi.

Raspbian va începe pe ecran.

Odată ce desktopul apare, răspundeți la panoul de configurare pentru a finaliza configurarea Pi-ului dvs.

Pasul 6: Modul 2: Conectați-vă la Pi utilizând VNC de pe computer

Modul 2: Conectați-vă la Pi utilizând VNC de pe computer
Modul 2: Conectați-vă la Pi utilizând VNC de pe computer
Modul 2: Conectați-vă la Pi utilizând VNC de pe computer
Modul 2: Conectați-vă la Pi utilizând VNC de pe computer
Modul 2: Conectați-vă la Pi utilizând VNC de pe computer
Modul 2: Conectați-vă la Pi utilizând VNC de pe computer

Conectați Raspberry Pi la rețeaua dvs. Ethernet (prin wifi sau cu un cablu).

De pe computer, deschideți Mobaxterm (sau chit), începeți o nouă conexiune ssh (login pi, parolă zmeură) și configurați Pi:

ssh pi @ raspberry_ip

sudo raspi-config

  • în opțiunea Interfață / VNC: setați Da
  • în Opțiuni avansate / Rezoluție: setați modul DMT 82 1920x1080 60Hz 16: 9
  • în Opțiuni avansate / driver GL: setați unitatea desktop G1 Legacy Original non-GL

Salvați și ieșiți din raspi-config

Reporniți Pi:

sudo reboot

De pe computerul dvs., deschideți VNC Viewer și conectați-vă la Pi folosind login pi, parola zmeură: desktopul Pi ar trebui să apară.

Răspundeți la panoul de configurare pentru a finaliza configurația Pi.

După ce ați schimbat parola Pi, conexiunea VNC s-ar putea închide. Reporniți-l folosind noua parolă.

Pasul 7: Pregătiți HDD-ul

Pregătiți HDD-ul
Pregătiți HDD-ul
Pregătiți HDD-ul
Pregătiți HDD-ul
  1. Conectați HDD-ul la computer.
  2. Deschideți managerul de partiții Windows, selectați HDD-ul și creați 2 partiții NTFS (sau 3, dacă doriți un spațiu liber mic pentru a păstra cardul µSD). De exemplu, denumesc cele două părți „loic” și „vincent”
  3. Conectați HDD-ul la Pi: Raspbian ar trebui să monteze automat 2 discuri pe desktop. Unitățile sunt legate de folderul / media / pi / loic / și / media / pi / vincent /

Pasul 8: Configurați Rsync: Creați un script Synchro

Configurați Rsync: creați un script de sincronizare
Configurați Rsync: creați un script de sincronizare

deschideți o solicitare pe desktopul Pi

În / home / pi /, creați un script:

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

introduceți textul:

#! / bin / sh

######## A CONFIGURER ############ 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} echo Sincronizare în 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 "--------- -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

ecou "---------- 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}

Configurați liniile 3-7:

  • înlocuiți „loic” și „vincent” cu numele unităților dvs.
  • port_distant: pentru moment, utilizați 22 ca port la distanță. La ultimul pas, va trebui să-l înlocuiți cu o altă valoare la alegere (ca exemplu: 34567)

salvați fișierul și ieșiți.

Pasul 9: Configurați Rsync: Efectuați o sincronizare o dată pe zi

În prompt, deschideți crontab:

sudo crontab -u pi -e

la sfârșitul fișierului, adăugați un cron:

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

În acest cron, scriptul SB_sync va fi lansat în fiecare zi la 1:00 AM. Alegeți ora dorită, dar schimbați-o între cele două mașini, astfel încât cele 2 sincronizări să fie efectuate unul după altul.

Salvați și închideți fișierul.

Pasul 10: Pregătiți Samba

Samba conectează un spațiu de stocare Linux la rețeaua Windows.

Deschideți un prompt și instalați pachetele:

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

Autorizați contul „pi” pentru a accesa Samba:

sudo smbpasswd -a pi

Salvați fișierul de configurare implicit Samba:

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

Deschideți fișierul:

sudo nano /etc/samba/smb.conf

Și la sfârșitul fișierului, adăugați aceste linii pentru a configura unitatea dvs. pentru a partaja:

[DOCUMENTE LOIC]

comentariu = NAS de loic path = / media / pi / loic users valid = @users force group = users create mask = 0660 director mask = 0775 only read = nu navigabil = yes public = yes

Salvați fișierul și ieșiți.

Pasul 11: [Opțional] Samba: configurați accesul de citire la unitatea de rețea Vincent

Deschideți fișierul de configurare Samba:

sudo nano /etc/samba/smb.conf

Și la sfârșitul fișierului, adăugați aceste linii pentru a configura cealaltă unitate pe care doriți să o accesați:

[DOCUMENTE VINCENT]

comentariu = backup de vincent path = / media / pi / vincent users valid = @users force group = users create mask = 0660 director mask = 0775 only read = yes browseable = yes public = yes

Salvați fișierul și ieșiți.

Pasul 12: [Opțional] Samba: acces la jurnal

Deschideți fișierul de configurare Samba:

sudo nano /etc/samba/smb.conf

Și la sfârșitul fișierului, adăugați aceste linii pentru a accesa din ferestre la starea sincronizării:

[LOG SYNCHRO] comment = "jurnale de sincronizare între mașini"

path = / home / pi / SB_sync_logs / valid users = @users force group = users create mask = 0660 director mask = 0771 only read = yes browseable = yes public = yes

Salvați fișierul și ieșiți.

Pasul 13: [Opțional] Samba: Ascundeți folderul inutil „/ home / pi”

Deschideți fișierul de configurare Samba:

sudo nano /etc/samba/smb.conf

În fișier, găsiți următoarele rânduri și adăugați „;” la început să-l comentez:

; [case]

; comentariu = Directoare de acasă; navigabil = nu; numai citire = da; crea masca = 0700; director mask = 0700; utilizatori valabili =% S

Salvați fișierul și ieșiți.

Pasul 14: Acces la unitatea de rețea din Windows

Acces la unitatea de rețea din Windows
Acces la unitatea de rețea din Windows

De pe computerul Windows, deschideți un explorator.

Faceți clic pe „Rețea” și actualizați fereastra.

Va apărea un computer cu numele Rapberry Pi.

Deschideți-l folosind contul „pi” și parola.

Ar trebui să vedeți folderele adăugate anterior în fișierul de configurare Samba.

Pasul 15: Pregătiți a doua mașină

Prima ta mașină este pregătită.

Repetați pașii anteriori pentru a doua mașină, înlocuind (de exemplu) „loic” cu „vincent”.

Odată ce cele 2 aparate vor fi pregătite, va trebui să schimbați cheia ssh pentru a autoriza accesul între ele, consultați pasul următor.

Pasul 16: Creați SSH între mașina locală și la distanță

Pentru a simplifica partajarea cheii SSH, fiecare Raspberry Pi va fi conectat la aceeași rețea ethernet.

Pe fiecare Raspberry Pi, deschideți o solicitare pe desktopul Pi și introduceți:

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

ssh-copy-id pi @ IP_of_other_raspberry

Pasul 17: Testați sincronizarea

Testați sincronizarea
Testați sincronizarea
Testați sincronizarea
Testați sincronizarea
Testați sincronizarea
Testați sincronizarea

Cele 2 mașini sunt gata.

Puteți testa sincronizarea pe computerul Windows:

  1. adăugați un fișier în unitatea de rețea locală (adică / Rpi4-loic / documents loic / test / test.txt),
  2. rulați scriptul pe desktopul local Pi (executați SB_sync în / home / pi / scripturi)
  3. verificați dacă fișierul dvs. apare în unitatea de rețea de rezervă (adică / Rpi4-vincent / documents loic / test / test.txt).

Ar trebui să puteți citi și scrie fișiere în / Rpi4-loic / documents loic / test \, dar citiți numai fișiere în / Rpi4-vincent / documents loic / test \.

Următorul și ultimul pas este să mutați mașina „la distanță” într-o rețea dintr-un alt loc și să configurați o conexiune între cele 2 routere prin internet.

Pasul 18: Configurați rute Internet

În cazul meu, pentru mașina locală de acasă, mă abonez la un acces la internet care include un router și un IP fix.

Pentru aparatul de la distanță, furnizorul de servicii Internet este același, deci configurarea este mai ușoară și nu am nevoie de DNS.

În casa mea:

  • În routerul meu, creez ruta unui port de la „remote_internet_fixed_IP” la „port_34567” la „my_raspberry_IP” la portul „22”
  • În zmeura mea, în / home / pi / scripts / SB_sync, înlocuiesc valoarea "port_distant" "22" cu "port_34567"

În locul îndepărtat:

  • În router, creez ruta unui port de la „my_internet_fixed_IP” la „port_34567” la „my_raspberry_IP” la portul „22”
  • În zmeura la distanță, în / home / pi / scripts / SB_sync, înlocuiesc valoarea "port_distant" "22" cu "port_34567"

Pentru aplicația dvs.:

  • Trebuie să înlocuiți adresele IP și port_34567 cu ale dvs.
  • În cazul unei adrese IP dinamice de internet, trebuie să vă abonați la un DNS.

Cu ajutorul proprietarului zmeurii de la distanță, repetați testul pasului anterior.

Terminat!

Pasul 19: Bibliografie

Instalați Raspbian pe cardul µSD

Personalizați cardul µSD după formare (SSH și WiFi)

Folosind Raspberry Pi

Raspberry Pi Sync cu rysnc prin feralhosting

Port SSH specific pentru Rsync

Instalați și utilizați Samba

Recomandat: