Sauvegarde d’un NAS Synology vers un Raspberry Pi 4

Comme je l’avais annoncé dans le plan de mon infra perso, et disposant d’un peu de temps à l’appart (merci le confinement!), j’en ai profité pour mettre en place le backup des 8To (raid 5) du NAS sur un Raspberry Pi 4 et un disque dur USB 3.0 de 8To.

C’était assez simple au final.

Le matériel

J’avais déjà le matériel nécessaire:

Installation de la distribution sur le Raspberry Pi

Raspberry a mis à disposition un utilitaire permettant de mettre un OS sur la carte micro SD.

Interface Raspberry Pi Imager

Moi j’avais déjà téléchargé une image Ubuntu pour raspberry depuis  https://ubuntu.com/download/raspberry-pi .

Comme j’avais peur de galérer parce je n’avais pas de clavier filaire (juste mes Logitech sans fil qui au final fonctionnent out of the box) , et que je voulais être tranquille avec mon écran et mon pc principal , j’ai activé le ssh sur la distrib.

Rien de plus simple puisqu’il suffit, une fois que l’image a fini d’être copiée, j’ai ajouté un fichier nommé ssh à la racine de la carte micro SD.

Explorateur Windows: ajout du fichier ssh

Il m’a ensuite suffit de retrouver l’IP locale depuis l’interface de mon routeur (freebox).

Première connexion

Il est temps de remettre la carte micro SD et de booter le raspberry. L’utilisateur par défaut est Ubuntu, à la première connexion, il va y avoir le changement de mot de passe.

λ ssh ubuntu@192.168.1.11
The authenticity of host '192.168.1.11 (192.168.1.11)' can't be established.
ECDSA key fingerprint is SHA256:R9y50dw5YAmuLo3DfrT0fYeK2FuF+z9fcPJ0TbVyVio.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.11' (ECDSA) to the list of known hosts.
ubuntu@192.168.1.11's password:
You are required to change your password immediately (administrator enforced)
Welcome to Ubuntu 19.10 (GNU/Linux 5.3.0-1014-raspi2 aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sat Mar 21 11:18:58 UTC 2020

  System load:  1.52              Processes:           137
  Usage of /:   3.1% of 58.27GB   Users logged in:     0
  Memory usage: 8%                IP address for eth0: 192.168.1.11
  Swap usage:   0%

 * Latest Kubernetes 1.18 beta is now available for your laptop, NUC, cloud
   instance or Raspberry Pi, with automatic updates to the final GA release.

     sudo snap install microk8s --channel=1.18/beta --classic

 * Multipass 1.1 adds proxy support for developers behind enterprise
   firewalls. Rapid prototyping for cloud operations just got easier.

     https://multipass.run/

84 updates can be installed immediately.
42 of these updates are security updates.
To see these additional updates run: apt list --upgradable

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

WARNING: Your password has expired.
You must change your password now and login again!
Changing password for ubuntu.
Current password:
New password:
Retype new password:
passwd: password updated successfully
Connection to 192.168.1.11 closed.

Puis avant de commencer l’installation et la config du backup, une mise à jour globale du système:

ubuntu@ubuntu:~$ sudo apt update && sudo apt upgrade -y

Voilà un système tout neuf!!

Montage et formatage du disque dur externe

Commençons par monter (et formater) mon disque dur usb. Premièrement je repère mon disque:

ubuntu@ubuntu:~$ sudo fdisk -l

Ce qui me donne entre autre :

Disk /dev/sda: 7.28 TiB, 8001563221504 bytes, 15628053167 sectors
Disk model: Desktop
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C448ED11-9680-43C7-B5D8-61E989BBC195

Device      Start         End     Sectors  Size Type
/dev/sda1      34      262177      262144  128M Microsoft reserved
/dev/sda2  264192 15628052479 15627788288  7.3T Microsoft basic data

Mon disque dur avait une partition Windows, j’ai préféré tout remettre à plat :

ubuntu@ubuntu:~$ sudo fdisk /dev/sda
Command (m for help): d
Partition number (1,2, default 2): 1


Command (m for help): n
Partition number (1-128, default 1): 1
First sector (34-15628053133, default 2048): 34
Last sector, +/-sectors or +/-size{K,M,G,T,P} (34-15628053133, default 15628053133):

Created a new partition 1 of type 'Linux filesystem' and of size 7.3 TiB.

Command (m for help): p
Disk /dev/sda: 7.28 TiB, 8001563221504 bytes, 15628053167 sectors
Disk model: Desktop
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C448ED11-9680-43C7-B5D8-61E989BBC195

Device     Start         End     Sectors  Size Type
/dev/sda1     34 15628053133 15628053100  7.3T Linux filesystem

Partition 1 does not start on physical sector boundary.

Command (m for help): w

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Et ensuite , après avoir réagencé les partitions, je formate le disque en ext4 :

ubuntu@ubuntu:~$ sudo mkfs.ext4 /dev/sda1

Maintenant je monte mon disque dur dans un répertoire que je crée pour l’occasion :

ubuntu@ubuntu:~$ sudo mkdir /mnt/USB
ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt/USB/

Tout fonctionne, il ne reste plus qu’à monter le disque à chaque redémarrage. Là, ça se passe dans la table de montage des partitions, fstab :

ubuntu@ubuntu:~$ sudo vim /etc/fstab

Et j’y ajoute ma partition :

 /dev/sda1   /mnt/USB        ext4  defaults  0       2

Le fichier ressemble à :

LABEL=writable  /        ext4   defaults        0 0
LABEL=system-boot       /boot/firmware  vfat    defaults        0       1
/dev/sda1  /mnt/USB        ext4  defaults  0       2

Le disque qui servira de stockage pour le backup du NAS est maintenant en place.

Configuration du serveur Rsync

Configurons rsync… s’il n’est pas déjà installé :

sudo apt install rsync

Pour la suite j’ai suivi en partie https://doc.ubuntu-fr.org/tutoriel/serveur_de_synchronisation_avec_rsync

Pour autoriser rsync à se lancer, il faut éditer le fichier /etc/default/rsync via la commande :

sudo vim /etc/default/rsync

et modifier la ligne RSYNC à true :

RSYNC_ENABLE=true

Pour configurer rsync, on crée le fichier de configuration de rsync en éditant le fichier /etc/rsyncd.conf via la commande :

sudo vi /etc/rsyncd.conf

En entête de ce fichier, il faut copier les lignes suivantes :

uid = rsync
gid = rsync

Le démon rsyncd sera lancé en tant qu’utilisateur rsync, et pourra donc écrire dans les répertoires qui lui seront attribués.
Dans ce fichier, on introduit les informations concernant les modules. Un module est une sorte de partage rsync. Dans notre cas, on va créer un module nommé USB :

[USB]
path = /mnt/USB
comment = Disque USB
read only = no

Ajouter un utilisateur et un groupe rsync :

sudo useradd rsync
sudo passwd rsync
sudo groupadd rsync
sudo gpasswd -a rsync rsync

Attribuer le répertoire de sauvegarde à rsync :

sudo chown -R rsync:rsync /mnt/USB

Attribuer les droits adéquats au répertoire de sauvegarde :

sudo chmod -R 775 /mnt/USB

Pour terminer, lancer rsync sans redémarrage avec la commande :

sudo /etc/init.d/rsync start

Le serveur rsync est On, le disque est monté, je n’ai plus qu’à configurer le NAS pour qu’il se synchronise.

Je n’arrivais pas depuis l’interface du Synology à me connecter au serveur rsync avec le chiffrement activé.

Après quelques recherches dans les logs , j’ai trouvé :

Mar 22 07:17:52 ubuntu rsyncd[3359]: rsync: unable to open config file "rsyncd.conf": No such file or directory (2)
Mar 22 07:17:52 ubuntu rsyncd[3359]: rsync error: syntax or usage error (code 1) at clientserver.c(1056) [Receiver=3.1.3]

Après avoir écumé Google à la recherche de solution sans réel succès. j’ai trouvé quelque chose d’un peu cracra…. Mais qui pour le coup fonctionne :

chmod u+s /usr/bin/rsync

Suivi du redémarrage du service :

sudo /etc/init.d/rsync start

Et là j’ai pu continuer sans souci sur l’interface Synology Hyper Backup :

installation Hyper Backup
configuration Hyper Backup

Voilà , il ne me reste plus qu’à suivre le déroulement des premières sauvegardes sur quelques jours et de l’envoyer ensuite sur un site distant.

J’espère que cet article éveillera votre curiosité et vous permettra pourquoi pas de mettre en place un backup pour vos propres données .

Partagez l'article:
FacebookTwitterEmailLinkedIn

4 réflexions au sujet de « Sauvegarde d’un NAS Synology vers un Raspberry Pi 4 »

  1. Merci,
    bon tuto.
    Réalisé avec une rasberry 2, ça fonctionne plutôt bien.
    Mon DD USB est un modèle sans alim ext et ça tourne sans pb.

    Loran

  2. Bonjour,

    Merci pour ce tuto ! Est-ce qu’il existe une solution pour chiffrer le disque de sauvegarder ? Si j’installe la raspberry chez un ami par exemple et que je ne veux pas que le disque soit lisible ?
    Merci d’avance

    1. Bonjour Clément, merci pour ton retour!!
      C’est vrai que de mon côté je n’ai pas mis de chiffrement en place, mais je ne vois pas ce qui empêcherait de le faire.
      Il faudrait voir du côté de LUKS ou LVM. Il y a la doc https://doc.ubuntu-fr.org/cryptsetup qui propose la mise en place d’une partition chiffrée et d’un montage automatique.
      à voir aussi au niveau des perfs…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.