OVH Community

Bienvenue sur votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres OVH Community.

Sauvegardes Public Cloud Archive et duplicity/deja-dup


#1

Bonjour,

je viens de prendre l'offre Public Cloud Archive parce que c'est vraiment de la sauvegarde que je veux faire, en espérant ne jamais avoir à l'utiliser :-/ et je me demande si je n'ai pas fais une erreur.

Je fais des tests depuis quelques jours pour sauvegarder mon poste sous Linux avec Deja-dup (interface graphique à duplicity) et à chaque fois il n'y a que la première sauvegarde d'un container qui marche, la deuxième sauvegarde échoue systématiquement.

En regardant les traces, je trouve çà :

ClientException: Object GET failed: https://storage.gra3.cloud.ovh.net/v1/AUTH_xxxxxxxxxxxxxxxxxxxx/thierrybo-desk/duplicity-full.20170804T164455Z.manifest.gpg 429 Too Many Requests

donc là je comprend mieux, lors de chaque sauvegarde, duplicity a besoin de récupérer un fichier duplicity-full.xxxxxxxxxxx.manifest.gpg pour son traitement.

Et forcément sur une offre PCA qui fige les fichiers, la requête GET échoue et déclenche une demande de dégel comme on peut le voir ci-dessous :

Je ne peux pas utiliser duplicity avec cette offre qui est faite pour ça. Donc ma question est :

  • Est-ce que je dois passer sur l'offre Public Cloud Storage, plus chère, et qui n'est pourtant pas faite pour ça.
  • Utiliser un autre outil qui sait faire des sauvegarde différentielles ou incrémentales, et qui n'a pas besoin de faire un GET (rsync, autre ...)

Question à propos article " Sauvegardes Public Cloud Archive et duplicity/deja-dup"
#2

Bonjour,

une réponse qui serait intéressante ? => https://jihais.se/2017/07/28/backup-dans-un-stockage-a-froid-ovh-avec-duplicity-et-lapi-openstack-swift/#comment-42000

Cordialement, janus57


#3

Ahh merci, je ne suis pas tombé dessus dans mes recherches. Donc en résumé, soit les développeurs de duplicity ont soit corrigé un bug, soit c'est un "ajout de fonctionnalité" pour supporter OVH, qui date d'un mois à peine :

http://bazaar.launchpad.net/~duplicity-team/duplicity/0.8-series/revision/1247

La question est combien de temps il faudra attendre pour que ça arrive dans nos distributions ....:frowning:

Committer: Kenneth Loafman
Date: 2017-06-30 19:17:26 UTC
mfrom: (1243.1.1 duplicity)
Revision ID: kenneth@loafman.com-20170630191726-2pdvmu7jh6wjbx81

  • Merged in lp:~xlucas/duplicity/pca-backend
    • Add support for OVH Public Cloud Archive backend.

#4

Hello c'est une personne d'OVH qui a proposé un patch pour supporter PCA :wink:

Si tu ne veux pas attendre, un petit python setup.py install/build semble faire le taff. A tester


#5

merci. La nouvelle version incluant le patch pour OVH est sortie, je l'ai installé par le PPA pour Duplicity. Reste plus qu'à faire un test ...


#6

Bonjour,
Je n'arrive pas à effectuer la première sauvegarde avec Deja-Dup dans un conteneur PCA ("Test_Deja-Dup") créé depuis de Manager.
Dans Déja-Dup, j'ai choisi :
-> emplacement de stockage : OpenStack Swift
-> nom d'utilisateur : XXXXXXXXXXXX (identifiant/utilisateur OpenStack)
-> conteneur : Test_Deja-Dup
-> Authentification URL : [ https://] auth.cloud.ovh.net/v2.0 (crochets car limitation à 2 liens en tant que nouvel inscrit)
-> Tenant name : XXXXXXXXXXXXXXXX (celui en haut de la page https://horizon.cloud.ovh.net)

Au lancement de la sauvegarde, j'ai l’erreur : "Container creation failed: ClientException Auth GET failed: https://auth.cloud.ovh.net/v2.0 200 OK"

Par ailleurs, j'ai indiqué mon mot de passe OpenStack lorsque Deja-Dup me le demandait.

Si vous avez une piste d'explication...
Bien cordialement


#7

Effectivement si on ne remplit que la fenêtre de deja-dup, ça ne marchait pas pour moi non plus. J'ai du ajouter les lignes suivantes dans mon .bashrc :

export OS_AUTH_URL="https://auth.cloud.ovh.net/v2.0/"
export SWIFT_AUTHURL="https://auth.cloud.ovh.net/v2.0/"
export OS_TENANT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export SWIFT_TENANTID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export OS_TENANT_NAME="0099999999999999"
export SWIFT_TENANTNAME="0099999999999999"
export OS_USERNAME="xxxxxxxxxxxx"
export SWIFT_USERNAME="xxxxxxxxxxxx"
export OS_PASSWORD="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export SWIFT_PASSWORD="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export OS_REGION_NAME="GRA3"
export SWIFT_REGIONNAME="GRA3"
export SWIFT_AUTHVERSION="2"

Les doublons, j'ai du trouver deux docs qui utilisaient des variables d'environnement différentes, du coup je les ai mises toutes :-)


#8

Bonjour,
Merci de votre réponse.
Faut-il mettre ces variables d'environnement dans "etc/bash.bashrc" ou dans "/home/USER/.bashrc" ?
Je suis sous LinuxMint 18 et je n'ai pas un tel fichier dans mon home... Du coup, je l'ai créé avec les mêmes lignes que celles rajoutées dans "etc/bash.bashrc". Hélas, j'ai toujours la même erreur quand je lance ma première sauvegarde....

Bien cordialement


#9

pas besoin de les mettre dans /etc/ (à moins que tu ais plusieurs utilisateurs sur le même PC qui utilisent cette sauvegarde.
Voir https://www.ovh.com/fr/publiccloud/guides/g1852.charger_les_variables_denvironnement_openstack
et
http://manpages.ubuntu.com/manpages/zesty/man1/duplicity.1.html#contenttoc23

Pour ~/.bashrc c'est étonnant, à moins que Mint n’utilise pas bash ? (ça m'étonnerait)


#11

Je confirme l'absence de ~/.bashr. En cas d'absence de ~/.bashrc, c'est normalement /etc/bash.bashrc qui devrait faire office de fichier de configuration par défaut pour tout le système.

1) Dans /etc/bash.bashrc, j'ai ajouté les lignes indiquées mais j'ai toujours le même message d'erreur.

