VirtualBox में स्नैपशॉट को मर्ज करने का सबसे तेज़ तरीका?


48

मेरे पास काफी संख्या में स्नैपशॉट हैं, जिनमें से - 50 या 70 स्नैपशॉट हैं। मैं एक वर्तमान स्थिति के साथ एक सादे वादी करना चाहता हूं। ये स्नैपशॉट बहुत अधिक डिस्क स्थान लेते हैं और स्नैपशॉट के रूप में आवश्यक नहीं हैं।

मुझे पता है कि अगर मैं फोन करता हूं

VBoxManage clonehd thedisk.vdi thedisk-full.vdi
(50-70 times) VBoxManage clonehd {uuid-of-snapshot}.vdi thedisk-full.vdi --existing

मुझे जो चाहिए वो मिलेगा। लेकिन इसमें बहुत लंबा समय लगता है (5 घंटे से अधिक मेरा हार्डवेयर और 16 जी प्रारंभिक डिस्क आकार दिया गया है)।

और, ज़ाहिर है, मैंने कोशिश की VBoxManage snapshot deleteऔर यह अजीब है: रोकी गई मशीन पर काम नहीं करता, चल रही मशीन पर विफल हो सकता है और जब यह एक बार विफल हो जाता है, तो यह बाद की सभी कॉल विफल हो जाएगी।

क्या स्नैपशॉट की एक संख्या से सादा वडी बनाने का एक तरीका है - तेज?

$ VBoxManage --version
3.2.14r75509

( सर्वरफॉल्ट पर यह पूछा गया लेकिन यह तय किया कि यह स्थान इस प्रश्न के लिए अधिक उपयुक्त है)


आपके द्वारा उपयोग की जाने वाली कमांड वह कमांड है जिसका आप उपयोग करना चाहते हैं वह तेज़ तरीका नहीं है।
रामहाउंड

पूरे वीएम को निर्यात करने के बारे में क्या? क्या इसकी vdi में वही होगा जो मैं चाहता हूं?
एंड्रे रीजेंटोव

आपको इसे आजमाना चाहिए। अंत में वर्चुअल मशीन के आकार के कारण किसी अन्य विधि में अभी भी कुछ समय लगने वाला है।
रामहाउंड

जवाबों:


53

समाधान मिल गया। यह मेरे द्वारा लिखे गए आदेशों के अंतिम चरण जितना आसान है। अर्थात

VBoxManage clonehd fullpath/{uuid-of-last-snapshot}.vdi thedisk-full.vdi

इसलिए मुझे केवल पिछले स्नैपशॉट को क्लोन करना चाहिए, न कि चेन से हर स्नैपशॉट। और यह हजारों प्रतिशत तेज है।

यूयूआईडी से पाया जा सकता है VBoxManage list hdds | grep VmName | tail

(Windows पर) जीयूआई में, वी एम का चयन करें, चयन स्नैपशॉट्स ऊपरी दाएँ, स्नैपशॉट आप चाहते हैं पर राइट क्लिक करके, चयन क्लोन ... , और चुनें पूर्ण क्लोन संवाद में।


thx, लेकिन यह मेरे सेटअप पर काम नहीं करता है, यह कहता है कि छवि पहले से मौजूद है। क्या आप --existing भूल गए?
एंडी

3
यदि आपके पास पहले से ही thedisk-full.vdiडिस्क पर फ़ाइल है, तो कृपया पहले कमांड को नाम को कुछ इस तरह बदलें thedisk-full-new.vdi
एंड्री रीजेंटोव

फुलपैथ को वर्चुअलबॉक्स में पंजीकृत होने की आवश्यकता है, निश्चित रूप से। प्रतीकात्मक लिंक अभ्यस्त काम करते हैं, क्योंकि VBox
एंडी

सुनिश्चित नहीं है कि पूंछ क्या करती है, क्या आपका मतलब है " tail -1"?
eckes

1
वर्चुअलबॉक्स 5 में, clonehdपीछे की ओर संगतता के लिए पदावनत और छोड़ दिया जाता है, clonemediumइसके बजाय उपयोग करें ।
जॉर्ज सोवेतोव

22

यहां एक तकनीक (वर्चुअलबॉक्स 4.3.4 पर परीक्षण किया गया है) जो 'स्नैप' कमांड का उपयोग करके सभी स्नैपशॉट को एक एकल वीडीआई फ़ाइल वाले एक नए वीएम में विलय और कॉम्पैक्ट करने के लिए उपयोग करती है:

  1. VM का नाम बदलें ताकि आप क्लोन किए गए VM के लिए इसके वर्तमान नाम का पुन: उपयोग कर सकें (आप 'सामान्य' सेटिंग के 'मूल' टैब से VM नाम बदल सकते हैं)।

  2. VM पर राइट-क्लिक करें और 'क्लोन ...' कमांड चलाएँ:

    • VM के मूल नाम पर नाम सेट करें।
    • शेष चूक अर्थात् क्लोन प्रकार स्वीकार करें: 'पूर्ण क्लोन'; स्नैपशॉट: 'करंट मशीन स्टेट'।
  3. पुराने VM को हटाएं (VM पर राइट-क्लिक करें और 'Remove ...' कमांड चलाएँ)।


VirtualBox 6.0.8 के रूप में, यह अभी भी काम करता है।
पॉल स्टर्म

