31
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

おうち ESXi の検討と導入

Posted at

この記事では 自宅に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の要求性能は決まっていますので,適当に選定して以下を購入しました.

ファイル名

※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ドライバのダウンロード

[redditの記事]
(https://www.reddit.com/r/homelab/comments/ngk1xj/help_finding_intel_network_drivers_for_esxi/)にあるように,I219-Vのドライバ(NE1000)を以下のリンクからダウンロードしようとしてもリンクが死んでいます.

そこで,以下のリンクから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スクリプトです.

  1. ESXi-Customizer-PSESXi-Customizer-PS.ps1 というファイルをダウンロードし,作業用PCのC:\ESXi-Customizer直下に配置します.
  2. 作業用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

管理者_ Windows PowerShell 2021-06-06 22.23.27.png

画像のように,私の環境では 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ファイルが作成されていれば成功です.

管理者_ Windows PowerShell 2021-06-06 22.43.46.png

3.4 ESXiインストールメディア作成

起動可能な USBメモリ の作成に Rufus を使います。 以下のサイトからポータブル版 Rufus 3.14 Portable をダウンロードします.

ファイル名

USBメモリ を挿入し,Rufus でISOイメージを書き込みます.例えば以下のサイトが参考になります.

3.5 vSphereのインストール

ISOを書き込んだUSBメモリ をインストールしたいマシンに挿し込み,起動します.USBメモリからうまく起動しない場合は BIOS や UEFI のブート優先順位を確認してください.

インストーラが起動した後の手順は例えば以下のサイトが参考になります:

また,上記ページにあるように,固定IPにするとよいです.

接続して,パスワードを入力すると,初期画面が現れます.

localhost.airport_ VMware ESXi - Google Chrome 202.png

4. 作業時間ログ

  • 事前の情報収集:6時間
  • 組み立て:30分
  • vSphereインストール:2時間(トラブルシューティング含む)
  • 記事の作成:2時間

情報収集とトラブルシューティングにかなりの時間がかかりました.

5. 参考記事

  1. 参照: Qiita 仮想化入門(ハイパーバイザー)

31
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?