この記事では 自宅にESXi環境 を導入するための検討過程と,ベアボーンPC 上に ESXi をインストールする手順を残します.
ESXi とは,ハイパーバイザー型仮想化ソフトウェアのひとつで,vSphere と呼ばれる仮想化ソフトウェアの中核をなしています.1
ESXi が入っている環境といえば,下の画像みたいなクソデカサーバーを想像していたのですが…
(画像引用 )
ベアボーンPCと呼ばれる小さなマシンにも ESXi 環境が作れるとのことで,この記事にやり方を記します.
0. 結果
- かかった金額:約8万円
- 構築時間:2.5時間
1. システムの要件
特に以下の用途を考えます.
- ESXi で作成した仮想マシンを用いて Kubernetes クラスターを構築し,仮想的なサービスの検証を行う
1.1 性能要件
仮想マシンの用途にKubernetesが含まれていることから vSphere with Tanzu が利用できることが望ましく,したがって必要な vSphere のバージョンは 7.0 とします.
また,Kubernetes クラスターを作成することから,仮想マシンの要求するリソース量について以下のように見積もりました.
- 仮想マシンの数(見込み):最大10程度
- 仮想マシン1個あたりが使用するストレージ容量:80GB
- 仮想マシン1個あたりが使用するメモリ容量:2GB
以上から,マシンスペックに関して以下の条件が要求されます.
- CPU: 10スレッド以上
- メモリ: 32GB以上
- SSD: 1TB以上
1.2 その他の要件
設置場所が自宅であることから,以下の非機能要件を要求されます.
- 静粛性が高いこと
- 消費電力が少ないこと
- 場所を取らないこと
さらに,以下の条件を満たすことが望ましいです.
- 安価であること
- 拡張性を有すること
2. ハードウェア
ESXiのインストールにあたって,最も大事なのはハードウェアの選定です.
ESXiには専用のドライバが必要なため,ハードウェア要件がやや厳しいです.
中でも,よく問題に挙がっているのがNIC (ネットワークカード) のドライバで,NICを認識できずにインストールに失敗するケースが多いようです.
その場合は本記事のようにESXiのカスタムイメージを作成することになりますが,少し手間がかかります.
ESXi対応ではないハードウェアを使う場合,事前にこのあたりをよく調べておく必要があります.
2.1 検討過程
ESXi環境を作るだけなら,以下の選択肢があります.
価格 | 大きさ | インストールの手間 | 消費電力 | |
---|---|---|---|---|
法人向けサーバー(PowerEdge等) | 5~100万円 | 大 | 小 | 大 |
PC | 5~30万 | 中 | 中 | 中 |
シングルボードコンピュータ (Raspberry Pi等) |
~1万円 | 小 | 中 | 小 |
いずれも,vSphereの導入方法はGoogle検索で大量に見つかります.
性能やインストールの手間の観点からは法人向けサーバーがいいのですが,場所をとるし,ファンの音もうるさいので見送り.
Raspberry Piは安価で小さいのが魅力です.vSphereをインストールする方法もネット上に多く見つかりました.
ただ,要件に照らし合わせてマシンパワーが足りないので見送り.
残るは PC です.これは選択肢が広いので,要件から選択肢を絞ります.
- 場所をとらないこと ⇒ ミニPC くらいのサイズがよい
- 安価で拡張性を有すること ⇒ ベアボーン
ということで ベアボーン に行きつきました.
ベアボーンPCの選択肢として,広く普及しているものをいくつか選びました.
このうち,4X4 BOX と X300 は Ryzen 4000番台対応ですが,近年の半導体不足とRyzen人気のため Ryzen CPU の価格が高くなっており,残念ですが選択肢から外れました.
残り3択ですが,どれを選んでも要件は満たすため,勘で DeskMini H470 にしました.
2.2 購入したもの
要件から CPU, メモリ, SSDの要求性能は決まっていますので,適当に選定して以下を購入しました.
- ベアボーンPC:ASRock DeskMini H470
- CPU: Core i5-10400 (2.90 GHz, 6コア12スレッド)
- メモリ: Crucial DDR4 ノート用メモリー 16GB x2
- SSD: Crucial MX500 (1TB)
※1 DeskMini H470はIntelの第11世代CPUに対応しているため,資金が許す限りそちらを買うのがよさそうです.
※2 一部の非 SATA SAS SSD がローカルSSDとして検出されないことがあるようです.
2.3 組み立て
DeskMini H470 の説明書に従えば迷うことはほとんどなく,30分程度で組み立ては完了しました.
3. ソフトウェア
ハードウェア
の章に書いたように,標準のインストーラでは案の定 NICを認識しなかったため,ESXiのカスタムイメージを作成することになります.
まず,カスタムイメージを作成するための作業用PCとして Windows10マシンを用意します.
3.1 必要なファイルのダウンロード
作業フォルダ C:\ESXi-Customizer
を事前に作成してください.
3.1.1 NICドライバのダウンロード
そこで,以下のリンクからCommunity Networking Driver for ESXiをダウンロード
解凍後,vib20/net-community
配下にある VMW_bootbank_net-community_1.2.0.0-1vmw.700.1.0.15843807.vib
ファイルを C:\ESXi-Customizer
フォルダ直下に配置します.
3.1.2 カスタムイメージ作成のためのスクリプトのダウンロード
大変ありがたいことに,vSphere のカスタムイメージを作成するためのスクリプトを開発・公開してくださっている方がいます.
ESXi-Customizer-PS は,ESXiインストールISOを作成するプロセスを大幅に簡素化・自動化するPowershellスクリプトです.
-
ESXi-Customizer-PS の
ESXi-Customizer-PS.ps1
というファイルをダウンロードし,作業用PCのC:\ESXi-Customizer
直下に配置します. - 作業用PCでPowerShellを管理者権限で実行し,以下のコマンドを実行します:
PS C:\WINDOWS\system32> cd C:\ESXi-Customizer
PS C:\ESXi-Customizer> Set-ExecutionPolicy Unrestricted
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
3.2 PowerCLI のインストール
私の環境では、PowerCLI が未インストールでしたので、インストールします。
管理権限で PowerShell を開き,以下のコマンドを実行します.
PS C:\ESXi-Customizer> Install-Module -Name VMware.PowerCLI -Scope CurrentUser
続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet
プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または
'C:\Users\futak\AppData\Local\PackageManagement\ProviderAssemblies' に配置する必要があります。'Install-PackageProvider
-Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGet プロバイダーをインストールすることもできます。今すぐ
PowerShellGet で NuGet プロバイダーをインストールしてインポートしますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit
ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
からモジュールをインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
3.3 カスタムイメージの作成
以下のコマンドでインストール用のisoファイルを作成します.
PS C:\ESXi-Customizer> .\ESXi-Customizer-PS.ps1 -v70 -pkgDir C:\ESXi-Customizer\ -NSC
画像のように,私の環境では WinError 10054
が出て止まってしまいました.
これは割とよくあるエラーのようで,一番多い原因は PowerShellのTLS1.2が使えないことのようなので,以下の手順を試しましたが,私の環境ではそれでも解決できませんでした.
そこで,こちらのサイト を見ながら -ozip オプションを使用して offline bundle を作成した後、-izip オプションを使用して offline bundle から iso イメージを作成しました.
3.3.1 -ozip オプションによる offline bundle の作成
PS C:\ESXi-Customizer> .\ESXi-Customizer-PS.ps1 -ozip -v70 -pkgDir C:\ESXi-Customizer\ -NSC
ESXi-7.0U2a-17867351-standard-customized.zip
のような zipファイルが作成されていれば成功です.
3.3.2 -izip オプションによる iso イメージを作成
PS C:\ESXi-Customizer> .\ESXi-Customizer-PS.ps1 -izip .\ESXi-7.0U2a-17867351-standard-customized.zip -v70
ESXi-7.0U2a-17867351-standard-customized.iso
のような isoファイルが作成されていれば成功です.
3.4 ESXiインストールメディア作成
起動可能な USBメモリ の作成に Rufus を使います。 以下のサイトからポータブル版 Rufus 3.14 Portable
をダウンロードします.
USBメモリ を挿入し,Rufus でISOイメージを書き込みます.例えば以下のサイトが参考になります.
3.5 vSphereのインストール
ISOを書き込んだUSBメモリ をインストールしたいマシンに挿し込み,起動します.USBメモリからうまく起動しない場合は BIOS や UEFI のブート優先順位を確認してください.
インストーラが起動した後の手順は例えば以下のサイトが参考になります:
また,上記ページにあるように,固定IPにするとよいです.
接続して,パスワードを入力すると,初期画面が現れます.
4. 作業時間ログ
- 事前の情報収集:6時間
- 組み立て:30分
- vSphereインストール:2時間(トラブルシューティング含む)
- 記事の作成:2時間
情報収集とトラブルシューティングにかなりの時間がかかりました.
5. 参考記事
- VMWare ESXi
- VFrontDe/ESXi-Customizer-PS
- VMware ESXi 7.0(vSphere Hypervisor) をインストールする
- 第10世代 Intel NUC への ESXi 7.0b のインストールと初期設定
- Intel NUCへのESXiインストール
- ESXi-Customizer-PS で WinError 10054 となる時の対応
- DeskMini A300にESXi6.7.0をインストールする
- [ESXi]自宅サーバにESXi7.0インストールで手こずった話
- だいたい7万円くらいで作成する自宅ESXi環境