प्रदर्शन के लिए एक VMWare स्नैपशॉट में स्थायी रूप से चल रहा है?


18

मैं समझता हूं कि VMWare KB लंबे समय तक चलने वाले स्नैपशॉट पर मुख्य रूप से दो चीजों के कारण (मेरी राय में)

  • टन के स्नैपशॉट लेने से डेटा स्टोर भर सकता है। स्नैपशॉट केवल डेल्टा फ़ाइलें हैं। मान लीजिए कि आपके पास 50 गिग वीएमडीके है, पूर्ण के पास, और आप एक स्नैपशॉट लेते हैं। आपके स्नैपशॉट में आप हर एक बिट को फ्लिप करते हैं। आपकी डेल्टा फ़ाइल भी लगभग 50 जीबी की होगी। स्नैपशॉट फिर से, बिट्स को फ्लिप करें, एक और 50 गिग डेल्टा फ़ाइल। ये तेजी से नियंत्रण से बाहर हो सकते हैं।

  • बड़े स्नैपशॉट्स में जोखिम उठाना जोखिम भरा है। स्नैपशॉट को समेकित करते समय आप मूल VMDK में बदलाव को लिख रहे हैं। इसमें समय लगता है और जोखिम उठाता है कि अगर कुछ होता है तो आपने अपने वीएमडीके को ठीक किया है।

उनकी चेतावनियां तार्किक समझ में आती हैं।

कहा जा रहा है, यह स्वाभाविक रूप से एक स्नैपशॉट VMDK से स्थायी रूप से मेरी मशीन को चलाने के लिए बुरा है? मैं अपने पेड़ को निम्नलिखित बनाना चाहता हूं:

  • आधार
    • Snap1
      • स्नैप 2
      • आप यहाँ हैं

आधार प्रणाली को स्थापित करने और प्रावधान करने के तुरंत बाद स्नैप 1 और 2 लिया जाएगा। ये ऐसी मशीनें हैं जिन्हें मैं बार-बार ताज़ा करने की योजना बना रहा हूं इसलिए मैं अपने पेड़ को निम्नलिखित की तरह बनाऊंगा:

  • आधार
    • Snap1
      • आप यहाँ हैं
      • स्नैप 2

Snap2 हटाएं और Snap2 को फिर से बनाएँ।

मैं यह नहीं देख सकता कि निम्नलिखित कारणों से इसका कोई प्रभाव कैसे पड़ सकता है:

  • चूँकि मैंने बस एक बेस इमेज लगाई थी और अपने डेल्टास को तुरंत ले लिया था, ऐसा कोई रास्ता नहीं होने के कारण मैं संभवतः डेटा स्टोर भर सकता था। मान लें कि मेरी आधार छवि केवल 10 जीबी है (50 जीबी पतली प्रोविज्ड डिस्क पर), भले ही मेरा डेल्टा हर एक बिट में गिरा हो मेरा अधिकतम उपयोग 60 जीबी हो सकता है (10 जीबी आधार वीएमडीके जो लॉक + 50 जीबी डेल्टा है) स्नैपशॉट VMDK फ़ाइल)। यह मानता है कि मैं कोई और स्नैपशॉट नहीं बनाता।

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

  • भंडारण भार बिल्कुल समान है, इसलिए मुझे समान IOPS मिलना चाहिए। मैं समझता हूं कि कुछ फाइलें (मुख्य रूप से सिस्टम फाइलें) मूल VMDK और अन्य (आधार के बाद सब कुछ) पर मौजूद होंगी, लेकिन मैं यह नहीं देखता कि ESXI कैसे देखभाल करेगा। सभी फाइलें एक ही भौतिक डेटास्टोर पर हैं, इसलिए प्रदर्शन को स्नैपशॉट के बिना मूल VMDK में सब कुछ संदर्भित करने के बराबर होना चाहिए।

कोई विचार? ESXI 5.5 डेटा स्टोर के साथ RAID'd DAS है।

मेरे पास vCenter लाइसेंस नहीं है इसलिए टेम्प्लेटिंग और क्लोनिंग टेबल से दूर है।

परीक्षण के परिणाम

मुझे आज कुछ परीक्षण चलाने की जल्दी थी। यहां देखें नतीजे प्रदर्शन पर जुर्माना है लेकिन मुझे यकीन नहीं है कि क्यों।

