ESXi8.0をRyzen5 5600Gで構築
この記事で実現すること
1年半前に、「ESXI7.0をRyzen7 5700Gで構築」の記事で、Ryzen7 5700GでESXi7のセットアップをしました。今回はESXi8.0の動作確認も含めてRyzen5 5600Gでセットアップしました。
ご注意事項
2024/1/22に発表されたVMWareブログによりますと、スタンドアロン製品の提供を終了し、サブスクリプションモデルに変更されることとなりました。この無償版ESXiは今後提供停止となりますが、サポートは継続されるとの事です。
無償版ESXiの利用にあたっては、まずこちらの記事「VMWare 無償版ESXiの提供終了について」を参照されることをお勧めします。
ESXi8のためのハードウェア選定検討
実は最初からESXi8をセットアップするつもりはなく、WindowsPCを新調するつもりでした。私はゲームはやらないので、せいぜい4Kのビデオが見られれば十分というPCの使い方をしており、ビデオカードを購入する事は殆どありません。パソコン工房で「STYLE-S0P5-R55G-EZX」という5600Gを積んだ機種が8万円台と安かった事もあり、あまり深くは考えずに注文しました。
パソコン工房
https://www.pc-koubou.jp
ハードウェア構成
注文したPCは以下の構成でした。
【OS】Windows 11 Home
【プロセッサー】AMD Ryzen 5 5600Gプロセッサー (3.9-4.4GHz/6コア/12スレッド/16MBキャッシュ/TDP 65W)
【CPU冷却グリス】【熱伝導率: 9W/m K】 シルバーグリスArctic Silver 5塗布サービス
【CPUクーラー】静音CPUクーラー Wraith Stealth[トップフロー]
【グラフィックアクセラレーター】Radeon Graphics(CPU統合グラフィックス)
【メインメモリ】16GB(8GB×2)[DDR4-3200 / デュアルチャンネル]
【1stストレージ[OSインストール]】500GB SSD / NVMe M.2[PCIe 3.0×4]
【チップセット】AMD B550チップセット
【サウンド機能】High Definition Audio subsystem
【内蔵ネットワークカード】有線:1000BASE-T ※無線機能はついておりません
【光学ドライブ】DVDスーパーマルチドライブ[LG GH24NSxx]
【電源】400W[80PLUS BRONZE認証]/ TFX電源
【ケース】スリムタイプMicroATXケースHEC 7KJC[フロントUSB3.0]ブラック
さて、PCが届いてから、ハードウェアを確認したところ、NVMeはウェスタンデジタルのBlueが組み込まれていました。また、マザーボードはASRock社のものです。そういえば、前回のESXi7.0のセットアップでは、セキュアブートは断念していました。Win11 Homeがセットアップされているモデルでしたが、WDのBlue(SN570)が入っていた事もあり、ふつふつとESXi8.0をインストールしたいと思い始め、ESXi8をクリーンインストールする事にしました。
ストレージ
前回は、VMware Commmunityで鉄板だった970EVO Plusでした。ESXiではSamsungが確実という印象でしたが、980 Pro NVMeでは、ファームウェアの不具合で故障率が高いという報告が上がっています。ESXiはNVMeストレージの種類を選ぶため事前調査が必要ですが、今回、何となくうまく行くだろう感があってBlue(SN570)にESXi8をセットアップしました。結果、全く問題ありませんでした。なぜかESXiの事例としてあまり出てこないのが不思議です。。。
うまく行かなければ、William Lam氏のNVMeに関する情報で、SabrentのRocket Plus NVMeを試そうと思っていたところでした。
https://williamlam.com/2023/02/quick-tip-additional-nvme-vendors-sk-hynix-sabrent-for-esxi-homelab.html
ネットワークカード
前回は、intelのX710のSFP+4Portを使いましたが、今回はSFP28の検証も兼ねてMellanox Connect X-5を選定しました。Connect X-4はWindowsやNASで使おうと計画してます。前回はセキュアブートがうまく行かなかった点は課題でしたが、実はそれが功を奏したところもありました。X710のESXiのドライバーはデフォルトではフローコントロール(pauseパラメータ)がオフになっています。それで、ブート時に、/etc/rc.local.d/local.sh
にpauseパラメータを有効にする設定を加えていました。もし、セキュアブートであれば、/etc/rc.local.d/local.sh
にスクリプトを記述しても無視されます。
UEFIの設定
さて、UEFIのリベンジです。色々な情報をこれまで収集し、セキュアブートの初期化をすればセキュアブートが可能と調べがついていました。
最初、Secure Boot ModeをCustomに変更し、Install default Secure Boot keysを実施した上でセットアップしましたが、セキュアブートでインストールされませんでした。以下のページでGIGABYTEのマザーということでセキュアブートに関する情報がありました。
Restore Factory Keys を選択していただき、ポップアップが表示されますのでYes(はい)を選択してください
今回のマザーボードはASRockですが、以下の手順でセキュアブートにできました。
- Secure Boot ModeをNormalからCustomに変更する。
- Clear Secure Boot Keysを実行する
- Install default Secure Boot keysを実行する。
- Secure Boot ModeをNormalに戻す。
この手順を踏んでセットアップ開始したところ、無事セキュアブートが可能になりました。無償版ESXiはTPMは使えませんので、単に改ざん防止という事になります。
簡単な確認方法として、セキュアブートが有効である場合、ESXiの管理コンソールのセキュリティとユーザーの許容レベルをパートナーからコミュニティに変更できなくなります。また、前述したlocal.sh
もスキップされます。
インストール
これまで同様、Rufusで32GBのUSBメモリにISOファイルを登録しUSBブートからESXi8.0Update1aをセットアップします。
なお、セットアップされる場合はVMWareのサイトで最新のバージョンを確認下さい。
VMWare ESXi8.0
https://customerconnect.vmware.com/jp/evalcenter?p=free-esxi8
メーカーはiiyamaなのに、なんでMouseComputerなんだろう。。。
ネットワーク
ドライバーはnmlx5_coreとなっています。SFP28のDACケーブルをスイッチに接続し、vmnic0が25Gbpsでリンクアップしています。
ESXi8にセットアップしたUbuntu22ではOS上は10GbEと認識していますが、速度は23Gbps近くは出ています。
Ubuntuからの送信
1 | yoshi@ub22:~$ iperf3 -c 192.168.x.20 |
Ubuntuの受信
1 | yoshi@ub22:~$ iperf3 -c 192.168.x.20 -R |
受信は25Gbpsのワイヤレートが出ています。
Ubuntuからの送信側では再送が多いようです。これはまだESXiの構成または設定の問題なのか私の環境の問題なのかは分かっていません。
NVidiaのサイトのInboxドライバの情報はESXi8.0向けは4.23.0.36-8vmwという事になっています。
NVIDIA Native Drivers for VMware ESXi Inbox Drivers Release Notes
https://docs.nvidia.com/networking/display/VMwareESXiInboxDriversReleaseNotes
なお、最新のESXi8.0Update1aでのMellanoxのドライバのバージョンは以下の通りです。NVidiaのサイトのものよりも新しいですね。これはまた次回にドライバが更新されるかもしれません。
1 | [root@localhost:~] esxcli software vib list | grep nmlx |
色々な情報を探してみてもやはりESXi7.0の情報は充実しており、まだESXi8.0は安定というには早いかなと感じます。
ESXiにおけるNICのフローコントロールについて
ESXiにはフローコントロールの制御について、送信、受信のpauseパラメータを設定できます。
Connect X-5を使っている状況でESXiにSSHし、以下のコマンドでpauseパラメータの状況が確認できます。
1 | [root@localhost:~] esxcli network nic pauseParams list |
Pause Params Supported
がtrue
の場合は、フローコントロールの機能を持っています。Pause RXがfalseだとスイッチからpauseフレームの通知を無視してしまいます。またPause TXがfalseだと自身が飽和した時にpauseフレームを送信しません。上記ではデフォルトでフローコントロールがオンになっています。
一方、ESXi7.0のintel x710では、以下の結果になりました。Pause RX/TXがfalseとなっています。
1 | [root@esxi2:~] esxcli network nic pauseParams list |
この場合は、前述した、/etc/rc.local.d/local.sh
にフローコントロールをOnにするコマンドを列挙します。
1 | esxcli network nic pauseParams set -n vmnic0 -t t -r t |
繰り返しですが、これはセキュアブートではない場合にのみ設定が可能です。
10GbEとWi-Fiなど、速度差がある端末同士で効率の良い通信を行うためにはフローコントロールは必要と言えます。フローコントロールが無い場合、私の環境ではWi-Fi6のiperf3の例では900Mbps→750Mbps程度には劣化します。Wi-Fi電波の範囲ギリギリとかWi-Fiの別のAPへのローミングなどセンシティブな箇所で安定度が高まるとお考えください。
フローコントロールはこのようにホスト側での設定とネットワークスイッチ側と双方で有効にしておく必要があります。
なお、ESXiにおいて少し高度な話としては、Single Root I/O Virtualization(SR-IOV)による仮想マシンにNIC(NICが持つ仮想機能)を直接割り当てる方法で高速化する方法もあります。Windows ServerやRed Hat Enterprise LinuxなどOSを選びますが今後機会があればテストしてみます。
※ESXi上のUbuntuはSR-IOVに対応していません。
まとめ
25GbEはあくまで実験的に検証しているものであり、私自身がパワーユーザーではない事もあり、今のところメインは10GbEとし、スイッチ間を25GbEで使うつもりでいます。ただし、アプリケーション同士で9Gbps程度の速度が25GbE環境下で出ているからといって、ネットワークを10Gbpsに変更しても影響が出ないかと言われるとそうでもなく、7Gbps程度に落ち込むケースも確認できています。今後色々検証していきたいと考えています。このブログで紹介している25GbEは簡単に接続できているように見えますが、私の使っているネットワークスイッチ(Ubiquiti PRO Aggregationスイッチ)とMellanox Connect Xカードとの相性が良い事もあります。