Skip to content

टूटी हुई वर्चुअल मशीन स्नैपशॉट श्रृंखला (.VMDK / .VHDX / .QCOW2) और डिस्क बचाव

आपातकालीन नंबर देश के अनुसार भिन्न-भिन्न होते हैं. यह पृष्ठ 911 का उपयोग करता है, जो संयुक्त राज्य अमेरिका और कनाडा के लिए नंबर है। कई अन्य देश 112, 999, या किसी अन्य नंबर का उपयोग करते हैं। अपने देश का नंबर ढूंढें.

जब VMware ESXi / वर्कस्टेशन, Microsoft हाइपर-V, Proxmox VE / QEMU-KVM, या Oracle VirtualBox पर एक प्रोडक्शन वर्चुअल मशीन (VM) अचानक बैकअप कार्य विफल होने के बाद चालू होने से इनकार कर देती है, तो डेटास्टोर डिस्क स्थान से बाहर हो जाता है (0 bytes free), या कोई व्यवस्थापक किसी स्नैपशॉट फ़ाइल को छूता है, तो एक घबराया हुआ क्लिक महीनों या वर्षों के लाइव व्यावसायिक डेटा को मिटा सकता है। वर्चुअल मशीन स्नैपशॉट पूर्ण स्वतंत्र बैकअप नहीं हैं; वे नाजुक हैं कॉपी-ऑन-राइट (CoW) डेल्टा भिन्न श्रृंखलाएँ (*-000001-delta.vmdk, *.avhdx, या बैकिंग-फ़ाइल .qcow2 ओवरले) जहां स्नैपशॉट लेने के बाद से लिखा गया प्रत्येक ब्लॉक विशेष रूप से चाइल्ड डेल्टा फ़ाइलों के अंदर रहता है, जबकि मूल बेस डिस्क अतीत में जमी रहती है।

यदि आपको त्रुटियाँ दिखाई देती हैं जैसे "The parent virtual disk has been modified since the child was created (Parent CID does not match)" वीएमवेयर में, "Cannot boot: The chain of virtual hard disks is broken" हाइपर-V में, या "Could not open backing file: L1/L2 table corrupted" QEMU/Proxmox में, VM को सीधे बेस डिस्क पर पुनः इंगित करना (flat.vmdk या आधार .vhdx) और इसे बूट करना घातक है। ऐसा करने से सर्वर वैसे ही बूट हो जाता है जैसे वह 6 महीने पहले अस्तित्व में था जब पहला स्नैपशॉट बनाया गया था, क्रिप्टोग्राफ़िक पैरेंट-चाइल्ड GUID/CID लिंक को तुरंत अमान्य कर दिया गया और उस तारीख के बाद से प्रत्येक डेल्टा स्नैपशॉट को अनाथ और अविभाज्य बना दिया गया।

यह मार्गदर्शिका ब्रॉडकॉम नॉलेज बेस आर्टिकल्स (KB 1007969/316578 और KB 1002511), Microsoft हाइपर-V द्वारा VMware पर आधारित चरण-दर-चरण गैर-विनाशकारी स्नैपशॉट श्रृंखला पुनर्निर्माण, डिस्क्रिप्टर-फ़ाइल हेडर मरम्मत और आउट-ऑफ-बैंड अतिथि फ़ाइल निष्कर्षण प्रोटोकॉल प्रदान करती है। Merge-VHD और Set-VHD इंजीनियरिंग विशिष्टताएँ, क्यूईएमयू qemu-img और libguestfs (guestmount) फोरेंसिक मानक, और एनआईएसटी विशेष प्रकाशन 800-86।

अभी ऐसा करो

यदि कोई वर्चुअल मशीन प्रारंभ करने से इनकार करती है या टूटी हुई स्नैपशॉट श्रृंखला/दूषित वर्चुअल डिस्क त्रुटि फेंकती है:

  1. बेस डिस्क से सीधे बूट करने के लिए वीएम सेटिंग्स को कभी भी संपादित न करें (Server.vmdk या Server.vhdx) जब डेल्टा स्नैपशॉट (-000001.vmdk या .avhdx(CID) VMware में या लिंकेज GUID/टाइमस्टैम्प हाइपर-V में। वह एकल बूट चाइल्ड स्नैपशॉट की पूरी श्रृंखला को तोड़ देता है जो बेस डिस्क के बिट-फॉर-बिट फ़्रीज़ रहने पर निर्भर करता है। यदि आपके सर्वर रूम में सक्रिय आग, कूलिंग विफलता, या शारीरिक खतरा महसूस हो रहा है, तो खाली करें और अपने स्थानीय आपातकालीन नंबर पर कॉल करें (संयुक्त राज्य अमेरिका और कनाडा में 911, पूरे यूरोपीय संघ में 112, यूनाइटेड किंगडम में 999) या जांच करें आपातकालीन नंबर.
  2. **कभी न हटाएं .avhdx, -delta.vmdk, या -sesparse.vmdk विंडोज़ एक्सप्लोरर या ESXi डेटास्टोर ब्राउज़र में फ़ाइलें "डिस्क स्थान खाली करने के लिए।" ** सामान्य अस्थायी फ़ाइलों के विपरीत, .avhdx और -delta.vmdk फ़ाइलें आपकी वर्तमान लाइव हार्ड ड्राइव हैं। यदि कोई स्नैपशॉट 8 महीने पहले अटके हुए वीईएम/कॉमवॉल्ट बैकअप कार्य द्वारा बनाया गया था और चालू छोड़ दिया गया था, तो पिछले 8 महीनों के दौरान बनाए गए प्रत्येक डेटाबेस लेनदेन, चालान और फ़ाइल का 100 प्रतिशत उनमें संग्रहीत है .avhdx या -delta.vmdk फ़ाइलें. उन्हें हटाने से स्नैपशॉट शुरू होने के बाद से बनाया गया सारा डेटा हट जाता है।
  3. **सभी को कॉपी या क्लोन करें .vmdk, .vhdx/.avhdx, या .qcow2 किसी भी मर्ज, कमिट, या रिपेयर कमांड को चलाने से पहले बाहरी / सेकेंडरी स्टोरेज वॉल्यूम में फ़ाइलें। ** स्नैपशॉट श्रृंखला को मर्ज करने से सभी डेल्टा ब्लॉक मूल डिस्क में इन-प्लेस में पीछे की ओर लिखे जाते हैं। यदि खराब डिस्क सेक्टर या डेटास्टोर पूर्ण त्रुटि के कारण मर्ज आधे रास्ते में विफल हो जाता है, तो पैरेंट और चाइल्ड डिस्क दोनों दूषित हो जाती हैं, जब तक कि आपने पहले एक कच्ची फ़ाइल प्रतिलिपि नहीं ली हो।
  4. **यदि हाइपरवाइज़र विफल हो गया क्योंकि होस्ट डेटास्टोर/वॉल्यूम 100% पूर्ण हो गया (No space left on device), कभी भी "स्नैपशॉट को हटाएं / समेकित करें" का प्रयास न करें जब तक कि आप बड़े डेटास्टोर में खाली स्थान या क्लोन न जोड़ दें। ** मल्टी-स्नैपशॉट श्रृंखला को समेकित करने के लिए सबसे बड़े डेल्टा डिस्क के आकार के बराबर अस्थायी स्क्रैच स्थान की आवश्यकता होती है। 99% पूर्ण डेटास्टोर पर समेकित करने का प्रयास करने से हाइपरवाइज़र मध्य-प्रतिबद्धता में क्रैश हो जाएगा।
  5. **सटीक माता-पिता का मानचित्र बनाएं -> केवल पढ़ने योग्य निरीक्षण आदेशों का उपयोग करके बाल निर्भरता श्रृंखला (vmkfstools -e, Get-VHD, या qemu-img info --backing-chain) एक बाइट को छूने से पहले। ** प्रत्येक स्नैपशॉट फ़ाइल हेडर स्पष्ट रूप से सटीक पैरेंट फ़ाइल नाम और पैरेंट क्रिप्टोग्राफ़िक आईडी का नाम देता है, जो इसके ठीक ऊपर स्थित होने की अपेक्षा करता है।
flowchart TD
    A["VM ने बूट करने से इंकार कर दिया: टूटी हुई स्नैपशॉट श्रृंखला, मूल CID बेमेल, या भ्रष्ट VMDK/VHDX/QCOW2"] --> B["रोकें: बेस डिस्क को सीधे बूट न करें, और किसी भी -delta.vmdk या .avhdx फ़ाइलों को न हटाएं"]
    B --> C["चरण 1: होस्ट डेटास्टोर / वॉल्यूम फ्री स्पेस की जाँच करें (`df -h` / `esxcli स्टोरेज फाइलसिस्टम सूची`)"]
    C --> D["चरण 2: संशोधित करने से पहले सभी आधार और स्नैपशॉट फ़ाइलों को द्वितीयक बैकअप NAS/SAN/USB ड्राइव पर कॉपी करें"]
    D --> E{"कौन सा हाइपरवाइज़र/वर्चुअल डिस्क प्रारूप प्रभावित है?"}
    E -->|"1. VMware ESXi / वर्कस्टेशन (.vmdk / -flat.vmdk / -delta.vmdk / -sesparse.vmdk)"| F["टेक्स्ट डिस्क्रिप्टर का निरीक्षण करें (`cat *.vmdk`) और श्रृंखला की जाँच करें (`vmkfstools -e Server-000002.vmdk`)"]
    F --> G{"VMware VMDK दोष क्या है?"}
    G -->|"मूल सीआईडी बेमेल (`parentCID .= मूल की सीआईडी`)"| H["चाइल्ड टेक्स्ट डिस्क्रिप्टर `.vmdk` को संपादित करें ताकि `parentCID` माता-पिता के `CID` से मेल खाए, या सक्रिय लीफ डिस्क को एक नए समेकित VMDK (`vmkfstools -i`) में क्लोन करें"]
    G -->|"गुम 1-केबी टेक्स्ट डिस्क्रिप्टर `.vmdk` (केवल विशाल `-flat.vmdk` मौजूद है)"| I["सटीक बाइट आकार / 512 सेक्टर की गणना करें और सादे-पाठ `.vmdk` डिस्क्रिप्टर को `vmkfstools -c` के साथ फिर से बनाएं"]
    E -->|"2. माइक्रोसॉफ्ट हाइपर-V (.vhdx और .avhdx श्रृंखला)"| J["नवीनतम `.avhdx` से ऊपर की ओर श्रृंखला का निरीक्षण करें: `Get-VHD -Path *.avhdx | पथ, पेरेंटपाथ` का चयन करें"]
    J --> K["टूटे हुए पैरेंट पॉइंटर को दोबारा लिंक करें (`सेट-वीएचडी -पाथ चाइल्ड.एवीएचडीएक्स -पेरेंटपाथ पेरेंट.वीएचडीएक्स -इग्नोरआईडीमिसमैच`) या ऑफलाइन मर्ज (`मर्ज-वीएचडी`)"]
    E -->|"3. प्रॉक्समॉक्स/केवीएम/क्यूईएमयू (.qcow2) या वर्चुअलबॉक्स (.vdi)"| L["`qemu-img info --backing-चेन` जांचें; रीफ़काउंट/L2 टेबल की मरम्मत करें (`qemu-img check -r all`) या रीबेस (`qemu-img rebase -u`)"]
    H --> M["आउट-ऑफ़-बैंड फ़ाइल रेस्क्यू फ़ॉलबैक: `गेस्टमाउंट --ro` या `7-ज़िप` / `UFS एक्सप्लोरर` के माध्यम से किसी भी चेन को सीधे रीड-ओनली मोड में माउंट करें"]
    I --> M
    K --> M
    L --> M

यह समझना कि वर्चुअल मशीन स्नैपशॉट चेन वास्तव में कैसे काम करती हैं

चाहे आप VMware ESXi, Microsoft हाइपर-V, Proxmox/KVM, या वर्चुअलबॉक्स चलाते हों, प्रत्येक हाइपरवाइज़र सटीक समान मौलिक आर्किटेक्चर का उपयोग करके स्नैपशॉट लागू करता है: रीड-ओनली पैरेंट डिस्क की एक यूनिडायरेक्शनल लिंक्ड सूची और एक रीड-राइट चाइल्ड लीफ डेल्टा डिस्क।

[Base Disk: Server.vmdk / Server.vhdx]  <-- Frozen Read-Only at Snapshot 1 (e.g., Jan 1)
         ^
         | (Points to Parent Path + Parent CID/GUID: 1234abcd)
[Snapshot 1: Server-000001.vmdk / Server_A.avhdx]  <-- Frozen Read-Only at Snapshot 2 (e.g., June 1)
         ^
         | (Points to Parent Path + Parent CID/GUID: 5678ef01)
[Snapshot 2 (Active Leaf): Server-000002.vmdk / Server_B.avhdx]  <-- Active Read/Write Today (Oct 31)
  • जब वीएम आज एक नया ब्लॉक लिखना चाहता है, तो वह केवल निचली पत्ती फ़ाइल पर लिखता है (Snapshot 2).
  • जब वीएम आज किसी ब्लॉक को पढ़ना चाहता है, तो हाइपरवाइज़र जाँच करता है Snapshot 2 प्रथम. यदि उस ब्लॉक को 1 जून से संशोधित किया गया था, तो यह इसे पढ़ता है Snapshot 2. यदि नहीं, तो यह श्रृंखला को देखता है Snapshot 1. यदि इसे वहां भी संशोधित नहीं किया गया था, तो यह मूल ब्लॉक को पढ़ता है Base Disk.
  • चेन क्यों टूटती है: प्रत्येक बच्चे का स्नैपशॉट अपने हेडर में दो सख्त पॉइंटर्स संग्रहीत करता है: (1) उसके तत्काल मूल का फ़ाइल पथ, और (2) एक 32-बिट सामग्री आईडी (CID VMware में) या 128-बिट लिंकेज GUID (ParentUniqueId हाइपर-V में) जो हर बार लिखने के लिए पैरेंट डिस्क खोले जाने पर पुनर्जीवित हो जाता है। यदि कोई किसी फ़ाइल को स्थानांतरित करता है, किसी फ़ोल्डर का नाम बदलता है, या संक्षेप में पैरेंट डिस्क को रीड-राइट मोड में माउंट करता है, तो पैरेंट की CID / GUID परिवर्तन, और हाइपरवाइज़र तुरंत साइलेंट ब्लॉक भ्रष्टाचार को रोकने के लिए चाइल्ड स्नैपशॉट को माउंट करने से इनकार कर देता है।
हाइपरवाइजर प्लेटफार्म बेस डिस्क फ़ाइलें स्नैपशॉट/डेल्टा फ़ाइलें श्रृंखला निरीक्षण सीएलआई उपकरण सुरक्षित समेकन/विलय सीएलआई उपकरण
VMware ESXi (VMFS-5 / VMFS-6) और वर्कस्टेशन VM.vmdk (500-बाइट सादा-पाठ विवरणक) + VM-flat.vmdk (कच्चा बाइनरी डिस्क डेटा) VM-000001.vmdk (पाठ वर्णनकर्ता) + VM-000001-sesparse.vmdk (वीएमएफएस-6) या VM-000001-delta.vmdk (VMFS-5) vmkfstools -e VM-000002.vmdk और cat VM*.vmdk vmkfstools -i VM-000002.vmdk /vmfs/volumes/NewDS/Merged.vmdk (गैर-विनाशकारी आउट-ऑफ-प्लेस क्लोन/मर्ज)
माइक्रोसॉफ्ट हाइपर-V (विंडोज सर्वर) VM.vhdx (या विरासत .vhd) VM_<GUID>.avhdx (या .avhd) पावरशेल: गेट-वीएचडी -पाथ *.एवीएचडीएक्स \ | पथ, पेरेंटपाथ, वीएचडीटाइप चुनें पॉवरशेल: Set-VHD -Path child.avhdx -ParentPath parent.vhdx और Merge-VHD -Path child.avhdx -DestinationPath parent.vhdx
प्रॉक्समॉक्स वीई / क्यूईएमयू / केवीएम (लिनक्स) vm-100-disk-0.qcow2 (या कच्चा एलवीएम/जेडएफएस वॉल्यूम) बाहरी आवरण .qcow2 बैकिंग फ़ाइल हेडर (या आंतरिक QCOW2 स्नैपशॉट तालिका) के साथ qemu-img info --backing-chain top_overlay.qcow2 qemu-img convert -O qcow2 top_overlay.qcow2 flattened_rescue.qcow2 (सबसे सुरक्षित जगह से बाहर फ़्लैटन) या qemu-img commit
ओरेकल वर्चुअलबॉक्स Disk.vdi (वीएम फ़ोल्डर के अंदर) {UUID}.vdi अंदर Snapshots/ सबफ़ोल्डर + .vbox एक्सएमएल मीडिया रजिस्ट्री VBoxManage showmediuminfo disk "{UUID}.vdi" VBoxManage clonemedium disk "{Newest_Snapshot_UUID}.vdi" Flattened_Rescue.vdi

ट्रैक 1: वीएमवेयर ईएसएक्सआई और वर्कस्टेशन को बचाना .vmdk स्नैपशॉट चेन

VMware ESXi में, एक वर्चुअल डिस्क में वास्तव में बेस डिस्क के लिए दो अलग-अलग फ़ाइलें और प्रत्येक स्नैपशॉट के लिए दो अलग-अलग फ़ाइलें होती हैं: 1. एक छोटी (-500-बाइट) सादा-पाठ डिस्क्रिप्टर फ़ाइल (Server.vmdk और Server-000001.vmdk) जो धारण करता है CID, parentCID, डिस्क ज्यामिति, और बाइनरी सीमा का सटीक फ़ाइल नाम। (नोट: स्टॉक ESXi डेटास्टोर ब्राउज़र वेब GUI युग्मित को छुपाता है -flat.vmdk और -sesparse.vmdk बाइनरी फ़ाइलें और केवल एक मर्ज किया गया आइकन दिखाता है, आपको सच्ची फ़ाइलें देखने के लिए ESXi होस्ट पर SSH टर्मिनल सत्र का उपयोग करना होगा)। 2. एक मल्टी-गीगाबाइट बाइनरी डेटा एक्सटेंशन फ़ाइल (Server-flat.vmdk बेस डिस्क के लिए, और Server-000001-sesparse.vmdk या Server-000001-delta.vmdk प्रत्येक स्नैपशॉट के लिए).

परिदृश्य 1ए: फिक्सिंग "The parent virtual disk has been modified since the child was created (Parent CID mismatch)"

  1. ESXi होस्ट में SSH और VM की डेटास्टोर निर्देशिका पर नेविगेट करें:
    cd /vmfs/volumes/<Datastore_Name>/<VM_Folder_Name>/
    ls -la *.vmdk
    
  2. प्रिंट करें CID, parentCID, और parentFileNameHint सभी टेक्स्ट डिस्क्रिप्टर में .vmdk फ़ाइलें एक साथ: (महत्वपूर्ण: केवल चलाएँ cat या grep छोटे 500-बाइट टेक्स्ट डिस्क्रिप्टर पर .vmdk फ़ाइलें, मल्टी-गीगाबाइट पर नहीं -flat.vmdk या -sesparse.vmdk फ़ाइलें).
    grep -E "CID|parentFileNameHint|Extent description" -A 2 Server.vmdk Server-00000*.vmdk
    
  3. ** तुलना करें CID प्रत्येक माता-पिता के विरुद्ध parentCID इसके तत्काल बच्चे का:** आउटपुट देखें:
    Server.vmdk:           CID=1a2b3c4d
                           parentCID=ffffffff   (ffffffff means this is the root Base Disk)
    
    Server-000001.vmdk:    CID=99887766
                           parentCID=55443322   <-- ERROR: Should equal Server.vmdk's CID (1a2b3c4d)
                           parentFileNameHint="Server.vmdk"
    
    Server-000002.vmdk:    CID=aabbccdd
                           parentCID=99887766   <-- OK: Matches Server-000001.vmdk's CID (99887766)
                           parentFileNameHint="Server-000001.vmdk"
    
  4. टूटे हुए को ठीक करें parentCID चाइल्ड डिस्क्रिप्टर में और सत्यापित करें vmkfstools -e:
  5. सबसे पहले, टेक्स्ट डिस्क्रिप्टर फ़ाइलों का बैकअप लें (cp Server-000001.vmdk Server-000001.vmdk.bak).
  6. खुला Server-000001.vmdk में vi और बदलो parentCID=55443322 को parentCID=1a2b3c4d (मिलान Server.vmdkका वर्तमान CID).
  7. नवीनतम (उच्चतम क्रमांकित) स्नैपशॉट का उपयोग करके श्रृंखला की अखंडता का परीक्षण करें vmkfstools -e:
    vmkfstools -e Server-000002.vmdk
    
  8. यदि श्रृंखला बरकरार है, तो ESXi आउटपुट: Disk chain is consistent.
  9. गैर-विनाशकारी समेकन (vmkfstools -i जगह से बाहर क्लोन):
  10. यदि Server.vmdk आपके द्वारा इसे ठीक करने से पहले थोड़ा संशोधित किया गया था parentCID, अपनी एकमात्र प्रति को उसी स्थान पर समेकित न करें। इसके बजाय, बिंदु vmkfstools -i नवीनतम लीफ स्नैपशॉट पर (Server-000002.vmdk) और संपूर्ण शृंखला को एक बिल्कुल नए, एकल चपटे VMDK में क्लोन करके मुक्त स्थान वाले डेटास्टोर पर क्लोन करें:
    vmkfstools -i Server-000002.vmdk /vmfs/volumes/<Target_Datastore>/Server_Rescue/Server_Merged.vmdk -d thin
    
  11. vmkfstools -i से प्रत्येक ब्लॉक को पढ़ता है Server-000002.vmdk नीचे के माध्यम से Server-000001.vmdk और Server-flat.vmdk सख्त रीड-ओनली मोड में और साफ, स्नैपशॉट-मुक्त लिखता है Server_Merged.vmdk आपकी मूल फ़ाइलों को छुए बिना.

परिदृश्य 1बी: गुम या हटाए गए 500-बाइट को पुनः बनाना .vmdk टेक्स्ट डिस्क्रिप्टर कब Server-flat.vmdk अभी भी बरकरार है

कभी-कभी कोई व्यवस्थापक या टूटी हुई स्क्रिप्ट हटा देता है Server.vmdk (या यह दूषित हो जाता है 0 bytes), जिसके कारण डेटास्टोर ब्राउज़र ने वर्चुअल डिस्क को दिखाना बंद कर दिया, भले ही 500-गीगाबाइट का विशाल Server-flat.vmdk आपके 100 प्रतिशत वास्तविक डेटा वाली फ़ाइल अभी भी वहीं SSH में मौजूद है (ls -la *-flat.vmdk).

आप लुप्त सादे पाठ को पुनः बना सकते हैं Server.vmdk डेटा का एक भी बाइट खोए बिना 60 सेकंड में डिस्क्रिप्टर फ़ाइल Server-flat.vmdk:

# 1. Check the exact byte size of your existing Server-flat.vmdk:
ls -l Server-flat.vmdk
# Example output: -rw------- 1 root root 107374182400 Oct 31 12:00 Server-flat.vmdk  (Exactly 107,374,182,400 bytes)

# 2. Create a temporary dummy VMDK of that EXACT byte size in /tmp or the datastore:
vmkfstools -c 107374182400 -d thin temp_dummy.vmdk

# 3. Delete the dummy binary file (temp_dummy-flat.vmdk) and rename the 500-byte descriptor to Server.vmdk:
rm -f temp_dummy-flat.vmdk
mv temp_dummy.vmdk Server.vmdk

# 4. Edit Server.vmdk in 'vi' and change the filename inside quotes from "temp_dummy-flat.vmdk" to "Server-flat.vmdk":
sed -i 's/temp_dummy-flat.vmdk/Server-flat.vmdk/g' Server.vmdk
# (Also delete the line 'ddb.thinProvisioned = "1"' if the original disk was thick-provisioned)

परिदृश्य 1सी: अनलॉक करना .vmdk हैंग ESXi होस्ट या क्रैश बैकअप प्रॉक्सी द्वारा लॉक किया गया (Cannot open the disk: Failed to lock the file)

यदि कोई वीएम चालू करने से इंकार कर देता है Failed to lock the file या Cannot open disk: Resource busy, क्लस्टर में एक अन्य ESXi होस्ट (या एक Veeam/बैकअप HotAdd उपकरण जो बैकअप के दौरान क्रैश हो गया) अभी भी SCSI/VMFS फ़ाइल लॉक को चालू रखे हुए है -flat.vmdk या -sesparse.vmdk: 1. जांचें कि क्या दुर्घटनाग्रस्त बैकअप प्रॉक्सी वीएम में अभी भी आपका उत्पादन वीएम है .vmdk इसके वर्चुअल एससीएसआई नियंत्रक से जुड़ा हुआ: अपने वीईएएम/कॉमवॉल्ट प्रॉक्सी वीएम की सेटिंग्स संपादित करें और किसी भी पुरानी संलग्न उत्पादन डिस्क को हटा दें ("वर्चुअल मशीन से हटाएं" चुनें, कभी भी "डेटास्टोर से फ़ाइलें हटाएं")। 2. पता लगाएं कि कौन सा ESXi होस्ट मैक पता और विश्व प्रक्रिया VMFS लॉक रखती है:

vmfsfilelockinfo -p /vmfs/volumes/<Datastore>/<VM_Folder>/Server-flat.vmdk
विशिष्ट ESXi होस्ट में SSH लॉक पकड़े हुए, हैंग का पता लगाएं vmx विश्व आईडी (esxcli vm process list), और त्रिशंकु दुनिया को समाप्त करें (esxcli vm process kill --type=force --world-id=<WorldID>).

ट्रैक 2: माइक्रोसॉफ्ट हाइपर-वी को बचाना .vhdx और .avhdx स्नैपशॉट चेन

माइक्रोसॉफ्ट हाइपर-वी में, प्रत्येक चेकपॉइंट (स्नैपशॉट) एक्सटेंशन के साथ एक भिन्न वर्चुअल हार्ड डिस्क बनाता है .avhdx (या .avhd पुराने VHD प्रारूप पर) जैसे एक लंबा GUID फ़ाइल नाम निर्दिष्ट किया गया है ProdSQL_A1B2C3D4-E5F6-7890-ABCD-1234567890AB.avhdx.

चरण 1: सटीक कालानुक्रमिक मानचित्र बनाएं .avhdx पॉवरशेल में पेरेंट-चाइल्ड ट्री

हाइपर-V प्रबंधक में किसी भी चीज़ को मर्ज करने या पुनः लिंक करने से पहले, हाइपर-V होस्ट पर एक एलिवेटेड एडमिनिस्ट्रेटर पॉवरशेल विंडो खोलें, उस फ़ोल्डर पर जाएँ जिसमें आपका .vhdx और .avhdx फ़ाइलें, और सटीक पैरेंट-चाइल्ड श्रृंखला को नवीनतम से सबसे पुराने तक प्रदर्शित करने के लिए इस वन-लाइनर को चलाएँ:

# Inspect every .vhdx and .avhdx in the directory, sorted by LastWriteTime:
Get-ChildItem -Filter "*.*vhd*" | ForEach-Object {
    Get-VHD -Path $_.FullName -ErrorAction SilentlyContinue |
    Select-Object Path, ParentPath, VhdType, FileSize, Size
} | Format-List

देखो Path और ParentPath खेत. वे सटीक श्रृंखला क्रम प्रकट करेंगे: - ProdSQL.vhdx -> ParentPath: (blank) (रूट बेस डिस्क, सबसे पुराना) - ProdSQL_1111.avhdx -> ParentPath: D:\VMs\ProdSQL.vhdx (बच्चा 1) - ProdSQL_2222.avhdx -> ParentPath: D:\VMs\ProdSQL_1111.avhdx (बच्चा 2) - ProdSQL_3333.avhdx -> ParentPath: D:\VMs\ProdSQL_2222.avhdx (नवीनतम एक्टिव लीफ डिस्क)

चरण 2: ठीक करना "The chain of virtual hard disks is broken" या "Differencing disk parent ID mismatch" (Set-VHD -IgnoreIdMismatch)

यदि कोई VM फ़ोल्डर को यहां से स्थानांतरित कर दे तो क्या होगा? C:\VMs\ को E:\VMs\, या गलती से बूट हो गया ProdSQL.vhdx 5 सेकंड के लिए, कारण ProdSQL_1111.avhdx इसमें असफल होना: The chain of virtual hard disks is broken. The system cannot locate the parent virtual hard disk for the differencing disk या There is a mismatch in the virtual disk identifiers?

आधिकारिक हाइपर-V पावरशेल सीएमडीलेट का उपयोग करें Set-VHDके साथ-IgnoreIdMismatch ध्वज (पहले फ़ाइलों का बैकअप लेने के बाद):

# Relink a child .avhdx to its parent .vhdx/.avhdx (adding -IgnoreIdMismatch if the parent timestamp/GUID shifted):
Set-VHD -Path "E:\VMs\ProdSQL_1111.avhdx" -ParentPath "E:\VMs\ProdSQL.vhdx" -IgnoreIdMismatch

चरण 3: किसी अनाथ को मैन्युअल रूप से विलय करना .avhdx नवीनतम से सबसे पुरानी तक की श्रृंखला (Merge-VHD)

जब एक बैकअप एजेंट 15 को अनाथ छोड़ देता है .avhdx आपके फ़ोल्डर में फ़ाइलें जो अब हाइपर- V मैनेजर GUI "चेकपॉइंट्स" ट्री के अंदर दिखाई नहीं देती हैं, VM बंद होने पर आपको उन्हें PowerShell में मैन्युअल रूप से मर्ज करना होगा।

Danger

हाइपर-V का लौह नियम .avhdx विलय: आपको हमेशा नवीनतम (सबसे छोटा पत्ता) से विलय करना होगा .avhdx अपने निकटतम माता-पिता में, अपने तरीके से चरण-दर-चरण पीछे की ओर श्रृंखला में केवल आधार तक काम करते हुए .vhdx रहता है. उदाहरण के लिए, एक श्रृंखला में Base.vhdx <- Child1.avhdx <- Child2.avhdx <- Child3_Newest.avhdx: 1. विलय Child3_Newest.avhdx -> में Child2.avhdx. 2. विलय Child2.avhdx -> में Child1.avhdx. 3. विलय Child1.avhdx -> में Base.vhdx. 4. VM सेटिंग्स को यहां इंगित करें Base.vhdx और बूट.

फ़ोल्डर की कार्यशील प्रतिलिपि पर ये सटीक PowerShell कमांड चलाएँ:

# Step 1: Merge Child 3 (Newest) into Child 2:
Merge-VHD -Path "E:\VMs\ProdSQL_3333.avhdx" -DestinationPath "E:\VMs\ProdSQL_2222.avhdx"

# Step 2: Merge Child 2 into Child 1:
Merge-VHD -Path "E:\VMs\ProdSQL_2222.avhdx" -DestinationPath "E:\VMs\ProdSQL_1111.avhdx"

# Step 3: Merge Child 1 into the Base .vhdx:
Merge-VHD -Path "E:\VMs\ProdSQL_1111.avhdx" -DestinationPath "E:\VMs\ProdSQL.vhdx"

ट्रैक 3: प्रॉक्समॉक्स वीई/क्यूईएमयू/केवीएम को बचाना .qcow2 और वर्चुअलबॉक्स .vdi जंजीरें

1. दूषित QCOW2 L1/L2 क्लस्टर और रीफकाउंट टेबल की जाँच और मरम्मत (qemu-img check)

जब Linux KVM या Proxmox होस्ट में बैटरी-समर्थित कैश के बिना अचानक पावर आउटेज हो जाता है, तो a .qcow2 वर्चुअल डिस्क अक्सर बूट होने में विफल रहती है qcow2: Marking image as corrupt: L2 table offset unaligned या Refcount block corrupted. 1. सबसे पहले कॉपी करें .qcow2 फ़ाइल (cp vm-100-disk-0.qcow2 vm-100-disk-0.qcow2.bak). 2. बैकिंग श्रृंखला और आंतरिक स्नैपशॉट सूची का ऑडिट करें:

qemu-img info --backing-chain vm-100-disk-0.qcow2
qemu-img snapshot -l vm-100-disk-0.qcow2
3. अपनी कामकाजी प्रतिलिपि पर लीक हुए क्लस्टर और दूषित रीकाउंट तालिकाओं की मरम्मत करें:
qemu-img check -r all vm-100-disk-0.qcow2

2. टूटे हुए QCOW2 बैकिंग फ़ाइल पथ को ठीक करना (qemu-img rebase -u)

यदि कोई बाहरी QCOW2 स्नैपशॉट (overlay.qcow2) खुलने में विफल रहता है क्योंकि इसकी मूल बैकिंग फ़ाइल (base.qcow2) को एक नई निर्देशिका या स्टोरेज पूल में ले जाया गया था, बैकिंग फ़ाइल पॉइंटर को असुरक्षित में अपडेट करें (-u, हेडर-ओनली) डेटा ब्लॉक को दोबारा लिखे बिना मोड:

qemu-img rebase -u -b /new/path/to/base.qcow2 -F qcow2 overlay.qcow2

3. एक नाजुक QCOW2 या VMDK या VHDX श्रृंखला को एक बिल्कुल नई स्टैंडअलोन छवि में समतल करना (qemu-img convert)

वर्चुअल मशीन बचाव में सबसे बहुमुखी उपकरणों में से एक है qemu-img convert (जो मूल रूप से पढ़ता है .qcow2, .vmdk, .vhdx, .vhd, और .vdi). जब आप इशारा करते हैं qemu-img convert एक वैध श्रृंखला के नवीनतम लीफ स्नैपशॉट पर, यह संपूर्ण पैरेंट-चाइल्ड पदानुक्रम को सख्त रीड-ओनली मोड में पढ़ता है और आपके बचाव भंडारण पर एक बिल्कुल नया, स्व-निहित, स्नैपशॉट-मुक्त वर्चुअल डिस्क लिखता है:

# Non-destructively flatten an entire QCOW2, VMDK, or VHDX chain into a single clean image:
qemu-img convert -p -O qcow2 top_snapshot_leaf.qcow2 /mnt/rescue_storage/flattened_clean.qcow2

ट्रैक 4: आउट-ऑफ़-बैंड फ़ाइल बचाव (वीएम अभी भी बूट नहीं होने पर फ़ाइलें निकालना)

क्या होगा यदि वर्चुअल डिस्क के अंदर अतिथि ऑपरेटिंग सिस्टम अनबूटेबल है, या श्रृंखला में एक मध्य स्नैपशॉट आंशिक रूप से क्षतिग्रस्त है और आपको SQL डेटाबेस को बाहर निकालने की आवश्यकता है (.mdf/.ldf), क्विकबुक फ़ाइलें, /var/lib/mysql, या अगले 30 मिनट के भीतर कंपनी के दस्तावेज़?

आपको वर्चुअल हार्ड ड्राइव के अंदर फ़ाइलों को निकालने के लिए वर्चुअल मशीन को बूट करने की आवश्यकता नहीं है। इन तीन गैर-विनाशकारी आउट-ऑफ-बैंड माउंटिंग टूल में से किसी एक का उपयोग करें:

विधि 1: कोई भी माउंट करें .vmdk, .vhdx, .qcow2, या .vdi लिनक्स पर रीड-ओनली मोड का उपयोग करके libguestfs (guestmount / qemu-nbd)

स्थापित करें libguestfs-tools (sudo apt install libguestfs-tools qemu-utils उबंटू/डेबियन/प्रॉक्समॉक्स पर) और नवीनतम लीफ स्नैपशॉट को सख्त रीड-ओनली मोड में माउंट करें (--ro):

# Option A: Using guestmount (Automatically detects internal guest LVM/partitions and mounts read-only):
sudo mkdir -p /mnt/vm_rescue
sudo guestmount -a /path/to/Newest_Leaf_Snapshot.vmdk -i --ro /mnt/vm_rescue
# (If guest OS partitions fail auto-inspection due to dirty NTFS journal, list partitions with 'virt-filesystems -a disk.vmdk -l'
# and mount the specific partition directly with '-m /dev/sda2 --ro -o norecover')

# Option B: Attaching the virtual disk chain as a Read-Only Network Block Device (/dev/nbd0):
sudo modprobe nbd max_part=16
sudo qemu-nbd --read-only --connect=/dev/nbd0 /path/to/Newest_Leaf_Snapshot.qcow2
sudo partprobe /dev/nbd0
lsblk /dev/nbd0
# Now mount /dev/nbd0p2 read-only (with -o ro,norecover for NTFS or -o ro,noload for ext4):
sudo mount -o ro,norecover /dev/nbd0p2 /mnt/vm_rescue

विधि 2: विंडोज़ का उपयोग करके त्वरित रीड-ओनली एक्सट्रैक्शन 7-Zip या Disk Management -> Attach VHD (Read-Only)

  • 7-ज़िप का उपयोग करना (काम करता है .vmdk, .vhdx, .vhd, .qcow2, और .vdi: स्टैंडअलोन या चपटा पर राइट-क्लिक करें .vmdk, .vhdx, या .qcow2 विंडोज़ पर फ़ाइल करें और 7-ज़िप -> संग्रह खोलें चुनें। 7-ज़िप मूल रूप से 100% रीड-ओनली मोड में वर्चुअल डिस्क के अंदर GPT/MBR विभाजन तालिकाओं और NTFS/ext4 फ़ाइल सिस्टम को पार्स करता है, जिससे आप अतिथि फ़ोल्डरों को सेकंडों में सीधे अपने डेस्कटॉप पर खींच और छोड़ सकते हैं।
  • विंडोज़ डिस्क प्रबंधन का उपयोग करना (के लिए)। .vhdx / .avhdx: खुला diskmgmt.msc -> कार्रवाई -> वीएचडी संलग्न करें -> नवीनतम पत्ते पर ब्राउज़ करें .avhdx (या .vhdx), बॉक्स को चेक करें [X] Read-only (गंभीर: रीड-ओनली चेक करना कभी न भूलें, अन्यथा विंडोज़ डिस्क हेडर को संशोधित कर देगा), और ओके पर क्लिक करें। आपके VM की C: और D: ड्राइव तुरंत Windows फ़ाइल एक्सप्लोरर में दिखाई देती हैं।

विधि 3: गंभीर रूप से क्षतिग्रस्त जंजीरों का पुनर्निर्माण करना UFS Explorer Professional Recovery

यदि वीएमडीके या वीएचडीएक्स श्रृंखला में एक पैरेंट डिस्क को गलती से बूट और संशोधित किया गया था, या यदि वीएमएफएस/एनटीएफएस डेटास्टोर भ्रष्टाचार का टूटा हुआ हिस्सा था -sesparse.vmdk या .avhdx फ़ाइल इसलिए हाइपरवाइज़र टूल इसे अस्वीकार कर देते हैं, यूएफएस एक्सप्लोरर प्रोफेशनल रिकवरी (या आर-स्टूडियो तकनीशियन) आपको हाइपरवाइज़र को दरकिनार करते हुए सॉफ्टवेयर रैम में एक कस्टम वर्चुअल डेल्टा स्टैक में कच्चे बेस डिस्क और प्रत्येक चाइल्ड डेल्टा छवि को मैन्युअल रूप से इकट्ठा करने की अनुमति देता है। CID/GUID अक्षुण्ण अतिथि फ़ाइलों को तराशने और निकालने के लिए हेडर जाँच करता है।

ट्रैक 5: एक अनाथ वीएम कॉन्फ़िगरेशन फ़ाइल पुनर्प्राप्त करना (.vmx, .xml, या <vmid>.conf)

कभी-कभी वर्चुअल हार्ड डिस्क श्रृंखला स्वयं (*.vmdk, *.vhdx, या *.qcow2) स्टोरेज ऐरे पर 100 प्रतिशत बरकरार है, लेकिन छोटी कॉन्फ़िगरेशन फ़ाइल जो वर्चुअल मशीन के हार्डवेयर लेआउट को परिभाषित करती है (.vmx VMware ESXi में, <GUID>.vmcx / .xml हाइपर-V में, या /etc/pve/qemu-server/<vmid>.conf Proxmox VE में) होस्ट क्रैश के दौरान दूषित हो गया है, गलती से हटा दिया गया है, या शून्य हो गया है।

यदि आप गलत वर्चुअल स्टोरेज कंट्रोलर या फ़र्मवेयर मोड के साथ एक प्रतिस्थापन वीएम शेल को फिर से बनाते हैं, तो अतिथि ऑपरेटिंग सिस्टम तुरंत बूट पर क्रैश हो जाएगा INACCESSIBLE_BOOT_DEVICE (विंडोज़) या एक में छोड़ें dracut / initramfs आपातकालीन शेल (लिनक्स)। अपनी सहेजी गई वर्चुअल डिस्क को संलग्न करने से पहले इन चार हार्डवेयर सेटिंग्स को अपने मूल अतिथि कॉन्फ़िगरेशन से मिलाएं:

वर्चुअल हार्डवेयर सेटिंग यदि प्रतिस्थापन वीएम पर गलत तरीके से सेट किया गया है तो लक्षण पुराने के बिना सही सेटिंग का निर्धारण कैसे करें .vmx / .vmcx
1. फ़र्मवेयर बूट मोड (UEFI / OVMF बनाम Legacy BIOS / SeaBIOS) वीएम प्रदर्शित करता है "Operating System Not Found" या सीधे यूईएफआई इंटरएक्टिव शेल में गिर जाता है (Shell>). वर्चुअल डिस्क की विभाजन तालिका का निरीक्षण करें (fdisk -l या virt-filesystems -a disk.vmdk --partitions --long). यदि डिस्क में 100 एमबी से 512 एमबी एफएटी32 ईएफआई सिस्टम विभाजन (ईएसपी) है और जीपीटी विभाजन तालिका का उपयोग करता है, तो आपको वीएम फर्मवेयर को यूईएफआई पर सेट करना होगा। यदि डिस्क एमबीआर (डॉस) विभाजन तालिका का उपयोग करती है जिसमें कोई ईएफआई विभाजन नहीं है, तो फर्मवेयर को लीगेसी BIOS पर सेट करें।
2. वर्चुअल स्टोरेज नियंत्रक प्रकार (VMware Paravirtual SCSI - PVSCSI बनाम LSI Logic SAS बनाम NVMe बनाम VirtIO SCSI) विंडोज़ एक फेंकता है 0x0000007B / INACCESSIBLE_BOOT_DEVICE नीली स्क्रीन; लिनक्स में गिरावट आती है initramfs: /dev/mapper/root does not exist. VMware ESXi में, सादे-पाठ का निरीक्षण करें .vmdk लाइन के लिए डिस्क्रिप्टर फ़ाइल ddb.adapterType = "lsilogic" या "buslogic" या जांचें vmware.log VM फ़ोल्डर के अंदर (grep -i "scsi0.virtualDev" vmware.log), जो सटीक ऐतिहासिक प्रिंट करता है .vmx अंतिम सफल बूट से शब्दकोश।
3. वर्चुअल नेटवर्क एडाप्टर मैक एड्रेस और ड्राइवर (VMXNET3 बनाम E1000e बनाम VirtIO-Net) अतिथि ओएस बूट होता है, लेकिन अपना स्थिर आईपी पता या लाइसेंसिंग लॉक खो देता है क्योंकि यह "नए" नेटवर्क कार्ड का पता लगाता है (eth1 के बजाय eth0). पुराना खोजें vmware.log वीएम की डेटास्टोर निर्देशिका के अंदर (grep -i "ethernet0.generatedAddress" vmware.log) सटीक 6-बाइट मैक पता पुनर्प्राप्त करने के लिए (00:50:56:xx:xx:xx) और इसे प्रतिस्थापन VM की नेटवर्क सेटिंग्स में पेस्ट करें।
4. वर्चुअल टीपीएम 2.0 (vTPM) और बिटलॉकर / एलयूकेएस राज्य Windows BitLocker बूट पर 48-अंकीय पुनर्प्राप्ति कुंजी के लिए संकेत देता है यदि .nvram / vTPM राज्य गायब है. VMware ESXi में, ** को हमेशा सुरक्षित रखें<VM_Name>.nvram** और .vmsd फ़ाइलों के साथ .vmdk फ़ाइलें; हाइपर-V में, संरक्षित करें Virtual Machines\<GUID>.vmgs (अतिथि राज्य) फ़ाइल ताकि वर्चुअल टीपीएम कुंजियाँ जुड़ी रहें।

अक्सर पूछे जाने वाले प्रश्नों

यदि मैं अपने वीएम को मूल आधार पर वापस इंगित कर दूं तो क्या होगा `.vmdk` या `.vhdx` फ़ाइल करें और इसे बूट करके देखें कि अंदर क्या है?

पहले फ़ाइलों का बैकअप लिए बिना ऐसा कभी न करें, और स्नैपशॉट लेते समय कभी भी बेस डिस्क को रीड-राइट मोड में बूट न करें (`-000001.vmdk` या `.avhdx`) मौजूद है. सबसे पहले, बेस डिस्क को ठीक उसी दिन और मिनट पर फ़्रीज़ किया गया था जिस दिन पहला स्नैपशॉट बनाया गया था, यदि कोई स्नैपशॉट 6 महीने से चल रहा है, तो बेस डिस्क को बूट करने से आपका सर्वर वैसे ही बूट हो जाता है जैसे वह 6 महीने पहले अस्तित्व में था, पिछले आधे साल में बनाई गई हर एक फ़ाइल गायब हो गई थी। दूसरा, और इससे भी बदतर, जैसे ही अतिथि ऑपरेटिंग सिस्टम बेस डिस्क से बूट होता है, यह बेस डिस्क पर बूट लॉग और जर्नल परिवर्तन लिखता है, इसके सेक्टरों को संशोधित करता है और इसकी सामग्री आईडी बदलता है (`CID`) या लिंकेज गाइड। यह आपके सभी चाइल्ड स्नैपशॉट के लिए आवश्यक डेल्टा ब्लॉक मानचित्र को स्थायी रूप से तोड़ देता है।

मेरा VMware ESXi डेटास्टोर क्यों दिखता है? `Server-000001.vmdk` जैसा कि पूर्ण 500 जीबी आकार के समान है `Server.vmdk` वेब ब्राउज़र में?

यह VMware ESXi वेब क्लाइंट डेटास्टोर ब्राउज़र का डिस्प्ले क्विर्क है। वेब ब्राउज़र यूआई में, ईएसएक्सआई अंतर्निहित को छुपाता है `-flat.vmdk`, `-delta.vmdk`, और `-sesparse.vmdk` बाइनरी फ़ाइलें और डेल्टा फ़ाइल द्वारा उपभोग किए गए वास्तविक भौतिक स्थान के बजाय डिस्क की *प्रावधानित तार्किक क्षमता* प्रदर्शित करता है। वास्तविक भौतिक फ़ाइल नाम, सटीक बाइट आकार और टेक्स्ट डिस्क्रिप्टर फ़ाइलें देखने के लिए, ESXi होस्ट पर SSH सक्षम करें, टर्मिनल/PuTTY के माध्यम से लॉग इन करें, नेविगेट करें `/vmfs/volumes///`, और भागो `ls -lh *.vmdk`.

जब होस्ट डेटास्टोर 100% भरा हुआ है (0 बाइट्स मुक्त) तो मैं वीएमवेयर या हाइपर-वी स्नैपशॉट को कैसे समेकित कर सकता हूं?

जब कोई डेटास्टोर 0 बाइट मुक्त हो जाता है, तो सामान्य इन-प्लेस "सभी स्नैपशॉट हटाएं / समेकित करें" विफल हो जाता है क्योंकि स्नैपशॉट 2 को स्नैपशॉट 1 में विलय करने से स्नैपशॉट 2 को हटाए जाने से पहले स्नैपशॉट 1 का आकार अस्थायी रूप से बढ़ जाता है। आपके पास तीन सुरक्षित तरीके हैं: (1) 15 से 20 प्रतिशत हेडरूम खाली करने के लिए *अन्य* गैर-महत्वपूर्ण आईएसओ फाइलें, पुरानी लॉग फाइलें, या पावर-ऑफ टेस्ट वीएम को उसी डेटास्टोर पर ढूंढें और हटाएं या स्थानांतरित करें; (2) यदि स्टोरेज ऐरे एक SAN/NAS (iSCSI/NFS/FC) है, तो LUN का विस्तार करें और VMFS/NTFS वॉल्यूम को 100 जीबी तक ऑनलाइन बढ़ाएं; या (3) होस्ट में एक बाहरी यूएसबी ड्राइव या एनएफएस शेयर संलग्न करें और उपयोग करें `vmkfstools -i Server-000002.vmdk /vmfs/volumes/New_NFS_Share/Merged.vmdk` (या `qemu-img convert` / `Merge-VHD` दूसरे ड्राइव लेटर के लिए) पूर्ण डेटास्टोर पर शून्य बाइट्स लिखने की जगह का उपयोग करके दूसरे स्टोरेज वॉल्यूम पर *आउट-ऑफ-प्लेस* श्रृंखला को समेकित करने के लिए।

मैं वीईएम, कॉमवॉल्ट, या नैकिवो जैसे बैकअप सॉफ़्टवेयर को छिपे हुए "अनाथ स्नैपशॉट" छोड़ने से कैसे रोकूँ जो महीनों बाद मेरे सर्वर में भर जाते हैं?

बैकअप एप्लिकेशन प्रत्येक रात्रि बैकअप कार्य की शुरुआत में एक अस्थायी हाइपरवाइज़र स्नैपशॉट बनाते हैं ताकि वे जमे हुए बेस डिस्क को पढ़ सकें, और फिर बैकअप समाप्त होने पर उस स्नैपशॉट को हटाने/समेकित करने के लिए ESXi या हाइपर-V को निर्देश दें। कभी-कभी, स्टोरेज टाइमआउट के कारण स्नैपशॉट हटाने का चरण चुपचाप विफल हो जाता है, जिससे कुछ छिपा रह जाता है `-000001.vmdk` या `.avhdx` जब तक यह 100 प्रतिशत डेटास्टोर तक नहीं पहुंच जाता तब तक महीनों तक बढ़ता रहता है। दो स्वचालित सुरक्षा उपाय स्थापित करें: (1) अंतर्निहित vCenter / हाइपर-V / Proxmox अलार्म को सक्षम करें `"Virtual Machine Snapshot Size > 20 GB or Age > 72 Hours"`, और (2) साप्ताहिक रीड-ओनली पॉवरसीएलआई या पॉवरशेल ऑडिट शेड्यूल करें (`Get-VM | Get-Snapshot` या `Get-ChildItem -Recurse -Filter *.avhdx`) जो उत्पादन भंडारण पर 3 दिन से अधिक पुरानी कोई स्नैपशॉट फ़ाइल मौजूद होने पर आपकी व्यवस्थापक टीम को ईमेल करता है।

सूत्रों की जाँच की गई

  • ब्रॉडकॉम तकनीकी ज्ञानकोष द्वारा वीएमवेयर: केबी 1007969/316578 (''बच्चे के निर्माण के बाद से मूल वर्चुअल डिस्क को संशोधित किया गया है'' सीआईडी बेमेल त्रुटियों को हल करना), केबी 1002511 (एक गुम वर्चुअल मशीन डिस्क डिस्क्रिप्टर को फिर से बनाना) .vmdk फ़ाइल), और KB 10051 (ESXi में वर्चुअल मशीन स्नैपशॉट को समझना)।
  • माइक्रोसॉफ्ट लर्न/विंडोज सर्वर हाइपर-वी इंजीनियरिंग दस्तावेज़ीकरण: हाइपर-वी पॉवरशेल संदर्भ Get-VHD, Set-VHD -IgnoreIdMismatch, और Merge-VHD ऑफ़लाइन डिफरेंसिंग डिस्क समेकन।
  • QEMU प्रोजेक्ट और Red Hat Enterprise Linux वर्चुअलाइजेशन दस्तावेज़ीकरण: आधिकारिक qemu-img मैनुअल (info --backing-chain, check -r all, rebase -u, convert) और libguestfs (guestmount --ro) केवल पढ़ने योग्य वर्चुअल डिस्क निरीक्षण।
  • Oracle वर्चुअलबॉक्स तकनीकी दस्तावेज़ीकरण: VBoxManage showmediuminfo और clonemedium विभेदक छवि वास्तुकला।
  • राष्ट्रीय मानक और प्रौद्योगिकी संस्थान (एनआईएसटी, संयुक्त राज्य अमेरिका): एनआईएसटी विशेष प्रकाशन 800-86: घटना प्रतिक्रिया में फोरेंसिक तकनीकों को एकीकृत करने के लिए गाइड (वर्चुअल मशीन छवि संरक्षण)।

संबंधित मार्गदर्शिकाएँ