Comment utiliser efficacement S3 pour sauvegarder des files de façon incrémentielle?

Je comprends comment fonctionne rsync sur un haut niveau, mais il y a 2 côtés. Avec S3, il n'y a pas de démon à parler – bien, il y a, mais c'est simplement HTTP.

Il semble y avoir quelques approches.

s3rsync (mais cela se twig sur rsync à s3). Simple. Je ne suis pas sûr de vouloir dépendre de quelque chose de tiers. Je souhaite que s3 ait simplement pris en charge rsync.

Il y a aussi quelques "clones" rsync comme une duplicité qui prétend soutenir s3 sans ledit verrou. Mais comment peut-il faire cela? Gardent-ils un file index localement? Je ne suis pas sûr de savoir comment cela peut être aussi efficace.

Je souhaite évidemment utiliser s3 car il est bon marché et fiable, mais il y a des choses auxquelles Rsync est l'outil, comme la sauvegarde d'un directory géant d'images.

Quelles sont les options ici? Qu'est-ce que je perds en utilisant duplicity + s3 au lieu de rsync + s3rsync + s3?

7 Solutions collect form web for “Comment utiliser efficacement S3 pour sauvegarder des files de façon incrémentielle?”

Comme cette question a été validée pour la dernière fois, il existe un nouvel outil de command line AWS, aws .

Il peut synchroniser , rsync-like, entre le stockage local et s3. Exemple d'utilisation:

 aws s3 sync s3://mybucket /some/local/dir/ 

Si l'environnement python de votre système est configuré correctement, vous pouvez installer le client AWS en utilisant pip :

 pip install awscli 

L' outil s3cmd offre une excellente option de sync . Je l'utilise pour synchroniser les sauvegardes locales, en utilisant quelque chose comme:

 s3cmd sync --skip-existing $BACKUPDIR/weekly/ s3://MYBACKUP/backup/mysql/ 

Le --skip-existing signifie qu'il n'essaie pas de vérifier la comparaison des files existants. S'il y a déjà un file avec ce nom, il saura sauter rapidement et passer à autre chose. Il existe également --delete-removed option --delete-removed qui supprime les files qui ne existent pas localement, mais je veux conserver sur S3 même ceux que j'ai nettoyés localement, donc je n'utilise pas cela.

S3 est un système de stockage d'objects à usage général qui offre une flexibilité suffisante pour concevoir la façon dont vous souhaitez l'utiliser.

