প্রতিটি নতুন ESXi রিলিজে, VMware ভার্চুয়াল মেশিন এবং ভার্চুয়াল হার্ডওয়্যারের সংস্করণ আপডেট করে। VMware VM-এর নতুন সংস্করণে নতুন ফাংশনালিটি আসে, নতুন ভার্চুয়াল ডিভাইস যোগ হয়, রিসোর্স লিমিট বাড়ে (PCI স্লট, RAM, vCPU), বাগ ফিক্স হয়, ইত্যাদি। সুতরাং একটি নতুন ESXi সংস্করণে মাইগ্রেট করার সময় সব ভার্চুয়াল মেশিনের ভার্চুয়াল হার্ডওয়্যার সংস্করণ আপগ্রেড করা উচিত। পুরানো VM সংস্করণ শুধুমাত্র কম্প্যাটিবিলিটির জন্য ব্যবহার করা উচিত। এই নিবন্ধে, আমরা VMware ESXi হোস্টে চলমান একটি VM-এর ভার্চুয়াল হার্ডওয়্যার সংস্করণ আপগ্রেড করার পদ্ধতি দেখব।
ESXi এবং VM হার্ডওয়্যার সংস্করণের কম্প্যাটিবিলিটি নিচের টেবিলে দেখানো হয়েছে।
| হাইপারভাইজার সংস্করণ | VM সংস্করণ |
| ESX/ESXi 4.X | 7 |
| ESXi 5.0 | 8 |
| ESXi 5.1 | 9 |
| ESXi 5.5 | 10 |
| ESXi 6.0 | 11 |
| ESXi 6.5 | 13 |
| ESXi 6.7 | 14 |
| ESXi 6.7 U2 | 15 |
| ESXi 7.0 (7.0.0) | 17 |
| ESXi 7.0 U1 (7.0.1) | 18 |
| ESXi 7.0 U2 (7.0.2) | 19 |
ভার্চুয়াল মেশিনের (ভার্চুয়াল হার্ডওয়্যার) বর্তমান সংস্করণ Summary ট্যাবে Compatibility বিভাগে চেক করা যায়। নিচের স্ক্রিনশটে দেখানো হয়েছে যে VM সংস্করণ ১৮ (ESXI 7.0 U1 and later) ব্যবহৃত হচ্ছে।

VMware নতুন VM হার্ডওয়্যার ফিচার প্রয়োজন না হলে ভার্চুয়াল হার্ডওয়্যার সংস্করণ আপডেট করার সুপারিশ করে না।
আপনি একটি VM কে এমন একটি ESXi হোস্টে চালাতে পারবেন না যা VM হার্ডওয়্যারের নতুন সংস্করণ সমর্থন করে না। এমন একটি VM কে পুরানো ESXi সংস্করণের হোস্টে vMotion ব্যবহার করে মাইগ্রেট করার চেষ্টা করলে একটি ত্রুটি দেখাবে:
The virtual machine version is not compatible with the version of the host munexi1.

VM সংস্করণ আপগ্রেড করার আগে, সুপারিশ করা হয়:
- একটি VM স্ন্যাপশট তৈরি করুন
- VMware Tools আপডেট করুন। আপনি যদি সাম্প্রতিক VMware Tools সংস্করণ ইনস্টল করার আগে VM Hardware আপগ্রেড করেন, তবে Windows গেস্ট ভার্চুয়াল মেশিনে নেটওয়ার্ক সেটিংস রিসেট হতে পারে।
ভার্চুয়াল হার্ডওয়্যার সংস্করণ আপগ্রেড করতে, ভার্চুয়াল মেশিনটি বন্ধ থাকতে হবে। তারপর VM-এ রাইট-ক্লিক করুন এবং Compatibility → Upgrade VM Compatibility নির্বাচন করুন।

ভার্চুয়াল হার্ডওয়্যার আপডেট নিশ্চিত করুন এবং VM হার্ডওয়্যার সংস্করণ নির্বাচন করুন। এই উদাহরণে, আমি আমার হোস্টে উপলব্ধ সর্বশেষ ESXi 7.0 U1 and later নির্বাচন করেছি।

আপনি VM পরবর্তীবার গ্রেসফুলি রিস্টার্ট হওয়ার সময় ভার্চুয়াল মেশিন হার্ডওয়্যার সংস্করণ স্বয়ংক্রিয়ভাবে আপগ্রেড করার জন্য শিডিউল করতে পারেন।
- VM কনটেক্সট মেনুতে Compatibility → Schedule VM Compatibility Upgrade নির্বাচন করুন;
- Compatible with ড্রপ-ডাউন লিস্ট থেকে আপনি যে VM হার্ডওয়্যার সংস্করণে আপগ্রেড করতে চান সেটি নির্বাচন করুন;
- Only upgrade after normal guest OS shutdown অপশনটি সক্রিয় করুন;

- ভার্চুয়াল মেশিনের ভার্চুয়াল হার্ডওয়্যার সংস্করণ পরবর্তী বার VM রিবুট হলে আপগ্রেড হবে।
আপনি VMware PowerCLI মডিউল থেকে PowerShell cmdlets ব্যবহার করে VM Hardware সংস্করণ আপডেট করতে পারেন। আপনার vCenter বা ESXi হোস্টের সাথে সংযুক্ত হন:
Connect-VIServer esxi_hostname
আপনার ভার্চুয়াল মেশিনের ভার্চুয়াল হার্ডওয়্যার সংস্করণের তালিকা দেখান:
Get-VM | select Name, hardwareversion, PowerState

VMware ESXi-এর নতুন সংস্করণে, VM-এর Version অ্যাট্রিবিউটের পরিবর্তে HardwareVersion ব্যবহার করতে হবে। পুরানো অ্যাট্রিবিউট নাম ব্যবহার করলে একটি সতর্কতা দেখাবে:
WARNING: The 'Version' property of VirtualMachine type is deprecated. Use the 'HardwareVersion' property instead.
PowerShell ব্যবহার করে VM হার্ডওয়্যার সংস্করণ আপডেট করতে, এই কমান্ড চালান:
Set-VM -VM lon-fs03 -HardwareVersion vmx-19 -Confirm:$false
যদি নির্দিষ্ট VM হার্ডওয়্যার সংস্করণ ESXi হোস্ট দ্বারা সমর্থিত না হয়, তবে একটি ত্রুটি দেখাবে:
The operation for the entity mytestVM1 failed with the following message: The operation is not supported on the object.
আপনি Out-GridView cmdlet ব্যবহার করে আপগ্রেডের প্রয়োজনীয় VM-দের তালিকা দেখতে পারেন:
Get-VM |Where-object {$_.powerstate -eq "poweredoff"} | Out-GridView -PassThru | Set-VM -HardwareVersion vmx-19 -Confirm:$false
আপনি একটি গ্রাফিক্যাল টেবিল দেখবেন যেখানে আপনাকে আপগ্রেড করতে চাওয়া VM-গুলো নির্বাচন করতে হবে (একাধিক VM নির্বাচন করতে CTRL কী ব্যবহার করুন)।

একটি সহজ PowerShell স্ক্রিপ্ট ব্যবহার করে একটি হোস্টে সব VM-এ স্বয়ংক্রিয় হার্ডওয়্যার আপগ্রেড শিডিউল করতে পারেন:
$AllVMs = Get-VM
Foreach ($VM in ($AllVMs)) {
$VMConfig = Get-View -VIObject $VM.Name
$vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
$vmConfigSpec.ScheduledHardwareUpgradeInfo = New-Object -TypeName VMware.Vim.ScheduledHardwareUpgradeInfo
$vmConfigSpec.ScheduledHardwareUpgradeInfo.UpgradePolicy = “always”
$vmConfigSpec.ScheduledHardwareUpgradeInfo.VersionKey = “vmx-19”
$VMConfig.ReconfigVM($vmConfigSpec)
}
সকল ভার্চুয়াল মেশিন পরবর্তী রিবুটে নির্দিষ্ট VM হার্ডওয়্যার সংস্করণে স্বয়ংক্রিয়ভাবে আপগ্রেড হবে।
কর্পোরেট নেটওয়ার্কে VM হার্ডওয়্যার এবং VM টুলস কেন্দ্রীয়ভাবে আপগ্রেড করার জন্য, vCenter Update Manager বা vSphere Lifecycle Manager (VLCM) vSphere 7+-এ ব্যবহার করা ভাল।
আপনি যদি ফ্রি ESXi সংস্করণ (VMware vSphere Hypervisor) ব্যবহার করেন, তবে API সীমাবদ্ধতার কারণে PowerCLI-এর মাধ্যমে VM হার্ডওয়্যার সংস্করণ আপগ্রেড করতে পারবেন না। কিন্তু আপনি ESXi শেলে vim-cmd কমান্ড ব্যবহার করতে পারেন:
সার্ভারে VM-দের তালিকা পান:
vim-cmd vmsvc/getallvms
আপনি যে VM আপগ্রেড করতে চান তার VMID খুঁজে বের করুন এবং নিচের কমান্ডে নির্দিষ্ট করুন:
vim-cmd vmsvc/upgrade vmid vmx-17

VM চালু করুন এবং নিশ্চিত করুন যে এটি VM সংস্করণ ১৭-এ আপগ্রেড হয়েছে।
VM কনফিগারেশন ফাইল (VMX) সরাসরি এডিট করে VM হার্ডওয়্যার সংস্করণ আপডেট করার একটি অন্য, অসাপোর্টেড পদ্ধতিও আছে।
SSH এর মাধ্যমে ESXi হোস্টের সাথে সংযুক্ত হন এবং VM-এর ডিরেক্টরিতে যান:
cd /vmfs/volumes/datastore_name/test_vm
test_vm.vmx ফাইল এডিট করুন:
vi myvm.vmx
কনফিগারেশন লাইনটি খুঁজুন:
virtualHW.version = "12"
এটি এভাবে পরিবর্তন করুন:
virtualHW.version = "17"
ফাইল সংরক্ষণ করুন এবং বন্ধ করুন ( Esc, :, w, q )।