仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

VMware ESXiでVMのハードウェアバージョンをアップグレードする方法を徹底解説

VMwareは、ESXiの新リリースごとに仮想マシン(VM)および仮想ハードウェアのバージョンを更新しています。新しいバージョンのVMでは、新機能の追加、新しい仮想デバイスへの対応、リソース上限(PCIスロット数、RAM、vCPU数など)の拡張、バグ修正などが行われます。そのため、新しいESXiバージョンへ移行する際には、すべての仮想マシンの仮想ハードウェアバージョンをアップグレードすることが推奨されます。古いVMバージョンの使用は、互換性確保のためだけに限定すべきです。

この記事では、VMware ESXiホスト上で稼働している仮想マシンの仮想ハードウェアバージョンをアップグレードする方法を詳しく解説します。

ESXiとVMハードウェアバージョンの互換性一覧

ESXiのバージョンと対応するVMハードウェアバージョンの互換性は、以下の表のとおりです。

ハイパーバイザーのバージョンVMバージョン
ESX/ESXi 4.X7
ESXi 5.08
ESXi 5.19
ESXi 5.510
ESXi 6.011
ESXi 6.513
ESXi 6.714
ESXi 6.7 U215
ESXi 7.0(7.0.0)17
ESXi 7.0 U1(7.0.1)18
ESXi 7.0 U2(7.0.2)19

現在のVMハードウェアバージョンの確認方法

仮想マシンの現在の(仮想ハードウェア)バージョンは、vSphere Clientで該当VMを選択し、「サマリー」タブ「互換性」セクションで確認できます。以下のスクリーンショットの例では、VMバージョン18(ESXi 7.0 U1以降)が使用されています。

VMware ESXiでVMのハードウェアバージョンをアップグレードする方法を徹底解説

なお、VMwareは公式に、新しい機能が必要でない限り仮想ハードウェアバージョンを更新しないことを推奨しています。無計画なアップグレードは避け、必要性を見極めてから実施しましょう。

注意:新しいVMバージョンは旧ESXiホストでは動作しない

新しいVMハードウェアバージョンに対応していないESXiホスト上では、そのVMを実行できません。たとえば、新しいバージョンのVMをvMotionで旧バージョンのESXiホストへ移行しようとすると、次のようなエラーが表示されます。

The virtual machine version is not compatible with the version of the host munexi1.

VMware ESXiでVMのハードウェアバージョンをアップグレードする方法を徹底解説

アップグレード前の準備

VMバージョンのアップグレードを実行する前に、以下の準備を行うことを推奨します。

  • VMのスナップショットを作成する:問題が発生した場合に元の状態へロールバックできるようにします。
  • VMware Toolsを最新版へ更新する:最新のVMware Toolsをインストールする前にVMハードウェアをアップグレードすると、WindowsゲストOSのネットワーク設定がリセットされる場合があります。

vSphere ClientでVMハードウェアバージョンをアップグレードする手順

仮想ハードウェアバージョンをアップグレードするには、まず仮想マシンを停止(パワーオフ)する必要があります。その後、VMを右クリックし、「互換性」→「VM互換性のアップグレード」を選択します。

VMware ESXiでVMのハードウェアバージョンをアップグレードする方法を徹底解説

仮想ハードウェアの更新を確認し、アップグレード先のVMハードウェアバージョンを選択します。この例では、ホストで利用可能な最新の「ESXi 7.0 U1以降」を選択しています。

VMware ESXiでVMのハードウェアバージョンをアップグレードする方法を徹底解説

ゲストOS再起動時に自動アップグレードをスケジュールする方法

仮想マシンのハードウェアバージョンを、次回の正常な再起動時に自動的にアップグレードするようスケジュールすることも可能です。

  1. VMのコンテキストメニューから「互換性」→「VM互換性アップグレードのスケジュール」を選択します。
  2. 「互換性のあるESXiバージョン」ドロップダウンリストから、アップグレード先のVMハードウェアバージョンを選択します。
  3. 「通常のゲストOSシャットダウン後にのみアップグレードする」オプションを有効にします。VMware ESXiでVMのハードウェアバージョンをアップグレードする方法を徹底解説
  4. これにより、次回VMを再起動した際に仮想ハードウェアバージョンが自動的に更新されます。

