Inhaltsverzeichnis:

2 Raspberry Pis für einfaches und günstiges Remote-RAID - Gunook
2 Raspberry Pis für einfaches und günstiges Remote-RAID - Gunook

Video: 2 Raspberry Pis für einfaches und günstiges Remote-RAID - Gunook

Video: 2 Raspberry Pis für einfaches und günstiges Remote-RAID - Gunook
Video: Установка сетевого хранилища (NAS) Open Media Vault на Orange Pi для дома или небольшого офиса 2024, Juli
Anonim
2 Raspberry Pis für einfaches und günstiges Remote RAID
2 Raspberry Pis für einfaches und günstiges Remote RAID
2 Raspberry Pis für einfaches und günstiges Remote RAID
2 Raspberry Pis für einfaches und günstiges Remote RAID

Zweck

  1. Im Falle eines Vorfalls zu Hause möchte ich meine wichtigsten digitalen Dokumente (Bilder, Ausweise usw.) wiederherstellen und optional weitergeben können.
  2. Ich möchte diese Lösung mit jemand anderem teilen (jemandem, dem ich vertraue, Eltern oder Freund)
  3. Ich möchte nicht von einer Public Cloud abhängig sein (Abonnement, Gebühren, sich entwickelnde AGB usw.)

Prinzip

  1. Erstelle 2 identische Lagermaschinen, platziere sie an 2 verschiedenen Orten (zum Beispiel 2 Häuser).
  2. Weisen Sie jedem Standort auf jedem Computer einen dedizierten Speicherplatz zu.
  3. Synchronisieren Sie regelmäßig die 2 Speicherplätze.

Lieferungen

Hardware

Jede Maschine hat:

  • 1x Raspberry Pi 4 B 1GB
  • 1x Box für Raspberry Pi 4
  • 1x Netzteil USB C 5V 3A
  • 1x SD-Karte Kingston SDC10/16GB
  • 1x NAS HDD 1To WD Red Mobile
  • 1x HDD-Box BX-2525U3

Software Windows

  • balenaEtcher
  • Raspbian Buster Desktop voll
  • mobaxterm
  • VNC-Viewer (optional)

Pakete Raspbian

  • Rsync
  • Samba

Schritt 1: Vor- und Nachteile

Vor- und Nachteile
Vor- und Nachteile

Vorteile

  1. Diese Lösung ist günstig: Ich habe keine Abonnementgebühren und die Hardware ist erschwinglich.
  2. Dieses "Remote-RAID" ist ganz einfach durchzuführen. Dafür benötige ich kein zusätzliches Material oder Werkzeug.
  3. Der Raspberry Pi kann für zusätzliche Anwendungen wie Media Center (kodi, …) oder domotic (jeedom, domoticz, …) verwendet werden.
  4. Meine Daten sind nicht in einer öffentlichen Cloud verfügbar, die ein Ziel massiver Datenpiraterie sein könnte.
  5. Bei einer HDD von 1To entspricht der durchschnittliche Stromverbrauch der einer Cloud.
  6. Die Firewall meines Routers und die SSH-Verschlüsselung meiner Verbindung sichern den Datenaustausch.

Nachteile/Verbesserungen

  1. Jemand anderes hat eine Kopie meiner Dokumente. In meinem Fall ist diese Person aus meiner Familie, also ist es mir egal.
  2. Ich verwende das Standardkonto "pi" mit einem dedizierten Passwort für beide Maschinen. Ich könnte den Zugriff ein wenig mehr sichern, indem ich auf jeder Seite ein separates spezifisches Konto anstelle des "pi" -Kontos verwende.
  3. Für die Sicherheit der Verbindung zwischen den 2 Häusern verlasse ich mich auf meinen Internetdienstanbieter und SSH-Verschlüsselung. Forschung kann durchgeführt werden, um das Sicherheitsniveau zu verbessern.
  4. Im Moment habe ich nur 2 Partitionen pro Laufwerk erstellt. Eine kleinere 3. Partition (~5Go) könnte für andere Raspbian-Aktivitäten nützlich sein, um die µSD-Karte zu schonen.

Schritt 2: SD vorbereiten: Raspbian hochladen

