2017年5月20日土曜日

【ESXi】【PowerShell】ゲストOSの起動にWake On LAN(Magic Packet)を使用

注意!!下記の手順は、ゲストOSが壊れる可能性があります!!

スナップショットを取ってから実行すること。以下の記事に記載した通り、ゲストOSが壊れる可能性がある。

【ESXi】E1001eからVMXNET3に変更したらWin10起動不可


[仮想マシンへのWake ON LAN設定手順]
  1.  ブラウザを開く。
  2.  VMware Host Client(例:https://192.168.1.2/ui/#/host)のページへ移動。
  3.  [ナビゲータ]パネルの[仮想マシン]のツリーノードを展開。
  4.  win10x64(Wake On LAN対象のVM)を選択。
  5.  [パワーオン]ボタン押下。
  6.  ゲストOS起動後、プログラムの削除から、VMWare Toolsをアンインストール。
  7.  ゲストOSをシャットダウン。
  8.  win10x64(Wake On LAN対象のVM)を右クリック。
  9.  [設定の編集]を選択。
  10.  [ネットワークアダプタ1](Wake On Lan対象のNIC)のツリーノードを展開。
  11.  [アダプタ タイプ]を[E1000e]から[VMXNET3]に変更。
  12.  [保存]ボタン押下。
  13.  該当マシンの[パワーオン]ボタン押下。
  14. VMWare Tools をインストール。
  15. 下記のSendWakeupMsg.ps1の内容をテキストエディタに貼り付け。
  16. 設定値のMACアドレスとIPアドレスを変更。
  17. テキストをファイル保存。
  18. ゲストOSをスタンバイにする。
  19. 保存した.ps1ファイルを実行。


SendWakeupMsg.ps1
# 設定値============================================
# 起動対象PCのMACアドレス
$mac_addr = "11:22:33:44:55:66"

# 起動対象PCのIPアドレス
$ip_addr = "255.255.255.255" #ブロードキャストでも可能

# 処理内容=========================================
# magic packetの生成。FF×6の後に起動対象PCのMACアドレスが16回続く
$mac_addr -split ':' | %{[Convert]::ToInt32($_, 16)} | sv data
$packet = @(0xFF) * 6 + $data * 16 

# UDPクライアント生成&パケット送信
$udp_client = New-Object System.Net.Sockets.UdpClient 
$udp_client.Send($packet, $packet.Length, $ip_addr, 2304) | Out-Null
$udp_client.Close() 

●VMをスタンバイにした時のパフォーマンス
VM状態CPU使用率メモリ使用量下記イメージの時間帯
スタンバイ0.01~0.15%4GB00:46~01:20
VM起動し、アイドル状態1~4%4GB01:25~01:44

メモリ使用量は下がらない…。そりゃそうか、スタンバイだしなぁ。
CPU消費もアイドルなら低いし、やる意味ないかなぁ。



◆環境
  • 仮想マシン
    • CPU core数:4
    • メモリ:4GB
    • OS:Windows10 Pro x64
    • 仮想マシン:VMWare vShpere ESXi6.5
  • ホストPCの性能(参考)
    • CPU:Intel Core i5-4250U(2Core 2HT)
    • メモリ:16GB
    • ドライブ:SSD(ウルトラ II mSATA SSD SDMSATA-512G-G25C)
    • 仮想マシン:VMWare ESXi6.0上の仮想マシン

0 件のコメント:

コメントを投稿