vm.gowatana.jp

NEOにほんごVMware(仮)

Tanzu Kubernetes Grid のために自宅ラボの vSAN をあきらめた話、あるいは自宅ラボで vSAN を作っている話。(仮想化基盤の下のストレージのマイブーム)

ツナカン(TUNA-JP Conference) #11 での、「Tanzu Kubernetes Grid のために自宅ラボの vSAN をあきらめた話、あるいは自宅ラボで vSAN を作っている話。(仮想化基盤の下のストレージのマイブーム)」の発表資料です。

tuna-jp.connpass.com

 

自宅ラボで、仮想マシンを展開する際の問題に対処するときの、物理ホスト側のストレージのマイブームについて紹介します。

 

おうちクラウド(自宅ラボ)環境

まず、私の自宅のラボ環境についての紹介です。

日本にあるので、Aria Operations で表現してみました。

 

リソース消費が大きめの主な仮想マシンは、ネステッド ESXi や Tanzu Kubernetes Grid ノードです。

 

自宅ラボの構成方針です。

 

自宅 vSphere の主要な物理マシンです。CPU 8 スレッド、メモリ 64GB の壁がります。

 

ネステッド vSphere を利用しています。

 

ネステッド vSphere を、ネストの内側から見た様子です。

 

物理マシン側では、基本的に vSAN(OSA)データストアを利用しています。

 

vSAN のフォルト ドメインは、電源タップ単位で構成しています。

 

物理 NIC ポートは、1 Gbps x 1ポート(オンボード or USB)のみです。

 

1Gbps ネットワークのためか、物理マシン(Intel NUC)のためか、このラボでは極端なストレージ遅延が発生しがちです。

 

vSAN → NFS データストア

vSAN は、メモリ搭載容量が 32GB や 64GB 程度の普通のパソコンで利用するには、メモリのオーバーヘッドが多めです。

 

そこで、あえて物理マシン側では vSAN の利用を諦めることで、仮想マシン側で多くのリソースを利用できるようになります。

 

そこで、ネステッド vSphere の ESXi 仮想マシンなどでは、共有データストアに NFS を利用することが多くなりました。物理マシンの vSphere 側に、NFS サーバの仮想マシンを作成して、ESXi 仮想マシンからマウントします。

 

これで物理マシンの ESXi ではメモリが空くので、ネステッド vSphere 側で vSAN が構成しやすくなります。

 

ちなみにネステッド vSAN 環境構築には、以前に Nested vSAN Advent Calendar の際に用意した vSAN 自動構築コマンド羅列スクリプトを利用しています。

 

NFS → iSCSI VMFS データストア

最近は、Tanzu Kubernetes Grid(TKG)による Kubernetes クラスタを作成することが多いのですが、この製品では仮想マシン(テンプレート)のクローンで Kubernetes ノードを用意します。

 

そんなときに、NFS サーバ仮想マシン / NFS データストアを利用するネステッド vSphere 環境では、仮想マシンのクローンで時間がかかることがあります。

 

そこで、Linux-IO(LIO)の iSCSI Target が VAAI に対応しているらしいという噂をもとに、Oracle Linux 9 で iSCSI データストアを構築するようになりました。

 

iSCSI データストアとして ESXi からマウントしてみると、VAAI に対応していそう(ハードウェア アクセラレーション = サポート対象)に見えます。

 

実際に仮想マシンをクローンしてみると、クローン処理中に iSCSI 接続経路にほとんどネットワーク トラフィクが発生せず、オフロードがされていそうです。

 

こんな環境で構築した TKG で、最近は Kubeflow を使用しています。

 

とはいっても、iSCSI よりも NFS のほうが環境構築が楽なので、なんとなく NFS もまだ利用しています。

 

NFS / iSCSI → ローカル SSD の VMFS データストア

昨年末には、vSphere with Tanzu 8.0 U2 の環境構築をしていました。

vSphere with Tanzu では、スタンドアロンの TKG とは異なり、仮想マシン クローンではなく OVF のデプロイを多用します。

 

vSphere with Tanzu の、下記のような環境を構築しました。

 

vSphere with Tanzu での スーパーバイザー → Tanzu Kubernetes Grid Service(TKGS)では、Supervisor Control Plane VM、Avi Service Engine、TKGS ノードの作成が、vCenter コンテンツ ライブラリでの OVF デプロイです

 

私の自宅の ネステッド vSphere 環境では、OVF デプロイも時間がかかり、タイムアウト → 仮想マシン削除 → 再デプロイ(エンドレス)。になってしまいました。

(NFS 仮想マシンを利用している例ですが)失敗ケースをあらためて見直してみると、けっこう遠回りな OVF デプロイをしてそうです。

 

別の失敗ケースでも同様・・・

 

たまに、奇跡的に成功することがあり、その際の OVF デプロイは、ネットワーク トラフィックがホスト内に閉じてそうでした。ということで、このようなケースでは、1台の物理マシンに閉じた構成にして、データストアもローカル SSD のみを利用すると快適になりやすいです。

 

ちなみに、昨年の vSphere with Tanzu 8.0 U2 自宅ラボ Advent Calendar 2023 では、大容量メモリ搭載マシンが用意できなかったので1台の物理ホストに寄せることができず、気合と奇跡の力で完遂しました。

 

ということで、OVF デプロイで時間がかかるような検証では、スペックのよい1台のマシンを用意して、ローカル SSD に仮想マシン配置を寄せられると無難かなと思います。

 

まとめ

自宅での vSphere with Tanzu や VCF 検証のために、メモリ 128GB 搭載のマシンがほしいと思います。

 

録画

www.youtube.com

 

以上、自宅ラボの紹介と、データストア ストレージのマイブームについての話でした。