Inhoudsopgave:

2 Raspberry Pis voor eenvoudige en goedkope externe RAID - Ajarnpa
2 Raspberry Pis voor eenvoudige en goedkope externe RAID - Ajarnpa

Video: 2 Raspberry Pis voor eenvoudige en goedkope externe RAID - Ajarnpa

Video: 2 Raspberry Pis voor eenvoudige en goedkope externe RAID - Ajarnpa
Video: Power Supplies 2: 3 PSU's for Raspberry Pi and HiFiBerry DAC+ 2024, November
Anonim
2 Raspberry Pis voor eenvoudige en goedkope externe RAID
2 Raspberry Pis voor eenvoudige en goedkope externe RAID
2 Raspberry Pis voor eenvoudige en goedkope externe RAID
2 Raspberry Pis voor eenvoudige en goedkope externe RAID

Doel

  1. Bij een incident thuis wil ik mijn belangrijkste digitale documenten (foto's, identiteitspapieren, enz.) kunnen terugvinden en eventueel kunnen delen.
  2. Ik wil deze oplossing delen met iemand anders (iemand die ik vertrouw, ouders of vriend)
  3. Ik wil niet afhankelijk zijn van een openbare cloud (abonnement, vergoedingen, evoluerende GTC, enz.)

Beginsel

  1. Maak 2 identieke opslagmachines, zet ze op 2 verschillende locaties (bijvoorbeeld 2 huizen).
  2. Wijs een speciale opslagruimte toe aan elke locatie op elke machine.
  3. Synchroniseer regelmatig de 2 opslagruimtes.

Benodigdheden

Hardware

Elke automaat heeft:

  • 1x Raspberry Pi 4B 1GB
  • 1x doos voor Raspberry Pi 4
  • 1x voeding USB C 5V 3A
  • 1x SD-kaart Kingston SDC10/16GB
  • 1x NAS HDD 1Naar WD Red Mobile
  • 1x HDD-box BX-2525U3

Software Windows

  • balenaEtcher
  • Raspbian buster desktop vol
  • mobaxterm
  • VNC-viewer (optioneel)

Pakketten Raspbian

  • Rsync
  • samba

Stap 1: Pro & Cons

Voors en tegens
Voors en tegens

Voordelen:

  1. Deze oplossing is goedkoop: ik heb geen abonnementskosten en hardware is betaalbaar.
  2. Deze "remote RAID" is vrij eenvoudig te doen. Ik heb geen extra materiaal of gereedschap nodig om het te doen.
  3. De Raspberry Pi kan gebruikt worden voor bijkomende toepassingen zoals mediacenter (kodi, …), of domotic (jeedom, domoticz, …).
  4. Mijn gegevens zijn niet beschikbaar in een openbare cloud die een doelwit zou kunnen zijn voor massale gegevenspiraterij.
  5. Bij een HDD van 1To is het gemiddelde elektriciteitsverbruik gelijk aan dat van een cloud.
  6. De firewall van mijn router en de SSH-encryptie van mijn verbinding beveiligen de gegevensuitwisseling.

Nadelen/verbeteringen

  1. Iemand anders heeft een kopie van mijn documenten. In mijn geval is deze persoon van mijn familie, dus het kan me niet schelen.
  2. Ik gebruik de standaard "pi"-account, met een speciaal wachtwoord voor beide machines. Ik zou de toegang een beetje meer kunnen beveiligen door aan elke kant een afzonderlijk specifiek account te gebruiken in plaats van het "pi" -account.
  3. Ik vertrouw op mijn internetprovider en SSH-codering voor de beveiliging van de verbinding tussen de 2 huizen. Er kan onderzoek worden gedaan om het beveiligingsniveau te verbeteren.
  4. Voor nu heb ik slechts 2 partities per schijf gemaakt. Een kleinere 3e partitie (~5Go) zou nuttig kunnen zijn voor andere Raspbian-activiteiten, om de µSD-kaart te bewaren.

Stap 2: Bereid SD voor: Upload Raspbian

Volg vanaf een computer (in mijn geval Windows 10) de officiële installatiehandleiding (https://www.raspberrypi.org/downloads/raspbian/) om "Raspbian Buster met desktop" te installeren.

Voeg een leeg bestand toe met de naam "ssh" in "/boot/" disk

Voeg een bestand toe met de naam "wpa_supplicant.conf" in "/boot/" disk

Open wpa_supplicant.conf en voer de tekst in:

land=VS

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

Sla het bestand op en sluit het.

Stap 3: Bereid SD voor: pas de kaart aan

Bereid SD voor: pas de kaart aan
Bereid SD voor: pas de kaart aan

Voeg een leeg bestand toe met de naam "ssh" in "/boot/" disk

Voeg een bestand toe met de naam "wpa_supplicant.conf" in "/boot/" disk

Open wpa_supplicant.conf en voer de tekst in:

land=VS

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

Sla het bestand op en sluit het.

Stap 4: Bereid de Raspberry Pi voor

Plaats uw SD-kaart in de Pi

Zet de Raspberry Pi aan, kies een manier om een bureaublad te openen:

  1. HDMI-kabel, scherm, toetsenbord en muis gebruiken
  2. VNC gebruiken vanaf uw computer.

Ga voor meer informatie naar

Stap 5: Manier 1: Maak verbinding met de Pi met behulp van scherm, toetsenbord, muis

Manier 1: Maak verbinding met de Pi met behulp van scherm, toetsenbord, muis
Manier 1: Maak verbinding met de Pi met behulp van scherm, toetsenbord, muis
Manier 1: Maak verbinding met de Pi met behulp van scherm, toetsenbord, muis
Manier 1: Maak verbinding met de Pi met behulp van scherm, toetsenbord, muis

Sluit de Raspberry Pi-poort HDMI0 aan op een scherm met een micro-hdmi-naar-hdmi-kabel

Sluit een USB-toetsenbord en -muis aan (of een draadloos mini-toetsenbord zoals een "Rii Mini i8 Wireless")

Sluit de USB C-voeding aan en zet de Raspberry Pi aan.

Raspbian zal op uw scherm starten.

Zodra het bureaublad verschijnt, beantwoordt u het configuratiepaneel om de configuratie van uw Pi te voltooien.

Stap 6: Manier 2: Maak verbinding met de Pi met VNC vanaf uw computer

Manier 2: maak verbinding met de Pi via VNC vanaf uw computer
Manier 2: maak verbinding met de Pi via VNC vanaf uw computer
Manier 2: maak verbinding met de Pi via VNC vanaf uw computer
Manier 2: maak verbinding met de Pi via VNC vanaf uw computer
Manier 2: maak verbinding met de Pi via VNC vanaf uw computer
Manier 2: maak verbinding met de Pi via VNC vanaf uw computer

Verbind de Raspberry Pi met je ethernetnetwerk (via wifi of met een kabel).

Open vanaf uw computer Mobaxterm (of putty), start een nieuwe ssh-verbinding (login pi, wachtwoord raspberry) en configureer uw Pi:

ssh pi@raspberry_ip

sudo raspi-config

  • in Interfacing-optie / VNC: stel Ja in
  • in Geavanceerde opties / Resolutie: DMT-modus instellen 82 1920x1080 60Hz 16:9
  • in Geavanceerde opties / GL-stuurprogramma: stel G1 Legacy Original niet-GL desktop-drive in

Opslaan en afsluiten raspi-config

Start de Pi opnieuw op:

sudo reboot

Open VNC Viewer vanaf uw computer en maak verbinding met de Pi met behulp van de login pi, wachtwoord raspberry: het Pi-bureaublad zou moeten verschijnen.

Beantwoord het configuratiepaneel om de configuratie van uw Pi te voltooien.

Nadat u het Pi-wachtwoord hebt gewijzigd, kan de VNC-verbinding sluiten. Start het opnieuw op met uw nieuwe wachtwoord.

Stap 7: Bereid de HDD voor

Bereid de HDD voor
Bereid de HDD voor
Bereid de HDD voor
Bereid de HDD voor
  1. Sluit de HDD aan op uw computer.
  2. Open Windows Partitiebeheer, selecteer uw HDD en maak 2 NTFS-partities aan (of 3, als u een kleine vrije ruimte wilt om de µSD-kaart te behouden). Ik noem bijvoorbeeld de 2 delen "loic" en "vincent"
  3. Sluit de HDD aan op de Pi: Raspbian zou automatisch 2 schijven op het bureaublad moeten mounten. De schijven zijn gekoppeld aan de map /media/pi/loic/, en /media/pi/vincent/

Stap 8: Rsync configureren: Synchroonscript maken

Rsync configureren: Synchroonscript maken
Rsync configureren: Synchroonscript maken

open een prompt op het Pi-bureaublad

Maak in /home/pi/ een script:

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

voer de tekst in:

#!/bin/sh

######## EEN CONFIGURATOR ########### 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 van ${machine_locale} ${media_local}/ vers ${machine_distante} ${media_distant}/ echo $currentDate> ${log_local}/0.synchro_en_cours_${machine_locale}_vers_${machine_distante} echo " Synchronisatie 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 "--------- -Debuut: "`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}

Regel 3 tot 7 configureren:

  • vervang "loic" en "vincent" door de naam van je schijf
  • port_distant: gebruik voor nu 22 als externe poort. Bij de laatste stap moet u deze vervangen door een andere waarde naar keuze (bijvoorbeeld: 34567)

bestand opslaan en afsluiten.

Stap 9: Rsync configureren: eenmaal per dag een synchronisatie uitvoeren

Open crontab in de prompt:

sudo crontab -u pi -e

voeg aan het einde van het bestand een cron toe:

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

In deze cron wordt elke dag om 01:00 uur het script SB_sync gelanceerd. Kies het gewenste uur, maar wissel het tussen de 2 machines, zodat de 2 synchronisaties na elkaar worden uitgevoerd.

Sla het bestand op en sluit het.

Stap 10: Bereid Samba

Samba verbindt een linux-opslag met het Windows-netwerk.

Open een prompt en installeer de pakketten:

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

Autoriseer account "pi" om toegang te krijgen tot Samba:

sudo smbpasswd -a pi

Sla het standaard Samba-configuratiebestand op:

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

Open het bestand:

sudo nano /etc/samba/smb.conf

En voeg aan het einde van het bestand deze regels toe om uw schijf te configureren om te delen:

[DOCUMENTEN LOIC]

comment = NAS de loic path = /media/pi/loic geldige gebruikers = @users force group = gebruikers maken masker = 0660 directory mask = 0775 alleen lezen = niet doorzoekbaar = ja openbaar = ja

Sla het bestand op en sluit af.

Stap 11: [Optioneel] Samba: Configureer leestoegang tot de netwerkschijf Vincent

Open het Samba-configuratiebestand:

sudo nano /etc/samba/smb.conf

En voeg aan het einde van het bestand deze regels toe om de andere schijf te configureren waartoe u toegang wilt:

[DOCUMENTEN VINCENT]

comment = backup de vincent path = /media/pi/vincent valid users = @users force group = gebruikers maken masker = 0660 directory mask = 0775 alleen lezen = ja doorbladerbaar = ja openbaar = ja

Sla het bestand op en sluit af.

Stap 12: [Optioneel] Samba: Toegang tot Logboek

Open het Samba-configuratiebestand:

sudo nano /etc/samba/smb.conf

En voeg aan het einde van het bestand deze regels toe om vanuit Windows toegang te krijgen tot de synchronisatiestatus:

[LOG SYNCHRO]comment = "logt de synchroon tussen machines"

path = /home/pi/SB_sync_logs/ valide gebruikers = @users force group = gebruikers maken masker = 0660 directory mask = 0771 alleen lezen = ja doorbladerbaar = ja openbaar = ja

Sla het bestand op en sluit af.

Stap 13: [Optioneel] Samba: verberg nutteloze map "/home/pi"

Open het Samba-configuratiebestand:

sudo nano /etc/samba/smb.conf

Zoek in het bestand de volgende regels en voeg ";" toe aan het begin om het te becommentariëren:

;[huizen]

; comment = Home Directory's; doorzoekbaar = nee; alleen lezen = ja; maak masker = 0700; directorymasker = 0700; geldige gebruikers = %S

Sla het bestand op en sluit af.

Stap 14: Toegang tot netwerkschijf vanuit Windows

Toegang tot netwerkschijf vanuit Windows
Toegang tot netwerkschijf vanuit Windows

Open een verkenner vanaf een Windows-computer.

Klik op "Netwerk" en ververs het venster.

Er verschijnt een computer met de naam van uw Rapberry Pi.

Open het met het account "pi" en uw wachtwoord.

U zou de mappen moeten zien die eerder zijn toegevoegd in het Samba-configuratiebestand.

Stap 15: Bereid de 2e machine voor

Uw 1e machine is voorbereid.

Herhaal de vorige stappen voor de 2e machine, vervang (bijvoorbeeld) "loic" door "vincent".

Zodra de 2 machines zijn voorbereid, moet u de ssh-sleutel uitwisselen om toegang tussen hen te autoriseren, zie de volgende stap.

Stap 16: SSH maken tussen lokale en externe machine

Om het delen van de SSH-sleutel te vereenvoudigen, moet elke Raspberry Pi op hetzelfde ethernetnetwerk zijn aangesloten.

Open op elke Raspberry Pi een prompt op het Pi-bureaublad en voer het volgende in:

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

ssh-copy-id pi@IP_of_other_raspberry

Stap 17: Test de synchronisatie

Test de synchronisatie
Test de synchronisatie
Test de synchronisatie
Test de synchronisatie
Test de synchronisatie
Test de synchronisatie

Je 2 machines zijn klaar.

U kunt de synchronisatie testen op uw Windows-computer:

  1. voeg een bestand toe aan uw lokale netwerkstation (bijv. \Rpi4-loic\documents loic\test\test.txt),
  2. voer het script uit op uw lokale Pi-bureaublad (voer SB_sync uit in /home/pi/scripts)
  3. controleer of uw bestand op de back-upnetwerkschijf staat (d.w.z. \Rpi4-vincent\documents loic\test\test.txt).

U zou bestanden in \Rpi4-loic\documents loic\test\ moeten kunnen lezen en schrijven, maar alleen bestanden in \Rpi4-vincent\documents loic\test\.

De volgende en laatste stap is om de "remote" machine binnen een netwerk van een andere plaats te verplaatsen en een verbinding tussen de 2 routers via internet te configureren.

Stap 18: Internetroutes configureren

In mijn geval, voor de lokale computer thuis, abonneer ik me op een internettoegang inclusief een router en een vast IP-adres.

Voor de externe machine is de internetserviceprovider hetzelfde, dus de configuratie is eenvoudiger en ik heb geen DNS nodig.

In mijn huis:

  • In mijn router maak ik een poortroute van "remote_internet_fixed_IP" op "port_34567" naar "my_raspberry_IP" op poort "22"
  • In mijn Raspberry vervang ik in /home/pi/scripts/SB_sync de "port_distant" waarde "22" door "port_34567"

Op de afgelegen plek:

  • In de router maak ik een poortroute van "my_internet_fixed_IP" op "port_34567" naar "my_raspberry_IP" op poort "22"
  • In de remote Raspberry, in /home/pi/scripts/SB_sync, vervang ik de "port_distant" waarde "22" door "port_34567"

Voor uw aanvraag:

  • U moet de IP's en poort_34567 zelf vervangen.
  • In het geval van dynamisch internet-IP, moet u zich abonneren op een DNS.

Herhaal met de hulp van de eigenaar van de externe framboos de test van de vorige stap.

Afgewerkt!

Stap 19: Bibliografie

Installeer Raspbian op µSD-kaart

Pas de µSD-kaart aan na het formatteren (SSH en WiFi)

Uw Raspberry Pi gebruiken

Raspberry Pi Sync met rysnc door feralhosting

Specifieke SSH-poort voor Rsync

Installeer en gebruik Samba

Aanbevolen: