अमेज़न ग्लेशियर: मल्टी-थ्रेडेड / मल्टीपार्ट डाउनलोड के साथ पर्ल क्लाइंट

छवि

अमेज़न ग्लेशियर


संक्षेप में - अमेज़न ग्लेशियर अभिलेखागार / बैकअप को स्टोर करने के लिए डिज़ाइन की गई एक बहुत ही आकर्षक स्टोर प्राइस सेवा है। लेकिन अभिलेखागार को बहाल करने की प्रक्रिया जटिल और / या महंगी है। हालांकि, सेवा माध्यमिक बैकअप के लिए काफी उपयुक्त है।
ग्लेशियर के बारे में अधिक पहले से ही एक geek पत्रिका पर लिखा था

पोस्ट किस बारे में है


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

कार्यात्मक


तो mtglacier। गिटहब लिंक
कार्यक्रम की विशेषताएं:


परियोजना का लक्ष्य


एक कार्यक्रम में चार चीजों को लागू करें (यह सब अलग है, लेकिन एक साथ नहीं)

  1. पर्ल कार्यान्वयन - मेरा मानना ​​है कि जिस भाषा / तकनीक में प्रोग्राम बनाया गया है, वह अंतिम उपयोगकर्ता / व्यवस्थापक के लिए भी महत्वपूर्ण है। इसलिए विभिन्न भाषाओं में कार्यान्वयन का विकल्प रखना बेहतर है
  2. अमेज़न S3 के समर्थन के लिए योजना बनाना सुनिश्चित करें
  3. मल्टीपार्ट ऑपरेशन + मल्टीथ्रेड ऑपरेशन -
    मल्टीपार्ट एक स्थिति से बचने में मदद करेगा जब आप कई गीगाबाइट किसी दूरस्थ सर्वर पर अपलोड करते हैं और अचानक कनेक्शन टूट जाता है। डाउनलोडिंग की गति बढ़ रही है, और छोटी फ़ाइलों के एक समूह को लोड करने या बड़ी संख्या में फ़ाइलों को हटाने में महत्वपूर्ण रूप से गति है
  4. प्रोटोकॉल के स्वयं के कार्यान्वयन - यह कोड को पुन: प्रयोज्य बनाने और CPAN पर अलग-अलग मॉड्यूल के रूप में प्रकाशित करने की योजना है


यह कैसे काम करता है



सेवा में फ़ाइलों को सिंक्रनाइज़ करते समय, mtglacier एक लॉग (पाठ फ़ाइल) बनाता है जिसमें सभी अपलोड फ़ाइल संचालन दर्ज किए जाते हैं: प्रत्येक ऑपरेशन के लिए, स्थानीय फ़ाइल का नाम, अपलोड समय, ट्री हैश फ़ाइल, संग्रह_आईडी फ़ाइल प्राप्त की।

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

ग्लेशियर से फाइलें हटाना लॉग में विलोपन प्रविष्टियां जोड़ता है। ग्लेशियर में फिर से सिंक्रनाइज़ होने पर, केवल उन फाइलों को संसाधित नहीं किया जाता है, जो लॉग द्वारा देखते हैं।

दो-पास फ़ाइल पुनर्प्राप्ति प्रक्रिया:
  1. लॉग में मौजूद फ़ाइलों को डाउनलोड करने के लिए एक कार्य बनाया जाता है, लेकिन स्थानीय ड्राइव पर नहीं
  2. चार घंटे इंतजार करने के बाद, आप इन फ़ाइलों को डाउनलोड करने के लिए दूसरी कमांड चला सकते हैं


चेतावनी




कैसे उपयोग करें


  1. अमेज़न कंसोल में वॉल्ट बनाएं
  2. Glacier.cfg बनाएं (उसी क्षेत्र को निर्दिष्ट करें जहां तिजोरी बनाई गई थी)
     कुंजी = तुम्हारा
     गुप्त = YourSECRET
     क्षेत्र = हमें-पूर्व -1
    

  3. ग्लेशियर में अपनी स्थानीय निर्देशिका को सिंक्रनाइज़ करें। थ्रेड्स की संख्या को इंगित करने के लिए कंसीलर पैरामीटर का उपयोग करें
    ./mtglacier.pl sync --config=glacier.cfg --from-dir /data/backup --to-vault=myvault --journal=journal.log --concurrency=3

  4. आप फ़ाइलों को जोड़ सकते हैं और फिर से सिंक कर सकते हैं
  5. फ़ाइल अखंडता की जाँच करें (केवल लॉग के साथ जाँच की गई)
    ./mtglacier.pl check-local-hash --config=glacier.cfg --from-dir /data/backup --to-vault=myvault --journal=journal.log


  6. आप / डेटा / बैकअप से कुछ फ़ाइलों को हटा सकते हैं
  7. डेटा रिकवरी का काम बनाएँ। आप संग्रहित करना चाहते हैं की संख्या को निर्दिष्ट करने के लिए अधिकतम-संख्या-की-फ़ाइल पैरामीटर का उपयोग करें। फिलहाल, यह कई टन से अधिक मूल्य निर्दिष्ट करने के लिए अनुशंसित नहीं है (जब तक कि वर्तमान नौकरियों की सूची के साथ एक से अधिक पृष्ठ लोड नहीं किया गया है)
    ./mtglacier.pl restore --config=glacier.cfg --from-dir /data/backup --to-vault=myvault --journal=journal.log --max-number-of-files=10

  8. 4 घंटे या अधिक प्रतीक्षा करें
  9. हटाए गए फ़ाइलों को पुनर्प्राप्त करें
    ./mtglacier.pl restore-completed --config=glacier.cfg --from-dir /data/backup --to-vault=myvault --journal=journal.log

  10. यदि बैकअप की आवश्यकता नहीं है, तो ग्लेशियर की सभी फ़ाइलों को हटा दें
    ./mtglacier.pl purge-vault --config=glacier.cfg --from-dir /data/backup --to-vault=myvault --journal=journal.log



कार्यान्वयन



अब तक क्या गायब है


पहले बीटा के लिए मुख्य बात एक कठिन काम था (यह अल्फा नहीं है) संस्करण, सप्ताह के अंत तक तैयार है, इसलिए बहुत सारी चीजें अभी भी गायब हैं।
यह अनिवार्य होगा:

Source: https://habr.com/ru/post/In150324/


All Articles