सवाल फाइलों को बैक अप लेने के लिए एक कुशलता से एस 3 का उपयोग कैसे कर सकता है?


मैं समझता हूं कि कैसे rsync उच्च स्तर पर काम करता है, लेकिन 2 पक्ष हैं। एस 3 के साथ बात करने के लिए कोई डेमॉन नहीं है - ठीक है, लेकिन यह मूल रूप से सिर्फ HTTP है।

कुछ दृष्टिकोण होने लगते हैं।

s3rsync (लेकिन यह सिर्फ rsync पर s3 पर बोल्ट)। सीधा। यकीन नहीं है कि मैं किसी तीसरे पक्ष पर निर्भर होना चाहता हूं। मैं चाहता हूं कि s3 सिर्फ rsync समर्थित है।

कुछ rsync 'क्लोन' भी डुप्लिकेट की तरह हैं जो बोल्ट-ऑन के बिना एस 3 का समर्थन करने का दावा करते हैं। लेकिन यह कैसे कर सकता है? क्या वे स्थानीय रूप से एक इंडेक्स फ़ाइल रखते हैं? मुझे यकीन नहीं है कि यह कैसे कुशल हो सकता है।

मैं स्पष्ट रूप से एस 3 का उपयोग करना चाहता हूं क्योंकि यह सस्ता और विश्वसनीय है, लेकिन ऐसी चीजें हैं जो rsync छवियों की एक विशाल निर्देशिका का बैक अप लेने के लिए उपकरण है।

यहां विकल्प क्या हैं? Rsync + s3rsync + s3 के बजाय डुप्लिकेट + s3 का उपयोग करके मैं क्या खो सकता हूं?


39
2017-08-18 23:13


मूल


एस 3 सस्ता है? यह मेरे लिए खबर है। विश्वसनीय? निश्चित रूप से, लेकिन सस्ता नहीं। - EEAA
खैर, एस 3 $ 0.13 / जीबी या उससे कम है जब आप अधिक स्टोर करते हैं या कम रिडंडेंसी चाहते हैं। एक त्वरित खोज से पता चलता है evbackup.com rsync भंडारण के लिए। बहुत महंगा सस्ता क्या है और इसमें कुछ स्तर की अनावश्यकता है? - Jaimie Sirovich


जवाब:


चूंकि इस प्रश्न का अंतिम उत्तर दिया गया था, इसलिए एक नया एडब्ल्यूएस कमांड लाइन उपकरण है, aws

यह सिंक, स्थानीय भंडारण और एस 3 के बीच, rsync- पसंद है। उदाहरण का उपयोग:

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

यदि आपके सिस्टम का पायथन पर्यावरण ठीक से स्थापित है, तो आप एडब्ल्यूएस क्लाइंट का उपयोग कर स्थापित कर सकते हैं pip:

pip install awscli

35
2017-12-02 15:38



मेरे अनुभव में, यह सबकुछ अपलोड करता है, न केवल परिवर्तनों का डेल्टा। उदाहरण के लिए, मैं एक स्थिर साइट को एक dev सर्वर के साथ धक्का दे रहा था rsync, और मेरे धीमे कनेक्शन पर होने वाले परिवर्तनों के साथ, औसत 1 सेकंड का औसत लिया। aws s3 sync दूसरी तरफ, प्रत्येक फाइल को दोबारा बदलकर लगभग 5 मिनट लग गए। - ryebread
मेरा मानना ​​है कि यह काम नहीं करता है, लेकिन दस्तावेज़ कहते हैं, "एक स्थानीय फ़ाइल को अपलोड करने की आवश्यकता होगी यदि स्थानीय फ़ाइल का आकार s3 ऑब्जेक्ट के आकार से अलग है, तो स्थानीय फ़ाइल का अंतिम संशोधित समय नया है एस 3 ऑब्जेक्ट का अंतिम संशोधित समय, या स्थानीय फ़ाइल निर्दिष्ट बाल्टी और उपसर्ग के तहत मौजूद नहीं है। " सुनिश्चित करें कि आपके पास aws-cli का नवीनतम संस्करण है - यदि आप इसे पुन: उत्पन्न कर सकते हैं, तो उनके साथ गिटब पर एक बग दर्ज करें। जब मैं थोड़ी देर पहले एक बग दायर किया तो वे उत्तरदायी थे। - Dan Pritts
आदेश होना चाहिए: aws s3 सिंक / कुछ / स्थानीय / dir / s3: // mybucket - Carlo S
कार्लोस, मुझे यकीन नहीं है कि आपका मुद्दा क्या है। यदि आपका सुझाव है कि मेरा उदाहरण कमांड गलत है, तो हम दोनों सही हैं। एस 3 सिंक किसी भी दिशा में काम कर सकते हैं। - Dan Pritts