2) J'ai aussi essayé d'ajouter dans /etc/ le fichier téléchargé" openrc.sh" (OpenStack RC File v2) e t rajouter la ligne "source openrc.sh" dans /etc/bash.bashrc ; j'ai alors commenter les fameuses lignes et j'ai stocké en dur le mot de passe de l'utilisateur Horizon comme indiqué. Hélas, j'ai toujours la même erreur...


#12

Oui mais si tu n'avais pas de ~/.bashrc peut être que ce n'est pas bash ton shell par défaut, du coup l'alimenter ou alimenter /etc/bash.bashrc ne sert à rien.
Tape dans un terminal
echo $0
et ça de donnera le shell réellement utilisé.


#13

Sinon pour en revenir au message d'origine, "Container creation Failed", ce qui est bizarre c'est que normalement le container tu le crées à la main dans l'interface d'OVH AVANT ta première sauvegarde. Ton "Test_Deja-Dup" doit être visible dan la colonne Nom comme ci-dessous :


#14

Ach, je viens de voir que la modif de Duplicicty du 30 juin pour intégrer OVH PCA est dans la branche 0.8 de Duplicity. Du coup c'est normal que j'ai toujours le même message à la fin de la sauvegarde, le ppa pour Ubuntu ne permettant d'avoir accès QUE à la dernière version "stable", donc dans la branche 0.7 ...


#15

1) echo $0 me renvoie /bin/bash donc bash semble le shell par défaut

2) Mon container PCA "Test_Deja-Dup" (créé à la main AVANT la première sauvegarde) apparaît bien à la fois dans le Manager d'OVH et dans Horizon


#16

J'ai trouvé le tarball à télécharger sur http://bazaar.launchpad.net/~duplicity-team/duplicity/0.8-series/revision/1247 mais avec un python setup.py install j'ai au moins une librairie absente de ma distribution LinuxMint 18 : fatal error: librsync.h: Aucun fichier ou dossier de ce type. Étrangement, Linuxmint comprend "librsync**1**" :-(

Edit : quand j'aurais le temps, j’essayerais de suivre à la lettre https://jihais.se/2017/07/28/backup-dans-un-stockage-a-froid-ovh-avec-duplicity-et-lapi-openstack-swift/


#17

Pour être sur que ce que ce que tu as mis dans ton bash.bashrc est bien pris en compte, tape
ENV
en console. Si tout est OK tu devrais voir les variables alimentées dans la liste.

Le mot de passe que te demande Dejadup, c'est pas le mot de passe d'Openstack, c'est n’importe quel mot de passe qui servira à chiffrer ta sauvegarde.

Autre chose, as tu bien mis les deux types de variables comme dans mon exemple. Je pense qu'il faut s'assurer que ça marche en ligne de commande avant de passer à dejadup. Pour la ligne de commande, il faut installer les deux paquets python-swiftclient python-keystoneclient ).

Ensuite (avec un container vide pour ne pas avoir le bug de ce fil) :