Folgen Sie von einem Computer (in meinem Fall Windows 10) der offiziellen Installationsanleitung (https://www.raspberrypi.org/downloads/raspbian/), um "Raspbian Buster mit Desktop" zu installieren.

Fügen Sie eine leere Datei namens "ssh" auf der Festplatte "/boot/" hinzu

Fügen Sie eine Datei mit dem Namen „wpa_supplicant.conf“auf der Festplatte „/boot/“hinzu

Öffnen Sie wpa_supplicant.conf und geben Sie den Text ein:

Land=USA

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

Speichern und schließen Sie die Datei.

Schritt 3: SD vorbereiten: Passen Sie die Karte an

SD vorbereiten: Passen Sie die Karte an
SD vorbereiten: Passen Sie die Karte an

Fügen Sie eine leere Datei namens "ssh" auf der Festplatte "/boot/" hinzu

Fügen Sie eine Datei mit dem Namen „wpa_supplicant.conf“auf der Festplatte „/boot/“hinzu

Öffnen Sie wpa_supplicant.conf und geben Sie den Text ein:

Land=USA

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

Speichern und schließen Sie die Datei.

Schritt 4: Bereiten Sie den Raspberry Pi vor

Legen Sie Ihre SD-Karte in das Pi. ein

Schalten Sie den Raspberry Pi ein, wählen Sie einen Weg, um einen Desktop zu öffnen:

  1. HDMI-Kabel, Bildschirm, Tastatur und Maus verwenden
  2. Verwenden von VNC von Ihrem Computer aus.

Weitere Informationen finden Sie unter

Schritt 5: Weg 1: Verbinden Sie sich mit dem Pi mit Bildschirm, Tastatur, Maus

Weg 1: Verbinden Sie sich mit dem Pi über Bildschirm, Tastatur, Maus
Weg 1: Verbinden Sie sich mit dem Pi über Bildschirm, Tastatur, Maus
Weg 1: Verbinden Sie sich mit dem Pi über Bildschirm, Tastatur, Maus
Weg 1: Verbinden Sie sich mit dem Pi über Bildschirm, Tastatur, Maus

Verbinden Sie den Raspberry Pi-Port HDMI0 über ein Micro-HDMI-zu-HDMI-Kabel mit einem Bildschirm

Schließen Sie eine USB-Tastatur und -Maus (oder eine drahtlose Mini-Tastatur wie eine "Rii Mini i8 Wireless") an

Stecken Sie das USB-C-Netzteil ein und schalten Sie den Raspberry Pi ein.

Raspbian wird auf Ihrem Bildschirm gestartet.

Sobald der Desktop angezeigt wird, beantworten Sie das Konfigurationsfenster, um die Konfiguration Ihres Pi abzuschließen.

Schritt 6: Weg 2: Verbinden Sie sich mit dem Pi mit VNC von Ihrem Computer aus

Weg 2: Verbinden Sie sich mit dem Pi mit VNC von Ihrem Computer aus
Weg 2: Verbinden Sie sich mit dem Pi mit VNC von Ihrem Computer aus
Weg 2: Verbinden Sie sich mit dem Pi mit VNC von Ihrem Computer aus
Weg 2: Verbinden Sie sich mit dem Pi mit VNC von Ihrem Computer aus
Weg 2: Verbinden Sie sich mit dem Pi mit VNC von Ihrem Computer aus
Weg 2: Verbinden Sie sich mit dem Pi mit VNC von Ihrem Computer aus

Verbinden Sie den Raspberry Pi mit Ihrem Ethernet-Netzwerk (per WLAN oder mit einem Kabel).

Öffnen Sie von Ihrem Computer aus Mobaxterm (oder Putty), starten Sie eine neue SSH-Verbindung (Login-Pi, Passwort Himbeere) und konfigurieren Sie Ihren Pi:

ssh pi@raspberry_ip

sudo raspi-config

  • in Schnittstellenoption / VNC: Ja einstellen
  • in Erweiterte Optionen / Auflösung: DMT-Modus einstellen 82 1920x1080 60Hz 16:9
  • in Erweiterte Optionen / GL-Treiber: G1 Legacy Original Nicht-GL-Desktop-Laufwerk einstellen

Speichern und beenden Sie raspi-config

Starten Sie den Pi neu:

sudo neu starten

Öffnen Sie von Ihrem Computer aus den VNC-Viewer und stellen Sie eine Verbindung zum Pi mit dem Login-Pi, dem Passwort raspberry, her: Der Pi-Desktop sollte erscheinen.

Beantworten Sie das Konfigurationsfenster, um die Konfiguration Ihres Pi abzuschließen.

Sobald Sie das Pi-Passwort geändert haben, könnte die VNC-Verbindung geschlossen werden. Starten Sie es mit Ihrem neuen Passwort neu.

Schritt 7: Bereiten Sie die Festplatte vor

Bereiten Sie die Festplatte vor
Bereiten Sie die Festplatte vor
Bereiten Sie die Festplatte vor
Bereiten Sie die Festplatte vor
  1. Verbinden Sie die Festplatte mit Ihrem Computer.
  2. Öffnen Sie den Windows-Partitionsmanager, wählen Sie Ihre Festplatte aus und erstellen Sie 2 NTFS-Partitionen (oder 3, wenn Sie einen kleinen freien Speicherplatz benötigen, um die µSD-Karte zu erhalten). Ich nenne zum Beispiel die 2 Teile "loic" und "vincent"
  3. Verbinden Sie die Festplatte mit dem Pi: Raspbian sollte automatisch 2 Festplatten auf dem Desktop mounten. Die Laufwerke sind mit den Ordnern /media/pi/loic/ und /media/pi/vincent/ verknüpft.

Schritt 8: Rsync konfigurieren: Synchro-Skript erstellen

Rsync konfigurieren: Synchro-Skript erstellen
Rsync konfigurieren: Synchro-Skript erstellen

öffne eine Eingabeaufforderung auf dem Pi-Desktop

Erstellen Sie in /home/pi/ ein Skript:

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

Geben Sie den Text ein:

#!/bin/sh

######## EIN KONFIGURER ########### 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 " Synchronisation im Kurs: de ${machine_locale} ${media_local}/ vers ${machine_distante} ${media_distant}/ " >> ${log_local}/0.synchro_en_cours_${machine_locale}_vers_${machine_distante} ${machine_distant} ${ 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 "--------- -Debüt: "`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}

Konfigurieren Sie die Zeilen 3 bis 7:

  • Ersetzen Sie "loic" und "vincent" durch den Namen Ihres Laufwerks
  • port_distant: Verwenden Sie vorerst 22 als Remote-Port. Im letzten Schritt müssen Sie ihn durch einen anderen Wert Ihrer Wahl ersetzen (Beispiel: 34567)

Datei speichern und beenden.

Schritt 9: Konfigurieren Sie Rsync: Führen Sie einmal am Tag eine Synchronisierung durch

Öffnen Sie in der Eingabeaufforderung crontab:

sudo crontab -u pi -e

Fügen Sie am Ende der Datei ein Cron hinzu:

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

In diesem Cron wird das Skript SB_sync jeden Tag um 1:00 Uhr gestartet. Wählen Sie die gewünschte Stunde, aber wechseln Sie zwischen den 2 Maschinen, damit die 2 Synchronisierungen nacheinander ausgeführt werden.

Speichern und schließen Sie die Datei.

Schritt 10: Samba vorbereiten

Samba verbindet einen Linux-Speicher mit dem Windows-Netzwerk.

Öffnen Sie eine Eingabeaufforderung und installieren Sie die Pakete:

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

Autorisieren Sie das Konto "pi", um auf Samba zuzugreifen:

sudo smbpasswd -a pi

Speichern Sie die Standard-Samba-Konfigurationsdatei:

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

Öffne die Datei:

sudo nano /etc/samba/smb.conf

Fügen Sie am Ende der Datei diese Zeilen hinzu, um Ihr Laufwerk für die Freigabe zu konfigurieren:

[DOKUMENTE LOIC]

Kommentar = NAS de loic-Pfad = /media/pi/loic gültige Benutzer = @users force group = Benutzer erstellen Maske = 0660 Verzeichnismaske = 0775 schreibgeschützt = nicht durchsuchbar = ja öffentlich = ja

Datei speichern und beenden.

Schritt 11: [Optional] Samba: Konfigurieren Sie den Lesezugriff auf das Netzlaufwerk Vincent

Öffnen Sie die Samba-Konfigurationsdatei:

sudo nano /etc/samba/smb.conf

Fügen Sie am Ende der Datei diese Zeilen hinzu, um das andere Laufwerk zu konfigurieren, auf das Sie zugreifen möchten:

[DOKUMENTE VINCENT]

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

Datei speichern und beenden.

Schritt 12: [Optional] Samba: Zugriff auf das Protokoll

Öffnen Sie die Samba-Konfigurationsdatei:

sudo nano /etc/samba/smb.conf

Und am Ende der Datei fügen Sie diese Zeilen für den Zugriff von Windows auf den Synchro-Status hinzu:

[LOG SYNCHRO]comment = "Protokolle von Synchro-Entre-Maschinen"

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

Datei speichern und beenden.

Schritt 13: [Optional] Samba: Verstecke den nutzlosen Ordner "/home/pi"

Öffnen Sie die Samba-Konfigurationsdatei:

sudo nano /etc/samba/smb.conf

Suchen Sie in der Datei die folgenden Zeilen und fügen Sie ";" am Anfang, um es zu kommentieren:

;[Häuser]

; Kommentar = Home-Verzeichnisse; durchsuchbar = nein; nur lesen = ja; Maske erstellen = 0700; Verzeichnismaske = 0700; gültige Benutzer = %S

Datei speichern und beenden.

Schritt 14: Zugriff auf das Netzlaufwerk von Windows

Zugriff auf Netzlaufwerk von Windows
Zugriff auf Netzlaufwerk von Windows

Öffnen Sie auf einem Windows-Computer einen Explorer.

Klicken Sie auf "Netzwerk" und aktualisieren Sie das Fenster.

Ein Computer mit dem Namen Ihres Rapberry Pi wird angezeigt.

Öffnen Sie es mit dem Konto "pi" und Ihrem Passwort.

Sie sollten die zuvor hinzugefügten Ordner in der Samba-Konfigurationsdatei sehen.

Schritt 15: Bereiten Sie die 2. Maschine vor

Ihre 1. Maschine ist vorbereitet.

Wiederholen Sie die vorherigen Schritte für die 2. Maschine und ersetzen Sie (zum Beispiel) "loic" durch "vincent".

Sobald die 2 Maschinen vorbereitet sind, müssen Sie den SSH-Schlüssel austauschen, um den Zugriff zwischen ihnen zu autorisieren, siehe nächster Schritt.

Schritt 16: Erstellen Sie SSH zwischen lokalem und Remote-Computer

Um die gemeinsame Nutzung von SSH-Schlüsseln zu vereinfachen, muss jeder Raspberry Pi mit demselben Ethernet-Netzwerk verbunden sein.

Öffnen Sie auf jedem Raspberry Pi eine Eingabeaufforderung auf dem Pi-Desktop und geben Sie ein:

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

ssh-copy-id pi@IP_of_other_raspberry

Schritt 17: Testen Sie die Synchro

Testen Sie die Synchro
Testen Sie die Synchro
Testen Sie die Synchro
Testen Sie die Synchro
Testen Sie die Synchro
Testen Sie die Synchro

Ihre 2 Maschinen sind bereit.

Sie können die Synchronisierung auf Ihrem Windows-Computer testen:

  1. fügen Sie eine Datei in Ihrem lokalen Netzlaufwerk hinzu (z. B. \Rpi4-loic\documents loic\test\test.txt),
  2. Führen Sie das Skript auf Ihrem lokalen Pi-Desktop aus (führen Sie SB_sync in /home/pi/scripts aus)
  3. Überprüfen Sie, ob Ihre Datei im Backup-Netzlaufwerk angezeigt wird (z. B. \Rpi4-vincent\documents loic\test\test.txt).

Sie sollten Dateien in \Rpi4-loic\documents loic\test\ lesen und schreiben können, aber nur Dateien in \Rpi4-vincent\documents loic\test\ lesen.

Der nächste und letzte Schritt besteht darin, den "Remote"-Computer in ein Netzwerk an einem anderen Ort zu verschieben und eine Verbindung zwischen den beiden Routern über das Internet zu konfigurieren.

Schritt 18: Internetrouten konfigurieren

In meinem Fall abonniere ich für den lokalen Rechner zu Hause einen Internetzugang inklusive Router und fester IP.

Für den Remote-Computer ist der Internetdienstanbieter derselbe, sodass die Konfiguration einfacher ist und ich kein DNS benötige.

Bei mir zu Hause:

  • In meinem Router erstelle ich eine Portroute von "remote_internet_fixed_IP" bei "port_34567" zu "my_raspberry_IP" bei Port "22"
  • In meiner Himbeere, in /home/pi/scripts/SB_sync, ersetze ich den "port_distant"-Wert "22" durch "port_34567"

Am abgelegenen Ort:

  • Im Router erstelle ich eine Portroute von "my_internet_fixed_IP" bei "port_34567" zu "my_raspberry_IP" bei Port "22"
  • In der Remote-Himbeere ersetze ich in /home/pi/scripts/SB_sync den "port_distant"-Wert "22" durch "port_34567".

Für Ihre Bewerbung:

  • Sie müssen die IPs und den Port_34567 durch Ihre eigenen ersetzen.
  • Bei dynamischer Internet-IP müssen Sie ein DNS abonnieren.

Wiederholen Sie mit Hilfe des Besitzers der Remote-Himbeere den Test des vorherigen Schritts.

Fertig!

Schritt 19: Bibliographie

Raspbian auf µSD-Karte installieren

µSD-Karte nach der Formatierung anpassen (SSH und WiFi)

Verwenden Ihres Raspberry Pi

Raspberry Pi Sync mit rysnc von feralhosting

Spezifischer SSH-Port für Rsync

Installieren und verwenden Sie Samba

Empfohlen: