Table des matières:

2 Raspberry Pis pour un RAID à distance facile et bon marché : 19 étapes
2 Raspberry Pis pour un RAID à distance facile et bon marché : 19 étapes

Vidéo: 2 Raspberry Pis pour un RAID à distance facile et bon marché : 19 étapes

Vidéo: 2 Raspberry Pis pour un RAID à distance facile et bon marché : 19 étapes
Vidéo: FAIRE UN CLUSTER DE PLUSIEURS RASPBERRY PI - (2/2) - FULL SETUP 2024, Novembre
Anonim
2 Raspberry Pis pour un RAID à distance facile et bon marché
2 Raspberry Pis pour un RAID à distance facile et bon marché
2 Raspberry Pis pour un RAID à distance facile et bon marché
2 Raspberry Pis pour un RAID à distance facile et bon marché

But

  1. En cas d'incident à la maison, je souhaite pouvoir récupérer mes principaux documents numériques (photos, papiers d'identité, etc.), et éventuellement les partager.
  2. Je veux partager cette solution avec quelqu'un d'autre (quelqu'un en qui j'ai confiance, des parents ou un ami)
  3. Je ne veux pas dépendre d'un cloud public (abonnement, frais, CGV évolutives, etc.)

Principe

  1. Créez 2 machines de stockage identiques, placez-les dans 2 emplacements différents (par exemple, 2 maisons).
  2. Attribuez un espace de stockage dédié à chaque emplacement sur chaque machine.
  3. Synchronisez régulièrement les 2 espaces de stockage.

Fournitures

Matériel

Chaque machine possède:

  • 1x Raspberry Pi 4B 1Go
  • 1x boîte pour Raspberry Pi 4
  • 1x alimentation USB C 5V 3A
  • 1x carte SD Kingston SDC10/16 Go
  • 1x NAS HDD 1To WD Mobile Rouge
  • 1x boîtier de disque dur BX-2525U3

Logiciel Windows

  • balena Graveur
  • Bureau Raspbian buster plein
  • mobaxterme
  • Visionneuse VNC (facultatif)

Forfaits Raspbian

  • Rsync
  • samba

Étape 1: Avantages et inconvénients

Avantages et inconvénients
Avantages et inconvénients

Avantages

  1. Cette solution n'est pas chère: je n'ai pas de frais d'abonnement et le matériel est abordable.
  2. Ce "RAID distant" est assez simple à réaliser. Je n'ai pas besoin de matériel ou d'outil supplémentaire pour le faire.
  3. Le Raspberry Pi peut être utilisé pour des applications supplémentaires comme le media center (kodi, …), ou la domotique (jeedom, domoticz, …).
  4. Mes données ne sont pas disponibles sur un cloud public qui pourrait être la cible d'un piratage massif de données.
  5. Avec un disque dur de 1To, la consommation électrique moyenne est la même qu'un cloud.
  6. Le firewall de mon routeur et le cryptage SSH de ma connexion sécurise les échanges de données.

Inconvénients/améliorations

  1. Quelqu'un d'autre a une copie de mes documents. Dans mon cas, cette personne est de ma famille donc je m'en fiche.
  2. J'utilise le compte "pi" par défaut, avec un mot de passe dédié pour les deux machines. Je pourrais sécuriser un peu plus l'accès en utilisant un compte spécifique séparé de chaque côté plutôt que le compte "pi".
  3. Je m'appuie sur mon fournisseur d'accès Internet et le cryptage SSH pour la sécurité de la connexion entre les 2 maisons. Des recherches peuvent être effectuées pour améliorer le niveau de sécurité.
  4. Pour l'instant, je n'ai fait que 2 partitions par lecteur. Une 3ème partition plus petite (~5Go) pourrait être utile pour d'autres activités Raspbian, afin de préserver la carte µSD.

Étape 2: Préparer la SD: Télécharger Raspbian

Depuis un ordinateur (Windows 10 dans mon cas), suivez le guide d'installation officiel (https://www.raspberrypi.org/downloads/raspbian/) pour installer "Raspbian Buster with desktop".

Ajoutez un fichier vide nommé "ssh" dans le disque "/boot/"

Ajoutez un fichier nommé "wpa_supplicant.conf" dans le disque "/boot/"

Ouvrez wpa_supplicant.conf et saisissez le texte:

pays=États-Unis

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

Enregistrez et fermez le fichier.

Étape 3: Préparez la SD: Personnalisez la carte

Préparer SD: Personnaliser la carte
Préparer SD: Personnaliser la carte

Ajoutez un fichier vide nommé "ssh" dans le disque "/boot/"

Ajoutez un fichier nommé "wpa_supplicant.conf" dans le disque "/boot/"

Ouvrez wpa_supplicant.conf et saisissez le texte:

pays=États-Unis

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

Enregistrez et fermez le fichier.

Étape 4: préparer le Raspberry Pi

Insérez votre carte SD dans le Pi

Allumez le Raspberry Pi, choisissez un moyen d'ouvrir un bureau:

  1. Utilisation d'un câble HDMI, d'un écran, d'un clavier et d'une souris
  2. Utilisation de VNC depuis votre ordinateur.

Pour plus d'informations, visitez

Étape 5: Voie 1: Connectez-vous au Pi à l'aide de l'écran, du clavier et de la souris

Façon 1: Connectez-vous au Pi à l'aide de l'écran, du clavier et de la souris
Façon 1: Connectez-vous au Pi à l'aide de l'écran, du clavier et de la souris
Façon 1: Connectez-vous au Pi à l'aide de l'écran, du clavier et de la souris
Façon 1: Connectez-vous au Pi à l'aide de l'écran, du clavier et de la souris

Connectez le port Raspberry Pi HDMI0 à un écran avec un câble micro-hdmi vers hdmi

Branchez un clavier et une souris USB (ou un mini clavier sans fil comme un "Rii Mini i8 Wireless")

Branchez l'alimentation USB C et allumez le Raspberry Pi.

Raspbian doit démarrer sur votre écran.

Une fois le bureau affiché, répondez au panneau de configuration pour terminer la configuration de votre Pi.

Étape 6: Voie 2: Connectez-vous au Pi à l'aide de VNC depuis votre ordinateur

Façon 2: Connectez-vous au Pi à l'aide de VNC depuis votre ordinateur
Façon 2: Connectez-vous au Pi à l'aide de VNC depuis votre ordinateur
Façon 2: Connectez-vous au Pi à l'aide de VNC depuis votre ordinateur
Façon 2: Connectez-vous au Pi à l'aide de VNC depuis votre ordinateur
Façon 2: Connectez-vous au Pi à l'aide de VNC depuis votre ordinateur
Façon 2: Connectez-vous au Pi à l'aide de VNC depuis votre ordinateur

Connectez le Raspberry Pi à votre réseau ethernet (par wifi ou avec un câble).

Depuis votre ordinateur, ouvrez Mobaxterm (ou putty), démarrez une nouvelle connexion ssh (login pi, mot de passe raspberry) et configurez votre Pi:

ssh pi@raspberry_ip

sudo raspi-config

  • dans l'option Interfaçage / VNC: définir Oui
  • dans Options avancées / Résolution: définissez le mode DMT 82 1920x1080 60Hz 16:9
  • dans Options avancées/pilote GL: définissez le lecteur de bureau non-GL G1 Legacy Original

Enregistrer et quitter raspi-config

Redémarrez le Pi:

redémarrage sudo

Depuis votre ordinateur, ouvrez VNC Viewer, et connectez-vous au Pi en utilisant le login pi, mot de passe raspberry: le bureau Pi devrait apparaître.

Répondez au panneau de configuration pour terminer la configuration de votre Pi.

Une fois que vous avez modifié le mot de passe Pi, la connexion VNC peut se fermer. Redémarrez-le en utilisant votre nouveau mot de passe.

Étape 7: préparer le disque dur

Préparer le disque dur
Préparer le disque dur
Préparer le disque dur
Préparer le disque dur
  1. Connectez le disque dur à votre ordinateur.
  2. Ouvrez le gestionnaire de partition Windows, sélectionnez votre disque dur et créez 2 partitions NTFS (ou 3, si vous voulez un petit espace libre pour préserver la carte µSD). Par exemple, je nomme les 2 parties "loic" et "vincent"
  3. Connectez le disque dur au Pi: Raspbian devrait monter automatiquement 2 disques sur le bureau. Les lecteurs sont liés au dossier /media/pi/loic/, et /media/pi/vincent/

Étape 8: Configurer Rsync: Créer un script de synchronisation

Configurer Rsync: Créer un script de synchronisation
Configurer Rsync: Créer un script de synchronisation

ouvrir une invite sur le bureau Pi

Dans /home/pi/, créez un script:

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

saisissez le texte:

#!/bin/sh

######## UN CONFIGURATEUR ########### 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_distant} ${media_distant}/ echo $currentDate> ${log_local}/0.synchro_en_cours_${machine_locale}_vers_${machine_distante} echo " Synchronisation en cours: de ${machine_locale} ${media_local}/ vers ${machine_distant} ${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

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}

Configurer les lignes 3 à 7:

  • remplacez "loic" et "vincent" par le nom de votre lecteur
  • port_distant: pour l'instant, utilisez 22 comme port distant. A la dernière étape, vous devrez le remplacer par une autre valeur de votre choix (exemple: 34567)

enregistrer le fichier et quitter.

Étape 9: Configurer Rsync: Effectuer une synchronisation une fois par jour

Dans l'invite, ouvrez crontab:

sudo crontab -u pi -e

à la fin du fichier, ajoutez un cron:

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

Dans ce cron, le script SB_sync sera lancé tous les jours à 1h00 du matin. Choisissez l'heure que vous voulez, mais changez-la entre les 2 machines, ainsi les 2 synchros seront effectuées l'une après l'autre.

Enregistrez et fermez le fichier.

Étape 10: préparer la samba

Samba connecte un stockage Linux au réseau Windows.

Ouvrez une invite et installez les packages:

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

Autoriser le compte "pi" pour accéder à Samba:

sudo smbpasswd -a pi

Enregistrez le fichier de configuration Samba par défaut:

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

Ouvrez le fichier:

sudo nano /etc/samba/smb.conf

Et à la fin du fichier, ajoutez ces lignes pour configurer votre lecteur à partager:

[DOCUMENTS LOI]

comment = NAS de loic path = /media/pi/loic valid users = @users force group = users create mask = 0660 directory mask = 0775 read only = no Browseable = yes public = yes

Enregistrez le fichier et quittez.

Étape 11: [Facultatif] Samba: Configurer l'accès en lecture au lecteur réseau Vincent

Ouvrez le fichier de configuration Samba:

sudo nano /etc/samba/smb.conf

Et à la fin du fichier, ajoutez ces lignes pour configurer l'autre lecteur auquel vous souhaitez accéder:

[DOCUMENTS VINCENT]

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

Enregistrez le fichier et quittez.

Étape 12: [Facultatif] Samba: Accès au journal

Ouvrez le fichier de configuration Samba:

sudo nano /etc/samba/smb.conf

Et à la fin du fichier, ajoutez ces lignes pour accéder depuis windows au status synchro:

[LOG SYNCHRO]comment = "logs de synchro entre machines"

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

Enregistrez le fichier et quittez.

Étape 13: [Facultatif] Samba: Masquer le dossier inutile "/home/pi"

Ouvrez le fichier de configuration Samba:

sudo nano /etc/samba/smb.conf

Dans le fichier, recherchez les lignes suivantes et ajoutez ";" au début pour le commenter:

;[maisons]

; comment = Répertoires personnels; navigable = non; lecture seule = oui; créer un masque = 0700; masque de répertoire = 0700; utilisateurs valides = %S

Enregistrez le fichier et quittez.

Étape 14: Accès au lecteur réseau à partir de Windows

Accès au lecteur réseau à partir de Windows
Accès au lecteur réseau à partir de Windows

Depuis un ordinateur Windows, ouvrez un explorateur.

Cliquez sur "Réseau" et rafraîchissez la fenêtre.

Un ordinateur portant le nom de votre Rapberry Pi apparaîtra.

Ouvrez-le en utilisant le compte "pi" et votre mot de passe.

Vous devriez voir les dossiers ajoutés précédemment dans le fichier de configuration Samba.

Étape 15: préparer la 2e machine

Votre 1ère machine est prête.

Répétez les étapes précédentes pour la 2ème machine, en remplaçant (par exemple) "loic" par "vincent".

Une fois les 2 machines préparées, vous devrez échanger la clé ssh pour autoriser l'accès entre elles, voir étape suivante.

Étape 16: Créer SSH entre la machine locale et distante

Pour simplifier le partage de clé SSH, chaque Raspberry Pi doit être connecté au même réseau Ethernet.

Sur chaque Raspberry Pi, ouvrez une invite sur le bureau Pi et entrez:

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

ssh-copy-id pi@IP_of_other_raspberry

Étape 17: Testez la synchronisation

Tester la synchro
Tester la synchro
Tester la synchro
Tester la synchro
Tester la synchro
Tester la synchro

Vos 2 machines sont prêtes.

Vous pouvez tester la synchro sur votre ordinateur Windows:

  1. ajouter un fichier dans votre lecteur réseau local (i.e. \Rpi4-loic\documents loic\test\test.txt),
  2. exécutez le script sur votre bureau Pi local (exécutez SB_sync dans /home/pi/scripts)
  3. vérifiez que votre fichier apparaît dans le lecteur réseau de sauvegarde (i.e. \Rpi4-vincent\documents loic\test\test.txt).

Vous devriez pouvoir lire et écrire des fichiers dans \Rpi4-loic\documents loic\test\, mais seulement lire des fichiers dans \Rpi4-vincent\documents loic\test\.

La prochaine et dernière étape consiste à déplacer la machine "distante" à l'intérieur d'un réseau d'un autre endroit et à configurer une connexion entre les 2 routeurs via Internet.

Étape 18: Configurer les routes Internet

Dans mon cas, pour la machine locale à la maison, je souscris à un accès internet comprenant un routeur et une IP fixe.

Pour la machine distante, le fournisseur d'accès Internet est le même, donc la configuration est plus facile et je n'ai pas besoin de DNS.

Dans ma maison:

  • Dans mon routeur, je crée une route de port de "remote_internet_fixed_IP" à "port_34567" à "my_raspberry_IP" au port "22"
  • Dans ma framboise, dans /home/pi/scripts/SB_sync, je remplace la valeur "port_distant" "22" par "port_34567"

Dans l'endroit éloigné:

  • Dans le routeur, je crée une route de port de "my_internet_fixed_IP" à "port_34567" à "my_raspberry_IP" au port "22"
  • Dans le raspberry distant, dans /home/pi/scripts/SB_sync, je remplace la valeur "port_distant" "22" par "port_34567"

Pour votre candidature:

  • Vous devez remplacer les IP et le port_34567 par les vôtres.
  • En cas d'IP Internet dynamique, vous devez vous abonner à un DNS.

Avec l'aide du propriétaire de la framboise distante, répétez le test de l'étape précédente.

Fini!

Étape 19: Bibliographie

Installer Raspbian sur la carte µSD

Personnaliser la carte µSD après le formatage (SSH et WiFi)

Utiliser votre Raspberry Pi

Raspberry Pi Sync avec rysnc par feralhosting

Port SSH spécifique pour Rsync

Installer et utiliser Samba

Conseillé: