普段、 VMware ESXi 8.0 ホスト内の 仮想マシン は、ブラウザベースのESXi Host Clientを使って起動させたりしていますが、 Wake on LAN を使えるようにすれば、例えばOpenWRTルータからも起動させることが可能になるはず。早速設定してみるも…
仮想マシンの設定
前回、リモートアクセスのデスクトップ用途に構築したXubuntu仮想マシンを使って、Wake on LAN起動の設定を確認します。
なお、仮想NICはデフォルトのVMXNET3のまま。
Wake on LANに関する設定は、 仮想マシンオプション の中にあるこの電源管理項。仮想マシンがシャットダウン状態にあれば変えられるはずも、対象のネットワークアダプタにチェックを入れられません。
上にある スタンバイ応答 の設定を 仮想マシンをサスペンドします へ変更すると、その下にあるWake on LANのアダプタにチェックを入れることができました。
この設定変更前後で仮想マシンの設定が収められたvmxファイルは、次のように変化していました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
変更前) ethernet0.virtualDev = "vmxnet3" ethernet0.networkName = "Home LAN" ethernet0.addressType = "generated" ethernet0.wakeOnPcktRcv = "FALSE" ethernet0.uptCompatibility = "TRUE" ethernet0.present = "TRUE" ethernet0.generatedAddress = "00:0c:##:##:##:##" ethernet0.pciSlotNumber = "33" ethernet0.generatedAddressOffset = "0" 変更後) ethernet0.virtualDev = "vmxnet3" ethernet0.networkName = "Home LAN" ethernet0.addressType = "generated" ethernet0.uptCompatibility = "TRUE" ethernet0.present = "TRUE" ethernet0.generatedAddress = "00:0c:##:##:##:##" |
etherwakeでマジックパケット送信も
起こされる仮想マシン側の設定が終わったので、同じネットワーク内にいるRaspberry PiからWake on LANのマジックパケットを送信しようと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ sudo apt update $ sudo apt install etherwake Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: wakeonlan The following NEW packages will be installed: etherwake wakeonlan 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 19.7 kB of archives. After this operation, 42.0 kB of additional disk space will be used. Do you want to continue? [Y/n]y |
早速マジックパケットを送信してみるも、仮想マシンは起動してくれません。
1 2 3 4 5 6 7 8 9 10 |
$ sudo etherwake -D 00:0c:##:##:##:## The target station address is 0:c:29:39:74:53. Packet is 00 0c ## ## ## ## 00 0c ## ## ## ## 08 42 ff ff ff ff ff ff 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ## 00 0c ## ## ## ##. Sendto worked ! 116. $ sudo wakeonlan -i 192.168.51.255 -p 9 00:0c:##:##:##:## Sending magic packet to 192.168.51.255:9 with 00:0c:##:##:##:## |
そんな折、いつも仮想化関連の有益な情報に助けられているこちらのブログによると、
ESXiホスト自身には、非サポート機能のvsish CLIの中にWake on LANパケットを送出する機能があるのだそうで、こちらも試してみたのですが、
1 |
[root@localhost:~] vsish -e set /net/tcpip/instances/defaultTcpipStack/sendWOL 192.168.51.255 9 00:0c:##:##:##:## vmk1 |
残念ながらこれでも仮想マシンは起動しませんでした。
VMwareの見解
てっきり機能するものだと思い、よく前調べしなかった自分が悪いのですが、実は彼らの言うWake on LANとは何かは、きちんと文書化されていました。
引導を渡された思いになった文言はその中のこちら。
- [Wake on LAN] 機能をサポートしているのは Windows ゲスト OS のみで、
Vlance NIC や、フレキシブル NIC を Vlance モードで使用する場合には
サポートされません。
つまり、最新の VMware Tools は、ゲスト OS にインストールされません。 - [Wake on LAN] は、S1 スリープ状態の仮想マシンのみをレジュームできます。
サスペンド状態、休止状態、またはパワーオフ状態の仮想マシンを
レジュームすることはできません。
これはVMware ESXi 8.0に限った話ではなく、かなり古いバージョンの頃からこの仕様なので、これはもうこういうものなんだ、と受け入れるしかありません(ちなみにProxmoxはv7.3で、仮想マシンのWake on LAN起動がサポートされたのだそう)。