:~$ duplicity --verbosity notice --num-retries 3 --asynchronous-upload --cf-backend swift --volsize 100 ~/PDF/ swift://thierrybo-desk_tests
    Les métadonnées locales et distantes sont déjà synchronisées. Aucune synchronisation nécessaire.
    Date de la dernière sauvegarde complète : aucune
    Phrase de passe GnuPG : 
    Veuillez retaper la phrase de passe pour confirmer : 
    Aucune signature de sauvegarde trouvée, bascule vers une sauvegarde complète.
    --------------[ Statistiques de sauvegarde ]--------------
    StartTime 1509010373.25 (Thu Oct 26 11:32:53 2017)
    EndTime 1509010374.72 (Thu Oct 26 11:32:54 2017)
    ElapsedTime 1.47 (1.47 seconds)
    SourceFiles 38
    SourceFileSize 34302786 (32.7 MB)
    NewFiles 38
    NewFileSize 34302786 (32.7 MB)
    DeletedFiles 0
    ChangedFiles 0
    ChangedFileSize 0 (0 bytes)
    ChangedDeltaSize 0 (0 bytes)
    DeltaEntries 38
    RawDeltaSize 34298690 (32.7 MB)
    TotalDestinationSizeChange 34205648 (32.6 MB)
    Errors 0
    ----------------------------------------------------------

:~$

Pour installer la branche 0.8, je n'ai pas encore essayé, mais la on rentre dans de la compilation à partir des sources (voir le message du 7 août plus haut) ...


#18

1) ENV me renvoie bien la liste des variables
2) Pour le mot de passe de Deja-Dup, j'utilisais le mot de passe d'OpenStack donc à la prochaine demande, je choisis un mot de passe pour chiffer la sauvegarde
3) Dans duplicity avec un container videduplicity --verbosity notice --num-retries 3 --asynchronous-upload --cf-backend swift --volsize 100 ~/Documents/Fax/ swift://Test_Deja-Dup me renvoie Container creation failed: ClientException Unauthorized. Check username, password and tenant name/id

Je progresse. Merci de ton aide. Bon appétit

Edit : avec ENV, j'ai bien :
SWIFT_REGIONNAME="GRA3"
SWIFT_USERNAME=XXXXXXXXXXXXXXXXXXXX
SWIFT_TENANTNAME=123456789
SWIFT_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXX
SWIFT_AUTHURL=https://auth.cloud.ovh.net/v2.0/
SWIFT_AUTHVERSION=2
SWIFT_TENANTID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

OS_REGION_NAME=GRA3
OS_TENANT_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OS_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OS_AUTH_URL=https://auth.cloud.ovh.net/v2.0/
OS_USERNAME=XXXXXXXXXXXXXXXXXXXXXXXX
OS_TENANT_NAME=123456789

Edit 2 : avec un nouveau container crée depuis le Manager 'Test-Duplicity" duplicity --verbosity notice --num-retries 3 --asynchronous-upload --cf-backend swift --volsize 100 ~/Documents/Fax/ swift://Test_Duplicity me renvoie :

Les métadonnées locales et distantes sont déjà synchronisées. Aucune synchronisation nécessaire.
Date de la dernière sauvegarde complète : aucune
Phrase de passe GnuPG
Veuillez retaper la phrase de passe pour confirmer :
Aucune signature de sauvegarde trouvée, bascule vers une sauvegarde complète.
--------------[ Statistiques de sauvegarde ]--------------
StartTime 1509014690.72 (Thu Oct 26 12:44:50 2017)
EndTime 1509014690.73 (Thu Oct 26 12:44:50 2017)
ElapsedTime 0.02 (0.02 seconds)
SourceFiles 13
SourceFileSize 373419 (365 KB)
NewFiles 13
NewFileSize 373419 (365 KB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 13
RawDeltaSize 369323 (361 KB)
TotalDestinationSizeChange 169237 (165 KB)
Errors 0

Donc ça marche ! La création d'un nouveau container semble tout simplement avoir résolu le problème... comme quoi !

Merci beaucoup pour ta réactivité et ton aide. Maintenant, il va falloir régler la question du mot de passe de Deja-Dup et attendre la version 0.8 de duplicity...

Edit 3 : Après avoir changer le conteneur de destination dans Deja-Dup ("Test_Duplicity") et rentré un mot de passe pour le chiffrement, Deja-Dup me renvoie la même erreur :-((


#19

essaie de lancer deja-dup en ligne de commande pour avoir plus de détails :

export DEJA_DUP_DEBUG=1
deja-dup --backup

#20

1) L'interface de Deja-Dup se lance alors et ne me renvoie plus l'erreur ; la barre d'avancement de la sauvegarde se déplace sans arrêt.

2) Du coté de la ligne de commande, j'ai un retour très long avec la fin qui indique :
DUPLICITY: WARNING 1
DUPLICITY: . La tentative 1 a échoué. ClientException :Object GET failed: https://storage.gra3.cloud.ovh.net/v1/AUTH_1a598aa25daa48ebbebfc4186a14d476/Test_Duplicity/duplicity-full.20171026T104015Z.manifest.gpg 429 Too Many Requests

Cela me semble correspondre à ton bug avec la nécessité de dégeler le difftar.
Finalement c'est Deja-Dup qui pose problème quand il est lancé directement en interface graphique...


#21

OK, du coup "ça marche" entre guillemets. Tu retombes sur le bug à la deuxième sauvegarde à l'origine de ma création ce ce fil ;-) ,qui devrait être résolu avec la version 0.8 de duplicity !