स्नैपशॉट करने से पहले: स्नैपशॉट से पहले

स्नैपशॉट करने के बाद: शपशोटिंग के बाद


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

@PeterHorvath - वह सामान जिसे मुझे सुनना बहुत पसंद है। स्मार्ट, हैकी, प्रभावी, नंगे-हड्डियों के समाधान। अगर आपको कोई आपत्ति नहीं है तो क्या आप मुझे पास्टबीन या कुछ और करने पर लिख सकते हैं? क्या आप VMDK डीडी और स्नैपशॉट को एक साथ करते हैं?
VM_Storage_Inception

यदि मुझे ऐसा करने की आवश्यकता होती है, तो मैंने इसे स्क्रिप्ट के साथ किया। लेकिन यह मामला नहीं है, और ज्यादातर मामलों में मैं भी स्नैपशॉट का उपयोग नहीं करते हैं, क्योंकि वे धीमी हैं।
पेटेर - मोनिका

जवाबों:


17

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

वीएमवेयर में टेम्प्लेटिंग और क्लोनिंग कार्यक्षमता है जिसे वीकेटर में बनाया गया है। इसे सक्षम करने के लिए आपको $ 600 vSphere Essentials लाइसेंस की आवश्यकता है।

आप अपने स्वाद के लिए एक वीएम बना सकते हैं, फिर इसे एक टेम्पलेट पर क्लोन कर सकते हैं। फिर उस टेम्पलेट का उपयोग "गोल्डन मास्टर" छवि से नई वर्चुअल मशीन बनाने के लिए किया जा सकता है ।

यहाँ छवि विवरण दर्ज करें

यह आपको एक "स्वच्छ स्थिति" की अनुमति देता है, लेकिन उस मास्टर छवि से लंबे समय तक चलने या स्थायी VMs भी बनाता है। किसी स्नैपशॉट की आवश्यकता नहीं है।


दिलचस्प है, मैं उस पर ध्यान दूंगा और यह कैसे काम करता है। दुर्भाग्य से मेरे पास vCenter लाइसेंस नहीं है और मेरे ऑर्गन शेल को $ 600 नहीं होगा, अगर मेरे द्वारा बताए गए तरीके से उपयोग किए जा रहे स्नैपशॉट के लिए कोई प्रदर्शन निहितार्थ नहीं हैं। इसके अलावा टेम्प्लेटिंग और क्लोनिंग ओवीए लेने और इसे फिर से तैयार करने से अलग नहीं है। स्नैपशॉट को हटाना बहुत तेज़ लगता है और मैं तार्किक रूप से यह नहीं देख सकता कि "आधिकारिक VMWare अनुमोदित पद्धति" नहीं होने पर भी प्रदर्शन के निहितार्थ कैसे होंगे।
VM_Storage_Inception

अपने संपादन पर प्रतिक्रिया देने के लिए, क्या आप मुझे एक लेख की ओर इशारा कर सकते हैं या बता सकते हैं कि प्रदर्शन के निहितार्थ क्या होंगे? मैं यह नहीं देख सकता कि कोई भी अनुमान लगाने वाला होगा कि मैं उनका उपयोग कैसे करता हूं जो मैं वर्णन करता हूं। इसके अलावा, मैं स्नैपशॉट को मूल VMDK में वापस समेकित नहीं करूंगा।
VM_Storage_Inception

मुझे लगता है कि मैं यह समझने की कोशिश कर रहा हूं कि आप उस विशेषता के आसपास डिजाइन करने पर जोर क्यों दे रहे हैं जिसका उपयोग अल्पकालिक पहुंच के लिए किया जाना है।
ewhite 21

@VM_Storage_Inception - यह लगभग ऐसा लगता है जैसे आप VMWare के विवादास्पद उत्पाद लैब प्रबंधक के लिए एक गरीब आदमी का दृष्टिकोण चाहते हैं।
क्लेनर

5
कभी-कभी, सही समाधान खरीदने से समझ में आता है। आपने अधिक प्रयास और मैन-घंटे बिताए हैं , जो केवल आवश्यक अनिवार्य लाइसेंस ($ 600) के लिए भुगतान करने की तुलना में वर्कअराउंड के बारे में पूछते हैं , जो आपको एक समर्थित टेम्पलेट / क्लोनिंग विकल्प देगा।
ewwhite

