vMotion किसी चल रही VMware वर्चुअल मशीन को एक भौतिक ESXi होस्ट से दूसरे में बिना इसके ऑपरेशन को बाधित किए और किसी भी सेवा को रोके बिना माइग्रेट करने की अनुमति देता है। इस लेख में हम VMware vMotion विशेषताओं पर चर्चा करेंगे: vMotion कैसे काम करता है, vMotion के कौन से प्रकार मौजूद हैं और वर्चुअल मशीन को ESXi होस्ट या स्टोरेज के बीच मैन्युअल रूप से कैसे माइग्रेट करें। हम vMotion ऑप्टिमाइज़ेशन और समस्या निवारण के सामान्य तरीकों पर भी विचार करेंगे।
जैसा कि हम पहले ही बता चुके हैं, vMotion आपको लाइव माइग्रेशन करने की अनुमति देता है बिना किसी डाउनटाइम या उपयोगकर्ताओं के काम को बाधित किए। vMotion को VM हाई उपलब्धता प्रदान करने के तरीके के रूप में पेश नहीं किया जाता है। सबसे पहले, यह उत्पादक VMs को स्थानांतरित करने के लिए एक सरल और सुविधाजनक टूल है, जब आपको स्थापित ESXi हाइपरवाइज़र या स्टोरेज ऐरे के साथ भौतिक सर्वरों को बनाए रखने/अपडेट करने/बदलने की आवश्यकता होती है। साथ ही, DRS (डायनामिक रिसोर्स शेड्यूलर), एक तकनीक जो भौतिक सर्वरों के लोड को वितरित (बैलेंस) करने की अनुमति देती है, vMotion पर आधारित है।
VMs को हाइपर-V होस्ट के बीच माइग्रेट करने के लिए समान Microsoft तकनीक को हाइपर-V लाइव माइग्रेशन कहा जाता है।