Je ne sais pas de votre question les problèmes avec rsync (autre que l'indexing) ou des problèmes avec l'outil «tiers» dans lequel vous avez rencontré.

Si vous avez un grand set de files bien structurés, vous pouvez exécuter plusieurs synchronisations s3 sur vos sous-dossiers.

Les gens sympas d'Amazon vous permettent également de faire une import / export à partir de votre disque dur portable pour le transfert de files volumineux vers S3 ou EBS – http://aws.amazon.com/importexport/ que vous pouvez utiliser pour le premier téléchargement.

Voir les meilleures pratiques de Amazon s3 ici – http://aws.amazon.com/articles/1904

En ce qui concerne les différents outils, essayez-les et voyez ce qui vous convient le mieux. En ce qui concerne les prix, il y a des prix de redondance réduits si cela correspond à vos besoins – http://aws.amazon.com/s3/pricing/

Recommandation générale: disposez d'un processeur multicœur rapide et d'un bon réseau.

MISE À JOUR: Mention à propos du checksum sur S3

En ce qui concerne datatables des magasins S3 dans les paires de valeurs keys et il n'y a pas de concept de directorys. S3sync vérifie la sum de contrôle (S3 dispose d'un mécanisme pour envoyer la sum de contrôle en tant qu'élément de vérification – En-tête Content-MD5). Les meilleures pratiques relient l'intégrité des données. Une partie de celle-ci la contient en détail. S3 vous permet d'envoyer / vérifier et récupérer des sums de contrôle. Il y a beaucoup de gens qui font des sauvegardes incrémentielles avec une duplicité. Bien qu'il n'y ait pas de rsync sur S3, vous pouvez faire des sums de contrôle comme je l'ai mentionné ici.

rsync est un outil éprouvé et la plupart des outils modernes utilisent le même algorithm ou la bibliothèque rsync ou appelent rsync à l'extérieur.

Ne voulez-vous dire à personne ce qu'il faut faire, mais puis-je faire appel à un drapeau pour la duplicité? ou une autre solution de sauvegarde incrémentale. La synchronisation est très bonne, mais si vous sauvegardez toutes les nuit, que se passe-t-il si vous ne remarquez pas le problème pendant deux jours? Réponse: Il est trop tard, vos files locaux et votre sauvegarde sont rétrospectivement et datatables dont vous avez besoin ne sont pas non plus. Vous devriez vraiment envisager des sauvegardes incrémentales ou des instantanés afin que vous puissiez vous rétablir à un moment donné et que, de manière efficace, vous avez besoin de sauvegardes incrémentielles. Et si la perte de vos données est un scénario de fin de monde, conservez des copys à différents fournisseurs, comme vous ne le savez jamais, puis pourrait vous perdre, pirater qui sait.

J'utilise la duplicité et s3, c'est très bien mais nécessite une cpu. Mais il fait des sauvegardes incrémentielles. En cas d'urgence lorsque vous souhaitez restaurer un directory ou un file particulier, comme c'était le mercredi dernier ou en janvier dernier, sans restaurer les autres files sur la même partition, vous avez besoin de sauvegardes incrémentales et un outil où vous pouvez requestr uniquement les files dont vous avez besoin.

J'ai un cron, qui est complet tous les mois, sinon augmente et supprime plus de x mois pour maintenir les totalisations de stockage s3, puis enfin le statut de collection, de sorte que je reçois chaque jour le courrier avec le statut. Vous devez le surveiller régulièrement afin que vous remarquiez que votre sauvegarde ne fonctionnait pas.

Il nécessite un espace temporaire local important pour conserver les signatures locales, afin d'installer le dir temporairement avec précaution. Ce backups / mnt, à l'exclusion de différents dirs à l'intérieur / mnt. Ceci est bon pour la sauvegarde des données, car les partitions système utilisent des images d'printing amazon ou des outils instantanés.

Script PHP:

 # Duplicity Backups $exclude = "--exclude /mnt/ephemeral ". "--exclude /mnt/logs ". "--exclude /mnt/service ". "--exclude /mnt/mail ". "--exclude /mnt/mysql "; $key = "PASSPHRASE=securegpgpassphrase"; $tmp = "/mnt/mytempdir"; system("mkdir -p $tmp"); # Amazon $aws = "AWS_ACCESS_KEY_ID=xxxxxx ". "AWS_SECRET_ACCESS_KEY=xxxxxx "; $ops = "-v5 --tempdir=$tmp --archive-dir=$tmp --allow-source-mismatch --s3-european-buckets --s3-use-new-style --s3-use-rrs"; $target = " s3://s3-eu-west-1.amazonaws.com/mybucket"; # Clean + Backup system("$key $aws /usr/bin/duplicity $ops --full-if-older-than 2M $exclude /mnt $target"); system("$key $aws /usr/bin/duplicity $ops remove-older-than 6M --force $target"); system("$key $aws /usr/bin/duplicity $ops cleanup --force --extra-clean $target"); system("$key $aws /usr/bin/duplicity $ops collection-status $target") 

Je ne suis pas sûr si le vrai rsync est bon pour Amazon.

Comme je le comprends, l'algorithm rsync standard signifie que le client calcule les hachages pour chaque bloc d'un file et que le server calcule les hachis pour sa copy et envoie ces hachages au client, ce qui signifie que le client peut déterminer quels blocs ont changé et doivent être téléchargés.

Cela provoque deux problèmes pour Amazon en ce sens que beaucoup de hachis doivent être envoyés sur Internet et il faut aussi pouvoir de traitement pour calculer tous ces hachis qui augmenteraient les coûts d'Amazon – ce qui est probablement pourquoi ils le laissent à des fournisseurs tiers qui peuvent frais supplémentaires pour cette fonctionnalité.

En ce qui concerne les clones, ils stockent évidemment les hachages quelque part et quelque part peut varier selon le clone. Il serait possible pour eux de stocker les hachis comme un object distinct par file sur Amazon ou comme une database stockée sur Amazon ou ils peuvent les stocker localement et à distance.

Il existe des avantages et des inconvénients de le faire de toute façon. Si les hachis sont stockés à distance dans des files individuels, il peut être coûteux de les récupérer continuellement. Si les hachis sont stockés dans une database à distance, cette database peut devenir grande et il est coûteux de les récupérer et de les mettre à jour continuellement. Si les hachis sont stockés localement, cela permet de réduire les coûts, mais présente d'autres complications et problèmes.

(Bien sûr, Amazon a d'autres services, donc il serait possible de conserver une database dans Amazon DB)

À titre d'exemple, j'ai essayé un clone rsync tôt depuis plusieurs années. Cela n'a pas été écrit pour tenir count de la structure de tarification d'Amazon et a émis beaucoup d'http pour récupérer le hachage de chaque bloc et, depuis la facture d'Amazon pour chaque obtention, cela signifiait que pendant que la partie de stockage de ma facture avait fortement diminué, la partie de transfert gonflé.

Qu'est-ce que je perds en utilisant duplicity + s3 au lieu de rsync + s3rsync + s3?

Vous perdez le fait que avec rsync, vous savez que vous comparez les files sources avec vos files de sauvegarde. Avec la duplicité et d'autres clones, vous comparez vos files source avec un hash qui a été pris lors de la sauvegarde. Par exemple, il est possible d'accéder directement à S3 et de replace l'un de ses files sans recomstackr le hash ou mettre à jour la database hash.

Vous pouvez également utiliser le client minio aka mc. L' utilisation de la command 'mc mirror' fera le travail.

 $ mc mirror share/sharegain/ s3/MyS3Bucket/share/sharegain 
  • mc: client minio
  • share / sharegain: directory local
  • s3: Alias ​​pour https://s3.amazonaws.com
  • MyS3Bucket: Mon seau S3 à distance
  • share / sharegain: mon object sur s3

Vous pouvez écrire un script simple comme cronjob qui conservera une synchronisation à intervalles périodiques.

J'espère que cela aide.

Après avoir comparé plusieurs options mentionnées dans ce fil, j'ai décidé d'aller pour S3fs. Il vous permet de monter S3 en tant que système de files local. Vous pouvez ensuite continuer et utiliser rsync comme vous le savez déjà.

Il s'agit d'un bon tutoriel pour démarrer: Amazon S3 avec Rsync

L'auteur a précédemment utilisé le s3sync mentionné, mais a ensuite changé pour l'option avec S3Fs. Je l'aime parce que j'ai également d'autres dossiers de sauvegarde montés localement via SSHFS.

  • Rsync vers Windows FTP sur curlftpfs ne parvient pas à définir les permissions
  • Incohérence Rsync entre les machines
  • Besoin de vérifier une arborescence de répertoires pour les modifications toutes les 10 secondes et d'exécuter un script s'il est modifié
  • Pourquoi rsync doit-il être installé sur les deux côtés pour fonctionner?
  • Rysnc Dynamic Log File Name
  • SSH fonctionne dans les deux sens, mais le scp et le rsync ne sont que d'une manière
  • Reorder la pratique pour vérifier si les files copiés en utilisant SCP
  • Cron et rsync utilisant le locking des files mais existe-t-il un meilleur moyen sur Mac OS X Server?
  • Forcer rsync à convertir les noms de files en minuscules
  • RSYNC uniquement Fichiers mis à jour
  • exécutez rsync en tant que root mais gardez la propriété de l'user
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.