ESXi 環境で遊びたい

前回までのあらすじ

Dell の G5 5000 という PC を昔買った.無駄にメモリが 64 GB もあるし単体で使うのはもったいないと,VMware vSphere Hypervisor (ESXi) をインストールしたのだった.それが楽しい地獄の始まりだった.

最初に悟ったのは ESXi はハードウェアとセットで買うものだなということ.そこらの適当な SSDNIC だとインストール時点でさっぱり認識しない.仕事で触るものは HP サーバなんかと一緒にライセンス購入しているのでそのあたり気にしたことがなかった.

その後ググりまくって Intel チップの NIC を取り付けたり ESXi のバージョンを下げたりして最終的にやっと ESXi 6.7 Update 1 のインストールに成功したのだった.

旧環境 (Hyper-V) から Windows VM を引っ越し,ライセンス認証して一息ついた後,「これだとせっかくの GeForce RTX 2070 が VM で生かせないじゃないか」と気づいた.そして PCI パススルーという概念を知り,さらなる地獄に突入していくのだった.

最終的に疲れ切ってしまい,結局今は 13 年もののデスクトップ PC をメインに使っている.

やりたいことを整理する

さてこの ESXi 環境で自分は何がしたいのか

  • VM Win 10 をメイン使いとしたい
  • GPU を生かしてゲームとか機械学習の勉強したい.

自然,PCI パススルーが要件になってくる.

あるべき形と遊び心

身も蓋もない結論から言うと,G5 5000 はそこそこ性能のいいゲーミング PC なのだから素直にスタンドアロンで使って,ESXi で遊びたいのであれば別途それ向きのハードウェアを買えばいい.それが最も自然な形.

だがお財布は厳しい.それが現実.それにせっかくの自宅環境,会社ではとてもできない攻めた構成をするチャンス.楽しい地獄に行こうじゃないか.

ESXi ホスト現状確認

ハードウェア情報

ESXi shell からコマンドで確認していく.

#--- ESXi 情報
[root@ESXI-01:~] vim-cmd hostsvc/hostsummary | grep -e fullName
         fullName = "VMware ESXi 6.7.0 build-10302608",
#--- PC モデル
[root@ESXI-01:~] esxcli hardware platform get
Platform Information
   UUID: *****
   Product Name: G5 5000
   Vendor Name: Dell Inc.
   Serial Number: *****
   Enclosure Serial Number: *****
   BIOS Asset Tag:
   IPMI Supported: false
#--- CPU 情報
[root@ESXI-01:~] vim-cmd hostsvc/hostsummary | grep -e cpuModel
      cpuModel = "Intel(R) Core(TM) i7-10700KF CPU @ 3.80GHz",

[root@ESXI-01:~] esxcli hardware cpu global get
   CPU Packages: 1
   CPU Cores: 8
   CPU Threads: 16
   Hyperthreading Active: true
   Hyperthreading Supported: true
   Hyperthreading Enabled: true
   HV Support: 3
   HV Replay Capable: false
   HV Replay Disabled Reasons: incompatible CPU
#--- メモリ 情報
[root@ESXI-01:~] esxcli hardware memory get
   Physical Memory: 68482859008 Bytes
   Reliable Memory: 0 Bytes
#--- SSD 情報
[root@ESXI-01:~] esxcli storage core device uidmap list

#--- SanDisk SATA SSD 240 GB
t10.ATA_____SanDisk_SSD_PLUS_240GB__________________20248N442803________
   Primary UID: t10.ATA_____SanDisk_SSD_PLUS_240GB__________________20248N442803________
   Alternative Primary UIDs:
   Legacy UID: vml.010000000032303234384e343432383033202020202020202053616e446973
   Alternative Legacy UIDs:

#--- Samsung NVMe SSD 512GB (ESXi システムディスク)
eui.353039304e8771560025384600000001
   Primary UID: eui.353039304e8771560025384600000001
   Alternative Primary UIDs: t10.NVMe____PM991_NVMe_Samsung_512GB______________________S509NF0N87715600000001
   Legacy UID: vml.0100000000333533305f333933305f344538375f373135365f303032355f333834365f303030305f303030312e504d3939
   Alternative Legacy UIDs: vml.0100000000202020202020533530394e46304e383737313536504d39393120

#--- SanDisk SATA SSD 240 GB
t10.ATA_____SanDisk_SSD_PLUS_240GB__________________20248N446313________
   Primary UID: t10.ATA_____SanDisk_SSD_PLUS_240GB__________________20248N446313________
   Alternative Primary UIDs:
   Legacy UID: vml.010000000032303234384e343436333133202020202020202053616e446973
   Alternative Legacy UIDs:

RDM ディスク情報

SATA 接続の SSD 2枚を VM 向けにパススルーしている.Maps to:vml. ... が上記 esxcli storage core device uidmap list の Legacy UID と対応している様子。

[root@ESXI-01:~] vmkfstools -q /vmfs/volumes/datastore1/RDM/SanDisk_SSD_PLUS_240GB_20248N442803.vmdk
Disk /vmfs/volumes/datastore1/RDM/SanDisk_SSD_PLUS_240GB_20248N442803.vmdk is a Passthrough Raw Device Mapping
Maps to: vml.010000000032303234384e343432383033202020202020202053616e446973
[root@ESXI-01:~]
[root@ESXI-01:~] vmkfstools -q /vmfs/volumes/datastore1/RDM/SanDisk_SSD_PLUS_240GB_20248N446313.vmdk
Disk /vmfs/volumes/datastore1/RDM/SanDisk_SSD_PLUS_240GB_20248N446313.vmdk is a Passthrough Raw Device Mapping
Maps to: vml.010000000032303234384e343436333133202020202020202053616e446973
[root@ESXI-01:~]

バイスパススルー状況

Address Description Passthrough メモ
0000:01:00.3 nVidia Corporation Serial bus controller Active VMGPU
0000:01:00.2 nVidia Corporation USB controller Active VMGPU
0000:01:00.1 nVidia Corporation Audio device Active VMGPU
0000:01:00.0 nVidia Corporation VGA compatible controller Active VMGPU
0000:03:00.0 Realtek Semiconductor Co., Ltd. Ethernet controller Active VM 用 LANポート
0000:05:00.1 Intel Corporation 82575EB Gigabit Network Connection Disabled ※未使用
0000:05:00.0 Intel Corporation 82575EB Gigabit Network Connection Disabled ESXi 管理アクセス用

Win10 VM 現状確認

PCI device 設定

PCI device 番号 バイス
PCI device 1 VGA compatible controller - 0000:01:00.0
PCI device 2 Audio device - 0000:01:00.1
PCI device 3 USB controller - 0000:01:00.2
PCI device 4 Serial bus controller - 0000:01:00.3
PCI device 5 Ethernet controller - 0000:03:00.0

モニタ出力

GPU パススルーしているので,RTX 2070 から HDMI ケーブルをモニタにつなげれば映る.再起動時やスリープ時に問題あり.

入力デバイス

オンボード USB ポートをパススルーできないので,マウスやキーボードを差せない.つまり直接動かす手立てがない.

音声出力

入力デバイスと同様,オンボードの音声入出力端子をパススルーできないため出力できない.

次にやること

  • USB カードを追加してパススルーし,USBマウス・キーボードを接続できるようにする
  • USB サウンドカードを接続し,外部スピーカーと接続する

まずはここからだ.

続き

it-muzukashiii.hatenablog.jp