4

ewwhite का उत्तर सही है, लेकिन बस थोड़ा अधिक या प्रदर्शन जुर्माना बढ़ाने के लिए, इस परिदृश्य पर विचार करें:

आप एक VM बनाएँ। Vmdk की एक वर्चुअल रीड एक भौतिक डिस्क को एक ही आकार में पढ़ती है। काफी सरल।

अब कल्पना करें कि आप वीएम का स्नैपशॉट लेते हैं। अब, प्रत्येक वर्चुअल रीड के लिए, आप 2 भौतिक रीडर्स, एक आधार vmdk से और एक डेल्टा vmdk से लेने जा रहे हैं, क्योंकि आपको वर्तमान स्थिति प्राप्त करने के लिए दोनों की जानकारी चाहिए। अब आप दो बार फिजिकल डिस्क पर पढ़ रहे हैं।

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


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

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

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

एक वर्चुअल डिस्क स्नैपशॉट सिस्टम जो एन स्नैपशॉट के लिए एन पढ़ता है, बहुत बेवकूफ कार्यान्वयन होगा। मुझे संदेह है कि यह VMWare में कैसे लागू होता है। एक साधारण अनुकूलन केवल एक इंडेक्स फाइल बनाकर किया जा सकता है जो स्टोर करता है जिसमें इम्यूलेटेड ड्राइव के प्रत्येक ब्लॉक को डिस्कफाइल करता है। मान लें कि आपके पास 4kB के ब्लॉक साइज के साथ 512GB की वर्चुअल डिस्क है, तो आपको निरंतर समय में यह निर्धारित करने के लिए 64 एमबी इंडेक्स की आवश्यकता होती है कि 16 में से किस वर्चुअल डिस्क फ़ाइल में ब्लॉक है।
रेयान

1
Serverfault.com/questions/430138 में जवाब के आधार पर मुझे असहमत होना होगा। मैंने हमेशा बाइनरी अंकगणितीय के परिणाम के रूप में स्नैपशॉट के बारे में सोचा है, न कि केवल नए डेटा का एक संग्रह। इसलिए यदि आपके आधार वीएमडीके में बिट्स 01010101 हैं, तो आप स्नैपशॉट लेते हैं, फिर उन बिट्स को 10101010 में बदल दें, आपके डेल्टा में 11111111 होगा (यह दर्शाता है कि मूल फ़ाइल में हर बिट बदल गया है, 10101010 का नया मूल्य नहीं)। उपरोक्त टिप्पणी से मैं जितना सहमत हूं, VMDKs कथित रूप से कच्ची फाइलें हैं। सूचकांक कहाँ संग्रहीत किया जाएगा? मैंने कभी भी किसी VMWare टेक पब में इसका उल्लेख नहीं देखा है।
tfrederick74656 12

0

VMware ESX स्नैपशॉट अल्पावधि उपयोग के लिए हैं।

लंबे समय तक उपयोग और भारी IO VM फ्रीज का कारण बन सकता है। यदि आपके पास ऐसा मामला है जब IO लिखना बड़ा / तेज़ है तो स्नैपशॉट समेकन ESX डेटा की सुरक्षा के लिए VM को फ्रीज कर देगा। समय के साथ स्नैपशॉट खंडित हो जाते हैं और ईएसएक्स आंतरिक समेकन करता है जिसे आप समय-समय पर जमा कर सकते हैं।

आप वीएम टेम्प्लेटिंग मैन्युअल रूप से ssh के माध्यम से कर सकते हैं। नए फ़ोल्डर में vmdk, vmx, आदि सहित VM फ़ोल्डर की प्रतिलिपि बनाएँ। नए कॉपी किए गए वीएम परिवर्तन की vmx फाइल में UID और MAC एड्रेस।

VMware के पास उत्पाद, लिंक्ड क्लोन है, जो एक ही चीज है जिसे आप करने की कोशिश कर रहे हैं। और वे कहते हैं कि इसमें संभावित प्रदर्शन समस्याएं हैं। व्यवहार में, आप कुछ समय के बाद वीएम का पुनर्पाठ करेंगे। https://www.vmware.com/support/ws5/doc/ws_clone_typeofclone.html

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