Raspberry Pi 4でESXi Arm Edition使ってみました。【Install, Configure, Management】

VMware Flingsで公開されているESXi Arm EddtionをRaspberry Pi 4で使ってみました。
タイトルのICMはVMware研修から🤣

デバイス選定

私はESXi on armがVMware Flingsで公開された少し後(2020年末)にRaspberry Pi 4 8GBを買っていたので、こちらを使います。(最近半導体不足とかでRasberry Piどうなっているのかな~と調べてみると、在庫不足と価格高騰で大変なことになっているんですね😅)
今ESXi on Armを試すなら以下が良さそうです。

  • Raspberry Pi 4B (4GB and 8GB only)
    • 定番中の定番だが、今入手性、価格がつらい
  • Raspberry Pi 400
    • RAM 4GBなのでそこだけ注意です。キーボード付きでお得🤣
  • PINE64 Quartz64 Model A
    • VMwareのESXi-Arm Fling DocにSupported platformsに載っていたデバイス。8GBモデルでもそこそこ安い。
    • 動作事例は一応ある ESXi Arm Edition on the Quartz64 SBC
  • Ampere Computing Altra-based servers
    • OCIで使える可能性🤔

ちなみにRaspberry Pi 400については公式ブログで紹介されています。

という事で以下自分がRaspberry Pi 4 8GBでインストールしてハマったところ、気になった点合わせて書いておきます。

install方法

Raspberry Pi 4へのESXi on armのinstall方法は調べてみると割とたくさん情報があるのですが、とりあえず以下を参照すると良いです。

EEPROMのアップデート

まずはRaspberry Pi 4のEEPROMをアップデートします。EEPROMは何かというといわゆるPCで言うBIOS. 公式ドキュメント通りにRaspberry Pi Imagerで更新します。出荷時のEEPROMのバージョンが古いとmicroSDからしか焼けないので、とりあえすmicroSDカードにRaspberry Pi Imagerで書き込みdiskを用意し、EEPROMの更新を行いましょう。 Raspberry Pi Imager ちなみに更新されるバージョンはこちらから確認するか、書き込み後のRaspberry Piの画面出力から確認出来ます。

後述するBootデバイス一本化では、USBメモリから起動させるために最新のEEPROM書き込みとして、私はRaspberry Pi OS(32bit)からEEPROMの更新を行いました。

UEFIのイメージ作成

EEPROMの更新ののち、UEFIが起動出来るようにイメージを作成します。kernel*.imgを消してその他ファイルをコピーするなど、ドキュメント通りファイルを準備してFAT32でmicroSDなどに保存し、Raspberry Piを起動させましょう。これも最新のEEPROMであればUSBメモリから起動出来ると思いますが、確実に行くならEEPROMの更新で利用したmicroSDを流用するのが良いです。

UEFI起動後の設定

UEFIが起動したら3GiB Memory limitなどの設定を変更しましょう。変更しないとESXi on Armの起動に失敗します。

ESXi-Armのinstall

UEFIの起動および設定変更が終われば次にESXi-Armのinstallです。これは通常のx86のESXiのinstallと同様で、ISOイメージのUSBメモリにインストール先として上書きinstallが可能です。UEFIからUSBメモリのISOでinstallerを実行する流れなので、この辺りは通常のx86のESXi installと同じです。

ESXi on Armの起動

ESXi on Armのinstallが完了すれば、あとはUSBメモリからいつも通りESXiが起動し、画面上にはDCUI、host clientでブラウザアクセスが可能になります。公式ドキュメントにも記載されていますが、起動後vCenterにESXi on Armを追加する場合にはNTPの設定が必要です。設定を忘れずに。

ESXi on Armの起動ディスクを1本化したい

ここまでの手順を踏めばESXi on Armが無事起動出来るわけなのですが、UEFI用にmicroSD、ESXi on Armのboot deviceとしてUSBメモリを用意するなど、起動に必要なディスクが無駄に2つになります。
これを1つにまとめられないのかな~と思い調べると、ありました。

