उच्च उपलब्धता के लिए टार और rsync का उपयोग करना


13

मेरे पास उबंटू क्लाउड सर्वर चल रहे हैं जिनकी मुझे सीधी पहुँच नहीं है, लेकिन ssh के साथ। मैं 'टार' का उपयोग क्लोन या इस सर्वर की उच्च उपलब्धता के लिए कर रहा हूँ। मैंने लिंक [लिंक टेक्स्ट] [1] से ट्यूटोरियल का अनुसरण किया। मैंने एक ही संस्करण के एक नए सर्वर को स्थापित करने की कोशिश की। जब मैंने गंतव्य (नया) पर टार (टार -xvpzf ~ / clone.tgz -C /) निकाला, तो अंत में यह नीचे दिए गए समान आउटपुट के साथ समाप्त हो रहा है (पता नहीं कि यह त्रुटि है)।

tar: var/run: time stamp 2010-11-09 17:09:11 is 7335.159880406 s in the future
tar: var/spool/postfix/usr/lib/zoneinfo: time stamp 2010-11-09 17:08:26 is 7290.159730037 s in the future
tar: var/lib: time stamp 2010-11-09 17:27:51 is 8455.159349527 s in the future
tar: usr/bin: time stamp 2010-11-09 17:28:02 is 8466.159254097 s in the future
tar: usr/share/sgml: time stamp 2010-11-09 17:27:47 is 8451.158909506 s in the future
tar: usr/share/man/man7: time stamp 2010-11-09 17:27:50 is 8454.158393583 s in the future
tar: usr/share/man/man1: time stamp 2010-11-09 17:28:02 is 8466.158166556 s in the future
tar: usr/share/man/man8: time stamp 2010-11-09 17:27:51 is 8455.158057701 s in the  future
tar: usr/share/omf/time-admin: time stamp 2010-11-09 17:27:52 is 8456.157830449 s in the future
---------------------------------------------
---------------------------------------------
---------------------------------------------

मैं स्रोत सिस्टम पर निर्दिष्ट निर्देशिकाओं की टार फ़ाइल बनाने के लिए निम्नलिखित कमांड का उपयोग कर रहा हूं।

tar -cvzf ~/clone.tgz --exclude ~/clone.tgz --exclude /etc/hosts --exclude /etc/hostname --exclude /etc/udev/ --exclude /etc/network/interfaces --exclude /etc/resolv.conf  /etc /home /opt /tmp /usr /var /mnt
  • क्या टार का उपयोग करने से पहले कोई सावधानी है? (टार एक समय निर्माण है तब से मैं rsync का उपयोग करूँगा)
  • क्या मुझे बिन या देय जैसे किसी और निर्देशिका को शामिल करना चाहिए? - मुझे सलाह दो
  • क्या मुझे किसी निर्देशिका को बाहर करना चाहिए? जैसे मुझे नेटवर्क डिवाइस (eth0) की समस्या थी (eth0 को शुरू करने में विफल)। इसलिए उपरोक्त कमांड में मैंने "/ etc / udev /" को बाहर कर दिया है और इसके बाद मुझे लगा कि यह ठीक था। इस तरह, क्या कोई ऐसी चीज है जिसे मैंने / etc / या किसी भी निर्देशिका से बाहर रखा है जिसे मैंने शामिल किया है? - मुझे सलाह दो।
  • मैं ss संयोजन के साथ rsync (वृद्धिशील bkp) को कैसे शेड्यूल कर सकता हूं ताकि निर्देशिकाओं (टार में निर्दिष्ट) को दूरस्थ स्थान (कह / mnt / newdir) के साथ सिंक किया जा सके, जिसे मैं सिस्टम विफलता के मामले में बाद में टार कर सकता हूं और निकाल सकता हूं। रुंटस को रूट उपयोगकर्ता के रूप में चलाने के लिए निर्धारित किया जा सकता है लेकिन ssh पासवर्ड के लिए संकेत देगा। FYI करें, sudo पूरी तरह से अक्षम है और साथ ही डायरेक्ट ssh लॉगिन से रूट भी अक्षम है।

