Files
scripts-admin-debian/backup_and_restore/scaleway/methode_de_sauvegarde.md
2025-02-26 01:24:50 +01:00

14 KiB

Table des matières

Méthode de sauvegarde

Méthode 3-2-1 La méthode de sauvegarde que j'utilise est basée sur le principe 3-2-1, qui est considéré comme une bonne pratique en matière de sauvegarde des données. J'ai 3 copies de mes données, stockées sur 2 types de supports différents, avec 1 copie hors site.

Ma méthode de sauvegarde :

  1. Sauvegardes quotidiennes :

    • Les sauvegardes des serveurs, VM/VPS et configurations sont effectuées quotidiennement par l'utilisateur root.
    • Ces sauvegardes sont conservées pendant 7 jours.
    • Elles sont transférées sur le NAS et stockées à la fois sur la machine source et le NAS, puis synchronisées sur Scaleway.
  2. Sauvegardes mensuelles :

    • Les sauvegardes des serveurs et VM/VPS sont effectuées le premier jour de chaque mois.
    • Ces sauvegardes sont conservées pendant 3 mois.
    • Elles sont directement stockées sur le NAS ou transférées après leur création, puis synchronisées sur Scaleway.
  3. Sauvegardes manuelles :

    • Deux copies des sauvegardes des serveurs, des dossiers personnels (photos/vidéos) et des VM/VPS sont effectuées manuellement tous les trois ou six mois.
    • Ces sauvegardes sont stockées sur un ou deux disques durs externes, qui sont connectés uniquement pour le transfert.
  4. Sauvegarde Proxmox :

    • Sur Proxmox, j'utilise l'interface graphique pour effectuer des sauvegardes quotidiennes des VMs et des conteneurs. Ces sauvegardes sont conservées pendant 7 jours sur le stockage local de Proxmox.
    • Les sauvegardes mensuelles sont ensuite transférées directement sur le NAS avec le point de montage NFS.

proxmox_backup Vous pouvez trouver plus d'informations sur la sauvegarde Proxmox dans la documentation officielle.

Synchronisation des fichiers personnels

Mes photos, vidéos, clés SSH, sauvegardes de jeux, documents personnels et gestionnaire de mots de passe sont synchronisés sur mon ordinateur portable, mon téléphone et mon PC fixe. Cela signifie que j'ai à tout moment ces fichiers synchronisés avec Syncthing. Sur Proxmox, j'ai un serveur Syncthing qui est lui-même sauvegardé selon les méthodes 1, 2 et 3 mentionnées précédemment.

Transfert des sauvegardes avec rclone

Pour le transfert des sauvegardes, j'utilise l'outil en ligne de commande rclone. Rclone est compatible avec de nombreux services de stockage tels que SFTP, Google Drive, Dropbox, Amazon S3, Scaleway, Proton Drive et bien d'autres. Cela me permet de gérer facilement les différents stockages et de synchroniser les données de manière efficace.

Chiffrement des sauvegardes avec rclone

Rclone offre une fonctionnalité de chiffrement intégrée appelée "crypt", qui me permet de chiffrer les fichiers uniquement sur le stockage distant (Scaleway, dans notre cas), sans avoir à les chiffrer localement. Ainsi, mes données sont sécurisées sur le service de stockage, mais restent lisibles sur mon système local. Lorsque je souhaite accéder à ces sauvegardes, je les déchiffre et les télécharge en utilisant rclone avec ce fichier de configuration.

Tester les sauvegardes

Il est essentiel de tester régulièrement la restauration de vos sauvegardes pour vous assurer qu'elles sont fonctionnelles et que vous pouvez bien récupérer vos données en cas de besoin. Cela vous permettra d'identifier d'éventuels problèmes et de prendre les mesures correctives nécessaires.

Je recommande de tester la restauration de vos sauvegardes au moins une fois par trimestre. Choisissez des fichiers ou des données représentatifs, restaurez-les et vérifiez qu'ils sont bien récupérés et utilisables. Cette étape est cruciale pour garantir la fiabilité de votre système de sauvegarde.

Sécurité des transferts

Pour sécuriser les transferts de sauvegardes vers le NAS, il est important d'ouvrir les ports nécessaires sur le pare-feu et de mettre en place une liste blanche des adresses IP autorisées à se connecter. De plus, il est recommandé de créer un utilisateur dédié pour chaque machine qui a les droits d'accès spécifiques à son dossier de sauvegarde sur le NAS.

Cela permet de limiter les risques d'accès non autorisés et de garantir la confidentialité des données sauvegardées. Il est également important de s'assurer que les communications entre les machines et le NAS soient chiffrées (SSH, SFTP, etc.).

Stockage externe

Scaleway Cold Storage

Pour le stockage externe à long terme, j'utilise le service de stockage froid (Cold Storage) de Scaleway. Mes données sont stockées dans un abri sous-terrain sécurisé à un coût très abordable de 0,002 € par gigaoctet et par mois. Cela me permet de conserver des copies de mes sauvegardes les plus importantes à un faible coût tout en bénéficiant d'un stockage sécurisé et durable.

myKSuite

Pour les utilisations de moins de 1 To, il existe également la solution myKSuite, hébergée en Suisse, qui coûte 20 € ou 15 CHF par an. Avec cette option, il faut découper les fichiers en blocs avec rclone, puis ces blocs de moins 50 gigaoctets seront automatiquement reconstitués lors du téléchargement.

Exemple de script Bash pour sauvegarder des dossiers

Voici un exemple de script Bash qui permet de sauvegarder des dossiers de manière automatique :

#!/bin/bash

# Description
# Ce script effectue une sauvegarde quotidienne des dossiers spécifiés.
# Les sauvegardes sont conservées pendant 7 jours et transférées sur le NAS.
# Le script est exécuté via une tâche cron tous les jours à 3h du matin.

# Dossiers à sauvegarder
BACKUP_DIRS=("/home/user/documents" "/home/user/photos" "/etc/config")

# Destination des sauvegardes
BACKUP_DEST="/mnt/nas/backups"

# Nombre de jours de conservation
RETENTION_DAYS=7

# Exécution de la sauvegarde
for dir in "${BACKUP_DIRS[@]}"; do
    filename="$(basename "$dir")_$(date +%Y-%m-%d).tar.gz"
    tar -czf "$BACKUP_DEST/$filename" "$dir"
done

# Suppression des sauvegardes obsolètes
find "$BACKUP_DEST" -type f -mtime +$RETENTION_DAYS -delete

# Synchronisation des sauvegardes sur Scaleway
rclone sync "$BACKUP_DEST" remote:backups

# Fin du script
echo "Sauvegarde terminée."

Utilisation avec Crontab : Pour exécuter ce script automatiquement tous les jours à 3h du matin, ajoutez la ligne suivante à votre fichier Crontab (crontab -e) :

0 3 * * * /chemin/vers/votre/script.sh

Cela permettra d'effectuer les sauvegardes quotidiennes de manière régulière.

Exemple de script Bash pour le transfert avec rclone

Voici un exemple de script Bash qui permet de transférer les sauvegardes vers le NAS et Scaleway à l'aide de rclone :

#!/bin/bash

# Description
# Ce script transfère les sauvegardes quotidiennes et mensuelles vers le NAS et Scaleway.
# Il est exécuté via une tâche cron le premier de chaque mois à 4h du matin.

# Dossiers à transférer
BACKUP_DIRS=("/mnt/nas/backups")

# Destination des transferts
NAS_REMOTE="remote:nas/backups"
SCALEWAY_REMOTE="remote:scaleway/backups"

# Exécution du transfert
for dir in "${BACKUP_DIRS[@]}"; do
    rclone sync "$dir" "$NAS_REMOTE"
    rclone sync "$dir" "$SCALEWAY_REMOTE"
done

# Fin du script
echo "Transfert terminé."

Utilisation avec Crontab : Pour exécuter ce script automatiquement le premier de chaque mois à 4h du matin, ajoutez la ligne suivante à votre fichier Crontab (crontab -e) :

0 4 1 * * /chemin/vers/votre/rclone_script.sh

Cela permettra de transférer les sauvegardes mensuelles de manière régulière.

Fichier de configuration rclone

Rclone offre une fonctionnalité de chiffrement intégrée appelée "crypt", qui me permet de chiffrer les fichiers uniquement sur le stockage distant (Scaleway, dans notre cas), sans avoir à les chiffrer localement. Ainsi, mes données sont sécurisées sur le service de stockage, mais restent lisibles sur mon système local. Lorsque je souhaite accéder à ces sauvegardes, je les déchiffre et les télécharge en utilisant rclone avec ce fichier de configuration.

Rclone se charge de générer les mots de passe nécessaires au chiffrement et au déchiffrement des données lors de la configuration du remote "crypt". Vous pouvez alors sauvegarder ce fichier de configuration rclone.conf et le transférer sur d'autres machines si nécessaire, afin d'accéder à vos sauvegardes chiffrées depuis différents endroits.

Le fichier de configuration rclone.conf est généralement placé dans l'un des emplacements suivants :

  • Sur Linux/Unix : ~/.config/rclone/rclone.conf (répertoire personnel de l'utilisateur)
  • Sur Windows : %USERPROFILE%\.config\rclone\rclone.conf (répertoire personnel de l'utilisateur)
  • Sur macOS : ~/Library/Application Support/rclone/rclone.conf (répertoire personnel de l'utilisateur)

Vous pouvez également le placer à un emplacement de votre choix, mais vous devrez alors spécifier le chemin complet lors de l'utilisation de rclone.

Les principaux paramètres à configurer sont :

  • access_key_id et secret_access_key : à remplacer par vos propres identifiants Scaleway.
  • region = fr-par : région de stockage en France.
  • storage_class = GLACIER : utilisation du stockage froid Glacier.
  • password et password2 : à remplacer par vos propres mots de passe forts pour le chiffrement.

Lorsque je souhaite accéder à ces sauvegardes, je les déchiffre et les télécharge en utilisant rclone avec ce fichier de configuration.

Exemple de commande pour télécharger les sauvegardes chiffrées

rclone ls crypt_scaleway:backups
rclone cat crypt_scaleway:backups/filename.tar.gz | tar xzf -

Explications :

  1. rclone ls crypt_scaleway:backups : Cette commande liste le contenu du dossier "backups" sur le remote "crypt_scaleway". Cela vous permet de voir quels fichiers sont présents.

  2. rclone cat crypt_scaleway:backups/filename.tar.gz | tar xzf - : Cette commande télécharge le fichier "filename.tar.gz" depuis le dossier "backups" du remote "crypt_scaleway", le déchiffre automatiquement, puis l'extrait dans le répertoire courant.

Le remote "crypt_scaleway" fait référence à la section [crypt] de votre fichier de configuration rclone. Il permet d'accéder aux fichiers chiffrés sur le stockage Scaleway.

Assurez-vous d'avoir correctement configuré les paramètres de chiffrement (mot de passe, etc.) dans votre fichier de configuration rclone.conf avant d'exécuter ces commandes.

Voici le paragraphe amélioré :

Passage de la classe de stockage Glacier vers Standard

Lorsque vous avez des fichiers stockés dans la classe de stockage Glacier de Scaleway, vous pouvez avoir besoin de les restaurer temporairement dans la classe Standard pour pouvoir y accéder. Les scripts ci-dessous vous permettent de gérer ce processus.

Vous pouvez télécharger les scripts dans le dossier avec ce lien. Vous pouvez également trouver plus d'informations sur la documentation officielle de Scaleway.

Liste des objets stockés en Glacier

Le script list-glacier-objects.sh vous permet de lister tous les objets stockés dans la classe Glacier d'un bucket Scaleway spécifique, avec la possibilité de filtrer par répertoire.

./list-glacier-objects.sh my-bucket my-directory

Cela générera un fichier texte contenant la liste des objets à restaurer.

Restauration des objets Glacier

Le script update_class_standard.sh lit la liste des objets générée précédemment et initie la restauration de ces objets depuis Glacier vers la classe de stockage Standard. Il vérifie au préalable que l'objet est bien encore en Glacier et qu'aucune restauration n'est en cours.

./update_class_standard.sh my-bucket object-list.txt 3

Cela restaurera les objets pendant 3 jours dans la classe Standard.

Liste des fichiers restaurés

Enfin, le script list-file-bucket.sh vous permet de lister tous les objets d'un bucket Scaleway, y compris ceux qui ont été restaurés depuis Glacier.

./list-file-bucket.sh my-bucket my-directory

Cela vous permet de vérifier que la restauration s'est bien déroulée.

Ces 3 scripts vous offrent une solution complète pour gérer le passage des fichiers de la classe de stockage Glacier vers la classe Standard sur Scaleway.