ESXi मेहमानों पर डिस्क हटना काम नहीं करता है


11

सबको नमस्कार! StackOverflow नेटवर्क पर मेरी पहली पोस्ट :)

हम कुछ ESXi 5.0 / vCenter बुनियादी ढांचे को चलाने के लिए मुख्य रूप से Debian 6 / amd64 अतिथि सिस्टम को ext3 विभाजन के साथ होस्ट कर रहे हैं और open-vm-toolsस्रोत से प्रति debian बग 471784 संकलित किया गया है ।

एक मुद्दा है कि इंटरनेट के चारों ओर देखा जा रहा है, लेकिन एक निर्णायक जवाब के बिना कहीं भी दिया जा रहा है।

जब बिना किसी स्नैपशॉट, माता-पिता, क्लोन के साथ स्वतंत्र-निरंतर मोड में एक पतली-प्रावधानित डिस्क को सिकोड़ने की कोशिश की जाती है, तो मुझे निम्नलिखित त्रुटि मिलती है:

root@linux64:~# vmware-toolbox-cmd disk list
Shrink disk is disabled for this virtual machine.

Shrinking is disabled for linked clones, parents of linked clones,
pre-allocated disks, snapshots, or due to other factors.
See the User's manual for more information.

(वैसे, क्या "अन्य कारकों" कर रहे हैं, और श्वेत पत्र और तकनीकी मैनुअल के टन की जो है उपयोगकर्ता की पुस्तिका? :)

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


और जवाब है: ESX / ESXi (संस्करण 5 के रूप में) के तहत कोई सिकुड़ नहीं।

प्रलेखन पढ़ता है:

निम्नलिखित परिस्थितियों में महत्वपूर्ण सिकुड़न डिस्क की अनुमति नहीं है:

  1. वर्चुअल मशीन को ESX / ESXi सर्वर पर होस्ट किया जाता है। ESX / ESXi सर्वर वर्चुअल डिस्क के आकार को तभी कम कर सकता है जब कोई वर्चुअल मशीन निर्यात की जाती है। ईएसएक्स / ईएसएक्सआई सर्वर पर वर्चुअल डिस्क द्वारा कब्जा किया गया स्थान, हालांकि, बदलता नहीं है।

  2. वर्चुअल मशीन में मैक गेस्ट ऑपरेटिंग सिस्टम है।

  3. आप पूर्व आबंटित जब आप इसे बनाया आभासी डिस्क के लिए सभी डिस्क स्थान।

  4. वर्चुअल मशीन में एक स्नैपशॉट होता है ।

  5. वर्चुअल मशीन एक लिंक्ड क्लोन या लिंक्ड क्लोन का जनक है।

  6. वर्चुअल डिस्क नॉनस्पैरेन्सेन्ट मोड में एक स्वतंत्र डिस्क है।

  7. फाइल सिस्टम एक जर्नलिंग फाइल सिस्टम है , जैसे कि ext4, xfs या jfs फाइल सिस्टम।

कोई आश्चर्य नहीं कि VMWare वर्कस्टेशन में सिकुड़ने का एक विकल्प है, लेकिन एक ESXi या vantenter उदाहरण से जुड़े vSphere क्लाइंट में नहीं।


2
क्या आप अलग-थलग का मान दिखा सकते हैं ।ools.diskShrink.disable कुंजी जो vmx फाइल पर पाई जा सकती है?
cikuraku

1
यह वहाँ नहीं था। आइसोलेशन जोड़ना। Ts.s.siskShrink.disable = "false" कुछ भी नहीं बदला।
नेकोजिरुसो

जवाबों:


3

http://www.vmware.com/pdf/vmware-tools-cli.pdf पृष्ठ 13:

निम्नलिखित परिस्थितियों में सिकुड़ने की अनुमति नहीं है:

वर्चुअल मशीन को ESX / ESXi सर्वर पर होस्ट किया जाता है। ESX / ESXi सर्वर वर्चुअल डिस्क के आकार को तभी कम कर सकता है जब कोई वर्चुअल मशीन निर्यात की जाती है। ईएसएक्स / ईएसएक्सआई सर्वर पर वर्चुअल डिस्क द्वारा कब्जा किया गया स्थान, हालांकि, बदलता नहीं है।


दु: खद लेकिन सच ...
नेकोजीरुएस

18

दरअसल, ESXi पर VM को सिकोड़ने का एक तरीका है, हालांकि आपको इसके लिए VM को बंद करना होगा। ऐसे:

  1. वीएम के अंदर शून्य सभी अप्रयुक्त स्थान:

    dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero

  2. अन्य माउंट पॉइंट्स, स्वैप विभाजन आदि के साथ भी ऐसा ही करें।

  3. VM को बंद करें।

  4. SSH से ESXi, और यह आदेश जारी करें:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

यह कुछ समय लगेगा ... vmkfstools आपके VMDK के अंदर "छिद्र छेद" करता है, उदाहरण के लिए, सभी ब्लॉक जो शून्य से भरे हुए हैं, प्रभावी ढंग से आपके VMDK को सिकोड़ते हैं।


6
विंडोज के लिए, आप की एक प्रति प्राप्त कर सकते हैं वर्चुअल सर्वर 2005 , निकालने Precompact.iso इसे से फ़ाइल, यह एक Procompact.exe कार्यक्रम Windows में सभी अप्रयुक्त डिस्क गति शून्य होगा कि शामिल हैं।
क्रिस एस

जब वीएम एक एनएफएस स्टोरेज पर हो तो vmkfstools काम नहीं कर रहा है।
स्वेन 31415

0

VSphere ESXi में VMDK को सिकोड़ने का एकमात्र तरीका निर्यात करना या किसी अन्य डेटास्टोर में vMotion का भंडारण / माइग्रेट करना होगा। मैं लाइव सर्वर के साथ बहुत कुछ करता हूं जो माइग्रेशन को संभाल सकता है (एसक्यूएल या एक्सचेंज नहीं)। पिछले सर्वर व्यवस्थापक ने सभी वीएम को थिक प्रोविज़नड डिस्क के साथ बनाया। मैं VMs को एक डेटास्टोर से दूसरे में माइग्रेट करता हूं और VMDK को पतले-प्रोविज़न में बदलता है।

यदि सर्वर ऑफ़लाइन है, तो आप vmkfstools भी कर सकते हैं।


-1

ESXi पर सिकुड़ डिस्क संभव है।

  1. बड़ी फ़ाइल ढूंढें और उन्हें हटा दें।

    find / -type f -size +50M

  2. डीफ़्रैग्मेन्ट (किसी भी चीज़ को हटाने / हटाने की आवश्यकता नहीं)। किसी भी त्रुटि को अनदेखा करें। कुछ फाइलें जैसे कि सीमलिंक और डिवाइस फाइलें डीफ़्रैग्मेन्ट नहीं हो सकती हैं।

    sudo e4defrag /

  3. सभी अप्रयुक्त स्थान को शून्य से भरें ताकि VMware जानता है कि यह वास्तव में अप्रयुक्त है:

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  4. हटना ऑपरेशन चलाएँ: यदि 4 विफल रहता है, तो 5 पर आगे बढ़ें।

    sudo vmware-toolbox-cmd disk shrinkonly

  5. कोशिश विकल्प के साथ लिनक्स सिस्टम को रिबूट करें और विभाजन तालिका को gparted के साथ संपादित करें। रूट फ़ाइल सिस्टम को सिकोड़ें और रूट विभाजन के पास स्वैप विभाजन को हटाएं और स्थानांतरित करें।

  6. SSH से ESXi, और यह आदेश जारी करें:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. हमें * .vmdk फाइल को एडिट करना होगा। RW अक्षरों के बाद, VMware वर्चुअल डिस्क (VMDK) के आकार को परिभाषित करता है

    * 40 जीबी = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. नए आकार को प्रतिबिंबित करने के लिए इसे किसी अन्य डेटास्टोर में माइग्रेट करें।

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