ベアメタル インスタンスにインストールされた vSphere ESXi
はじめに
VMware Cloud on AWS で用いられるハイパーバイザー vSphere ESXi は、オンプレミスの環境と同様にベアメタル上にインストールされます。VMware が提供するハンズオンラボのように仮想マシン上にハイパーバイザーをインストール (Nested ESXi) するのではなく、ベアメタル上にインストールされます。実際には、AWS でも現在 (2018/05) プレビュー中の i3.metal と同等の EC2 ベアメタル インスタンスが利用されています。
VMware Cloud on AWS の UI では i3.metal という表記ではなく i3p.16xlarge という表記となります。
繰り返しになりますが、Xen や Nitro KVM 上の EC2 仮想マシン インスタンスではなく、EC2 ベアメタル インスタンスが VMware Cloud on AWS では利用されます。ハイパーバイザーはこれまでの進化の過程で様々なオーバーヘッドを排除してきました。しかし、流石にそのオーバーヘッドを 0 にすることは難しいため、物理サーバー上の最大サイズの仮想マシンが、その物理サーバーに性能で勝ることはまずありません。VMware Cloud on AWS ではハードウェアの最大の性能を vSphere ESXi、vSAN、NSX で引き出すためにベアメタル インスタンスという選択をしました。
もし仮想マシンで実装したら?
もし仮想マシンで vSphere、vSAN、NSX を動かすという選択をしたならば、ユーザーが利用する仮想マシン on 仮想 ESXi on 仮想マシン (いわゆる ネストの仮想マシン) は、ハイパーバイザーのオーバーヘッドを 2 重に受けることとなり、その影響は 2 倍以上となってきます。昨今の ESXi は、pvscsi や vmxnet の Native Driver を組み込むなど Nested ESXi の性能を引き上げるべく長年改善していますが、あくまでベアメタル インスタンスが VMware Cloud on AWS としてベストという意味となります。決して Nested ESXi を Dis る訳ではありません。むしろ大好物だったりします。
x86 サーバーはコモディティ?
EC2 のベアメタル インスタンスは市販されてるサーバーではありません。また、i3 インスタンスを提供するためのインスタンス、すなわち AWS Xen を動かすためのハードウェアですので、vSphere ESXi の稼働を想定したものではありません。各種ハードウェア認証の近くで働く者としては、これを僅か 1 年で安定動作するところまで辿り着いた両社のエンジニアの努力に脱帽するばかりです。「x86 サーバーはコモディティだ」といわれますが、これは「もの凄い努力を貴方の目の届かないどこかの誰かが行いコモディティにしている」と言い換えられると思うのです。
今後 x86 サーバーでも、NV-DIMM、Intel Virtual Management Device (VMD)、UEFI Secure Boot、25/50/100 GbE NIC、RDMA over Converged Ethernet (RoCE)、NVMe over Fabric など新しいデバイスや仕組みの登場が目白押しです。どインフラなエンジニアを自認する方であれば、そういったハードウェア ベンダーの方々の努力を意識して頂ければと思います。個人的な注目は Byte-Addressable な NV-DIMM と Intel VMD。Byte-Addressable な NV-DIMM は、永続的なストレージにブロックではなくアドレス指定でアクセスできる速度の変革は、データベース、Software Defined Storage、ファイル システムなど多岐に渡ると思います。また、Intel VMD は、NVMe SSD のホットプラグや LED 制御を司ります。これがないと NVMe SSD の障害時にオンライン交換することができません。この Intel VMD は CPU に組み込まれ、PCIe の Root Complex よりも CPU 側にあるので、ハイパーバイザーで制御せざるを得ないでしょう。ということで近いうちに来るであろう FULL NVMe SSD 時代には、ハイパーバイザーで提供する Software Defined Storage が強みを発揮すると思うのです。
AWS と VMware の世界観を繋ぐ Elastic Network Adapter
i3.metal インスタンスの特徴の一つに Elastic Network Adapter があります。VMware Cloud on AWS での協業の成果の一つがこの Elastic Network Adapter 向けの ESXi ドライバー (ena) になります。Amazon の独特なネットワークの世界観を持つ Virtual Private Cloud (VPC) 内で、vSphere ESXi、vSAN、NSX そして仮想マシンが通信できるのはこの Elastic Network Adapter のお陰です。詳細はこちらの動画をご参照下さいませ。