[Solution: Backup avec réplications] pour PI/NUC en local et multi-clouds

Bonjour à tous,

Après avoir perdu ma VM qui n’a jamais voulu redémarrer et donc incapable de restaurer la sauvegarde journalière qui était dessus, j’avoue être un peu perdu pour mettre en place une méthode backup sur mon nouveau système basé sur un NUC avec Proxmox.

Mon système est le suivant:

  • Une VM Ha sous Proxmox qui contient tout (addon, modules complémentaires, DB, config, etc.)
  • Un système PC Windows accessible via SAMBA, éventuellement en NFS qui est généralement en veille mais que je peux réactiver sous HA via une commande de Wake-On-LAN.
  • Je n’ai pas de NAS, c’est mon PC Windows qui tient ce rôle

Dans un premier temps, je souhaite que mes sauvegardes reposent sur le backup de HA, plutôt qu’un backup d’une VM Proxmox, par expérience, ce type de backup m’a sauvé la vie plus d’une fois, il est portable (on peut le restaurer sur un PI par exemple), il est modulaire (on peut ne restaurer qu’un composant), et il est lisible (on peut récupérer uniquement le fichier config ou les dashboards Lovelace). Je mettrais les 2 sauvegardes (HA + Proxmox) en place par la suite.

Je souhaite pouvoir disposer automatiquement tous les jours d’un backup FULL HA (le fichier .tar généré par HA) qui serait copié sur un disque de mon système Windows après allumage de celui-ci via un Magic Packet Wake-on-Lan déclenché par HA.

J’avais pensé utiliser la méthode d’un disque SAMBA attaché à HA via l’option implémentée récemment, mais dès que mon PC se met en veille, ça ne fonctionne plus, la veille du PC semble être un problème également pour Samba-Backup.

Après, il y a des tas de système, et j’avoue ne pas savoir lequel utiliser, par exemple:

Toute pistes de réflexion et retours d’expérience seront appréciés :slight_smile:

Si la VM était sauvegardée, pas besoin d’essayer la démarrer, je ne comprend pas.
J’ai des VM que je sauvegarde sur mon NAS, le jour ou une plante, je restore une VM complète et c’est repartit

j’ai integre un partage NFS vers mon synology comme un stockavge externe de proxmox et j’y affecte mes sauvegardes, c’est tout con et ça marche sans pb

1 « J'aime »

Oui mais le lien NFS empêche de mettre en veille les HDD du nas.
Il y a une solution contre ça ?

J’ai ajouté ce complément:

salut

tu as la solution google backup aussi

perso
sauvegarde HA sur NAS tous les jours

sauvegarde HA sur google tous les 3 jours
et sauvegarde VM quand j’y pense.

1 « J'aime »

J’utilise aussi google backup, la sauvegarde fonctionne sans probleme sur mon haos et sur mon google drive.

C’est facile d’utilisation et avec de nombreuses possibilités de reglages.

J’ai trouvé ma solution, elle est basée sur 2 composants du même développeur:

  • Auto-backup pour gérer les sauvegardes et leur rétention
  • rclone backup pour gérer la duplication des sauvegardes sur d’autres support, y compris cloud.

(A ne pas confondre avec un autre dépôt appelé rclone GitHub - ViViDboarder/hassio-addon-rclone: An rclone addon to sync snapshots to a remote device )


1/ Auto Backup me permet de :

  • faire des sauvegardes journalière partielles que je conserve 7 jours (7 versions)
  • faire des sauvegardes hebdomadaires full que je garde 1 mois (4 versions)

via 2 automatisations:

  • journalière:
alias: Maintenance Backup - 02H00 - Full Backup Daily not Monday 7 copies
description: ""
trigger:
  - platform: time
    at: "02:00:00"
condition:
  - condition: time
    weekday:
      - tue
      - wed
      - thu
      - fri
      - sat
      - sun
action:
  - service: auto_backup.backup_full
    data:
      name: "DailyBackup: {{ now().strftime('%A, %B %-d, %Y') }}"
      keep_days: 7
      exclude:
        folders:
          - share
          - media
mode: single
  • hebdomadaire:
alias: Maintenance Backup - 02H00 - Full Backup Monday 4 copies
description: ""
trigger:
  - platform: time
    at: "02:00:00"
condition:
  - condition: time
    weekday:
      - mon
action:
  - service: auto_backup.backup_full
    data:
      name: "WeeklyBackup: {{ now().strftime('%A, %B %-d, %Y') }}"
      keep_days: 28
mode: single

2/ rclone backup

image

