LVM स्नैपशॉट एक बैकअप रणनीति के रूप में


17

बैकअप रणनीति के रूप में कितना व्यवहार्य होगा, एक्सएम डोमू के आवधिक एलवीएम स्नैपशॉट होंगे? पेशेवरों, विपक्ष, किसी भी gotchas?

मेरे लिए यह एक तेज, दिमागविहीन पुनर्स्थापना के लिए सही समाधान की तरह लगता है। कोई भी जांच टूटी हुई तार्किक मात्रा पर हो सकती है जिसमें डोमू सफल बिना रुकावट के चल रही हो।

संपादित करें:

यहाँ पर मैं अभी हूँ, जब पूर्ण सिस्टम बैकअप कर रहा हूँ।

  • डोम डिस्क की lvm स्नैपशॉट
  • एक नया तार्किक आयतन जो आकार स्नैपशॉट आकार के बराबर है।
  • dd if = / dev / snapshot of = / dev / new_lv
  • स्नैपशॉट को lvremove के साथ डिस्पोज़ करना
  • kpartx / माउंट / एलएस के साथ वैकल्पिक सत्यापन

अब मुझे इसे स्वचालित करने की आवश्यकता है।

जवाबों:


32

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

स्नैपशॉट लागू करने के लिए कुछ चरण हैं। पहला यह है कि एक नई तार्किक मात्रा आवंटित की जानी है। इस वॉल्यूम का उद्देश्य एक ऐसा क्षेत्र प्रदान करना है जहां फाइल सिस्टम में डेल्टास (परिवर्तन) दर्ज किए जाते हैं। यह किसी भी मौजूदा रीड / राइट एक्सेस को बाधित किए बिना मूल वॉल्यूम को जारी रखने की अनुमति देता है। इसका नकारात्मक पक्ष यह है कि स्नैपशॉट क्षेत्र एक परिमित आकार का है, जिसका अर्थ है व्यस्त लेखन वाली प्रणाली पर, यह जल्दी से भर सकता है। महत्वपूर्ण लेखन गतिविधि वाले संस्करणों के लिए, आप अपने स्नैपशॉट का आकार बढ़ाना चाहेंगे ताकि सभी परिवर्तनों को रिकॉर्ड करने के लिए पर्याप्त जगह मिल सके। यदि आपका स्नैपशॉट ओवरफ्लो करता है (भरता है) तो दोनों स्नैपशॉट रुक जाएंगे और अनुपयोगी के रूप में चिह्नित होंगे। ऐसा होने पर, आप अपना स्नैपशॉट जारी करना चाहेंगे ताकि आप मूल वॉल्यूम ऑनलाइन वापस पा सकें। एक बार रिलीज पूरी हो गई है, तो आप '

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

यह सब 2 सेकंड से भी कम समय में होता है। बाकी प्रणाली भी ध्यान नहीं देती है। जब तक, निश्चित रूप से, आप इससे पहले कि यह ज़रूरत से ज़्यादा स्नैपशॉट जारी न करें ...

कुछ बिंदु पर आप अपने स्नैपशॉट को उस स्थान को पुनः प्राप्त करने के लिए जारी करना चाहेंगे, जिस पर वह रहता है। एक बार रिलीज पूरी हो जाने के बाद, स्नैपशॉट वॉल्यूम को वॉल्यूम में वापस जारी किया जाता है, और मूल अवशेष।

मैं इसे दीर्घकालिक बैकअप रणनीति के रूप में आगे बढ़ाने की सलाह नहीं देता। आप अभी भी उसी भौतिक ड्राइव पर डेटा होस्ट कर रहे हैं जो विफल हो सकता है, और आपके फाइल सिस्टम को एक ड्राइव से पुनर्प्राप्त करना जो विफल हो गया है उसका कोई बैकअप नहीं है।

तो, संक्षेप में:

  • स्नैपशॉट बैकअप की सहायता के लिए अच्छे हैं
  • स्नैपशॉट बैकअप का एक रूप नहीं, और स्वयं में हैं
  • स्नैपशॉट हमेशा के लिए नहीं रहते हैं
  • एक पूर्ण स्नैपशॉट अच्छी बात नहीं है
  • कुछ बिंदुओं पर स्नैपशॉट जारी करने की आवश्यकता है
  • LVM आपका मित्र है, यदि आप इसे बुद्धिमानी से उपयोग करते हैं।

4
इसके अलावा LVM स्नैपशॉट प्रदर्शन रैखिक रूप से घटता है - 8 स्नैपशॉट 8 बार IO।
स्टीवन

9
आपके विवरण में कुछ बिंदु हैं जो मुझे लगता है कि गलत हैं। LVM के वर्तमान संस्करणों में, यदि कोई स्नैपशॉट पूर्ण हो जाता है, तो इसे केवल अनुपयोगी के रूप में चिह्नित किया जाता है और इसे हटाने की आवश्यकता होती है। डिवाइस पर I / O रुका नहीं है। दूसरे, जब आप स्नैपशॉट हटाते हैं, तो कोई डेटा वापस मूल वॉल्यूम में कॉपी नहीं किया जाता है। अनिवार्य रूप से, जब आप लाइव वॉल्यूम लिखते हैं, तो मूल ब्लॉक पहले स्नैपशॉट में कॉपी किए जाते हैं, और फिर लाइव ब्लॉक अपडेट किए जाते हैं। फिर जब आप स्नैपशॉट छोड़ते हैं, तो यह डिवाइस मैपर से प्रविष्टि को हटाने की बात है। कोई प्रतिलिपि आवश्यक नहीं है।
कामिल किसियल

2
संपूर्णता के हित में, कामिल किसल सही है। देखें: tldp.org/HOWTO/LVM-HOWTO/snapshotintro.html
ktower

1
गलत सूचना दिए जाने के लिए खुद पर बहुत बड़बड़ाए जाने के बाद, दस्तावेज़ और चर्चा के कई स्रोतों के आधार पर उत्तर को संशोधित किया गया है। माफ़ करना दोस्तों, मेरा बुरा।
अरवी पायने

10

LVM स्नैपशॉट आपको ऑफ़लाइन लेने के बिना आपके सर्वर का बैकअप लेने में सक्षम हैं। जैसा कि कहा गया है कि LVM स्नैपशॉट लगभग तुरंत प्रतियां हैं। आप उन्हें lvcreateकेवल कमांड का उपयोग करके बनाते हैं, जैसे कि आप स्वयं LV बनाते हैं, केवल आप इसे --snapshotविकल्प और मूल LV को VG के बजाय देते हैं। उदाहरण के लिए:

lvcreate -L <LV size> -s -n <snapshot name> /dev/<VG name>/<LV name>

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

आपके द्वारा स्नैपशॉट से बैकअप लेने के बाद, आप इसे किसी भी अतिरिक्त I / O ओवरहेड या अन्य प्रदर्शन समस्याओं को कम करने के लिए निकालना चाहेंगे जैसा कि अन्य ने उपयोग किया है:

lvremove /dev/<VG name>/<snapshot name>

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


9

एक अच्छा विचार नहीं, आई.एम.ओ.

स्नैपशॉट्स को कॉपी-ऑन-राइट फैशन में लागू किया जाता है, इसलिए आप प्रत्येक राइट को एक रीड और टू राइट में बदल देते हैं (जिस ब्लॉक को आप अपडेट कर रहे हैं, उसे पहले मुख्य वॉल्यूम से पढ़ा जाता है और स्नैपशॉट वॉल्यूम में संग्रहीत किया जाता है, इससे पहले कि आप नया डेटा इसमें रखें इसकी जगह) तो आप कुछ प्रदर्शन में गिरावट देखेंगे अगर बहुत लेखन VMs पर आम है।

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

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


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

2
यह उस वॉल्यूम की एक जमी हुई प्रतिलिपि है, जिससे इसे बनाया गया है, लेकिन इसमें केवल वे ब्लॉक होते हैं जो स्नैपशॉट के बाद से बदल गए हैं (इसलिए स्नैपशॉट वॉल्यूम वॉल्यूम के स्नैपशॉट की तुलना में कहीं अधिक छोटा हो सकता है)। यदि ब्लॉक को लाइव वॉल्यूम में अपडेट किया जाता है, तो स्नैपशॉट के स्टोरेज में मूल ब्लॉक की सामग्री को जोड़ा जाता है, इसलिए जब आप स्नैपशॉट को देखते हैं तो एलवीएम अपडेट किए गए लोगों के बजाय मूल ब्लॉक की सेवा कर सकते हैं।
डेविड स्पिललेट

लेकिन अगर यह बदल गया है (स्नैपशॉट), यह "फ्रोजन" कहां से आता है? मान लीजिए कि मेरे पास यह परिदृश्य है, एक कार्य प्रणाली समय के साथ भ्रष्ट हो जाती है। मेरे पास इसका स्नैपशॉट है जब यह सही ढंग से काम कर रहा था। क्या स्नैपशॉट सिस्टम का प्रतिनिधित्व होगा, जबकि यह अभी भी सही तरीके से काम कर रहा था, या क्या इसमें पहले सिस्टम में मूल प्रणाली को भ्रष्ट करने वाले बदलाव होंगे? आशा है कि मैं पर्याप्त स्पष्ट हूं, बस यह सुनिश्चित करना चाहता हूं कि मैं वास्तव में इसे समझूं।
करोलिस टी।

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

1
आप लोग इसे ध्वनि से अधिक जटिल बनाते हैं। स्नैपशॉट स्रोत फ़ाइल सिस्टम की स्थिति को संग्रहीत करता है क्योंकि यह स्नैपशॉट बनाया गया था। जब स्रोत बदल जाता है, तो स्नैपशॉट परिवर्तित नहीं होता है, जिससे आप स्रोत बैकअप के बजाय स्नैपशॉट से पढ़ने के लिए अपने बैकअप प्रोग्राम को इंगित कर सकते हैं। हां, स्क्रीन के पीछे एक कॉपी-ऑन-राइट होता है, लेकिन उपयोगकर्ता को अतिरिक्त आईओ उपयोग के अलावा इस पर ध्यान नहीं जाता है।
Martijn Heemels

6

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


5

स्मार्ट दिखने वाले सामान के नीचे, LVM वास्तव में 'सिर्फ' एक डिवाइस मैपर ट्रिक है। Lvcreate के साथ स्नैपशॉट बनाना कुछ dmsetup सामान के आवरण से अधिक नहीं है। रैपर एक पुराने वॉल्यूम (मूल एलवी) और एक नया (कॉपी-ऑन-राइट वॉल्यूम) से एक नया डिवाइस (स्नैपशॉट वॉल्यूम) बनाता है। इसके साथ ही, मूल LV का नाम बदलकर toreal (नीचे देखें, जो dmsetup ls --tree आउटपुट है)। इस -रियल LV को स्नैपशॉट वॉल्यूम और मूल वॉल्यूम दोनों में मैप किया जाता है, इसलिए इसे दोनों स्थानों पर उपयोग किया जा सकता है। कॉपी-ऑन-राइट वॉल्यूम वॉल्यूम के रूप में -रुअल एल.वी. -Snap LV आपको कॉपी-ऑन-राइट वॉल्यूम और -रियल वॉल्यूम के संयोजन को दिखाता है। यह वास्तव में कुछ प्रदर्शन ओवरहेड बनाता है।

