2年ほど前にイベントのデモとして登場していた、Raspberry Pi(arm)向けのESXiが、いよいよVMware FlingsでTech Previewの位置づけとしてリリースされていたので、早速インストールして触ってみました。
ちなみに、たまたま仕事でVMware Flingsを開いたら昨日付けでリリースされていたのでめちゃくちゃ驚きました。
ESXi Arm Editionの入手
ESXi Arm Editionは以下のページから入手できます。ISOイメージのダウンロードにはVMwareのアカウントが必要でした。
また、同じページからRaspberry Pi向けのセットアップガイド「Fling-on-Raspberry-Pi.pdf」が入手できますので、あわせてダウンロードしましょう。
以下の手順はセットアップガイドを元に解説しているので、公式ドキュメントがあればいい方はインストール部分は読み飛ばしてください。
試す前に: 必要なもの
ESXi Arm EditionはいくつかのArm搭載サーバーで試すことができるようですが、おそらく一番試しやすいのはRaspberry Pi 4(以下Pi4)でしょう。本稿でもRaspberry Pi 4を例に解説します。
Raspberry Pi 4
Pi 4にはRAMのバリエーションがいくつかありますが、4GBもしくは8GBが必要です。とくに8GB RAMモデルが推奨されています。
また、セットアップガイドでは、USBの安定性や発熱改善の観点からPi 4に最新のEEPROMを適用することが推奨されています。Pi 4を最新のEEPROMにするには、最新のRaspberry Pi OS(32bit)でPi 4を起動して、 sudo apt update; sudo apt upgrade -y
でアップデートしたあとで以下のコマンドを実行するか、再起動を2度繰り返せば自動で最新になるでしょう。執筆時点での最新のEEPROMイメージは2020-09-03版です。
$ sudo rpi-eeprom-update -a $ sudo reboot
MicroSDカード1つとUSBメモリ2つ
構築の流れとしてはMicroSDカードにファームウェア(UEFIブート環境)を構築したあと、ESXiは別途USBメモリにインストールする形になっています。まとめようと思えばまとめられそうにも思えますが、おそらく他のハードとブート環境を揃えるためにこのようになっているものと考えられます。
よって、MicroSDカードは1GBもあれば十分といえますが、いまどきそのような容量のMicroSDを用意するのは逆に難しいので、適当に1枚用意してください。
USBメモリは、インストーラ用とインストール先ストレージ用の2本を用意します。USB3.0メモリを使用すれば早くインストール・起動できます。
データストア用ストレージとしてiSCSIもしくはNFS領域
セットアップ後にデータストアを作ろうとしたところ、USBストレージを接続しても認識されなかったため、iSCSIもしくはNFSでネットワークストレージを利用するのがてっとり早そうです。幸い筆者の家にはNetgearのReadyNASに以前作成したiSCSIのVMFSボリュームが存在していたため、これがそのまま利用できました。
ファームウェア(UEFI環境)の構築
MicroSDカードを、SD Card Formatterなどでフォーマットします。このときボリューム名を「UEFI」とします。
UEFI環境構築に必要なファイルをダウンロードしてzipを解凍します。
- 最新のファームウェア
- Pi 4向けのUEFI Firmware
- https://github.com/pftf/RPi4/releases/download/v1.20/RPi4_UEFI_Firmware_v1.20.zip (2020/10/12 URLが誤っていたため修正しました)
解凍した最新のファームウェアから、bootディレクトリ内のファイルのうち、kernel*.img以外の全てのファイルをSDカードにコピーします。
続けて、解凍したPi 4向けのUEFI Firmwareの中身を全てSDカードにコピーします。一部ファイルが既にMicroSDカード上に存在していますが上書き(Macの場合、overlayディレクトリは置き換えでなく結合)します。
ファイル配置後のMicroSDカードの中身は以下のような状態になります。
Pi4 4GB RAMを使用している場合はconfig.txtに「gpu_mem=16」を追記する必要があるようです(今回は8GB RAMを使用しているため略)。
インストーラUSBメモリの用意
インストーラUSBメモリは、MicroSDカードと同じくSD Card Formatterでフォーマットしておきます。
ESXi Arm EditionのISOイメージをマウントして、マウントしたISOイメージの中身のファイルを全てUSBメモリにコピーします。
UEFI環境の起動と各種設定
Pi 4にMicroSDカード・インストーラUSBメモリ・インストール先のUSBメモリ・HDMI・キーボードを接続して電源を入れます。USBメモリはどちらもUSB3.0接続で大丈夫でした。
Raspberry Piロゴが表示されたらESCキーを押してセットアップメニューに入ります。
セットアップメニューで「Device Manager」→「Raspberry Pi Configuration」→「Advanced Configuration」と進みます。
「Limit RAM to 3GB」をDisabledに変更します。この設定を行わないと、ESXiがメモリを3GBまでしか認識できません。
F10キーを押して設定を保存して、セットアップメニューまで戻り、「Continue」を選択して一度リセットします。
インストール
リセット後、ESXiのインストーラが読み込まれて、しばらくするとインストーラが開始します。インストール手順はいつものESXiと全く同じなので割愛します。
インストールが終わったら、インストーラUSBメモリを抜いて再起動します。
ESXi Arm Editionを使う
起動後もいつものESXiと同様、DHCPが有効の場合画面にIPアドレスが表示されるのでここにWebブラウザでアクセスしたり、F2キーでメニューに入って各種設定をしたりできます。
Webブラウザーでログインした様子も普通のESXiと同じです。
先述の通り、ソフトウェアiSCSIを有効化して、ReadyNAS上のiSCSI VMFSボリュームをマウントしましたが、この手順も普段のESXiと同じなので割愛します。仮想マシンの作成手順も同様のため割愛です……。
仮想マシンの作成で注意が必要な点は、当たり前といえば当たり前なのですが、arm版のOSしか起動しない点です。例えばUbuntuなら以下のページからarm版ISOイメージをダウンロードして、データストアに配置した上でVMにマウントして起動します。
VMのパフォーマンスについては、そもそもNASのストレージ速度が早くないこともあって、セットアップ中はだいぶもっさりした感じがありましたが、iperf3を使ってVMと別のPCとでネットワークの速度を確認したところ1Gbpsに近い速度が出ることを確認できたため、もう少しパフォーマンスの良いストレージを使用すれば、もう少し快適に利用できるのではないかと推測しています。
その他試してみたこと
いくつか気になって試してみてできたことを挙げてみます。動いてしまえば普通にESXiだなあ……という感じになってしまい、何を試せばよいやら状態ではありますが。
CLIのコマンド
ESXiのSSHを有効化してログインし、vim-cmdやvmkfstoolsコマンドがふつうに使えそうなことが確認できました。vmkfstoolsあたりは処理速度次第ではPi4から作業できるようになるとサーバーを用意しなくて済むかもしれないので、便利そうな気がしました。
物理USBデバイスのアタッチ
適当なUSBメモリを差し込みVMに割り当てて/proc/partitionsで見るところまでできました。その先の動作までは未確認です。普段でのVMでもあまり使わない機能なのでできたところで嬉しいことはあまり思いつきません。。
Pi 4オンボードEthernet以外のUSB Ethernetの利用
USB Ethernet アダプターを接続して、vmnicとして使えそうな点を確認しました(実際の疎通は未確認です)。ただし、GbEアダプターを接続してもcdceドライバーにより100Mbpsリンクの扱いになるようです。
無償版ライセンスの割当て
ESXi 7の無償版ライセンスキーを割り当てることは一応できました。インストール直後は180日の評価モードとして動作しており、Tech Preview版であることを考えると、わざわざ無償版ライセンスキーを割り当てる必要はないかもしれませんが……
まとめ
ESXi Arm EditionのTech PreviewをRaspberry Pi 4で動かして、まずは軽く触ってみました。
起動してしまえばいつものESXiと同じように使えてしまうため、使用上の目新しさはないのですが、どデカいサーバーで動いていたESXiが(がんばれば小さな自作PCでも動かなくはないですが)、クレジットカードサイズのRaspberry Piで動くというところに新たな可能性を感じてワクワクしました。
次は、複数台のPi 4を用意してvCenter Serverでにぶら下げてvMotionなどを試せると楽しいかなと思っています(できるのかしら…?)。