前提知識
ESXiとは
- VMwareが開発したベアメタル型ハイパーバイザ
- 一台の物理マシン上に複数の仮想マシンを構築するための仕組み
- LinuxのKVMやCitrixのXen、MicrosoftのHyper-Vと比較して軽量といった特徴がある
- Elastic Sky X integratedの略称
- 元々、2001年にESXが登場し、2008年にその無償版という立ち位置でESXiがリリースされた
- その後、2010年にESXは廃止され、現在はESXiだけ残っている
- ESXiはカーネルにVMkernelと呼ばれる独自のカーネルを採用している
- ESXiを中心としたソフトウェアの無償版のパッケージはvSphere Hypervisorという製品名で提供されている
- ESXiやvCenterを中心としたソフトウェアの有償版のパッケージはvSphereという製品名で提供されている
- vCenterはESXiの一元管理や冗長構成、ESXiの移行機能(vMotion)の提供といった運用・管理のためのソフトウェア
- vSphere 7からはKubernetesに対応し、vSphere with TanzuやvSphere with Kubernetes(Project Pacific)といったKubernetes関連の製品もリリースされている
- vSphere+というサブスクリプションとアドオンの仕組みを取り入れた製品もリリースされている
Intel NUCとは
- ベアボーンPC
- ホームラボ(おうちクラウド)界隈ではおなじみ
- 小型、軽量、省エネといった特徴を持つ
- NUCはNext Unit of Computingの略称
ESXiの構築
前提条件
- Intel NUCは少し古いが第8世代のIntel NUC(NUC8iBEH)を使用する(現在は第13世代)
- ESXiはESXi 7.0 Update 3gを使用する
- ESXiの構築に必要なファイルの準備等は全てmacOS Ventura上で行う
- インストーラの書き込み先にはUSBメモリを使用する
- ちなみにハードウェアがESXiの求める要件を満たしているかどうかは以下のリンクから確認することが可能
BIOSのアップデート
- BIOSのアップデートについてはIntel NUCのBIOSをアップデートするに別途まとめている
BIOSの設定
- ESXiで使用しない機能をあらかじめBIOSの設定でオフにしておくことにより、パフォーマンスを向上させることができる
- Intel NUCの起動直後にF2キーを押下することで設定画面に入ることができる
- Advanced > Devices > Onboard Devicesの設定
- Advanced > Performance > Processorの設定
- Advanced > Security > Security Featuresの設定
- Advanced > Boot > Secure Bootの設定
- F10キーを押下して設定を保存後、設定画面から抜ける
ESXiのダウンロード
- 事前にVMware Customer Connectの登録を済ませておく(ダウンロード時に必要となる)
- VMware vSphere Hypervisor 7.0 ダウンロード センターからダウンロード可能
- 他にも以下のリンクからもダウンロード可能
- 「VMware vSphere Hypervisor (ESXi) Offline Bundle」をダウンロードする
- ハードウェアにIntel NUCを採用している場合や、SSDにNVMe接続を使用している場合、ESXiの標準インストーラにこれらのドライバが含まれていないため、Offline Bundleを使用してカスタムインストーラを作成する必要がある
- 上記のような項目に該当しない場合は「VMware vSphere Hypervisor (ESXi ISO) image」をダウンロードする
- 後々使用するため、ライセンスキーを控えておく
コミュニティドライバのダウンロード
- カスタムインストーラの作成に必要なドライバのダウンロード
- コミュニティドライバはVMware Flingsに公開されているが、これはVMwareが公式に公開しているドライバではなく、あくまでコミュニティが作成した非公式なドライバであるということに留意する
- NVMeのドライバ: Community NVMe Driver for ESXi
- Intel NICのドライバ: Community Networking Driver for ESXi
- USB NICのドライバ(今回は使用しない): USB Network Native Driver for ESXi
PowerShellとPowerCLIのインストール
- カスタムインストーラの作成にはvSphere ClientのImage BuilderかPowerCLIのImage Builderが必要となるが、今回は後者を選択する
- macOS VenturaにおけるPowerCLIのインストール手順についてはmacOSにPowerShellとPowerCLIをインストールするに別途まとめている
- ちなみにPowerCLIがマルチプラットフォームに対応し、Windows以外でもImage Builderが使えるようになったのはPower CLI 13からでつい最近の話
Python 3.7のインストール
- Image Builderの動作にはPython 3.7といくつかのパッケージが必要になる
- 以下はpyenvとpipを使用したインストール手順
# Python 3.7.16のインストール
$ pyenv install 3.7.16
# Python3.7コマンドが使用できることとPython 3.7のバージョンが表示されることの確認
$ python3.7 --version
Python 3.7.16
# pipのアップグレード
$ python3.7 -m pip install --upgrade pip
# 必要なパッケージのインストール
$ pip3.7 install six psutil lxml pyopenssl
# インストールしたパッケージの表示
$ pip3.7 list
Package Version
------------ -------
cffi 1.15.1
cryptography 39.0.1
lxml 4.9.2
pip 23.0
psutil 5.9.4
pycparser 2.21
pyOpenSSL 23.0.0
setuptools 47.1.0
six 1.16.0
カスタムインストーラの作成
- カスタムインストーラはざっくりと下図のような流れで作成する
- 作成手順
# Image Builderのインポート
PS /Users/username> Import-Module VMware.ImageBuilder
# Image Builderがインポートされたことを確認
PS /Users/username> Get-InstalledModule VMware.ImageBuilder
Version Name Repository Description
------- ---- ---------- -----------
8.0.0.20817746 VMware.ImageBuilder PSGallery This Windows PowerShell module contains PowerCLI ImageBuilder cmdlets.
# Offline Bundleのインポート
PS /Users/username> Add-EsxSoftwareDepot /Users/username/VMware-ESXi-7.0U3g-20328353-depot.zip
Depot Url
---------
zip:/Users/username/VMware-ESXi-7.0U3g-20328353-depot.zip?index.xml
# Intel NICのドライバのインポート
PS /Users/username> Add-EsxSoftwareDepot /Users/username/Net-Community-Driver_1.2.7.0-1vmw.700.1.0.15843807_19480755.zip
Depot Url
---------
zip:/Users/username/Net-Community-Driver_1.2.7.0-1vmw.700.1.0.15843807_19480755.zip?index.xml
# NVMeのドライバのインポート
PS /Users/username> Add-EsxSoftwareDepot /Users/username/nvme-community-driver_1.0.1.0-3vmw.700.1.0.15843807-component-18902434.zip
Depot Url
---------
zip:/Users/username/nvme-community-driver_1.0.1.0-3vmw.700.1.0.15843807-component-18902434.zip?index.xml
# Intel NICのドライバがインポートされたことを確認
PS /Users/username> Get-EsxSoftwarePackage | grep net-community
net-community 1.2.7.0-1vmw.700.1.0.15843807 VMW 2022/03/10 21:2…
# NVMeのドライバがインポートされたことを確認
PS /Users/username> Get-EsxSoftwarePackage | grep nvme-community
nvme-community 1.0.1.0-3vmw.700.1.0.15843807 VMW 2020/01/08 12:0…
# Offline Bundleに含まれるイメージプロファイルの確認
# VMware Toolsが含まれないイメージプロファイルには no-tools サフィックスが付与される
# セキュリティアップデートのみ含まれるイメージプロファイルには s / sc といったサフィックスが付与される
PS /Users/username> Get-EsxImageProfile
Name Vendor Last Modified Acceptance Level
---- ------ ------------- ----------------
ESXi-7.0U3g-20328353-no-tools VMware, Inc. 2022/08/23 3:0… PartnerSupported
ESXi-7.0U3g-20328353-standard VMware, Inc. 2022/09/01 0:0… PartnerSupported
# 使い回す文字列を変数に入れておく
PS /Users/username> $dstEsxiImageProfileName = "ESXi-7.0U3g-intel-nuc"
# Intel NUC用のイメージプロファイルの作成
PS /Users/username> New-EsxImageProfile -CloneProfile ESXi-7.0U3g-20328353-standard -Name $dstEsxiImageProfileName -Vendor Kazukichi
Name Vendor Last Modified Acceptance Level
---- ------ ------------- ----------------
ESXi-7.0U3g-intel-nuc Kazukichi 2022/09/01 0:0… PartnerSupported
# Intel NUC用のイメージプロファイルにIntel NICのドライバとNVMeのドライバを取り込む
PS /Users/username> Add-EsxSoftwarePackage -ImageProfile $dstEsxiImageProfileName -SoftwarePackage nvme-community, net-community
Name Vendor Last Modified Acceptance Level
---- ------ ------------- ----------------
ESXi-7.0U3g-intel-nuc Kazukichi 2023/03/07 1:5… PartnerSupported
# ISOファイル(カスタムインストーラ)としてエクスポート
PS /Users/username> Export-EsxImageProfile -ImageProfile $dstEsxiImageProfileName -ExportToIso -FilePath "ESXi-7.0U3g-intel-nuc.iso"
カスタムインストーラの書き込み
-
balenaEtcherを使用してUSBメモリにカスタムインストーラを書き込む
- 他にもUNetbootinやRufusといったツールや
diskutil
やdd
といったコマンドでも代用可能
- 他にもUNetbootinやRufusといったツールや
- 「Flash from file」から先程作成したカスタムインストーラを選択
- 「Select target」から書き込み先(例えばUSB)を選択
- 「Flash!」を押すと書き込みが実行される
- 書き込みが完了したらUSBメモリを取り外す
ESXiのインストール
- カスタムインストーラを書き込んだUSBメモリをIntel NUCに接続し、Intel NUCを起動する
起動ディスクの変更
- USBメモリからインストーラが起動しない場合、起動時にF10キーを押下して「Boot Menu」に入り、起動ディスクをUSBメモリに変更しておく
システム領域の設定変更
- デフォルトの設定では、システム領域に最大128GB使用される
- そのため、ストレージの容量が少ない環境では、仮想マシンのデータを保存しておく領域が確保できなくなってしまう
- 起動時に
Shift + O
で「Edit boot options」し、起動オプションにsystemMediaSize=min
を指定することでシステム領域に使用される容量を33GBに低減することが可能
- 起動時ではなく、インストーラに入っている
BOOT.CFG
を事前に編集しておくことでも対応可能
$ cd /Volumes/your_usb_memory/
BOOT.CFG
bootstate=0
title=Loading ESXi installer
timeout=5
prefix=
kernel=/b.b00
- kernelopt=runweasel cdromBoot
+ kernelopt=runweasel cdromBoot systemMediaSize=min
modules=/jumpstrt.gz --- /useropts.gz --- /features.gz --- /k.b00 --- /uc_intel.b00 --- /uc_amd.b00 --- /uc_hygon.b00 --- /procfs.b00 --- /vmx.v00 --- /vim.v00 --- /tpm.v00 --- /sb.v00 --- /s.v00 --- /atlantic.v00 --- /bnxtnet.v00 --- /bnxtroce.v00 --- /brcmfcoe.v00 --- /elxiscsi.v00 --- /elxnet.v00 --- /i40en.v00 --- /iavmd.v00 --- /icen.v00 --- /igbn.v00 --- /ionic_en.v00 --- /irdman.v00 --- /iser.v00 --- /ixgben.v00 --- /lpfc.v00 --- /lpnic.v00 --- /lsi_mr3.v00 --- /lsi_msgp.v00 --- /lsi_msgp.v01 --- /lsi_msgp.v02 --- /mtip32xx.v00 --- /ne1000.v00 --- /nenic.v00 --- /netcommu.v00 --- /nfnic.v00 --- /nhpsa.v00 --- /nmlx4_co.v00 --- /nmlx4_en.v00 --- /nmlx4_rd.v00 --- /nmlx5_co.v00 --- /nmlx5_rd.v00 --- /ntg3.v00 --- /nvmecomm.v00 --- /nvme_pci.v00 --- /nvmerdma.v00 --- /nvmetcp.v00 --- /nvmxnet3.v00 --- /nvmxnet3.v01 --- /pvscsi.v00 --- /qcnic.v00 --- /qedentv.v00 --- /qedrntv.v00 --- /qfle3.v00 --- /qfle3f.v00 --- /qfle3i.v00 --- /qflge.v00 --- /rste.v00 --- /sfvmk.v00 --- /smartpqi.v00 --- /vmkata.v00 --- /vmkfcoe.v00 --- /vmkusb.v00 --- /vmw_ahci.v00 --- /bmcal.v00 --- /crx.v00 --- /elx_esx_.v00 --- /btldr.v00 --- /esx_dvfi.v00 --- /esx_ui.v00 --- /esxupdt.v00 --- /tpmesxup.v00 --- /weaselin.v00 --- /esxio_co.v00 --- /loadesx.v00 --- /lsuv2_hp.v00 --- /lsuv2_in.v00 --- /lsuv2_ls.v00 --- /lsuv2_nv.v00 --- /lsuv2_oe.v00 --- /lsuv2_oe.v01 --- /lsuv2_oe.v02 --- /lsuv2_sm.v00 --- /native_m.v00 --- /qlnative.v00 --- /trx.v00 --- /vdfs.v00 --- /vmware_e.v00 --- /vsan.v00 --- /vsanheal.v00 --- /vsanmgmt.v00 --- /tools.t00 --- /xorg.v00 --- /gc.v00 --- /imgdb.tgz --- /basemisc.tgz --- /resvibs.tgz --- /imgpayld.tgz
build=7.0.3-0.55.20328353
updated=0
ESXiのセットアップ
- Enterキーを押下して「Continue」
- F11キーを押下して「Accept and Continue」
- ESXiのインストール先のストレージを選択
- キーボードのレイアウトの選択
-
root
ユーザのパスワードの設定
- インストールの確認
- F11キーを押下してインストールを開始
- インストールが走る
- USBメモリを取り外した後、Enterキーを押下して再起動
- 再起動するとESXiのDCUI(ダイレクトコンソールユーザーインタフェース)が表示される
- 余談だが、Kickstartをインストーラに仕込み、設定を自動化することも可能らしい
ネットワークの設定
- インストール直後はDHCPでIPアドレスが割り当てられるような設定になっている
- 今回は静的なIPアドレスを割り当てる
- F2キーを押下した後、先程設定したパスワードを入力
- その後、Enterキーを押下する
- 「Cofigure Management Network」を選択する
- 「IPV4 Configuration」を選択する
- 「Set static IPv4 ...」に「○」を入れ、IPアドレスとサブネットマスク、デフォルトゲートウェイに任意の値を設定する
- その後、Enterキーを押下する
- Yキーを押下し、設定を反映する
- 意図したIPアドレスに変更されていることを確認
vSphere Clientへ接続
- 別のマシン(今回の場合はMac)から先程設定したIPアドレス(今回の場合は
192.168.0.3
)宛にHTTPSでアクセスすると、vSphere Client(Web UI)が開く - 「ユーザー名」は
root
、「パスワード」には先程設定したパスワードを入力することでログインできる
ライセンスの割当
- ホスト > 管理 > ライセンス を開く
- ライセンスを割り当てない場合、Evaluation Modeとして動作する
- Evaluation Modeは60日で有効期限が切れてしまうが、ライセンスキーを割り当てることで無制限になる
- ちなみに無償版は仮想マシンのCPUが最大8wayに制限されている他、使用できない機能が多々ある
- 「ライセンスの割り当て」から先程控えたライセンスキーを入力して「ライセンスの確認」
- 「ライセンスの割り当て」を押下
- ライセンスが割り当てられた
NTPの設定
- ホスト > 管理 > システム > 日付と時刻
- 「NTP 設定の編集」を開き、「NTP を使用する(NTPクライアントの有効化)」にチェックを入れる
- 「NTP サービス起動ポリシー」は「ホストと連動して起動および停止します」を選択
- 「NTP サーバ」には今回はCloudflare Time Services(
time.cloudflare.com
)を指定(この他にもいろいろなPublic NTPが用意されている)
- 「NTP サーバ」が設定したサーバになっていることを確認
- ホスト > 管理 > サービス から
ntpd
を起動する
- ホスト > 管理 > システム > 日付と時刻 から「NTP サービスのステータス」が「実行中」になっていることを確認
ネットワークの確認
- ESXiで利用可能なスイッチには、ESXiから作成可能なvSphere Standard Switch(vSS: 標準スイッチ)と、vCenterから作成可能なvSphere Distributed Switch(vDS: 分散スイッチ)の2種類が存在する
-
vSwitch0
という名称のvSSがデフォルトで作成されている - ネットワーク > 仮想スイッチ > vSwitch0 > vSwitch トポロジ から確認可能
- 「VM Network」は仮想マシン用のポートグループ
- 「Management Network」は管理ネットワーク用のポート(VMKernelポート)
- 「物理アダプタ」はアップリンクのNIC
ストレージの確認
- ストレージ > デバイス > <任意のストレージ名> から確認可能
- 起動オプションに
systemMediaSize=min
を指定したため、システム領域が33GBに抑えられ、残りの容量が仮想マシンのデータを保存するためのVMFS領域に割り当てられている
データストアの確認
-
datastore1
という名称のデータストアがデフォルトで作成されている - ストレージ > データストア > datastore1 から確認可能
VMware Remote Consoleのインストール
- 仮想マシンのシェルへのアクセスはブラウザコンソールやSSHを使用する他に、VMware Remote Consoleという専用のツールを使用することもできる
- VMware Remote Consoleのインストールについては以下を参照