VMware vMotion कैसे काम करता है?
vMotion का उपयोग करके VM को भौतिक होस्ट के बीच माइग्रेट करने के लिए, निम्नलिखित VMware घटकों का उपयोग किया जाता है:
- एक VMware vCenter मैनेजमेंट सर्वर;
- एक शेयर्ड स्टोरेज (फाइबर चैनल, iSCSI या NAS का उपयोग करके कनेक्टेड), जो वर्चुअल मशीन फाइलों को स्टोर करता है। शेयर्ड स्टोरेज कई भौतिक ESXi होस्ट को SAN में उसी VM की फाइलों तक पहुंचने की अनुमति देता है;
- सोर्स और टारगेट ESXi होस्ट के बीच एक शेयर्ड फास्ट नेटवर्क (कम से कम 1GB ईथरनेट)। VM माइग्रेट करते समय, यह अपना मूल MAC पता बरकरार रखता है, और vMotion नेटवर्क स्विच को सूचित करता है कि वर्चुअल मशीन MAC पते का स्थान बदल गया है। यह सक्रिय नेटवर्क कनेक्शन को बनाए रखने की अनुमति देता है;
- होस्ट पर CPU की अनुकूलता या एनहांस्ड vMotion अनुकूलता (EVC) विकल्प सक्षम।
vMotion लाइव माइग्रेशन कैसे करता है? सबसे पहले, VMX फाइल से समान कॉन्फ़िगरेशन के साथ सोर्स VM का एक शैडो क्लोन टारगेट होस्ट पर बनाया जाता है। क्लोन VM शेयर्ड स्टोरेज पर VM की सभी फाइलों को देखता है। चल रही VM की RAM सामग्री और स्थिति को नेटवर्क के माध्यम से सोर्स से टारगेट ESXi होस्ट पर ट्रांसफर किया जाता है। vMotion VM मेमोरी का स्नैपशॉट बनाता है और इसे नेटवर्क के माध्यम से टारगेट सर्वर पर कॉपी करता है। साथ ही, vMotion मेमोरी पेज पर परिवर्तनों को ट्रैक करता है और केवल संशोधित मेमोरी सेगमेंट कॉपी करता है (यह कई चरणों में हो सकता है, हर बार कम डेटा कॉपी होता है और इसमें कम समय लगता है)।
कुछ बिंदु पर, सोर्स VM की स्थिति फ्रीज हो जाती है, परिवर्तित मेमोरी सेगमेंट और CPU निर्देश कॉपी हो जाते हैं और VM टारगेट ESXi होस्ट पर शुरू होती है। 1/10 GB ईथरनेट नेटवर्क पर मध्यम आकार की VM के लिए पूरी प्रक्रिया में कुछ सेकंड लगते हैं।
VMware vMotion प्रकार
vMotion द्वारा, VMware का अर्थ प्रौद्योगिकियों के एक पूरे स्टैक से है जो आपको चल रही VMs को होस्ट, स्टोरेज ऐरे, शहरों या ऑन-प्रिमाइसेस और क्लाउड इंफ्रास्ट्रक्चर के बीच ऑन-द-फ्लाई स्थानांतरित करने की अनुमति देता है।
vMotion प्रकार:
- मानक vMotion – ESXi होस्ट के बीच चल रही VM का माइग्रेशन;
- स्टोरेज vMotion – चल रही वर्चुअल मशीन फाइलों को डेटास्टोर (SAN स्टोरेज ऐरे, NAS, vVol, NFS, आदि) के बीच ऑनलाइन ले जाना;
- शेयर्ड-नथिंग vMotion – शेयर्ड स्टोरेज का उपयोग किए बिना नेटवर्क में ESXi सर्वरों के बीच VM का माइग्रेशन (L2 नेटवर्क आवश्यक);
- लॉन्ग डिस्टेंस vMotion – रिमोट साइट्स के बीच VM का माइग्रेशन (अधिकतम राउंड ट्रिप टाइम 150 ms तक, L3 नेटवर्क सहित)। vSphere 6.0 में पेश किया गया;
- एन्क्रिप्टेड vSphere vMotion – नेटवर्क पर ट्रांसफर करते समय VM को एन्क्रिप्ट करने की अनुमति देता है (vSphere 6.5 में उपलब्ध);
- क्रॉस-क्लाउड कोल्ड और हॉट माइग्रेशन – ऑन-प्रिमाइसेस और क्लाउड इंफ्रास्ट्रक्चर के बीच ऑनलाइन या ऑफलाइन माइग्रेशन।
VMware स्टोरेज vMotion विशेषताएं
जैसा कि हमने बताया, स्टोरेज vMotion आपको चल रही वर्चुअल मशीन की फाइलों (vmdk वर्चुअल डिस्क और कॉन्फ़िगरेशन फाइलों) को VM को रोके बिना दूसरे VMFS/NFS/vVol डेटास्टोर (LUN, स्टोरेज ऐरे) पर ले जाने की अनुमति देता है।
स्टोरेज vMotion को सफलतापूर्वक चलाने की आवश्यकताएं:
- VM डिस्क का प्रकार पर्सिस्टेंट या RDM होना चाहिए;
- VMware Tools इंस्टॉलेशन के दौरान VM माइग्रेशन समर्थित नहीं है;
- माइग्रेशन के लिए डेटास्टोर का VMFS संस्करण मायने रखता है। उदाहरण के लिए, आप VMFS5 से VMFS3 पर 2 TB से अधिक की vmdk फाइल नहीं ले जा सकते;
- ESXi होस्ट पर लाइसेंस;
- जिस होस्ट पर VM चल रहा है, उसके पास सोर्स और टारगेट दोनों डेटास्टोर तक पहुंच होनी चाहिए;
- वर्चुअल मशीन डिस्क कॉपी करते समय चेंज्ड ब्लॉक ट्रैकिंग (CBT) तकनीक का उपयोग किया जाता है। यह बदले हुए डेटा ब्लॉक्स को ट्रैक करने और उन्हें कॉपी करने की अनुमति देता है।
VMware में एनहांस्ड vMotion अनुकूलता (EVC)
VMware HA/DRS क्लस्टर के लिए एनहांस्ड vMotion अनुकूलता (EVC) मोड का उपयोग तब किया जाता है जब क्लस्टर अलग-अलग पीढ़ियों के CPU वाले होस्ट पर आधारित होता है (लेकिन निर्माता नहीं!!!). यदि आप क्लस्टर के लिए EVC सक्षम करते हैं, तो हाइपरवाइज़र उन CPU निर्देशों को मास्क करना शुरू कर देता है जो सभी होस्ट द्वारा समर्थित नहीं हैं। जब EVC सक्षम होता है, तो क्लस्टर में ESXi होस्ट की सभी CPU सुविधाएं vSphere एडमिनिस्ट्रेटर द्वारा क्लस्टर सेटिंग्स में निर्धारित प्रोसेसर निर्देशों के कुछ बुनियादी न्यूनतम सेट के साथ अनुकूल हो जाती हैं।
इस प्रकार, EVC के लिए धन्यवाद, आप विभिन्न समर्थित प्रोसेसर निर्देश सेट वाले होस्ट के बीच VM माइग्रेट कर सकते हैं।
एक ही vSphere क्लस्टर में Intel या AMD जैसे अलग-अलग प्रोसेसर विक्रेताओं वाले होस्ट न मिलाएं। EVC समान विक्रेता के प्रोसेसर के बीच अनुकूलता प्राप्त करने की अनुमति देता है।
आप VMware EVC को क्लस्टर स्तर पर सक्षम कर सकते हैं। Configure → Configuration → VMware EVC पर जाएं और Edit पर क्लिक करें।

यदि आप क्लस्टर के लिए EVC सक्षम करते हैं, तो आपको EVC मोड (AMD या Intel होस्ट के लिए) चुनना होगा और ड्रॉपडाउन सूची से अपने VMware क्लस्टर में इस विक्रेता की न्यूनतम CPU पीढ़ी का चयन करना होगा।

VMware सिफारिश करता है कि आप अपने क्लस्टर में चाहे जो होस्ट हों, EVC को हमेशा सक्षम करें। यदि आप अपने क्लस्टर का विस्तार करना चाहते हैं, तो यह करना आपके लिए आसान होगा। यहां तक कि एक अलग KB लेख भी है जो साबित करता है कि यदि आपके VMs CPU निर्देशों के पूर्ण सेट का उपयोग नहीं करते हैं, तो यह होस्ट प्रदर्शन को प्रभावित नहीं करेगा।
VMware vSphere 6.7 क्लाउड और ऑन-प्रिमाइसेस (क्रॉस-क्लाउड कोल्ड और हॉट माइग्रेशन) के बीच माइग्रेशन तकनीकों को पेश करता है। VM को क्लाउड में माइग्रेट करने के लिए, अब आप VM सेटिंग्स में प्रति-VM EVC सक्षम कर सकते हैं (vSphere 6.7 में हार्डवेयर संस्करण 14 के साथ उपलब्ध)।
आप PowerCLI का उपयोग करके क्लस्टर में VM के लिए सेट बेसलाइन EVC स्तर प्राप्त कर सकते हैं:
Get-VM | Select Name,HardwareVersion,
@{Name='VM_EVC_Mode';Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},
@{Name='Cluster_Name';Expression={$_.VMHost.Parent}},
@{Name='Cluster_EVC_Mode';Expression={$_.VMHost.Parent.EVCMode}} | ft
अधिकतम समर्थित EVC मोड प्राप्त करने के लिए:
Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode
VMware vSphere में vMotion कैसे सक्षम करें?
आइए देखें कि VMware vSphere 6.7 में vMotion को कैसे सक्षम और कॉन्फ़िगर करें। vMotion का उपयोग करने के लिए, Essentials Plus VMware लाइसेंस होना पर्याप्त है।
vMotion को ESXi होस्ट वर्चुअल स्विच के VMkernel स्तर पर सक्षम किया जाता है। होस्ट चुनें और Configure → Networking → VMkernel adapters पर जाएं।
अपना VMkernel एडाप्टर चुनें और Edit पर क्लिक करें।

vmk पोर्ट प्रॉपर्टीज में, Enabled Services सेक्शन में vMotion सक्षम करें.

मेरे उदाहरण में, VMware HA क्लस्टर पहले ही बनाया जा चुका है और vSphere डिस्ट्रिब्यूटेड स्विच (VDS) उपयोग किया जाता है।
vMotion का उपयोग करके VM को होस्ट के बीच कैसे माइग्रेट करें?
चल रही VM को दो ESXi होस्ट के बीच माइग्रेट करने के लिए, vSphere क्लाइंट खोलें, उस VM पर राइट-क्लिक करें जिसे आप स्थानांतरित करना चाहते हैं और Migrate चुनें।

आप जिस माइग्रेशन प्रकार का उपयोग करना चाहते हैं उसे चुनें:
- Change compute resource only — VM को दूसरे ESXi होस्ट पर माइग्रेट करता है;
- Change storage only — इसका अर्थ है स्टोरेज vMotion (वह डेटास्टोर बदलें जहां VM फाइलें स्थित हैं);
- Change both compute resource and storage — शेयर्ड स्टोरेज के बिना माइग्रेशन मोड (vMotion बिना शेयर्ड स्टोरेज/शेयर्ड-नथिंग), VM फाइलें नेटवर्क पर होस्ट के बीच कॉपी की जाती हैं
मैंने पहला विकल्प चुना है।
माइग्रेशन विज़ार्ड आपको एक होस्ट, क्लस्टर, रिसोर्स पूल या vApp चुनने की पेशकश करेगा जिसमें वर्चुअल मशीन को स्थानांतरित करना है। एक होस्ट चुनें। यदि vMotion सही ढंग से कॉन्फ़िगर किया गया है और कोई विरोध नहीं मिला है, तो आप Compatibility सेक्शन में Compatibility checks succeeded संदेश देखेंगे।
यदि आपको कॉम्पैटिबिलिटी टैब में कोई त्रुटि दिखाई देती है, तो उनका अच्छी तरह से अध्ययन करें और उन्हें ठीक करें।
Next पर क्लिक करें।

VM माइग्रेशन विज़ार्ड आपको टारगेट होस्ट पर VM के vNIC को रखने के लिए नेटवर्क चुनने के लिए प्रेरित करेगा। यदि आप माइग्रेशन के बाद VM को उपलब्ध रखना चाहते हैं, तो इसे सोर्स होस्ट के समान नेटवर्क सेगमेंट (VLAN) में रखें। यदि आप स्टैंडर्ड vSphere स्विच का उपयोग कर रहे हैं, तो सभी ESXi होस्ट पर समान पोर्ट ग्रुप बनाएं। VDS का उपयोग करते समय, सभी क्लस्टर होस्ट पर पोर्ट ग्रुप समान होते हैं।

अंतिम चरण में, vMotion कार्य की प्राथमिकता चुनें। डिफ़ॉल्ट रूप से, उच्चतम प्राथमिकता उपयोग की जाती है (Schedule vMotion with high priority)। मैं हमेशा इसका उपयोग करता हूं।

फिर Next → Finish पर क्लिक करें और VM का दूसरे होस्ट पर माइग्रेशन शुरू हो जाएगा। आप Recent Tasks पैनल (Relocate virtual machine कार्य) में माइग्रेशन स्थिति ट्रैक कर सकते हैं। मेरे मामले में, 10 GB ईथरनेट पर vMotion का उपयोग करके VM का माइग्रेशन लगभग 3 सेकंड में हुआ।
सुनिश्चित करें कि आपका VM अब दूसरे ESXi होस्ट पर चल रहा है।

आप पावरशेल से PowerCLI का उपयोग करके Move-VM cmdlet से चल रही VM को दूसरे होस्ट पर माइग्रेट कर सकते हैं। उदाहरण के लिए, हम mun-esxi01 से mun-esxi02 पर सभी VMs ले जाना चाहते हैं:
Get-VMHost mun-esxi01|Get-Vm| Move-VM –Destination (Get-VMHost mun-esxi02)
VMware vMotion काम क्यों नहीं कर रहा?
यहां उन सामान्य कारणों की सूची है जिनकी वजह से vMotion विफल हो सकता है या VM माइग्रेशन बहुत धीमा हो सकता है:
- CPU असंगतता (EVC/एनहांस्ड vMotion अनुकूलता मोड सक्षम करें);
- VMkernel इंटरफ़ेस में vMotion सक्षम नहीं है;
- ESXi होस्ट या वर्चुअल स्विच, पोर्ट ग्रुप की गलत नेटवर्क सेटिंग्स (जंबो फ्रेम्स गलत कॉन्फ़िगर, vMotion नेटवर्क में IP एड्रेस संघर्ष, गलत vSwitch सेटिंग्स, धीमा नेटवर्क, पैकेट लॉस);
- कोई शेयर्ड स्टोरेज नहीं (vSphere संस्करण 5.1 या पहले के लिए)। vSphere 5.1 या उच्चतर में शेयर्ड-नथिंग vMotion उपलब्ध है;
- CD/DVD या ISO इमेज टारगेट होस्ट पर उपलब्ध नहीं है;
- सक्षम एंटी-एफिनिटी नियम;
- गेस्ट OS में VMware Tools इंस्टॉल हो रहे हैं;
- यदि गेस्ट OS सक्रिय रूप से अपनी RAM सामग्री बदल रहा है, तो vMotion नेटवर्क पर दूसरे होस्ट पर VM कॉपी में संशोधित डेटा को स्थानांतरित करने में देर कर सकता है;
- यदि टारगेट होस्ट में शैडो VM बनाने के लिए पर्याप्त CPU या RAM संसाधन नहीं हैं, तो vMotion त्रुटि के साथ विफल हो जाएगा।
यदि vMotion माइग्रेशन त्रुटियां होती हैं, तो आपका VM शटडाउन नहीं होता और सोर्स होस्ट पर चलता रहता है।
VM को तेजी से माइग्रेट करने के लिए vMotion गति कैसे सुधारें/ऑप्टिमाइज़ करें?
आप कई तरीकों से अपनी वर्चुअल मशीन माइग्रेशन को तेज कर सकते हैं।
- सबसे पहले, दो ESXi होस्ट के बीच उच्चतम प्रदर्शन वाले नेटवर्क का उपयोग करना बेहतर है। कम से कम 10 GB नेटवर्क का उपयोग करें, 25 GB और भी बेहतर है (आपके ESXi सर्वर का नेटवर्क एडाप्टर और भौतिक स्विच इस मोड का समर्थन करना चाहिए);
- vMotion ट्रैफिक के लिए अलग भौतिक इंटरफेस का उपयोग करें;
- vMotion माइग्रेशन थ्रेड्स (उर्फ स्ट्रीम्स) का उपयोग करता है। vMotion के साथ सक्षम प्रत्येक VMkernel के लिए एक थ्रेड बनाया जाता है। हालांकि, यह थ्रेड केवल एक प्रोसेसर कोर का उपयोग कर सकता है।
vMotion प्रक्रियाओं के लिए एक से अधिक CPU कोर प्रदान करने के लिए, कई VMkernel इंटरफेस बनाएं, उनके लिए vMotion सक्षम करें और उन्हें एक NIC इंटरफ़ेस से लिंक करें। एक vMotion थ्रेड का औसत थ्रूपुट लगभग 15 GbE है, इसलिए 100 GbE लोड करने के लिए, आपको 6 थ्रेड्स की आवश्यकता है।
आप एडवांस्ड सिस्टम सेटिंग्स में Migrate.VMotionStreamHelpers विकल्प का उपयोग करके VMkernel इंटरफ़ेस के लिए vMotion थ्रेड्स की संख्या भी बढ़ा सकते हैं।