PowerCLIを使ってVMハードウェアバージョンをアップグレードする方法

VMware PowerCLIモジュールのPowerShellコマンドレットを使用しても、VMハードウェアバージョンを更新できます。まず、vCenterまたはESXiホストに接続します。

Connect-VIServer esxi_hostname

仮想マシンのハードウェアバージョン一覧を表示します。

Get-VM | select Name, hardwareversion, PowerState

VMware ESXiでVMのハードウェアバージョンをアップグレードする方法を徹底解説

新しいバージョンの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でアップグレード対象VMを選択する方法

Out-GridViewコマンドレットを使えば、アップグレードが必要なVMをGUIで選択できます。

Get-VM |Where-object {$_.powerstate -eq "poweredoff"} | Out-GridView -PassThru | Set-VM -HardwareVersion vmx-19 -Confirm:$false

グラフィカルなテーブルが表示されるので、アップグレードしたいVMを選択してください(Ctrlキーを押しながらクリックすると複数選択できます)。

VMware ESXiでVMのハードウェアバージョンをアップグレードする方法を徹底解説

PowerShellスクリプトで全VMの自動アップグレードをスケジュールする

簡単な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ハードウェアとVMware Toolsを一元的にアップグレードする場合は、vCenter Update Managerや、vSphere 7以降で利用可能なvSphere Lifecycle Manager(VLCM)の使用が推奨されます。

無料版ESXiでvim-cmdを使ってアップグレードする方法

無料版のESXi(VMware vSphere Hypervisor)を使用している場合、API制限によりPowerCLI経由でのVMハードウェアバージョン更新はできません。しかし、ESXiシェルのvim-cmdコマンドを使用すればアップグレード可能です。

まず、サーバー上のVMの一覧を取得します。

vim-cmd vmsvc/getallvms

アップグレードしたいVMのVMIDを確認し、次のコマンドで指定します。

vim-cmd vmsvc/upgrade vmid vmx-17

VMware ESXiでVMのハードウェアバージョンをアップグレードする方法を徹底解説

VMを起動し、VMバージョン17にアップグレードされたことを確認しましょう。

【非推奨・非サポート】VMXファイルを直接編集する方法

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"

VMXファイルを保存して閉じます(Esc:wq の順に入力)。

この方法はVMwareの正式なサポート対象外のため、実運用環境では使用せず、必ず正規の手順(vSphere Client、PowerCLI、vim-cmd)でアップグレードを行うことを強くお勧めします。

  1. 【完全ガイド】VMware Workstation PlayerにvSphere ESXi 6.7をインストールする方法

    本チュートリアルでは、VMware Workstation Player上に「VMware vSphere Hypervisor(ESXi)6.7」をインストールする手順を、ステップバイステップで詳しく解説します。Workstation上にESXiを構築することで、物理サーバーを用意しなくてもvSphere ESXiサーバーの各種機能を自由にテスト・検証できるようになります。 関連記事: 物理サーバー(ベアメタル)にvSphere ESXi 6.7をインストールする方法 インストール前の準備①:ハードウェア要件 CPU: ホストマシンのCPUは最低2コア以上が必要で、ハードウェア仮想化機能

  2. VMware ESXiで仮想マシンのクローンを作成する手順を徹底解説

    本チュートリアルは、一般の家庭ユーザーにはあまり馴染みがないかもしれません。しかし、何らかの理由で環境にVMware ESXiを採用している方にとっては、きっと役立つ内容となるはずです。VMware ESXiは無料で提供されているベアメタル型ハイパーバイザーです。より多機能な有償製品「ESX Server」への購入を促すための、いわば導入版的な位置づけにあります。ESX Serverはあらゆる機能を備えている一方、価格も桁違いに高額です。ESXiは、ベアメタル仮想化における「低コストな選択肢」と言えるでしょう。そのため、上位製品にはある当たり前の機能がいくつか欠けており、クローン作成機能もその