Trong mỗi bản phát hành ESXi mới, VMware cập nhật phiên bản máy ảo và phần cứng ảo. Trong các phiên bản mới của VMware VM, tính năng mới xuất hiện, thiết bị ảo mới được thêm, giới hạn tài nguyên tăng (khe PCI, RAM, vCPU), lỗi được sửa, v.v. Vì vậy khi di chuyển sang phiên bản ESXi mới hơn, tốt nhất là nâng cấp phiên bản phần cứng ảo trên tất cả máy ảo. Tốt hơn chỉ dùng phiên bản VM cũ cho mục đích tương thích. Trong bài viết này, chúng ta sẽ xem cách nâng cấp phiên bản phần cứng ảo của VM chạy trên VMware ESXi host.
Tương thích giữa ESXi và phiên bản phần cứng VM được hiển thị trong bảng dưới.
| Phiên bản Hypervisor | Phiên bản 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 |
Bạn có thể kiểm tra phiên bản máy ảo (phần cứng ảo) hiện tại trên tab Summary của máy ảo trong phần Compatibility. Screenshot dưới cho thấy VM version 18 (ESXI 7.0 U1 and later) được dùng.

VMware không khuyến khích cập nhật phiên bản phần cứng ảo trừ khi bạn cần tính năng mới do phần cứng mới cung cấp.
Bạn sẽ không thể chạy VM trên ESXi host không hỗ trợ phiên bản mới của phần cứng VM. Khi cố di chuyển VM như vậy sang host với phiên bản ESXi cũ bằng vMotion, lỗi sẽ xuất hiện:
The virtual machine version is not compatible with the version of the host munexi1.

Trước khi nâng cấp phiên bản VM, khuyến khích:
- Tạo snapshot VM
- Cập nhật VMware Tools. Nếu nâng cấp VM Hardware trước khi cài VMware Tools mới nhất, cài đặt mạng có thể bị reset trong máy ảo Windows khách.
Để nâng cấp phiên bản phần cứng ảo, máy ảo phải được tắt. Sau đó chuột phải vào VM và chọn Compatibility → Upgrade VM Compatibility.

Xác nhận cập nhật phần cứng ảo và chọn phiên bản phần cứng VM. Trong ví dụ này, tôi chọn ESXi 7.0 U1 and later mới nhất có sẵn trên host.

Bạn có thể lên lịch nâng cấp tự động phiên bản phần cứng ảo máy ảo vào lần khởi động lại graceful tiếp theo.
- Chọn Compatibility → Schedule VM Compatibility Upgrade trong menu ngữ cảnh VM;
- Từ danh sách thả xuống Compatible with, chọn phiên bản phần cứng VM bạn muốn nâng cấp;
- Bật tùy chọn Only upgrade after normal guest OS shutdown;

- Phiên bản phần cứng ảo của máy ảo sẽ được cập nhật lần sau VM được reboot.
Bạn cũng có thể cập nhật phiên bản VM Hardware dùng cmdlet PowerShell từ module VMware PowerCLI. Kết nối với vCenter hoặc ESXi host:
Connect-VIServer esxi_hostname
Liệt kê phiên bản phần cứng ảo của máy ảo:
Get-VM | select Name, hardwareversion, PowerState

Trong các phiên bản VMware ESXi mới hơn, HardwareVersion phải được dùng thay vì thuộc tính Version của VM. Cảnh báo xuất hiện khi dùng tên thuộc tính cũ:
WARNING: The 'Version' property of VirtualMachine type is deprecated. Use the 'HardwareVersion' property instead.
Để cập nhật phiên bản VM hardware bằng PowerShell, chạy lệnh:
Set-VM -VM lon-fs03 -HardwareVersion vmx-19 -Confirm:$false
Nếu phiên bản VM hardware chỉ định không được hỗ trợ bởi ESXi host, lỗi sẽ xuất hiện:
The operation for the entity mytestVM1 failed with the following message: The operation is not supported on the object.
Bạn có thể liệt kê VM cần nâng cấp dùng Out-GridView cmdlet:
Get-VM |Where-object {$_.powerstate -eq "poweredoff"} | Out-GridView -PassThru | Set-VM -HardwareVersion vmx-19 -Confirm:$false
Bạn sẽ thấy bảng đồ họa cần chọn VM muốn nâng cấp (dùng phím CTRL để chọn nhiều VM).

Bạn có thể lên lịch nâng cấp phần cứng tự động trên tất cả VM trên host bằng script PowerShell đơn giản:
$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)
}
Tất cả máy ảo sẽ tự động nâng cấp lên phiên bản phần cứng VM chỉ định khi reboot tiếp theo.
Để nâng cấp tập trung VM hardware và VM tools trong mạng doanh nghiệp, tốt hơn dùng vCenter Update Manager hoặc vSphere Lifecycle Manager (VLCM) trong vSphere 7+.
Nếu bạn dùng phiên bản ESXi miễn phí (VMware vSphere Hypervisor), bạn không thể nâng cấp phiên bản VM hardware qua PowerCLI do giới hạn API. Nhưng bạn có thể dùng lệnh vim-cmd trong ESXi shell:
Lấy danh sách VM trên server:
vim-cmd vmsvc/getallvms
Tìm VMID của VM bạn muốn nâng cấp và chỉ định trong lệnh sau:
vim-cmd vmsvc/upgrade vmid vmx-17

Khởi động VM và đảm bảo nó đã nâng cấp lên VM version 17.
Cũng có một phiên bản không được hỗ trợ khác để cập nhật phiên bản phần cứng VM bằng cách chỉnh sửa trực tiếp file cấu hình VM (VMX).
Kết nối với ESXi host qua SSH và đi đến thư mục chứa VM:
cd /vmfs/volumes/datastore_name/test_vm
Chỉnh sửa file test_vm.vmx:
vi myvm.vmx
Tìm dòng cấu hình:
virtualHW.version = "12"
Và thay thành:
virtualHW.version = "17"
Lưu và đóng file VMX ( Esc, :, w, q ).