Yunohost backup / restore : serveur faible puissance

Bonjour,

j’aurais aimé avoir des retours d’expérience /conseils sur l’emploie des fonctionnalités backup et retore de yunohost.

En effet, je dois changer le serveur hébergeant mon yunohost et j’ai donc voulu utiliser les fonctions backup/ restore pour migrer l’intégralité de mon yunohost.

Les serveurs d’origine et de destination ont les caractéristiques suivantes :

  • CPU : Intel Atom N2800
  • Cores /Threads: 2c/4t
  • Freq.:1,86GHz
  • RAM:4Go DDR3 1066 MHz

(serveurs Kimsufi : KS-2,KS-3,KS-4)

La sauvegarde intégrale (données comprise) à pris 8h pour former un tar.gz de 177Go.
J’ai lancé le restauration hier vers 15h et il tourne encore… cela fait donc plus de 24 H que celui-ci est en cours.
J’ai le message suivant : “Info: Preparing archive for restoration…” donc je supose qu’il en est à exécuter la fonction def mount(self): du RestoreManager (voir par ici).

Applications utilisées : Nextcloud (le gros des données c’est ca), Gittea, Wallabag, dikuwiki, shaarli.

Mes questions sont donc :

  • Est normale que la restauration durant autant de temps par rapport à la sauvegarde ? Ca va fonctionner ?

  • Aurais je du utiliser un autre mécanisme :

    • yunohost bacup --app + rsync des données*
    • l’application borg de yunnohost ?
    • … ?

Note, il y a un certain temps, je ai migré mon yunohost manuelement sans probleme (rsynck, export / import des BDD, …).

Si le serveur de destination a moins de 360Go d’espace disque total c’est sûr que c’est mort avec cette méthode (et encore vu que c’est compressé il faut potentiellement 177Go+la taille de la décompression).

Tu peux probablement vérifier que c’est encore en train de restaurer en regardant si l’espace disque augmente (df -h). Normalement, Les fichiers sont extraits sélectivement du tar.gz, ce qui dans le cas d’une restauration totale peut être plus lent, mais évite certains problèmes d’espace disque.

Je déconseille la méthode de sauvegarde par tar.gz pour les trop grosses données. Avant, je connaissais une méthode pour exclure les grosses données, ce qui permettait de les rsync séparément, mais je crois que ça ne marche plus.

De façon un peu “hackish” tu peux toujours déplacer temporairement les données avec ‘mv’ pendant le backup pour éviter qu’elles soient inclues dans la sauvegarde (en faisant attention de stopper php-fpm). Ensuite tu fais la restauration et le transfert des data nextcloud avec rsync.

Alternativement, tu peux essayer de restaurer sélectivement ton backup(yunohost backup restore --apps APP1), et faire la restauration de nextcloud manuellement si tu sais le faire en utilisant rsync ou autre chose pour déplacer les fichiers.

.

1 Like

re, merci pour la réponse.

Pourquoi n’y ai je pas pensé ?
Cela en ai a 222 sur 591, même pas la moitié. Ca va être long !

Savait faire. Il faudrait que je retrouve comment dans la doc de Nextcloud. De mémoire, il y a une commande pour être en maintenance. Une fois les données importées on importe la db et c’est théoriquement bon.

Cela intéresse du monde une doc sur cela ?

Petite question à ce propos.

If neither --apps or --system are given, this will backup all apps and all ystem parts. If only --apps if given, this will only backup apps and no system parts. Similarly, if only --system is given, this will only backup system parts and no apps.

Je trouve les termes --apps et --system un peu flou.
--apps : c’est contenu des BDDs compris ?

L’option --apps s’appuie sur les scripts de backup de chaque application, et ces derniers sont en charge de sauvegarder l’ensemble des données nécessaires de l’application, donc la base de données la plupart du temps.

En ce qui concerne le backup sélectif sans les données volumineuses (généralement dans /home/yunohost.app, pour Nextcloud ou Jirafeau par exemple), il suffit de lancer le backup ainsi :

 BACKUP_CORE_ONLY=1 yunohost backup create etc.
1 Like

OK, merci.

Par contre en rentrant ce soir, j’ai ce message

Warning: YunoHost is already installed
Info: Preparing archive for restoration…
Traceback (most recent call last):
  File "/usr/bin/yunohost", line 214, in <module>
    timeout=opts.timeout,
  File "/usr/lib/python2.7/dist-packages/moulinette/__init__.py", line 136, in cli
    moulinette.run(args, output_as=output_as, password=password, timeout=timeout)
  File "/usr/lib/python2.7/dist-packages/moulinette/interfaces/cli.py", line 425, in run
    ret = self.actionsmap.process(args, timeout=timeout)
  File "/usr/lib/python2.7/dist-packages/moulinette/actionsmap.py", line 523, in process
    return func(**arguments)
  File "/usr/lib/moulinette/yunohost/backup.py", line 2159, in backup_restore
    restore_manager.mount()
  File "/usr/lib/moulinette/yunohost/backup.py", line 1042, in mount
    self.method.mount(self)
  File "/usr/lib/moulinette/yunohost/backup.py", line 1902, in mount
    tar.extractall(members=subdir_and_files, path=self.work_dir)
  File "/usr/lib/python2.7/tarfile.py", line 2081, in extractall
    self.extract(tarinfo, path)
  File "/usr/lib/python2.7/tarfile.py", line 2118, in extract
    self._extract_member(tarinfo, os.path.join(path, tarinfo.name))
  File "/usr/lib/python2.7/tarfile.py", line 2211, in _extract_member
    self.utime(tarinfo, targetpath)
  File "/usr/lib/python2.7/tarfile.py", line 2332, in utime
    os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime))
OverflowError: Python int too large to convert to C long

:expressionless:

Pour info sys.maxsize 9223372036854775807

Je crois que je vais faire le backup sans les données de nextcloud.