Sommario:

2 Raspberry Pi per un RAID remoto facile ed economico: 19 passaggi
2 Raspberry Pi per un RAID remoto facile ed economico: 19 passaggi

Video: 2 Raspberry Pi per un RAID remoto facile ed economico: 19 passaggi

Video: 2 Raspberry Pi per un RAID remoto facile ed economico: 19 passaggi
Video: Guida NAS server con Raspberry Pi 4 e OMV - ITA 2024, Novembre
Anonim
2 Raspberry Pi per un RAID remoto facile ed economico
2 Raspberry Pi per un RAID remoto facile ed economico
2 Raspberry Pi per un RAID remoto facile ed economico
2 Raspberry Pi per un RAID remoto facile ed economico

Scopo

  1. In caso di incidente in casa, voglio poter recuperare i miei principali documenti digitali (foto, documenti d'identità, ecc.) e condividerli facoltativamente.
  2. Voglio condividere questa soluzione con qualcun altro (qualcuno di cui mi fido, genitori o amici)
  3. Non voglio dipendere da un cloud pubblico (abbonamento, commissioni, GTC in evoluzione, ecc.)

Principio

  1. Crea 2 macchine di stoccaggio identiche, mettile in 2 posizioni diverse (ad esempio, 2 case).
  2. Assegna uno spazio di archiviazione dedicato a ciascuna posizione su ciascuna macchina.
  3. Sincronizzare regolarmente i 2 spazi di archiviazione.

Forniture

Hardware

Ogni macchina ha:

  • 1x Raspberry Pi 4B 1GB
  • 1x scatola per Raspberry Pi 4
  • 1x alimentatore USB C 5V 3A
  • 1x scheda SD Kingston SDC10/16GB
  • 1x NAS HDD 1A WD Red Mobile
  • 1x scatola HDD BX-2525U3

Software Windows

  • balenaEtcher
  • Raspbian buster desktop completo
  • mobaxterm
  • Visualizzatore VNC (opzionale)

Pacchetti Raspbian

  • Rsync
  • samba

Passaggio 1: pro e contro

Pro e contro
Pro e contro

Vantaggi

  1. Questa soluzione è economica: non ho costi di abbonamento e l'hardware è conveniente.
  2. Questo "RAID remoto" è abbastanza facile da fare. Non ho bisogno di materiale o strumento aggiuntivo per farlo.
  3. Il Raspberry Pi può essere utilizzato per applicazioni aggiuntive come media center (kodi, …) o domotica (jeedom, domoticz, …).
  4. I miei dati non sono disponibili su un cloud pubblico che potrebbe essere un bersaglio per una massiccia pirateria di dati.
  5. Utilizzando un HDD da 1To, il consumo elettrico medio è lo stesso di un cloud.
  6. Il firewall del mio router e la crittografia SSH della mia connessione rendono sicuri gli scambi di dati.

Svantaggi/miglioramenti

  1. Qualcun altro ha una copia dei miei documenti. Nel mio caso, questa persona è della mia famiglia, quindi non mi interessa.
  2. Uso l'account "pi" predefinito, con una password dedicata per entrambe le macchine. Potrei proteggere un po' di più l'accesso utilizzando un account specifico separato su ciascun lato anziché l'account "pi".
  3. Mi affido al mio provider di servizi Internet e alla crittografia SSH per la sicurezza della connessione tra le 2 case. La ricerca può essere fatta per migliorare il livello di sicurezza.
  4. Per ora, ho creato solo 2 partizioni per unità. Una terza partizione più piccola (~5Go) potrebbe essere utile per altre attività di Raspbian, per preservare la scheda µSD.

Passaggio 2: preparare SD: caricare Raspbian

Da un computer (Windows 10 nel mio caso), segui la guida di installazione ufficiale (https://www.raspberrypi.org/downloads/raspbian/) per installare "Raspbian Buster con desktop".

Aggiungi un file vuoto chiamato "ssh" nel disco "/boot/"

Aggiungi un file chiamato "wpa_supplicant.conf" nel disco "/boot/"

Apri wpa_supplicant.conf e inserisci il testo:

paese=USA

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

Salva e chiudi il file.

Passaggio 3: preparare la SD: personalizzare la scheda

Prepara SD: personalizza la scheda
Prepara SD: personalizza la scheda

Aggiungi un file vuoto chiamato "ssh" nel disco "/boot/"

Aggiungi un file chiamato "wpa_supplicant.conf" nel disco "/boot/"

Apri wpa_supplicant.conf e inserisci il testo:

paese=USA

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

Salva e chiudi il file.

Passaggio 4: preparare il Raspberry Pi

Inserisci la tua scheda SD nel Pi

Accendi il Raspberry Pi, scegli un modo per aprire un desktop:

  1. Utilizzo di cavo hdmi, schermo, tastiera e mouse
  2. Usando VNC dal tuo computer.

Per ulteriori informazioni, visitare

Passaggio 5: Modo 1: connettersi al Pi utilizzando schermo, tastiera, mouse

Modo 1: connettersi al Pi utilizzando schermo, tastiera, mouse
Modo 1: connettersi al Pi utilizzando schermo, tastiera, mouse
Modo 1: connettersi al Pi utilizzando schermo, tastiera, mouse
Modo 1: connettersi al Pi utilizzando schermo, tastiera, mouse

Collega la porta Raspberry Pi HDMI0 a uno schermo con un cavo da micro-hdmi a hdmi

Collega una tastiera e un mouse USB (o una mini tastiera wireless come un "Rii Mini i8 Wireless")

Collega l'alimentatore USB C e accendi il Raspberry Pi.

Raspbian si avvierà sullo schermo.

Una volta visualizzato il desktop, rispondi al pannello di configurazione per completare la configurazione del tuo Pi.

Passaggio 6: Way 2: Connetti al Pi utilizzando VNC dal tuo computer

Way 2: Connetti al Pi usando VNC dal tuo computer
Way 2: Connetti al Pi usando VNC dal tuo computer
Way 2: Connetti al Pi usando VNC dal tuo computer
Way 2: Connetti al Pi usando VNC dal tuo computer
Way 2: Connetti al Pi usando VNC dal tuo computer
Way 2: Connetti al Pi usando VNC dal tuo computer

Collega il Raspberry Pi alla tua rete ethernet (tramite wifi o con un cavo).

Dal tuo computer, apri Mobaxterm (o putty), avvia una nuova connessione ssh (login pi, password raspberry) e configura il tuo Pi:

ssh pi@raspberry_ip

sudo raspi-config

  • nell'opzione Interfacciamento / VNC: impostare Sì
  • in Opzioni avanzate / Risoluzione: impostare la modalità DMT 82 1920x1080 60Hz 16:9
  • in Opzioni avanzate/Driver GL: imposta l'unità desktop G1 Legacy originale non GL

Salva ed esci da raspi-config

Riavvia il Pi:

sudo reboot

Dal tuo computer, apri VNC Viewer e connettiti al Pi usando il login pi, password raspberry: dovrebbe apparire il desktop Pi.

Rispondi al pannello di configurazione per completare la configurazione del tuo Pi.

Dopo aver modificato la password Pi, la connessione VNC potrebbe chiudersi. Riavvia utilizzando la tua nuova password.

Passaggio 7: preparare l'HDD

Preparare l'HDD
Preparare l'HDD
Preparare l'HDD
Preparare l'HDD
  1. Collega l'HDD al tuo computer.
  2. Apri il gestore delle partizioni di Windows, seleziona il tuo HDD e crea 2 partizioni NTFS (o 3, se desideri un piccolo spazio libero per preservare la scheda µSD). Ad esempio, chiamo le 2 parti "loic" e "vincent"
  3. Collega l'HDD al Pi: Raspbian dovrebbe montare automaticamente 2 dischi sul desktop. Le unità sono collegate alla cartella /media/pi/loic/ e /media/pi/vincent/

Passaggio 8: configurare Rsync: creare script di sincronizzazione

Configura Rsync: crea script di sincronizzazione
Configura Rsync: crea script di sincronizzazione

apri un prompt sul desktop Pi

In /home/pi/, crea uno script:

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

inserisci il testo:

#!/bin/sh

######## UN CONFIGURATORE ########### 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 " Sincronizzazione in corso: 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 "--------- -Debutto: "`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}

Configura le righe da 3 a 7:

  • sostituisci "loic" e "vincent" con il nome della tua unità
  • port_distant: per ora, usa 22 come porta remota. All'ultimo passaggio, dovrai sostituirlo con un altro valore a tua scelta (ad esempio: 34567)

salva il file ed esci.

Passaggio 9: configurare Rsync: eseguire una sincronizzazione una volta al giorno

Nel prompt, apri crontab:

sudo crontab -u pi -e

alla fine del file, aggiungi un cron:

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

In questo cron, lo script SB_sync verrà lanciato ogni giorno alle 1:00. Scegli l'ora che desideri, ma cambiala tra le 2 macchine, così le 2 sincronizzazioni verranno eseguite una dopo l'altra.

Salva e chiudi il file.

Passaggio 10: preparare Samba

Samba connette un archivio Linux alla rete Windows.

Apri un prompt e installa i pacchetti:

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

Autorizza l'account "pi" per accedere a Samba:

sudo smbpasswd -a pi

Salva il file di configurazione Samba predefinito:

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

Apri il file:

sudo nano /etc/samba/smb.conf

E alla fine del file, aggiungi queste righe per configurare la tua unità da condividere:

[LOIC DOCUMENTI]

comment = NAS de loic path = /media/pi/loic valid users = @users force group = user create mask = 0660 directory mask = 0775 sola lettura = no sfogliabile = si public = si

Salva il file ed esci.

Passaggio 11: [Facoltativo] Samba: configurare l'accesso in lettura all'unità di rete Vincent

Apri il file di configurazione di Samba:

sudo nano /etc/samba/smb.conf

E alla fine del file, aggiungi queste righe per configurare l'altra unità a cui vuoi accedere:

[DOCUMENTI VINCENZO]

comment = backup de vincent path = /media/pi/vincent valid users = @users force group = user create mask = 0660 directory mask = 0775 sola lettura = si navigabile = si public = si

Salva il file ed esci.

Passaggio 12: [Facoltativo] Samba: accesso al registro

Apri il file di configurazione di Samba:

sudo nano /etc/samba/smb.conf

E alla fine del file, aggiungi queste righe per accedere da Windows allo stato di sincronizzazione:

[LOG SYNCHRO]comment = "logs de synchro tra macchine"

path = /home/pi/SB_sync_logs/ valid users = @users force group = user create mask = 0660 directory mask = 0771 sola lettura = si sfogliabile = si public = si

Salva il file ed esci.

Passaggio 13: [Facoltativo] Samba: Nascondi cartella inutile "/home/pi"

Apri il file di configurazione di Samba:

sudo nano /etc/samba/smb.conf

Nel file, trova le seguenti righe e aggiungi ";" all'inizio per commentarlo:

;[le case]

; comment = Directory Home; sfogliabile = no; sola lettura = si; crea maschera = 0700; maschera di directory = 0700; utenti validi = %S

Salva il file ed esci.

Passaggio 14: accesso all'unità di rete da Windows

Accesso all'unità di rete da Windows
Accesso all'unità di rete da Windows

Dal computer Windows, apri un esploratore.

Fare clic su "Rete" e aggiornare la finestra.

Apparirà un computer con il nome del tuo Rapberry Pi.

Aprilo utilizzando l'account "pi" e la tua password.

Dovresti vedere le cartelle aggiunte in precedenza nel file di configurazione di Samba.

Passaggio 15: preparare la seconda macchina

La tua prima macchina è pronta.

Ripetere i passaggi precedenti per la seconda macchina, sostituendo (ad esempio) "loic" con "vincent".

Una volta che le 2 macchine saranno preparate, sarà necessario scambiare la chiave ssh per autorizzare l'accesso tra di loro, vedere il passaggio successivo.

Passaggio 16: creare SSH tra macchina locale e remota

Per semplificare la condivisione della chiave SSH, ogni Raspberry Pi deve essere connesso alla stessa rete ethernet.

Su ogni Raspberry Pi, apri un prompt sul desktop Pi e inserisci:

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

ssh-copy-id pi@IP_of_other_raspberry

Passaggio 17: testare il Synchro

Prova la sincronizzazione
Prova la sincronizzazione
Prova la sincronizzazione
Prova la sincronizzazione
Prova la sincronizzazione
Prova la sincronizzazione

Le tue 2 macchine sono pronte.

Puoi testare la sincronizzazione sul tuo computer Windows:

  1. aggiungi un file nell'unità di rete locale (ad esempio \Rpi4-loic\documents loic\test\test.txt),
  2. esegui lo script sul desktop Pi locale (esegui SB_sync in /home/pi/scripts)
  3. controlla che il tuo file appaia nell'unità di rete di backup (es. \Rpi4-vincent\documents loic\test\test.txt).

Dovresti essere in grado di leggere e scrivere file in \Rpi4-loic\documents loic\test\, ma leggere solo file in \Rpi4-vincent\documents loic\test\.

Il prossimo e ultimo passo è spostare la macchina "remota" all'interno di una rete di un altro luogo e configurare una connessione tra i 2 router tramite internet.

Passaggio 18: configurare i percorsi Internet

Nel mio caso, per la macchina locale di casa, mi abbono a un accesso a Internet che includa un router e un IP fisso.

Per la macchina remota, il provider di servizi Internet è lo stesso, quindi la configurazione è più semplice e non ho bisogno del DNS.

Nella mia casa:

  • Nel mio router, creo il percorso di una porta da "remote_internet_fixed_IP" su "port_34567" a "my_raspberry_IP" sulla porta "22"
  • Nel mio lampone, in /home/pi/scripts/SB_sync, sostituisco il valore "port_distant" "22" con "port_34567"

In un luogo remoto:

  • Nel router, creo il percorso di una porta da "my_internet_fixed_IP" su "port_34567" a "my_raspberry_IP" sulla porta "22"
  • Nel lampone remoto, in /home/pi/scripts/SB_sync, sostituisco il valore "port_distant" "22" con "port_34567"

Per la tua applicazione:

  • Devi sostituire gli IP e port_34567 con i tuoi.
  • In caso di IP Internet dinamico, devi abbonarti a un DNS.

Con l'aiuto del proprietario del lampone remoto, ripeti il test del passaggio precedente.

Finito!

Passo 19: Bibliografia

Installa Raspbian su µSD card

Personalizza la scheda µSD dopo la formattazione (SSH e WiFi)

Usando il tuo Raspberry Pi

Sincronizzazione Raspberry Pi con rysnc di feralhosting

Porta SSH specifica per Rsync

Installa e usa Samba

Consigliato: