Add files.
This commit is contained in:
249
backup_and_restore/scaleway/methode_de_sauvegarde.md
Normal file
249
backup_and_restore/scaleway/methode_de_sauvegarde.md
Normal file
@@ -0,0 +1,249 @@
|
||||
# Table des matières
|
||||
Voici la table des matières mise à jour avec la nouvelle section "Passage de la classe de stockage Glacier vers Standard" :
|
||||
|
||||
# Table des matières
|
||||
- [Table des matières](#table-des-matières)
|
||||
- [Table des matières](#table-des-matières-1)
|
||||
- [Méthode de sauvegarde](#méthode-de-sauvegarde)
|
||||
- [Synchronisation des fichiers personnels](#synchronisation-des-fichiers-personnels)
|
||||
- [Transfert des sauvegardes avec rclone](#transfert-des-sauvegardes-avec-rclone)
|
||||
- [Chiffrement des sauvegardes avec rclone](#chiffrement-des-sauvegardes-avec-rclone)
|
||||
- [Tester les sauvegardes](#tester-les-sauvegardes)
|
||||
- [Sécurité des transferts](#sécurité-des-transferts)
|
||||
- [Stockage externe](#stockage-externe)
|
||||
- [Scaleway Cold Storage](#scaleway-cold-storage)
|
||||
- [myKSuite](#myksuite)
|
||||
- [Exemple de script Bash pour sauvegarder des dossiers](#exemple-de-script-bash-pour-sauvegarder-des-dossiers)
|
||||
- [Exemple de script Bash pour le transfert avec rclone](#exemple-de-script-bash-pour-le-transfert-avec-rclone)
|
||||
- [Fichier de configuration rclone](#fichier-de-configuration-rclone)
|
||||
- [Exemple de commande pour télécharger les sauvegardes chiffrées](#exemple-de-commande-pour-télécharger-les-sauvegardes-chiffrées)
|
||||
- [Passage de la classe de stockage Glacier vers Standard](#passage-de-la-classe-de-stockage-glacier-vers-standard)
|
||||
- [Liste des objets stockés en Glacier](#liste-des-objets-stockés-en-glacier)
|
||||
- [Restauration des objets Glacier](#restauration-des-objets-glacier)
|
||||
- [Liste des fichiers restaurés](#liste-des-fichiers-restaurés)
|
||||
|
||||
## 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.
|
||||
|
||||

|
||||
Vous pouvez trouver plus d'informations sur la [sauvegarde Proxmox dans la documentation officielle](https://pve.proxmox.com/wiki/Backup_and_Restore).
|
||||
|
||||
## 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](https://rclone.org/overview/)**. 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](https://www.scaleway.com/en/glacier-cold-storage/). 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](https://www.infomaniak.com/fr/ksuite/myksuite/tarifs), 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 :
|
||||
|
||||
```bash
|
||||
#!/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 :
|
||||
|
||||
```bash
|
||||
#!/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 courant de ce README, tout en haut de cette page. Vous pouvez également trouver plus d'informations sur la [documentation officielle de Scaleway](https://www.scaleway.com/en/docs/object-storage/how-to/restore-an-object-from-glacier/).
|
||||
|
||||
### 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.
|
||||
Reference in New Issue
Block a user