VMWare-এর বিপরীতে, Hyper-V-এ ভার্চুয়াল মেশিন ক্লোন করার বিল্ট-ইন ফিচার নেই (ক্লোনিং শুধু Virtual Machine Manager-এ উপলব্ধ)। একটি বিদ্যমান VM-এর পূর্ণ কপি তৈরি করতে, আপনাকে Hyper-V-এর ইম্পোর্ট এবং এক্সপোর্ট ফিচার ব্যবহার করতে হবে। এই আর্টিকেলে, আমরা দেখব কীভাবে Hyper-V ম্যানেজার GUI, পাওয়ারশেল, এবং Windows Admin Center (WAC) ব্যবহার করে Hyper-V-এ ভার্চুয়াল মেশিন ক্লোন করতে হয়।
উইন্ডোজ চালমান একটি ভার্চুয়াল মেশিন ক্লোন করার সময় মনে রাখবেন যে VM কপির সোর্সের মতো একই SID থাকবে। আপনাকে উইন্ডোজ গেস্ট SID রিসেট করতে Sysprep টুল ব্যবহার করতে হবে। আপনি যদি একটি রেফারেন্স উইন্ডোজ ইমেজ তৈরি করে থাকেন, তবে ক্লোন করার আগে সেটিতে নিচের কমান্ড চালান:
%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe
VM শাট ডাউন হবে এবং পরবর্তী স্টার্টআপে সোর্স VM এবং এর ক্লোন কপি উভয়েই নতুন SIDs জেনারেট হবে। এছাড়া, এক্টিভ ডিরেক্টরি ডোমেনে যোগ করা একটি VM ক্লোন করা প্রস্তাবিত নয়।
Hyper-V ম্যানেজারে VM এক্সপোর্ট এবং ইম্পোর্ট করা
প্রথমে, একটি VM একটি আলাদা ডিরেক্টরিতে এক্সপোর্ট করুন। Hyper-V ম্যানেজার কনসোল খুলুন, একটি VM-র ওপর রাইট-ক্লিক করুন এবং কনটেক্সট মেনুতে Export সিলেক্ট করুন।
উইন্ডোজ সার্ভার ২০১২ R2 এবং নতুনতর ভার্সনে (Free Hyper-V Server সহ) Hyper-V-এ, আপনি চলমান ভার্চুয়াল মেশিনগুলোকেও বন্ধ না করে এক্সপোর্ট করতে পারেন।
ভার্চুয়াল মেশিন এক্সপোর্ট করার জন্য আপনার চাওয়া ডিরেক্টরি নির্দিষ্ট করুন।
VM এক্সপোর্ট স্ট্যাটাস আপনার Hyper-V কনসোলে VM স্টেট প্যানে প্রদর্শিত হবে।
অনেক অ্যাডমিন VM এক্সপোর্টকে Hyper-V-এ VM ব্যাকআপ করার সবচেয়ে সহজ পদ্ধতি হিসেবে ব্যবহার করেন।
আপনি একটি ভার্চুয়াল মেশিনের নির্দিষ্ট চেকপয়েন্ট (স্ন্যাপশট) এক্সপোর্ট করতে পারেন। এর জন্য, Checkpoints ট্রিয়ে প্রয়োজনীয় চেকপয়েন্টের ওপর রাইট-ক্লিক করুন এবং Export সিলেক্ট করুন।
VM ইম্পোর্ট করতে, Hyper-V ম্যানেজারে হোস্টনেমের ওপর ক্লিক করুন এবং Import Virtual Machine সিলেক্ট করুন।
তারপর ইম্পোর্ট করা VM ফাইলগুলো থাকা ডিরেক্টরির পথ নির্দিষ্ট করুন। Hyper-V-এ VM ইম্পোর্ট করার সময়, আপনাকে হোস্টে VM রেজিস্ট্রেশনের ৩টি অপশন দেওয়া হয়:
- Register the virtual machine in-place (use the existing unique ID) — ইম্পোর্ট করা ফাইলগুলো থাকা ডিরেক্টরিতে VM রেজিস্টার করতে (VM ID একই থাকে)
- Restore the virtual machine (use the existing unique ID) — VM ফাইলগুলো অন্য ফোল্ডারে কপি করতে (মূল VM ID রিটেইন করা হয়)
- Copy the virtual machine (create a new unique ID) — VM অন্য ডিরেক্টরিতে কপি করতে এবং নতুন VM ID জেনারেট করতে
Hyper-V হোস্টে প্রতিটি VM-এর একটি ID থাকে যা হোস্টের মধ্যে ইউনিক হতে হবে। আপনি যদি VM ইম্পোর্ট বা ক্লোন করে অন্য হোস্টে নিয়ে যান, তবে VM ID পরিবর্তন করার প্রয়োজন নেই।
যদি আপনি ডুপ্লিকেট ID-সহ একটি VM ইম্পোর্ট করার চেষ্টা করেন, তবে নিচের ত্রুটি হয়:
The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.
নতুন ID-সহ একটি VM ক্লোন তৈরি করতে, আমরা তৃতীয় অপশনটি বেছে নিয়েছি। উইজার্ড আপনাকে VM ফাইল রাখার ফোল্ডার নির্দিষ্ট করতে বলে। ডিফল্টভাবে, Hyper-V হোস্ট সেটিংসে নির্দিষ্ট ফোল্ডারগুলো ব্যবহার করা হয়।
তারপর ভার্চুয়াল মেশিনের ভার্চুয়াল হার্ড ডিস্ক ফাইলগুলো (vhdx ফাইল) সংরক্ষণ করার ডিরেক্টরি সিলেক্ট করুন।
তবেই আপনার Hyper-V কনসোলে একটি নতুন ক্লোন করা ভার্চুয়াল মেশিন দেখা যাবে।
পাওয়ারশেল দিয়ে Hyper-V VM এক্সপোর্ট, ইম্পোর্ট, এবং ক্লোন করা
চলে পাওয়ারশেল ব্যবহার করে এক্সপোর্ট/ইম্পোর্ট দিয়ে Hyper-V ভার্চুয়াল মেশিন ক্লোন করার পদ্ধতি দেখি।
VM এক্সপোর্ট করতে নিচের কমান্ড চালান:
Export-VM -Name win10 -Path 'C:\VHD\export'
আপনি যদি একটি চলমান VM এক্সপোর্ট করতে চান, তবে CaptuteLiveState অপশন ব্যবহার করতে পারেন যা নির্ধারণ করে VM মেমরি কীভাবে এক্সপোর্ট হবে। তিনটি অপশন উপলব্ধ:
CaptureSavedState– মেমরি এক্সপোর্ট করতে (ডিফল্ট)CaptureDataConsistentState– Hyper-V Production Checkpoint থেকে VM স্টেট এক্সপোর্ট করতেCaptureCrashConsistentState– মেমরি কন্টেন্ট সেভ না করা
Export-VM -Name win10 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState
আপনি যদি নির্দিষ্ট চেকপয়েন্ট থেকে VM স্টেট এক্সপোর্ট করতে চান, তবে এর নাম নির্দিষ্ট করুন।
প্রথমে, VM-এর জন্য উপলব্ধ চেকপয়েন্টের তালিকা দেখান:
Get-VMSnapshot -VMName win10
তারপর চেকপয়েন্টটি তার নাম দিয়ে এক্সপোর্ট করুন:
Export-VMSnapshot -Name “win10 - (6/17/2021 - 3:12:205 PM) Standard” -VMName win10 -Path 'C:\VHD\export'
VM এক্সপোর্ট হয়ে গেলে, আপনি এটি ইম্পোর্ট করতে পারেন। আপনি যদি VM-কে ইন-প্লেস রেজিস্টার করতে চান, তবে নিচের কমান্ড চালান:
Import-VM -Path "C:\VHD\export\win10\Virtual Machines\212cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx"
Path অপশনে, VM কনফিগারেশন ফাইলের লোকেশন নির্দিষ্ট করুন (VMCX ফাইল ফরম্যাট Hyper-V সার্ভার ২০১৬-এ XML ফরম্যাটের জায়গা নেওয়া হয়েছে)। VM কপি করতে অন্য ফোল্ডারে একই ID-সহ, Copy অপশন ব্যবহার করুন। নতুন VM ID জেনারেট করতে, GenerateNewId অপশন ব্যবহার করুন:
Import-VM -Path "C:\VHD\export\win10\Virtual Machines\212cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx" -VhdDestinationPath "C:\VHD\win10_2" -VirtualMachinePath "C:\VHD\win10_2"
VhdDestinationPath VM-এর VHDX ফাইলগুলো কপি হওয়ার ডিরেক্টরি নির্দিষ্ট করে, এবং VirtualMachinePath VM কনফিগারেশন ফাইলগুলোর ডিরেক্টরি সেট করে। যদি অপশনগুলো সেট না করা থাকে, VM ফাইলগুলো Hyper-V হোস্ট সেটিংসে নির্দিষ্ট ডিফল্ট ডিরেক্টরিতে কপি হবে (C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\)।
আপনি চেকপয়েন্ট সংরক্ষণের ফোল্ডার (SnapshotFilePath) এবং পেজফাইল (SmartPagingFilePath) ও সেট করতে পারেন।
দ্রষ্টব্য: ক্লোন করা VM সোর্স VM-এর নাম সহ Hyper-V কনসোলে দেখা যাচ্ছে। এটিকে রিনেম করব, কিন্তু এর VMID প্রয়োজন।
get-vm | select VMNAME,VMId
দেখা যাচ্ছে, হোস্টে একই নামে দুটি VM আছে কিন্তু ভিন্ন ID। ইম্পোর্ট করা VM-এর ID থেকে ভিন্ন ID-সহ VM-কে রিনেম করুন। নতুন VM-এর ID কপি করুন এবং রিনেম করুন:
get-vm | Where-Object {$_.VMId -eq "9a9d3332-f332-a231-8abc-9221aab32287"} | Rename-VM -NewName win10_2
তারপর ভার্চুয়াল হার্ড ডিস্ক ফাইলটিও রিনেম করুন:
Get-VHD -VMId 9a9d3332-f332-a231-8abc-9221aab32287| Select Path | Rename-Item -NewName win10_2.vhdx
Remove-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerLocation 0 -ControllerNumber 0
Add-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -Path "C:\VHD\win10_2\win10_2.vhdx"
আপনার ভার্চুয়াল অ্যাডাপ্টারের MAC ঠিকানা পরিবর্তন করুন (আপনি একটি নতুন স্ট্যাটিক MAC ঠিকানা নির্দিষ্ট করতে পারেন বা ডাইনামিক্যালি MAC ঠিকানা পাওয়ার কনফিগারেশন করতে পারেন)।
Set-VMNetworkAdapter -VMName win10_2 -DynamicMacAddress
Start-VM -Name win10_2
নতুন VM কে নেটওয়ার্কের সাথে সংযোগ করার আগে, এটিকে রিনেম করা এবং এর IP ঠিকানা নতুন একটিতে পরিবর্তন করা প্রস্তাবিত (যদি আপনার LAN-এ DHCP ব্যবহার করেন, তবে এই স্টেপটি বাদ দিতে পারেন)। তারপর আপনি আপনার নতুন VM-এ পাওয়ারশেল ডায়রেক্ট ব্যবহার করে Invoke-Command বা Enter-PSSession সিএমডলেট দিয়ে সংযোগ করতে পারবেন:
Enter-PSSession -ComputerName win10_2 -Credential (Get-Credential)
Rename-Computer win10_2
Remove-NetIPAddress -InterfaceAlias “Ethernet” -AddressFamily IPV4
New-NetIPAddress -IPAddress 192.168.13.71 -InterfaceAlias “Ethernet” -AddressFamily IPv4 -PrefixLength 24
Restart-Computer
Windows Admin Center ব্যবহার করে Hyper-V ভার্চুয়াল মেশিন ক্লোন করা
Windows Admin Center v2009 বা নতুনতর ভার্সনে আপনি এক্সপোর্ট এবং ইম্পোর্ট ছাড়া সরাসরি Hyper-V VM ক্লোন করতে পারেন।
WAC চালান, Virtual Machines সেকশন সিলেক্ট করুন, এবং তারপর VM -> Manage -> Clone ক্লিক করুন।
তারপর আপনার নতুন VM-এর নাম নির্দিষ্ট করুন এবং এর ফাইলগুলো রাখার ডিরেক্টরি সিলেক্ট করুন।
দ্রষ্টব্য: ক্লোন উইজার্ডে “I have already run Sysprep on my VM” অপশন রয়েছে। আপনি যদি Sysprep ব্যবহার করে ইমেজ জেনারালাইজ না করে থাকেন এবং এই অপশনটি সক্ষম না করেন, তবে Hyper-V সোর্স VM-এর একটি স্ন্যাপশট তৈরি করবে, Sysprep চালাবে, এবং একটি নতুন VM-এ ক্লোন করবে (সোর্স VM যেই কয়েকবার রিস্টার্ট হবে এবং প্রসেস চলাকালীন ব্যবহার করার জন্য উপলব্ধ নয়)। তারপর সোর্স VM তার মূল অবস্থায় ফিরে যাবে, এবং স্ন্যাপশটটি মুছে যাবে।
নন-উইন্ডোজ গেস্ট OS সহ যেকোনো VM ক্লোন করার সময়, উপরে বর্ণিত অপশনটি সর্বদা সক্ষম রাখুন।
VM ক্লোন হওয়া পর্যন্ত অপেক্ষা করুন। নতুন VM-এ স্বয়ংক্রিয়ভাবে নতুন ID অ্যাসাইন হবে।