Je comprends comment rsync fonctionne à haut niveau, mais il y a 2 côtés. Avec S3, il n’ya pas de démon à proprement parler, mais il s’agit essentiellement de HTTP.
Il semble y avoir quelques approches.
s3rsync (mais cela ne fait que boulonner sur rsync à s3). Simple. Pas sûr que je veuille dépendre de quelque chose de tiers. Je souhaite que s3 prenne en charge rsync.
Il existe également des «clones» rsync, comme la duplicité, qui prétendent soutenir s3 sans ce boulon. Mais comment peut-il faire cela? Est-ce qu'ils gardent un fichier d'index localement? Je ne sais pas comment cela peut être aussi efficace.
Bien sûr, je veux utiliser s3 car il est fiable et peu coûteux, mais il existe des éléments pour lesquels rsync est l'outil, comme la sauvegarde d'un répertoire d'images géant.
Quelles sont les options ici? Qu'est-ce que je perds en utilisant duplicity + s3 au lieu de rsync + s3rsync + s3?
Réponses:
Étant donné que cette question a été la dernière réponse, il y a un nouvel outil de ligne de commande AWS,
aws
.Il peut se synchroniser , comme rsync, entre le stockage local et s3. Exemple d'utilisation:
Si l'environnement python de votre système est correctement configuré, vous pouvez installer le client AWS à l'aide de
pip
:la source
rsync
, et cela prenait en moyenne 1 seconde, avec seulement les modifications apportées via ma connexion lente.aws s3 sync
Par contre, cela a pris environ 5 minutes, retransférant chaque fichier.L' outil s3cmd a une excellente
sync
option. Je l'utilise pour synchroniser des sauvegardes locales, en utilisant quelque chose comme:Les
--skip-existing
moyens qu'il ne cherche pas à comparer la somme de contrôle des fichiers existants. S'il existe déjà un fichier portant ce nom, il le sautera rapidement et passera à autre chose. Il existe également une--delete-removed
option permettant de supprimer les fichiers n'existant pas localement, mais je souhaite conserver les fichiers S3, même ceux que j'ai nettoyés localement, afin de ne pas les utiliser.la source
Je ne veux pas dire quoi que ce soit à faire, mais puis-je brandir un drapeau pour la duplicité? ou une autre solution de sauvegarde incrémentielle. La synchronisation est une très bonne chose, mais si vous sauvegardez tous les soirs, que se passe-t-il si vous ne remarquez pas le problème pendant deux jours? Réponse: Il est trop tard, vos fichiers locaux et votre sauvegarde sont un miroir et les données dont vous avez besoin non plus. Vous devriez vraiment envisager des sauvegardes incrémentielles ou des instantanés afin de pouvoir récupérer à un moment donné et pour le faire efficacement, vous avez besoin de sauvegardes incrémentielles. Et si la perte de vos données est un scénario de fin du monde, conservez des copies chez différents fournisseurs, comme vous ne le savez jamais, vous risqueriez de vous perdre, piraté qui sait.
J'utilise la duplicité et s3, sa amende mais cpu intensif. Mais il effectue des sauvegardes incrémentielles. En cas d'urgence, lorsque vous souhaitez restaurer un répertoire ou un fichier particulier, comme c'était le mercredi ou le mois de janvier, sans restaurer les autres fichiers sur la même partition, vous avez besoin de sauvegardes incrémentielles et d'un outil permettant de demander uniquement les fichiers dont vous avez besoin.
J'ai un cron, qui est plein tous les x mois, sinon incrémentiel et supprime les plus vieux de x mois pour conserver les totaux de stockage s3, enfin fait le statut de la collecte afin que je reçoive chaque matin le statut avec le statut. Vous devez le surveiller régulièrement pour que vous remarquiez que votre sauvegarde ne fonctionne pas.
Il faut beaucoup d’espace temporaire local pour conserver les signatures locales, donc configurez soigneusement le répertoire temporaire. Ceci sauvegarde / mnt, en excluant divers répertoires à l'intérieur de / mnt. Ceci est utile pour la sauvegarde des données. Pour les partitions système, utilisez les outils de création d'image ou de capture instantanée d'Amazon.
Script PHP:
la source
S3 est un système de stockage d’objets à usage général qui vous offre suffisamment de souplesse pour concevoir comment vous souhaitez l’utiliser.
D'après votre question, je ne suis pas sûr que vous rencontriez des problèmes avec rsync (autres que l'indexation) ou avec un outil 'tiers' que vous avez rencontré.
Si vous avez un grand ensemble de fichiers bien structurés, vous pouvez exécuter plusieurs synchronisations s3 sur vos sous-dossiers.
Les gens sympas d’Amazon vous permettent également d’importer / exporter depuis votre disque dur portable pour un transfert de fichiers volumineux vers S3 ou EBS - http://aws.amazon.com/importexport/ que vous pouvez utiliser pour le premier téléchargement.
Consultez les meilleures pratiques Amazon s3 ici - http://aws.amazon.com/articles/1904
En ce qui concerne différents outils, essayez-les et voyez ce qui vous convient le mieux. En ce qui concerne la tarification, la redondance est réduite si cela répond à vos besoins - http://aws.amazon.com/s3/pricing/
Recommandation générale - avoir un processeur multicœur rapide et un bon réseau.
UPDATE: Mention à propos du checksum sur S3
En ce qui concerne S3, les données sont stockées dans des paires de valeurs clés et il n’existe aucun concept de répertoires. S3sync vérifie la somme de contrôle (S3 dispose d'un mécanisme pour envoyer la somme de contrôle en tant qu'en-tête à des fins de vérification - en-tête Content-MD5). Les meilleures pratiques lient une partie de l’intégrité des données. S3 vous permet d’envoyer / vérifier et de récupérer des sommes de contrôle. Il y a beaucoup de gens qui font des sauvegardes incrémentielles avec duplicité. Même s'il n'y a pas de rsync sur S3, vous pouvez faire des checksums comme je le disais ici.
rsync est un outil éprouvé et la plupart des outils modernes utilisent le même algorithme ou la même bibliothèque rsync ou appellent rsync en externe.
la source
Vous pouvez également utiliser minio client aka mc. Utiliser la commande 'mc mirror' fera l'affaire.
Vous pouvez écrire un script simple sous la forme "cronjob" qui gardera une synchronisation périodique.
J'espère que ça aide.
la source
-w
drapeau maintenant, qui sera utiliséfsnotify
pour surveiller les changements. Il peut facilement être configuré en tant que service système ou similaire.Je ne suis pas sûr que la vraie rsync convienne parfaitement à Amazon.
D'après ce que je comprends, l'algorithme standard rsync signifie que le client calcule les hachages pour chaque bloc d'un fichier et que le serveur calcule les hachages pour sa copie et les envoie au client, ce qui signifie que le client peut déterminer quels blocs ont été modifiés et doivent être téléchargés.
Cela pose deux problèmes à Amazon en ce sens qu’un grand nombre de hachages doivent être envoyés sur Internet et qu’il faut également une puissance de traitement pour calculer tous ces hachages qui augmenteraient les coûts d’Amazon - ce qui explique probablement pourquoi ils la confient à des fournisseurs tiers qui peuvent le faire. frais supplémentaires pour cette fonctionnalité.
Quant aux clones, ils stockent évidemment les hachages quelque part et l’emplacement peut varier en fonction du clone. Il leur serait possible de stocker les hachages sous forme d'objet distinct par fichier sur Amazon ou sous forme de base de données stockée sur Amazon, ou de les stocker localement et à distance.
Cela présente des avantages et des inconvénients. Si les hachages sont stockés à distance dans des fichiers individuels, il peut être coûteux de les récupérer en permanence. Si les hachages sont stockés à distance dans une base de données, cette base de données peut devenir volumineuse et il peut être coûteux de les extraire et de les mettre à jour en permanence. Si les hachages sont stockés localement, cela contribue à réduire les coûts, mais introduit d'autres complications et problèmes.
(Bien entendu, Amazon dispose d'autres services, il serait donc possible de conserver une base de données dans Amazon DB)
Par exemple, j'ai essayé un clone rsync précoce il y a plusieurs années. Cela n’était pas écrit pour tenir compte de la structure de prix d’Amazon et émettait beaucoup d’objets http pour récupérer le hachage de chaque bloc et, comme Amazon facturait chaque get, cela signifiait que, même si la partie stockage de ma facture était en forte baisse, la partie transfert en ballon.
Vous perdez le fait qu'avec rsync, vous savez que vous comparez les fichiers source avec vos fichiers de sauvegarde. Avec la duplicité et d’autres clones, vous comparez vos fichiers source avec un hachage qui a été utilisé lors de la sauvegarde. Par exemple, il peut être possible d'accéder directement à S3 et de remplacer l'un de ses fichiers sans recalculer le hachage ni mettre à jour la base de données de hachage.
la source
Après avoir comparé plusieurs options mentionnées dans ce fil, j'ai décidé de choisir S3fs. Il vous permet de monter S3 en tant que système de fichiers local. Vous pouvez ensuite continuer et utiliser rsync comme vous le savez déjà.
Ceci est un bon tutoriel pour commencer: Amazon S3 avec Rsync
L'auteur utilisait auparavant le s3sync mentionné, mais a ensuite opté pour l'option avec S3F. Je l’aime bien car d’autres dossiers de sauvegarde sont également montés localement via SSHFS.
la source