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:
- Raspberry PI 4 4go en kit (avec adaptateur micro HDMI, adaptateur secteur, boitier)
- Carte micro SD 64go
- Disque dur externe Seagate Desktop 8to
Installation de la distribution sur le Raspberry Pi
Raspberry a mis à disposition un utilitaire permettant de mettre un OS sur la carte micro SD.
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.
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 :
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 .
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
Merci pour ton retour. je suis content que ça puisse servir!
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
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…