Volume00-snap (253:11)
 |-Volume00-snap-cow (253:13)
 |  `- (104:2)
 `-Volume00-LogVol01-real (253:12)
    `- (104:2)

Volume00-LogVol01 (253:5)
 `-Volume00-LogVol01-real (253:12)
    `- (104:2)

स्नैपशॉट को हटाते समय, फिर से कुछ नाम बदलने और मैपिंग होती है। बाद में, स्थिति फिर से कुछ इस तरह दिखाई देगी

Volume00-LogVol01 (253:5)
 `- (104:2)

के रूप में के लिए howfar में सामान का समर्थन करने का यह एक अच्छा तरीका है: यह हो सकता है, यदि आप इस वसीयत को ध्यान में रखते हैं (1) वर्चुअल मशीन रैम के लिए मदद नहीं करते हैं, (2) एक प्रदर्शन जुर्माना और (3) आपको आवश्यकता होगी कहीं और स्नैपशॉट की छवियों को संग्रहीत करने के लिए।

VMware VCB स्नैपशॉट के साथ ही काम करता है, btw, यद्यपि LVM वाले नहीं।


4

भले ही स्नैपशॉट का कोई प्रदर्शन प्रभाव नहीं था, आपको यह समझना होगा: स्नैपशॉट एक ही डिस्क पर किसी अन्य फ़ोल्डर में प्रतिलिपि की तुलना में बैकअप से अधिक नहीं है।

यदि डिस्क ब्रेक हो जाती है, तो आपका डेटा और आपका बैकअप खो जाता है। यहां तक ​​कि अगर आप स्नैपशॉट क्षेत्र को दूसरे पीई में वीजी को असाइन करते हैं, तो इसमें केवल स्नैपशॉट के बाद से संशोधित डेटा होता है।

बैकअप लेने का मतलब न्यूनतम आवश्यकता के रूप में कम से कम पूरी तरह से अलग ड्राइव पर एक कॉपी है।


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

3

मैं vmware सर्वर मशीनों और mysql डेटाबेस के स्नैपशॉट के लिए इस तरह के एक सेटअप का उपयोग करता हूं। अब तक ठीक काम करता है। वहाँ restores के कुछ था - सभी समस्याओं के बिना। एक बात पर विचार करें - स्नैपशॉट lvm के साथ चलने पर i / o संचालन के लिए महत्वपूर्ण प्रदर्शन हिट हो जाता है। यहाँ देखो । इस तथ्य को अनदेखा करें कि वे mysql के बारे में बात करते हैं, i / o ops i / o ops हैं ... चाहे कोई भी डेटा lvm पर बैठता हो।


1
अहा। हाँ - मुझे लगता है कि स्नैपशॉट लिया जाएगा और रिमोट स्टोरेज सर्वर को निर्यात किया जाएगा। स्थानीय होस्ट पर नहीं छोड़ा गया।
pQd

2

मैं केवल अलग-अलग Vg में एक और एक डोमु लव को कॉपी करने के लिए lvm स्नैपशॉट का उपयोग करता हूं, जहां प्रत्येक डोमेन में निपटान के लिए तीन बैकअप "नोड्स" हैं।

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

एक बार एक समय में, एक बैकअप Lv को एक अलग सर्वर पर एक छवि फ़ाइल में डंप किया जाता है।

यह सब स्क्रिप्ट के माध्यम से स्वचालित है, हर दो दिन में एक बैकअप और हर हफ्ते एक डंप।

यहां तक ​​कि मेरे मन में एक "आतंक" मोड था, जहां डोमेन लव को बहाल किया जाएगा, लेकिन स्नैपशॉट से चलाया जा सकता है, और हर 2 घंटे में रीसेट-एड किया जा सकता है, गंभीर हैक के मामले में डी साइट को ऑनलाइन रखने के लिए, जब तक कि एक उचित बचाव का आयोजन नहीं किया जा सके। ।


1

रक्षा विचार की 'पैनिक मोड' लाइन क्या बन गई?

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