3

आप OVF को निर्यात करने की कोशिश कर सकते हैं और फिर उत्पन्न फ़ाइल को वापस आयात कर सकते हैं ।

जैसा यहाँ बताया गया है :

OVF स्नैपशॉट का वर्णन नहीं कर सकता है जो एक वर्चुअल मशीन के लिए लिया गया था। नतीजतन, जब आप एक वर्चुअल मशीन का निर्यात करते हैं जिसमें स्नैपशॉट होते हैं, तो केवल मशीन की वर्तमान स्थिति को निर्यात किया जाएगा, और निर्यात में डिस्क छवियों में वर्चुअल मशीन की वर्तमान स्थिति के समान "चपटा" राज्य होगा।

परिणामस्वरूप आपके पास अन्य स्नैपशॉट के बिना वर्तमान स्थिति के साथ एक क्लोन किया हुआ वीएम होगा।


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

0

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


1
आमतौर पर नेटवर्क आंतरिक एचडीडी इंटरफ़ेस की तुलना में परिमाण धीमा करने का आदेश है, इसलिए यह संभवतः प्रक्रिया को तेज नहीं करेगा।
एंड्रे रीजेंटोव

-2

कुछ में 10Gib / s LAN है, इसलिए यह एक गीगाबाइट प्रति सेकंड से अधिक स्थानांतरित कर सकता है, इसलिए यह एक अड़चन नहीं होगा।

कुछ में 1Gib / s LAN है, इसलिए यह प्रति सेकंड 100 मेगाबाइट से अधिक स्थानांतरित कर सकता है, इसलिए यह एक अड़चन नहीं होगी (जब तक कि आपके पास वास्तव में तेज एसएसडी न हो)।

मैकेनिकल डिस्क, जब एक ही समय में एक ही डिस्क (या बहुत खंडित) पर पढ़ा और लिखा जाता है, तो 20 मेगाबाइट प्रति सेकंड के पास नीचे चला जाता है, जबकि गैर-टुकड़े पर केवल पढ़ने या केवल लिखने पर 100 मेगाबाइट प्रति सेकंड से अधिक हो सकता है।

आप लैन के बारे में धीमी गति से बताएं, लेकिन यूएसबी (2.0, 1.1 या 1.0 का उल्लेख नहीं करना) के बारे में बहुत बार धीमा है।

मैं क्या सुझाव दूंगा: USB 3.1 Gen2 टाइप C या एक eSATA / SATA / SAS का उपयोग करें

लेकिन allways: एक दूसरे तेज पर्याप्त डिस्क का उपयोग करें।

और रास्ते: किसी अन्य डिस्क पर क्लोनिंग और फ़ाइल वापस कॉपी करना बहुत तेज़ है कि केवल डिस्क में से एक का उपयोग करना जब तक कि यह एसएसडी या हार्ड डिस्क नहीं है जिसमें स्वतंत्र मल्टी-हेड हथियार हैं (वे एक ही समय में दो पर पढ़ और लिख सकते हैं। सतह स्थानों, प्रत्येक सिर का अपना हाथ होता है, बहुत महंगा, लगभग> 9876 €)।

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

तो कोई वृक्ष स्नैपशॉट योजना पर सभी पुराने राज्यों को ढीला करने के लिए कदम:

  1. एक हार्डिस्क से दूसरे एक पर क्लोन, बाधाओं से बचें
  2. एक नई मशीन बनाएं, उस डिस्क को कनेक्ट करें, इसे डिस्कनेक्ट करें, इसे अयोग्य के रूप में कॉन्फ़िगर करें
  3. परीक्षण यह काम करता है (क्योंकि यह अक्षम्य है) आपके पास एक ही राज्य होगा
  4. यदि आपको इसकी आवश्यकता नहीं है तो यह अक्षम्य है, इसे डिस्कनेक्ट करें, वापस सामान्य में बदलें, आदि
  5. पुरानी मशीन स्नैपशॉट हटाएं (पहले देखें)
  6. लौकिक परीक्षण मशीन को हटा दें
  7. वर्चुअल डिस्क को डिस्क पर वापस कॉपी करें
  8. क्लोन डिस्क को संलग्न करें

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

स्नोफॉट्स के पेड़ों के साथ काम करने के लिए, सभी DELETE पर सोचते हैं कि बाकी नोड्स को हटाए बिना एक नोड को हटा दिया जाए (केवल उस स्थिति को ढीला कर दिया जाए, लेकिन बाकी नहीं, कोई माता-पिता और कोई बच्चा नहीं होगा, डेटा को पहले उप में विलय कर दिया जाएगा। स्तर childs, इतनी धीमी प्रक्रिया) और RESTORE पर सभी उप स्तरों पर अपने सभी childs को नष्ट करने के रूप में (सभी राज्यों को खोने के बाद जो आप पुनर्स्थापित करते हैं, यह केवल फ़ाइलों को हटा देता है, इसलिए वास्तव में तेज़ प्रक्रिया, बस सेकंड)।

अर्थात्!

पीडी: VBOX ने दो ऑपरेशनों को कितना भयानक नाम दिया (डिलीट सिर्फ एक नोड = DELETE, सभी उप स्तरों पर सभी बच्चे नोड हटाएं = RESTORE)


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