s3cmd उपकरण एक महान है sync विकल्प। मैं स्थानीय बैकअप को सिंक करने के लिए इसका उपयोग करता हूं, जैसे कुछ:

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

--skip-existing इसका मतलब है कि यह मौजूदा फाइलों की तुलना करने के लिए चेकसम की कोशिश नहीं करता है। अगर पहले से ही उस नाम के साथ एक फाइल है, तो यह बस इसे जल्दी से छोड़ देगा और आगे बढ़ेगी। वहाँ भी --delete-removed विकल्प जो फाइलों को स्थानीय रूप से मौजूदा नहीं हटाएगा, लेकिन मैं एस 3 को भी रखना चाहता हूं, जिन्हें मैंने स्थानीय रूप से साफ किया है, इसलिए मैं इसका उपयोग नहीं करता हूं।


16
2017-12-28 14:14





किसी को बताना नहीं चाहता कि क्या करना है, लेकिन क्या मैं डुप्लिकेट के लिए झंडा उड़ा सकता हूं? या अन्य वृद्धिशील बैकअप समाधान। सिंकिंग सब ठीक है, लेकिन यदि आप रात में बैकअप लेते हैं, तो क्या होता है यदि आप दो दिनों तक समस्या का ध्यान नहीं देते हैं? उत्तर: बहुत देर हो चुकी है, आपकी स्थानीय फाइलें और आपका बैकअप एक-दूसरे का दर्पण है और न ही आपके पास आवश्यक डेटा है। आपको वास्तव में वृद्धिशील बैकअप या स्नैपशॉट्स पर विचार करना चाहिए ताकि आप समय पर किसी विशेष पल में पुनर्प्राप्त हो सकें और इसे कुशलता से करने के लिए आपको वृद्धिशील बैकअप की आवश्यकता हो। और यदि आपका डेटा खोना दुनिया परिदृश्य का अंत है तो विभिन्न प्रदाताओं पर प्रतियां रखें, जैसा कि आप कभी नहीं जानते हैं, तो खो सकते हैं, जो जानता है हैक किया जाता है।

मैं डुप्लिकेट और एस 3 का उपयोग करता हूं, यह ठीक है लेकिन सीपीयू गहन है। लेकिन यह वृद्धिशील बैकअप करता है। एक आपात स्थिति में जब आप एक डीआईआर या विशेष फ़ाइल को पुनर्स्थापित करना चाहते हैं, क्योंकि यह आखिरी बुधवार था, या पिछले जनवरी, उसी विभाजन पर अन्य फ़ाइलों को बहाल किए बिना आपको वृद्धिशील बैकअप और एक उपकरण की आवश्यकता होती है जहां आप केवल अपनी ज़रूरत वाली फाइलों का अनुरोध कर सकते हैं।

मेरे पास एक क्रॉन है, जो प्रत्येक एक्स महीनों को पूरा करता है, अन्यथा बढ़ता है और एस 3 स्टोरेज योग को कम रखने के लिए एक्स महीने से पुराना हटा देता है, आखिर में संग्रह की स्थिति होती है इसलिए मुझे हर सुबह स्थिति के साथ मेल किया जाता है। आपको नियमित रूप से इस पर नजर रखने की आवश्यकता है ताकि आप ध्यान दें कि आपका बैकअप काम नहीं कर रहा है।

स्थानीय हस्ताक्षर रखने के लिए इसे महत्वपूर्ण स्थानीय अस्थायी स्थान की आवश्यकता होती है ताकि अस्थायी रूप से अस्थायी रूप से सेटअप किया जा सके। यह बैकअप / mnt, अंदर / mnt के अंदर विभिन्न dirs को छोड़कर। डेटा बैक अप लेने के लिए यह अच्छा है, सिस्टम विभाजन के लिए अमेज़ॅन इमेजिंग या स्नैपशॉट टूल का उपयोग करें।

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")

4
2017-07-07 21:59