やっている事としてはEEPROMでUSB bootを可能にするためにBOOT_ORDERを変更したEEPROMを焼いたりしているのですが、自分が焼いた最新のpieeprom-2022-04-26.binではBOOT_ORDERは特になく、デフォルトでUSBメモリ、microSDを起動デバイスとして参照しているようでした。このため上記リンク先のEEPROMのBOOT_ORDERの変更などは特に必要ないです。

以下はRaspberry Pi OS(32bit)からEEPROMを更新した作業ログです。

[email protected]:~ $ PI_EEPROM_VERSION=pieeprom-2022-04-26
[email protected]:~ $ wget https://github.com/raspberrypi/rpi-eeprom/raw/master/firmware/stable/${PI_EEPROM_VERSION}.bin
--2022-04-30 16:45:13--  https://github.com/raspberrypi/rpi-eeprom/raw/master/firmware/stable/pieeprom-2022-04-26.bin
github.com (github.com) をDNSに問いあわせています... 52.69.186.44
github.com (github.com)|52.69.186.44|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://raw.githubusercontent.com/raspberrypi/rpi-eeprom/master/firmware/stable/pieeprom-2022-04-26.bin [続く]
--2022-04-30 16:45:14--  https://raw.githubusercontent.com/raspberrypi/rpi-eeprom/master/firmware/stable/pieeprom-2022-04-26.bin
raw.githubusercontent.com (raw.githubusercontent.com) をDNSに問いあわせています... 2606:50c0:8003::154, 2606:50c0:8000::154, 2606:50c0:8001::154, ...
raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 524288 (512K) [application/octet-stream]
`pieeprom-2022-04-26.bin' に保存中

pieeprom-2022-04-26.bin           100%[===========================================================>] 512.00K  --.-KB/s 時間 0.06s

2022-04-30 16:45:15 (8.34 MB/s) - `pieeprom-2022-04-26.bin' へ保存完了 [524288/524288]

[email protected]:~ $ sudo rpi-eeprom-config ${PI_EEPROM_VERSION}.bin > bootconf.txt
[email protected]:~ $ grep BOOT bootconf.txt
BOOT_UART=0
[email protected]:~ $ cat bootconf.txt
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0

[email protected]:~ $ sed -i 's/BOOT_ORDER=.*/BOOT_ORDER=0xf241/g' bootconf.txt
[email protected]:~ $ cat bootconf.txt
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0

[email protected]:~ $ sudo rpi-eeprom-update -d -f ./pieeprom-2022-04-26.bin
*** INSTALLING ./pieeprom-2022-04-26.bin  ***

   CURRENT: 2021年  4月 29日 木曜日 16:11:25 UTC (1619712685)
    UPDATE: 2022年  4月 26日 火曜日 10:24:28 UTC (1650968668)
    BOOTFS: /boot

EEPROM updates pending. Please reboot to apply the update.
To cancel a pending update run "sudo rpi-eeprom-update -r".

で、UEFIに保存しているfirmwareなどをESXI bootディスクであるUSBメモリのパーティション1(UEFI)にデータをコピーさせればUSBメモリ1つでESXi on Armが起動します。
※ISOの更新などで上書きされた場合、UEFIのデータコピーは再度必要になりそうです。

上手くbootしない時はESXi on ArmのUSBメモリをubuntuなどでマウントして1番目のパーティションにファイルが配置されているか確認しましょう。自分は/uefi/ 配下にファームウェアがコピーされていたのでハマりました😅

まとめ

今回ESXi on Armのインストール、初期設定周りについて紹介しました。ESXi on ArmはvSAN witnessとして2 Node vSANを組もうかなと思っていたので、次回そのあたりの設定などが出来ればと思います。性能的には断然x86の方が良いと思うのですが、消費電力の面からArmはやっぱり気になりますね。ただ最近の半導体不足、流通的にもRaspberry Pi 4の入手性が悪いのと価格も上がっているので、若干メリットが抑えられているのかなとも思います😓 今後に注目ですね。

Share Comments こ>のエントリーをはてなブックマークに追加
comments powered by Disqus