Intel NUC11を買ってESXi7.0U2aをインストールしてみた
好きに触れるホームラボ環境が欲しいと思ったことと、ESXiの新しいバージョンを触りたかったため、
Intel NUCを購入して、そこに現行(2021/7/27現在)最新のESXi 7.0U2aをインストールしていくことにしました。
そもそもIntel NUCとは
いわゆるベアボーンキットに分類されるIntel製のPCです。
そもそもベアボーンキットってなんぞや、というところから触れますが、メモリやSSDなどの一部のパーツを取り付けることで完成するPCの組み立てキットのことを指します。
通常自作PCをする場合はPCケースやらマザーボードやらの選定を1から考える必要がありますが、例えばNUCであればメモリ、SSD、ミッキー型コネクタの電源ケーブルさえあれば普通に動かせる状態にまで持っていけます。
そういった特徴があるので、自作PCの第一歩としてもいいかもしれません。
NUCをはじめベアボーンキットは弁当箱程度の小さいキューブ型が主流で、置き場所に困りにくく、かつある程度の拡張性がある点が魅力的と言えます。
何故NUCを選んだか
メリットはいろんなところで語られていますが、私が捉えているメリットを以下に列記していきます。
- ESXiのインストール実績が豊富
NUCにESXiを入れてホームラボとするのは人気の構成であり、ググったときに日本語記事を含めた情報が集まりやすいです。
一例として、以下のVMware vSphere7 インテグレーションガイドの13章の中でもその選択肢の1つとして挙げられています。
また、そのコミュニティが活発なことからコミュニティ製のNUC用ドライバーが公開されており、それを含めた形でESXiのカスタムイメージを作成する(このやり方は後述します)ことにより、NUCに搭載された物理NICの認識をさせる事ができます。
- 省スペース
先ほど触れましたが、およそ10cm四方のサイズなので、置き場所に困りにくいです。
人によっては数台買ってミニラックのように積み上げ、それらをK8sやESXiのクラスターとして組んでいるような方もいるようです。
- ホームラボ用途では十分なリソースを積める拡張性
NUCのDDR4対応のモデルではメモリを最大64GB積むことができます。
また、今回買ったNUC11ではM.2(Type2280)インターフェースと2.5インチドライブベイも搭載しており、1TBのSSDを2枚刺しという構成も普通に組む事ができます。
実際に買ってみた
NUC含め、次の機器を購入しました。
- Intel® NUC 11 Performance kit - NUC11PAHi7
- アイネックス ACアダプタ用電源ケーブル 0.18m ACP-C5018
- Team ノートPC用 SO-DIMM DDR4 2666MHz PC4-21300 32GBx2枚組 64GBkit
- Western Digital ウエスタンデジタル 内蔵SSD 1TB WD Blue PC M.2-2280 SATA WDS100T2B0B-EC
ちなみに購入を考えた時点ではTsukumoがほぼ最安だったので、NUCだけTsukumoで補償付きで買って他の全てはAmazonでポチりました(トータル12万円ほど)。
物理セットアップ
セットアップといっても先述の通りメモリとSSDを刺して電源ケーブルを繋げるだけなので、非常に簡単でした。
あまり自作PCを組んだ事がない方でも、NUC付属の説明書にわかりやすく取り付け方が書いてあるので躓くことはないと思います。
こちらはBIOSの画面ですが、取り付けたメモリとSSDはちゃんと認識してくれました。
ESXiのカスタムイメージを作る
標準のESXiのイメージにはNUC用のドライバーが含まれていないため、NICを認識させることはできません。
よって、ドライバーを含んだ形でカスタムイメージを作成する必要があります。
カスタムイメージを作成する方法としては、次の2つの方法があります。
- vSphere Client上のImage Builderを使う
- PowerCLIに含まれるImageBuilderを使う
前者の方法は個人ではあまり現実的ではないので、後者のPowerCLIを使う方法を試します。
大筋の手順は、以下の記事を参考にさせていただきました。
大まかに言って、次のような手順となります。
- PowerCLIをインストール
- ImageBuilderを有効化
- クローン元のESXiのイメージプロファイルとNIC用ドライバーをダウンロード
- ベースとなるESXiのイメージプロファイルをクローンして、カスタムイメージを作る
- ドライバーをカスタムイメージに追加
- 作成したカスタムイメージをエクスポート
イメージビルド環境
- Windows10 Home Edition
PowerCLI自体は最近のバージョンからMacにも対応し始めましたが、その中に含まれるImage BuilderはWindowsのPowerShellでないとエラーが出て利用できない状態でしたので、素直にWindowsを利用しました。
手順
- PowerShellを管理者権限で起動
- PowerShellのセキュリティプロトコルをTLS1.2に変更
PS C:\WINDOWS\system32> [Net.ServicePointManager]::SecurityProtocol
Ssl3, Tls
上記のように古いセキュリティプロトコルを利用している場合、この作業を事前に行わないとPowerCLIのインストールが上手くいかないため、次のように対応します。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
以下のようにTLS1.2に変更できていればOKです。
PS C:\WINDOWS\system32> [Net.ServicePointManager]::SecurityProtocol
Tls12
- PowerCLIをインストール
Install-Module -Name VMware.PowerCLI -Scope CurrentUser
- 一時的に実行ポリシーを緩和する
PowerCLIをインストールしたタイミングでImageBuilderも同時にインストールはされますが、モジュールとしてロードされていないためImport-Module
する必要があります。
ただ、そちらを実行する場合に権限が足りておらず怒られてしまうので、現在のセッションだけ一時的に実行ポリシーを緩和します。
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
- ImageBuilderをインポート
Import-Module VMware.ImageBuilder
- カスタマーエクスペリエンス向上プログラムに参加
これは行わなくても良いですが、trueにしないと不要な出力が出てしまって見にくいので、この段階で有効化しておきます。
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $true
- クローン元イメージプロファイルのダウンロード
MyVMwareの製品パッチページでESXi 7.0を選択して検索すると、以下のようにオフラインバンドルが表示されますので、
Mware-ESXi-7.0U2a-17867351-depot
をダウンロードします。
- NUC用のドライバーをダウンロード
次のリンクから、Community Networking Driver for ESXi
をダウンロードします。
記事執筆時点ではversion 1.2が最新でしたので、こちらをダウンロードしました。
- クローン元のプロファイル名を確認
先ほどダウンロードしたディレクトリにcd
し、先ほどダウンロードしたアセットを追加します。
Add-EsxSoftwareDepot .\VMware-ESXi-7.0U2a-17867351-depot.zip
Add-EsxSoftwareDepot .\Net-Community-Driver_1.2.0.0-1vmw.700.1.0.15843807_18028830.zip
追加した後Get-EsxImageProfile
するとプロファイル名の一覧が出力されますので、控えます。
この名前は、後ほどイメージを作成するときに使います。
PS C:\Users\dev\Downloads> Get-EsxImageProfile
Name Vendor Last Modified Acceptance Level
---
ESXi-7.0U2a-17867351-no-tools VMware, Inc. 2021/04/09 5... PartnerSupported
ESXi-7.0U2a-17867351-standard VMware, Inc. 2021/04/29 0... PartnerSupported
今回はESXi-7.0U2a-17867351-standard
を利用することにしました。
- 変数を宣言
クローン元のプロファイル名と、新規作成するプロファイル名、ドライバーのvibを宣言しておきます。
$esxiImageProfileName = "ESXi-7.0U2a-17867351-standard"
$newImageProfileName = "ESXi-7.0u2a-IntelNUC11"
$IntelNUCVib = Get-EsxSoftwarePackage | where {$*.name -eq "net-community" -and $*.version -eq "1.2.0.0-1vmw.700.1.0.15843807"}
- 新規イメージプロファイルを作成
New-EsxImageProfile -CloneProfile $esxiImageProfileName -Name $newImageProfileName -Vendor Sarami
- ドライバーを追加
Add-EsxSoftwarePackage -ImageProfile $newImageProfileName -SoftwarePackage $IntelNUCVib
- ISOイメージのエクスポート
Export-EsxImageProfile -ImageProfile $newImageProfileName -ExportToIso -FilePath "ESXi-7.0u2a-IntelNUC.iso"
USBメモリに書き出し
- Rufusのインストール
公式サイトからインストーラーをダウンロードし、インストールします。
- USBメモリへのイメージ書き出し
Rufusを起動したら、対象のUSBメモリと先ほどエクスポートしたISOを指定して書き出します。
BIOSのアップデート
前節まででESXiのインストール準備が終わりましたが、このままUSBからインストーラーを起動してもNo Network Adapter
のエラーが頻発してしまい、ドライバーを入れていてもNICの認識が不安定なことが課題でした。
そんな中いろいろ調べていると、今回導入したドライバーについたコメントが目に入りました。
どうやらBIOSを上げると問題が解消される可能性があるという旨が記載されていましたので、次の手順を参考にしつつNUCのBIOSのアップデートを行いました。
アップデートには以下のページにあるPA0040.cap
を利用しました。
ESXiのインストール
いよいよESXiをインストールしていきます。
基本的には公式の手順通りに進めていきます。
- NUCのパワーオン
パワーオン前にディスプレイとキーボードは事前に接続しておきましょう。
- BIOSの起動デバイス変更
NUCの起動画面が立ち上がったら、USBから起動するために次のように起動順序を設定しておきます。
F2->Boot->Boot USB Devices First->F10(Save and Exit)
BIOSの設定後に再起動が行われると、ESXiのインストーラーが立ち上がって来ます。
- Welcome to the VMware〜のダイアログが出たらEnter
- End User License Agreementが出てきたら、F11でAccept
- Please Select a keyboard layoutが出てきたら、Japaneseを選択
- Enter a root passwordが出てきたら、root passwordを入力
- インストール対象ディスクを指定
今回は購入したM.2 SSDにインストールしました。
- インストール
- インストールが完了したらUSBを抜いて再起動
- USB Bootの設定を解除
F2->Boot->Boot USB Devices Firstのチェックはずす->F10(Save and Exit)
- 再起動すると、DCUI(ESXiの設定コンソール)が表示される
ネットワーク設定
これまでの手順でESXiのスタンドアローン機としてのセットアップが完了しました。
ただ、ネットワーク要件として
- MacからNUCのVMware Host Clientにアクセスしたい
- NUCからインターネットに接続したい
という2点を実現したかったため、次のような構成を組んでみました。
まず、スイッチングハブにMacとNUCを繋ぐことで相互に接続ができる状態にしました。
ただ、これだけだとNUCはインターネットに出ていけないので、家に転がってた子ルーター(トラベルルーター)を一緒にハブに接続することで、NUCが子ルーターを経由してアップリンクの親ルーターを通って外に出ていけるようにしました[1]。
ちなみに親ルーターを直接ハブに繋いでいないのは、作業環境が物理的に親ルーターと離れたところにあるためです。
構成
- Mac: MacOS Big Sur 11.5
- NUC: Intel® NUC 11 Performance kit - NUC11PAHi7
- 親ルーター: Synology RT2600ac
- 子ルーター: Buffalo WMR-433W
- スイッチングハブ: LAN-SW05PSBE
- その他
- LANケーブル3本
- Mac用Ethernetアダプタ
手順
- Mac、NUC、子ルーターをスイッチングハブに接続
Mac側作業
- 環境設定->ネットワークを開く
- ネットワークサービス順序を入れ替え
Macは親ルーターとも直接Wi-fiで接続されているのですが、デフォルトだと新しく認識したEthernetアダプタ(図中のUSB 10/100/1000 LAN)から最優先で出て行くようになってしまってホップ数が増え、その結果通信が激遅になってしまうので、子ルーターをできるだけバイパスするようにWi-fiを最優先ネットワークとします。
- Ethernetアダプタ->IPv4の設定->DHCPサーバーを使用 に設定されているか確認
これでMac側がDHCPクライアントとなり、スイッチングハブに繋がったDHCPサーバーに対してキャストするようになります。
上手く動いていれば、図のように子ルーターのDHCPサーバー機能で192.168.13.0/24のレンジからIPがランダムで払い出されます。
これでMac側の作業は完了です。
NUC側作業
NUC上のESXi側もデフォルトでDHCPクライアントとして動作する関係上この時点でIPが振られているかもしれませんが、ESXiには静的なIPを付与したいので、以下の設定を行いました。
- DCUIを開く
- Configure Management Networkを選択
- IPv4 Configurationを選択
- Set static IPv4〜を選択して以下のように入力
- IPv4 Adress: 192.168.13.2[2]
- Subnet Mask: 255.255.255.0
- Default Gateway: 192.168.13.1
- 子ルーター
- DNS Configuration
- Primary DNS Server: 任意のDNSのIP
- 一連の設定が終わったらEscapeすると「Configure Management Network: Confirm」という表示が出るので、表示に従ってNetwork ServiceをRestart
- Set static IPv4〜を選択して以下のように入力
- Troubleshooting Optionsを選択(この辺はお好みで)
- Enable ESXi Shellを選択
- Enable SSHを選択
- Mac->NUCの疎通確認
$ ping -c 3 192.168.13.2
PING 192.168.13.2 (192.168.13.2): 56 data bytes
64 bytes from 192.168.13.2: icmp_seq=0 ttl=64 time=1.121 ms
64 bytes from 192.168.13.2: icmp_seq=1 ttl=64 time=1.562 ms
64 bytes from 192.168.13.2: icmp_seq=2 ttl=64 time=1.398 ms
--- 192.168.13.2 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.121/1.360/1.562/0.182 ms
MacからPingが当たればOKです。
- 外部接続確認
# 疎通確認
$ ssh 192.168.13.2 -l root ping -c 3 8.8.8.8
Password:
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=116 time=9.343 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=6.520 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=5.985 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 5.985/7.283/9.343 ms
# 名前解決確認
$ ssh 192.168.13.2 -l root ping -c 3 example.com
Password:
PING example.com (93.184.216.34): 56 data bytes
64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=111.597 ms
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=114.306 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=110.821 ms
--- example.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 110.821/112.241/114.306 ms
どちらも問題なければOKです。
VMware Host Clientの作業
Macのブラウザからhttps://<固定したIP>
に接続して、VMware Host Clientにログインします(rootユーザーでログイン可)。
ESXi自体は無償ですが、ライセンスを有効化する必要があるので、以下のVMware vSphere Hypervisor 7.0ダウンロードセンターからライセンスを入手します(細かい手順は控え忘れてましたが、特にハマることはないと思います)。
ライセンスを入手したら、次の手順で有効化します。
最終的に次のようにESXi上でメモリやストレージが認識していればOKです!
最後に
ハマりポイントは少しありましたが、物理構築から論理構築まで非常に簡単でした。
家庭に好きに使えるリソースが欲しい方は、是非選択肢の一つとして検討してみてください。
次回以降は、この環境を使っておうちvCenter Serverの構築やVyOS、VMware Tanzu[3]の構築などを行っていく予定です。
参考
Discussion