एस 3 एक सामान्य उद्देश्य ऑब्जेक्ट स्टोरेज सिस्टम है जो आपके लिए यह उपयोग करने के लिए पर्याप्त लचीलापन प्रदान करता है कि आप इसका उपयोग कैसे करना चाहते हैं।

मैं आपके प्रश्न से आरएसआईएनसी (इंडेक्सिंग के अलावा) या 'तृतीय पक्ष' टूल के साथ मुद्दों के साथ मुद्दों को सुनिश्चित नहीं कर रहा हूं।

यदि आपके पास अच्छी तरह से संरचित फाइलों का बड़ा सेट है, तो आप अपने उप-फ़ोल्डरों पर एकाधिक एस 3 सिंक चला सकते हैं।

अमेज़ॅन में अच्छे लोग आपको एस 3 या ईबीएस में बड़े फ़ाइल स्थानांतरण के लिए अपने पोर्टेबल हार्डड्राइव से आयात / निर्यात करने की अनुमति भी देते हैं - http://aws.amazon.com/importexport/ जिसे आप पहले अपलोड के लिए उपयोग कर सकते हैं।

अमेज़ॅन एस 3 सर्वोत्तम प्रथाओं को यहां देखें - http://aws.amazon.com/articles/1904

जहां तक ​​भिन्न उपकरण हैं, उन्हें आज़माएं और देखें कि आपके लिए सबसे अच्छा क्या काम करता है। मूल्य निर्धारण के संबंध में, यदि आपकी आवश्यकताओं के अनुरूप है तो कम रिडंडेंसी मूल्य निर्धारण होता है - http://aws.amazon.com/s3/pricing/

सामान्य सिफारिश - एक तेज मल्टीकोर सीपीयू और अच्छी नेटवर्क पाइप है।

अद्यतन: एस 3 पर चेकसमिंग के बारे में उल्लेख करें

प्रमुख मूल्य जोड़े में S3 स्टोर डेटा के संबंध में और निर्देशिकाओं की कोई अवधारणा नहीं है। S3sync चेकसम को सत्यापित करता है (एस 3 में सत्यापन के लिए हेडर के रूप में चेकसम को भेजने के लिए एक तंत्र है - सामग्री-एमडी 5 हेडर)। सर्वोत्तम प्रथाओं के लिंक डेटा इंटीग्रटी भाग में विस्तार से है। एस 3 आपको चेकसम भेजने / सत्यापित करने और पुनर्प्राप्त करने की अनुमति देता है। डुप्लिकेट के साथ बढ़ते बैकअप कर रहे बहुत सारे लोग हैं। भले ही एस 3 पर कोई rsync नहीं चल रहा है, आप यहां उल्लेख किए गए चेकसम कर सकते हैं।

rsync एक सिद्ध उपकरण है और अधिकांश आधुनिक उपकरण समान एल्गोरिदम या rsync लाइब्रेरी का उपयोग करते हैं या बाहरी रूप से rsync को कॉल करते हैं।


3
2017-08-19 06:06



मैं नहीं देखता कि यह सवाल का जवाब कैसे देता है। मैं पूछ रहा था कि डुप्लिकेट कैसे करता है rsync दूसरी तरफ एक डिमन के बिना करता है। इसमें चेकसम प्राप्त करने की कोई क्षमता नहीं है, या शायद यह करता है, लेकिन फिर यह फाइलों को कैसे बढ़ाएगा? - Jaimie Sirovich
ठीक। तो आप कह रहे हैं कि डुप्लिकेट एस 3 से इस हैश का उपयोग करता है, लेकिन यह एफ़टीपी पर काम करने का भी दावा करता है। एफ़टीपी में कोई हैशिंग तंत्र नहीं है। मैं सुरक्षित पक्ष पर गलती करता हूं और 'साबित' टूल का उपयोग करता हूं। Rsync साबित हुआ है, लेकिन यह s3 ऐड-ऑन सेवा s3rsync के बिना s3 बैकअप नहीं करेगा। मैं डुप्लिकेट से थोड़ा डर रहा हूं, लेकिन इसमें व्यापक प्रोटोकॉल अपील है यदि मैं बिना किसी एक्सेसरी सेवा के एस 3 के साथ rsync जैसी कार्यक्षमता प्राप्त कर सकता हूं। मैं बस कैसे नहीं मिलता है कुंआ यह काम करता है (और संभवतः विभिन्न प्रोटोकॉल के साथ अलग)। यह कैसे एफ़टीपी सिंकिंग करता है बिल्ली? :) - Jaimie Sirovich
@ जैमी सिरोविच इसका परीक्षण करें और देखें। यदि आपके पास था, तो आप जानते होंगे कि डुप्लिकेट कम समय में "मैनिफेस्ट" फाइलें बनाता है, इससे पहले कि आप इन सभी टिप्पणियों को टाइप करने के लिए ले जाएं पराक्रम कर रही हो। - ceejayoz


मुझे यकीन नहीं है कि अगर असली rsync अमेज़ॅन के लिए एक अच्छा फिट है।

जैसा कि मैं इसे समझता हूं, मानक rsync एल्गोरिदम का अर्थ है कि क्लाइंट एक फ़ाइल के प्रत्येक ब्लॉक के लिए हैश की गणना करता है और सर्वर इसकी प्रतिलिपि के लिए हैश भेजता है और क्लाइंट को उन हैंश भेजता है जिसका मतलब है कि ग्राहक निर्धारित कर सकता है कि कौन से ब्लॉक बदल गए हैं और अपलोड करने की आवश्यकता है।

इससे अमेज़ॅन के लिए दो समस्याएं आती हैं कि इंटरनेट पर बहुत सारे हैंश को भेजना पड़ता है और यह उन सभी हशों की गणना करने के लिए प्रसंस्करण शक्ति भी लेता है जो अमेज़ॅन की लागत में वृद्धि करेंगे - शायद यही कारण है कि वे इसे तीसरे पक्ष के प्रदाताओं को छोड़ दें उस सुविधा के लिए अतिरिक्त चार्ज करें।

क्लोन के लिए, वे स्पष्ट रूप से कहीं भी हैंश को संग्रहित कर रहे हैं और कहीं क्लोन के आधार पर भिन्न हो सकते हैं। अमेज़ॅन पर प्रति फ़ाइल एक अलग ऑब्जेक्ट या अमेज़ॅन पर संग्रहीत डेटाबेस के रूप में हैश को स्टोर करना संभव होगा या वे उन्हें स्थानीय रूप से और दूरस्थ रूप से स्टोर कर सकते हैं।

इसे किसी भी तरह से करने के फायदे और फायदे हैं। यदि हैश को व्यक्तिगत फ़ाइलों में दूरस्थ रूप से संग्रहीत किया जाता है, तो यह लगातार उन्हें पुनर्प्राप्त करने के लिए महंगा हो सकता है। यदि हैश को डेटाबेस में दूरस्थ रूप से संग्रहीत किया जाता है, तो यह डेटाबेस बड़ा हो सकता है और यह लगातार पुनर्प्राप्त और अद्यतन करने के लिए महंगा हो सकता है। यदि हैश स्थानीय रूप से संग्रहीत हैं, तो यह लागत को कम करने में मदद करता है, लेकिन अन्य जटिलताओं और समस्याओं का परिचय देता है।

(बेशक अमेज़ॅन की अन्य सेवाएं हैं, इसलिए अमेज़ॅन डीबी में डेटाबेस रखना संभव होगा)

एक उदाहरण के रूप में, मैंने कई साल पहले एक प्रारंभिक rsync क्लोन की कोशिश की। यह अमेज़ॅन की मूल्य निर्धारण संरचना को ध्यान में रखकर लिखा नहीं गया था और प्रत्येक ब्लॉक के हैश को पुनः प्राप्त करने के लिए बहुत सारे http जारी किए जा रहे थे और चूंकि प्रत्येक के लिए अमेज़ॅन शुल्क प्राप्त होता था, इसका मतलब था कि मेरे बिल का भंडारण हिस्सा तेजी से गिर गया, स्थानांतरण भाग फूल।

Rsync + s3rsync + s3 के बजाय डुप्लिकेट + s3 का उपयोग करके मैं क्या खो सकता हूं?

आप इस तथ्य को खो देते हैं कि rsync के साथ आप जानते हैं कि आप अपनी बैकअप फ़ाइलों के साथ स्रोत फ़ाइलों की तुलना कर रहे हैं। डुप्लिकेट और अन्य क्लोन के साथ, आप अपनी स्रोत फ़ाइलों की तुलना एक हैश के साथ कर रहे हैं जिसे बैकअप के दौरान लिया गया था। उदाहरण के लिए, एस 3 को सीधे एक्सेस करना और हैश डेटाबेस को अपडेट किए बिना हैश डेटाबेस को अपडेट किए बिना इसकी एक फाइल को प्रतिस्थापित करना संभव हो सकता है।


2
2017-12-28 18:50





आप वैकल्पिक रूप से मिनीियो क्लाइंट उर्फ ​​का उपयोग कर सकते हैं एम सी 'एमसी मिरर' कमांड का उपयोग करना काम करेगा।

$ mc mirror share/sharegain/ s3/MyS3Bucket/share/sharegain 
  • एमसी: मिनीियो क्लाइंट
  • शेयर / शेयरगैन: स्थानीय निर्देशिका
  • एस 3: एलियास के लिए https://s3.amazonaws.com
  • MyS3Bucket: मेरा रिमोट एस 3 बाल्टी
  • शेयर / शेयरगैन: एस 3 पर मेरा ऑब्जेक्ट

आप cronjob के रूप में एक साधारण स्क्रिप्ट लिख सकते हैं जो आवधिक अंतराल पर एक सिंक रखेगा।

आशा करता हूँ की ये काम करेगा।


2
2018-01-08 13:47



एक भी है -w अब ध्वज, जो उपयोग करेंगे fsnotify परिवर्तनों के लिए देखने के लिए। इसे आसानी से सिस्टम सेवा या इसी तरह के रूप में स्थापित किया जा सकता है। - alkar


इस धागे में उल्लिखित कई विकल्पों की तुलना करने के बाद मैंने S3fs के लिए जाने का फैसला किया। यह आपको स्थानीय फाइल सिस्टम के रूप में S3 को माउंट करने की अनुमति देता है। फिर आप आगे बढ़ सकते हैं और जिस तरह से आप इसे पहले से जानते हैं, rsync का उपयोग कर सकते हैं।

शुरू करने के लिए यह एक अच्छा ट्यूटोरियल है: रुपये के साथ अमेज़ॅन एस 3

लेखक ने पहले उल्लिखित s3sync का उपयोग किया था, लेकिन फिर S3Fs के साथ विकल्प पर स्विच किया गया। मुझे यह पसंद है क्योंकि मेरे पास एसएसएचएफएस के माध्यम से स्थानीय रूप से घुड़सवार अन्य बैकअप फ़ोल्डर्स भी हैं।


0
2017-09-26 10:37



खतरे, विल रॉबिन्सन! यह वास्तव में महंगा है क्योंकि आपको rsync लो-बैंडविड्थ संचार का कोई लाभ नहीं मिल रहा है --- s3fs पूरी फ़ाइल को पढ़ने (और फिर लिखना, अगर यह बदलता है) समाप्त हो जाएगा, जिसका अर्थ है कि अमेज़ॅन आपको दो बार बिल करेगा। इसके बजाय एक ईसी 2 उदाहरण का उपयोग करने और एसएसएच के माध्यम से दूरस्थ रूप से rsync का उपयोग करने पर विचार करें। ईसी 2 इंस्टेंस से एस 3 में स्थानान्तरण निःशुल्क है, इसलिए आप अपने स्थानीय मशीन से ईसी 2 इंस्टेंस में आरएसआईएनसी के निम्न बैंडविड्थ संचार के लिए भुगतान करते हैं। मांग लागत पर एक ईसी 2 माइक्रो उदाहरण चलाना व्यावहारिक रूप से कुछ भी नहीं है। - David Given
इस! वहाँ उन लोगों के लिए बहुत बुरी सलाह है जो rsync और S3 को समझ में नहीं आती हैं ... - Mark
इसका एक नकारात्मक पक्ष यह है कि अब आपके पास प्रबंधन के लिए एक माइक्रो इंस्टेंस है। अगर आप जानते हैं कि कितना मुश्किल है, लेकिन कई लोगों के लिए प्रवेश करने में बाधा है। प्लस तरफ, ईसी 2-संलग्न ईबीएस स्टोरेज एस 3 के प्रति बाइट मूल्य के आधा मूल्य है। - Dan Pritts
@ डेविडगिवेन क्या होगा यदि मैंने rysnc का उपयोग किए बिना घुड़सवार s3fs को सीधे लिखा और फिर जीवन चक्र के माध्यम से दीर्घायु प्रबंधित की? - Forethinker