अगर इसे प्राप्त करने के लिए सर्वर को कोई नुकसान पहुंचाए बिना कोई बेहतर तरीका है, तो सुझाव दे सकते हैं।

[१]: http://ubuntuforums.org/showthread.php ? टी = 525,660

जवाबों:


9

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

मैं केवल बाहर करूंगा: / proc / / sys / dev / tmp / mnt क्लोन सिस्टम पर आपको यह सुनिश्चित करने की आवश्यकता होगी कि / etc / fstab और /boot/grub/grub.cfg क्लोन सिस्टम विभाजन के UUs के साथ अपडेट किए गए हैं।

यदि आपके पास mysql जैसा कोई डेटाबेस है, तो आपको प्रतिलिपि बनाने से पहले carefull होना होगा और DB को रोकना होगा।


हाँ, अच्छी तरह से याद दिलाया गया है, मुझे लगता है कि मुझे '/ etc / fstab' और '/boot/gru/grub.cfg' को बाहर करना होगा। क्या यह अच्छा है?। कृपया निर्दिष्ट निर्देशिकाओं के rsync वृद्धिशील तुल्यकालन के लिए कमांड रखें।
user3215

Ofcourse /boot/grub/grub.cfg बिल्कुल भी शामिल नहीं है
user3215

मैं क्लोन सिस्टम के UUIDs को कैसे अपडेट करूं।
user3215

आपको क्लोन सिस्टम के विभाजन के UUIDs के साथ fstab और ग्रब कॉन्बिनेशन में UUIDs को मूल विभाजन से बदलना होगा। आप के साथ विभाजन आईडी को सूचीबद्ध कर सकते हैं: ब्लकिड।
जोआओ पिंटो

आपके कहने का मतलब है कि दोनों प्रणालियों पर UUIDs समान होना चाहिए।
user3215

6

सबसे पहले, आईएएएस क्लाउड प्रदाताओं में से कई शक्तिशाली स्नैपशॉट क्षमताओं की पेशकश करते हैं जो इसे काफी आसानी से हल करते हैं।

EC2 पर, यदि आप EBS आधारित प्रणाली चलाते हैं, तो आप समय-समय पर इसे स्नैपशॉट दे सकते हैं। यदि स्रोत के लिए कुछ भयानक होता है, तो आप पिछले स्नैपशॉट पर एक नए उदाहरण पर वापस आ सकते हैं। यदि आप एक स्नैपशॉट को संग्रहीत करना चाहते हैं, तो आप इसके साथ एक और उदाहरण को संलग्न कर सकते हैं, और उत्पादन बॉक्स को नकारात्मक रूप से प्रभावित किए बिना टार + एस 3 जैसे कुछ का उपयोग कर सकते हैं।

इस दृष्टिकोण के साथ कई समस्याएं हैं जो अभी स्पष्ट नहीं हो सकती हैं।

  1. आप खुद को एक ही तकनीक में बंद कर रहे हैं। यदि आपको यह उबंटू 10.10 पर काम कर रहा है, और आप 11.04 पर जाना चाहते हैं, तो आपको सोर्स सिस्टम को अपग्रेड करना होगा, फिर इसे स्नैपशॉट करना होगा। इसी तरह, यदि आप EC2 के ईबीएस स्नैपशॉट का उपयोग करते हैं, तो आपको रैकस्पेस क्लाउड पर जाने के लिए एक नए समाधान की आवश्यकता है।
  2. यदि आप rsync का उपयोग करते हैं तो आपके पास कोई इतिहास नहीं है। यदि आप सिस्टम 1 पर कुछ संशोधित करते हैं, तो कुछ टूट जाता है, आप अपने बैकअप सिस्टम को तब भी तोड़ देंगे जब आप rsync करेंगे।
  3. रुपीक्स आपके उत्पादन प्रणाली पर अत्यधिक प्रभाव डाल सकता है।

क्या आप वास्तव में चाहते हैं एक विन्यास प्रबंधन प्रणाली है, और उच्च उपलब्धता डेटा।

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

डेटा की उच्च उपलब्धता के लिए, rsync को काम करना चाहिए, और अधिक सीधे आगे होना चाहिए क्योंकि आप केवल उस डेटा को कॉपी कर सकते हैं जिसे आप चाहते हैं। वहाँ भी एक "नेटवर्क RAID1" के लिए क्या मात्रा है drbd है। ये डेटा बैकअप के लिए रिप्लेसमेंट नहीं हैं, जिसमें एक रिकवरी होस्ट को सिंक करने के बजाय ऐतिहासिक स्नैपशॉट (चाहे ब्लॉक डिवाइस स्नैपशॉट या टार जैसे कुछ भी शामिल हो) (क्या होगा यदि कोई व्यक्ति सभी डेटा को हटाता है जो रिकवरी बॉक्स में rsynced हो जाता है, यह सब हटा रहा है) वहॉं भी?)


2

संदेशों की संभावना होती है क्योंकि नया सर्वर घड़ी पुराने समय की तुलना में पीछे है।

यदि आप पैकेज प्रबंधक कॉन्फ़िगरेशन और डेटाबेस (और आप हैं) का क्लोन कर रहे हैं, तो आपको क्लोन / बिन, / sbin और / lib या गंतव्य सिस्टम असंगत स्थिति में होना चाहिए। एक अन्य दृष्टिकोण होगा /etc/dpkg.info / etc / apt / var / lib / apt और / var / lib / dpkg को बाहर करना और लक्ष्य प्रणाली में सभी संकुल को फिर से स्थापित करना।

/ Var / dpkg और / var / apt की फ़ाइलों में आपके सिस्टम में इंस्टॉल की गई जानकारी होती है। यदि आप उन्हें बाहर नहीं करते हैं, तो पैकेज प्रबंधक का मानना ​​होगा कि लक्ष्य में मूल कार्यक्रम के सभी कार्यक्रम और निर्भरताएँ स्थापित हैं। लेकिन अगर आपने कॉपी / बिन, / sbin, आदि नहीं किया ... तो वे नहीं करेंगे। यह बहुत संभावना है कि अगले इंस्टॉल या अपडेट पर कुछ टूट जाएगा।

तब rsync के साथ समन्वयित रखने के लिए मैंने हमेशा प्रमाणित आधारित प्रमाणीकरण का उपयोग किया है, पासवर्ड का नहीं। यह सेटअप करना काफी आसान है, मुझे याद है कि मैंने यह पहली बार मैन पेज को पढ़ने के लिए किया था। यहां एक त्वरित मार्गदर्शिका है , यदि आप अधिक जानकारी चाहते हैं तो मेरा मानना ​​है कि यह एक नया प्रश्न है।


नंबर / संस्करण को बाहर नहीं किया गया है। "--Exclude /etc/resolv.conf" के बाद उपरोक्त कमांड में सब कुछ /etc/..../var / mnt से शामिल है। वास्तव में मैंने resolv.conf और / etc के बीच दो रिक्त स्थान निर्दिष्ट किए हैं। यहाँ यह नहीं दिख रहा है।
user3215

क्षमा करें, मैं लिंक का हिस्सा भूल गया
user3215

ठीक है, इसलिए मुझे भी बिन, sbin और lib शामिल करना चाहिए, यह यहाँ ठीक है। ओह .. मुझे उन लोगों को छोड़कर सभी पैकेजों को स्थापित करना होगा।
user3215

क्या वास्तव में /etc/dpkg.info / etc / apt / var / lib / apt और / var / lib / dpkg को बाहर करना आवश्यक है ..?
user3215

उत्तर अपडेट किया गया।
जेवियर रिवेरा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.