rclone est un superbe utilitaire qui permet de gérer des fichiers (synchronisation/copie/suppression/etc.) sur tout type de support local (local, Samba, ftp ou cloud (Google, Amazon, pcloud, etc.)

Rclone helps you:

  • Backup (and encrypt) files to cloud storage
  • Restore (and decrypt) files from cloud storage
  • Mirror cloud data to other cloud services or locally
  • Migrate data to the cloud, or between cloud storage vendors
  • Mount multiple, encrypted, cached or diverse cloud storage as a disk
  • Analyse and account for data held on cloud storage using lsf, ljson, size, ncdu
  • Union file systems together to present multiple local and/or cloud file systems as one

Je l’utilise pour synchroniser mes backup en local sur un PC Windows via SAMBA et à distance sur un cloud pcloud avec chiffrement des données.

Concrètement:

  • je synchronise (sync) mon répertoire /backup sur un PC Windows via SAMBA. J’ai une automatisation Home Assistant qui fait un WOL (Wake-On-LAN) qui réveille le PC avant la sauvegarde, ceci n’étant pas géré par rclone.
  • je copie (copy) mes sauvegardes qui vont être chiffrées (crypt) à la volée sur pcloud en conservant 7 jours les fichiers journaliers et 30 jours les fichiers hebdomadaires
  • je supprime (delete) les versions qui ont plus de x jours

L’installation n’est plas des plus triviales car elle nécessite 2 étapes:

  • créer le fichier rclone.conf (à placer dans /config) qui définit les périphériques de stockage
  • créer les jobs rclone (synchronistaion, copie, suppression) entre tous les supports.

Personellement, j’ai installé rclone (un simple exécutable Rclone downloads ) sous Windows pour créer le fichier rclone.conf via la commande rclone rcd --rc-web-gui

rclone.conf:

[smb_mediacenter]
type = smb
host = 192.168.100.111
user = medianet
pass = Dxxxxxxxxxxxx8973JbjD9hs9Y5r

[pcloud]
type = pcloud
username = email@provider.fr
token = {"access_token":"KLJDxxxxxxxxxxxxkjl_lkdkljd","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}
hostname = api.pcloud.com

[pcloud_crypt]
type = crypt
remote = pcloud:/
directory_name_encryption = false
password = LG-lxkljekjekJZKxxxxxxxxxxxkjEKljElkje3
filename_encryption = off

J’ai recopié le fichier rclone.conf (voir la commande rclone cong file pour le répertoire) dans le répertoire /config de HA

J’ai paramétré le job rclone sous HA de la façon suivante (référence pour la syntaxe à utiliser):

- name: Sync Daily & Weekly Backups mediacenter
  schedule: 01 04 * * *
  command: sync
  sources:
    - /backup
  destination: smb_mediacenter:/d/sauvegardes
  include: []
  exclude: []
  flags: {}
- name: Copy Daily & Weekly Backups pcloud & pcloud crypt
  schedule: 02 04 * * *
  command: copy
  sources:
    - /backup
  destinations:
    - pcloud:/sauvegardes_ha_sync
    - pcloud_crypt:/sauvegardes_ha_sync_crypt
  include: []
  exclude: []
  flags:
    "--max-age": 7d
- name: Delete pcloud Daily Backups > 7 days
  schedule: 00 05 * * *
  command: delete
  sources:
    - pcloud:/sauvegardes_ha_sync
  include:
    - DailyBackup*.tar
  exclude: []
  flags:
    "--min-age": 7d
    "--ignore-case": null
- name: Delete pcloud crypt Daily Backups > 7 days
  schedule: 00 05 * * *
  command: delete
  sources:
    - pcloud_crypt:/sauvegardes_ha_sync_crypt
  include:
    - DailyBackup*.tar
  exclude: []
  flags:
    "--min-age": 7d
    "--ignore-case": null
- name: Delete pcloud Weekly Backups > 30 days
  schedule: 05 05 * * *
  command: delete
  sources:
    - pcloud:/sauvegardes_ha_sync
  include:
    - DailyBackup*.tar
  exclude: []
  flags:
    "--min-age": 30d
    "--ignore-case": null
- name: Delete pcloud crypt Weekly Backups > 30 days
  schedule: 05 05 * * *
  command: delete
  sources:
    - pcloud_crypt:/sauvegardes_ha_sync_crypt
  include:
    - DailyBackup*.tar
  exclude: []
  flags:
    "--min-age": 30d
    "--ignore-case": null

Voilà, cette solution fait exactement ce que je voulais avec beaucoup de souplesse.

L’interface rclone:

NOTE: J’ai testé DUPLICATI qui semblait faire le job mais qui sauvegarde les fichiers sous un format propriétaire, ce qui ne me convenait pas.

Bonjour,

Merci pour ton tuto bien détaillé. J’ai donc installé Auto Backup mais pour ma configuration ça n’a pas l’air de fonctionner « Partial backups (e.g. include/exclude) are not supported on non-supervised installations ».

@+