2021年12月1日水曜日

Tanzu Community Edition with bitfusion

 先月発表されたTanzu Community Edition を触ってみようと思いつつ時間が経ってしまったのですが、やっと構築してみました。

詳細は色々な方がBlogに書いているのでそちらを見ていただければと思いますが、Docker Desktopで動かせるのって、検証機材を用意する必要もないので嬉しいですね。

Docker Desktopもいずれ試してみたいのですが、今回はvSpheseで試してみました。

結論から言うとすごく簡単に構築できます。

これまでちょっと使うならMicrok8sとか使っていましたが、これからはTanzu Community Editionばかりになりそうです。

そして、Bitfusionも全く心配してませんでしたが動かすことができました。

Bitfusionもマニュアルに載ってない使い方や、監視方法があるので今後ためしていきたいとおもいます。





2021年11月5日金曜日

Bitfusion on Kubernetes

bitfusionネタが続きますが、、、

Bitfusionは仮想マシン、ベアメタルなどで使うことができますが、Kubernetesでも利用することができます。公式にはTanzuがサポートされるようですが、マニュアルを見るとTanzuじゃなくても動きそう。。。


ということで自宅の環境にUbuntu+microk8sを構築して、microk8s上のコンテナでBitfusionを利用してみました。

※BitfusionサーバとKubernetes環境の構築は省略します。


Kubernetes環境のkubeconfigをローカルPCにダウンロードし、vCenterのBitfusionタブ内のToken画面でkubeconfigをアップロードすると、Namespace一覧が表示されるので、Bitfusionを利用するNamespaceを選択します。



Tokenタブへ戻り、CREATEボタンを選択します。



Create Tokenウィンドウで先程選択したNamespaceが表示されるので選択します。

Tokensタブへ戻るとTokenが作成されていることが確認できます。




これでvCenter側での設定は完了なので、あとはbitfusionのリソースを使うことをyamlファイルに設定して、Podを起動するだけです。

次のyamlの中で赤字の部分を変更するだけでBitfusionが利用できるコンテナを起動することができます。

apiVersion: v1 kind: Pod metadata: name: pod_name spec: hostNetwork: true containers: - name: container_name image: container_image_path command: ["/bin/sh", "-c", "while : ;do curl http://localhost:80/; sleep 3; done"] volumeMounts: - name: config-files mountPath: /etc/bitfusion - name: certificate mountPath: /etc/bitfusion/tls volumes: - name: config-files projected: defaultMode: 0640 sources: - secret: name: bitfusion-client-secret-client.yml - secret: name: bitfusion-client-secret-servers.conf - name: certificate secret: secretName: bitfusion-client-secret-ca.crt defaultMode: 0640

引用:Enabling the vSphere Bitfusion Client


構築前は大変なのかと思っていましたが、あまりにも簡単で拍子抜けするくらいでした。




2021年10月21日木曜日

VMware Project Radium

 VMworldでセッションがあったのは気づかなったんですが、VMwareのブログで見つけました Project Radium!!!!!

 

Project Radium 

 

 簡単にいうと、これまでBitfusionで利用できていたのはNVIDIAのGPUだけでしたが、 AMDのGPU, GraphcoreのIPU、IntelのHabana、FPGA(?)などなどのNVIDIA GPU以外のアクセラレータをプール化してネットワーク経由で利用できるようになるそうです。

まだProject段階なようですが、早く製品化されることを願っています。



2021年8月25日水曜日

VMware Bitfusion on Home Lab

前回記事で紹介したDell Precisionですが、自宅でKubernetesなどなど試してみるためのリソース追加とKubernetest環境でのGPU利用、あとはBitfusion環境を作りたかったのが目的だったので、まずはBitfusionを構築してみることにしました。

VMware社のCompatibilityにはサポートするGPUとしてV100/S、A100、P40、T4の4種類が記載されています。
ただ、次のようにも記載がされています。

Bitfusion has general support for datacenter class, CUDA-supporting, NVIDIA GPUs, which qualify for DirectPath I/O on ESXi.

前回の記事にも記載しましたが購入したPrecisionにはGPUが搭載されていますが、GeforceのGTX1060なので、datacenter classではないのですが、Cudaは動くのでなんとかなるかもしれないという期待で構築を試してみました。

Bitfusionの大まかなインストールは次の手順なんですが、注意点としてはBitfusion ServerへGPUドライバを手動でインストールする必要があります。
1.Bitfusion Server Applianceの展開
2.Bitfusion ServerへGPUのパススルー設定
3.GPUドライバの手動インストール
4.Bitfusion Clientのインストール
5. vCenterへBitfusion Clientの登録

詳細な手順はVMware社の公式マニュアルを参照してもらえればいいのですが、BitfusionでGTX1060を利用するためには 1のBitfusion Server Applianceの展開時に次スクリーンショットのNvidia Packagesの項目でチェックボックスを未選択でBitfusion Applianceを展開します。



Appliance展開時にチェックボックスを未選択で展開しているので、手順4で必要なDriverなどをインストールします。 VMware社のドキュメントでは、Bitfusion Serverにログインして次のコマンドを実行するように記載されています。

$sudo install-nvidia-packages --defaults --yes

ですが、このコマンドではV100やA100などCompatibilityに記載してあったDatacente ClassのGPUであればドライバやFablic Managerがインストールされるのですが、GTXなどのGPU関連のドライバはインストールされないので、別途ダウンロードする必要があります。

私の環境ではNVIDIAのサイトから次のパッケージをダウンロードしました。
 ※Bitfusion Server ApplianceはPhotonOSが利用されているため、ダウンロードするパッケージはcentos版をダウンロードしました。

ドライバ:NVIDIA-Linux-x86_64-470.63.01.run
Fabric Manager:nvidia-fabricmanager-460.32.03-1.x86_64.rpm

インストール自体は特に難しいこともなく通常のインストール手順を実行すれば問題なくインストールが完了します。

$ chmod +x NVIDIA-Linux-x86_64-470.63.01.run
$ sudo ./NVIDIA-Linux-x86_64-470.63.01.run
$ wget http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/nvidia-fabricmanager-460-460.32.03-1.x86_64.rpm
$ sudo rpm -ivh ./nvidia-fabricmanager-460-460.32.03-1.x86_64.rpm
$ reboot

インストール後にvCenterで確認すると次のようにAPIのミスマッチなど若干エラーが出ていますが、簡単な動作確認しても特に問題は無いので色々と試してみたいと思います。


※見た感じ特に問題はなさそう。
$ bitfusion smi
+----------------------------------------------------------------------------------------+
| 192.168.68.41:56001 Driver Version: 470.63.01 |
+--------------------------------------+-------------------------+-----------------------+
| GPU Name Persistence-M | Virt Mem Alloc / All | BusId Vol Uncorr ECC |
| Fan Temp Perf Pwr:Usage/Cap | Phy Mem Used / All | GPU-Util Compute M. |
|======================================+=========================+=======================|
| 0 NVIDIA GeForce GTX ... Disabled | 0 MB / 6078 MB | 00000000:13:00.0 N/A |
| 42% 36C P8 8W / 120W | 2 MB / 6078 MB | 0% Default |
+--------------------------------------+-------------------------+-----------------------+
$ bitfusion list_gpus
- server 0 (leader) [192.168.68.41:56001]: running 0 tasks
|- GPU [0]: free memory (6078 / 6078MiB) NVIDIA GeForce GTX 1060 6GB (6.1)

2021年8月18日水曜日

vSphere7 on Dell Precision

自宅ではNUCのSkull canyonを検証機材として使っていたのですが、リソースが足りない!!
最近はTanzuやその他のKubernetesを試すのにリソースが足りなかったり、Jetson Nanoは GPU使えるけどできることが限られたりと、試したいこともできなくなってきました。

ということで自宅検証機としてリソースもまぁまぁあって、GPUが積める or 積んでいるPCを 探していたところ、ヤフオクでいいのを見つけました。

Dell Precision 3630!

メモリはできれば64GB以上ほしかったのですが、32GBですがまぁよしとして、CPUはi7-8700の6コア、 GPUはNVIDIAのGTX1060を搭載しています。※最大メモリサイズは128GBなので、足りなくなったら足す ことも検討。

vSphere7をインストールしているような情報は海外含めて見つけることはできなかったので、 最終的にインストールできるかドキドキしながらのヤフオク入札&落札となりましたが、全く問題なく vSphere7のインストールが完了しました。



リソースも増え、GPUも使えて、今後できることが増えたので色々と試していきたいと思います。

2021年7月6日火曜日

VMware Tanzu on Intel NUC

Tanzuを自宅の限られたリソースで試してみたくて、色々と調べて見つけた情報がこの2つ。

Demo Appliance for Tanzu Kubernetes Grid

Complete vSphere with Tanzu homelab with just 32GB of memory!

どちらもTwitterでいつも拝見しているWilliam Law( @lamw )さんの情報です。


自宅で自由になるNUCはちょうど32GBメモリなのでブログの通り構築すれば問題ないはず!とうことで、Demo ApplianceではなくNUCで構築してみました。



Williamさんのブログを見てもらうとわかると思いますが、vCenterのデプロイ・設定から、haproxyのデプロイなどなどほとんどがPowerCLIのスクリプトが公開されているので簡単に導入することができました。

ほとんどがスクリプトのダウンロード、環境に合わせてNWやパスワードを修正、実行で完了してしまいます。


ただ、私が構築した際には、vCenterへの接続でsslのエラーがでたので -Forceのオプションや、ワークロードの管理を有効にする際もSSL関連のエラーが出たのでスクリプトにSet-PowerCLIConfigurationのパラメータを追加したくらいでした。


今までPowerCLIをがっつり使うことはあまりなかったのですが、便利なのを実感しました。。。

スクリプト残しておけば実行するだけでいつも同じ環境できるし。今回は色々と勉強になりました。






2021年6月25日金曜日

Enable Nvidia V100 GPU in Passthrough mode on vSphere

 普段はNVIDIA T4を使うことが多くて特に意識することなくパススルーで利用していたのですが、今回V100をPass Throughで使おうとしたら電源が入らない。。。

表示されたエラーは、、、

仮想マシンのパワーオンに失敗しました。モジュール「DevicePowerOn」のパワーオンに失敗しました。

これって他の仮想マシンでパススルーで使っている場合に出た気がするけど、今回は1台しか使ってないしということで調べてみたら、ハイエンドのPCIデバイスはBIOSじゃなくEFIで仮想マシンを設定する必要があるそうです。

こんなのがあるなんて落とし穴でした。。。

ちなみにハイエンドのPCIデバイスというのは16GBメモリ以上搭載のデバイスなので、NVIDIAのV100、V100S、A100などなどのほかにも、AMDやいくつかのFPGAも対象となるようです。

なので、まずはOSのEFIでインストールが必要なのと、仮想マシンオプションを2つ設定する必要があります。

1つ目はこちら。気にせずこのまま設定して大丈夫です。

pciPassthru.use64bitMMIO=“TRUE”


2つ目が注意が必要です。下の例は128を設定していますが、実際にはPCIデバイスメモリ*枚数*2の値が必要なので、32GBメモリのV100*2枚使う場合は、32GB*2枚*2で128を指定する必要があります。

pciPassthru.64bitMMIOSizeGB=“128

ちなみに、32GBモデル*1枚の場合はこんな感じです。



この値が間違っていると、仮想マシンの電源は入るのですが入った直後にエラーもなく電源落ちます。。。


パススルーは特に意識する必要がないと思っていましたが落とし穴がありますのでご注意ください。



2021年5月20日木曜日

Bitfusion3.5 Release

3月にBitfusion3.0.0、4月に3.0.1がリリースされて、 早くもBitfusion3.5が5月11日にリリースされました。

いっときアップデートが2,3ヶ月止まっていたのですが、また1ヶ月ペースでアップデートされるようになりました。


今回のアップデートはつぎのとおり、主にCudaのバージョンサポートが追加されているのですが、1つだけRDMA関連で機能追加されています。


  • NVIDIA CUDA 11.2.2 のサポートを追加
  • NVIDIA cuDNN 8.1.1 のサポートを追加
  • NVIDIA Collective Communications Library (NCCL) 2.8.4 のサポートを追加
  • ib_read_bwib_read_latib_send_bwib_send_latib_write_bwib_write_lat などの PVRDMA のネットワーク パフォーマンス テスト ツールが vSphere Bitfusion OVA ファイルに事前インストールされています。


Bitfusionはネットワークのスループットがポイントなので、デフォルトでRDMA関連情報が取得できるようになるのはありがたいですね。



2021年4月26日月曜日

AI Enterprise Suite with vSpere7/Tanzu

3月にNVIDIA社から発表のあった、AI Enterprise Suiteをご存知でしょうか?

NVIDIA AI Enterprise SuiteはNVIDIAが認定したGPUサーバと、vSphere7 U2での稼働が認定されたソフトウェアの組み合わせになります。

AIワークロードの迅速な展開、管理、スケーリングのコンポーネントが含まれるとあり、仮想マシンだけではなくTanzu環境でも利用できるようです。


NVIDIAのサイトでは次のような画像が掲載されていますが、こちらからもTanzuがコンポーネントとして追加されているのが見て取れます。

それ以外には、右下に配置されている DPUの部分もポイントになってくると思います。DPUでRDMAを利用することによって、帯域幅と遅延を小さくし、複数ノードでのAIモデルの学習にも対応してくるものだと思います。

NGCにも新しく学習モデルが多数公開されているようなので、ますます楽しみになってきました。


2021年3月24日水曜日

Bitfusion 3.0 Release

2020年12月3日にBitfusion 2.5.1がリリースされてからおよそ3か月間アップデートがなかったのですが、 3月1日にBitfusionの3.0がリリースされました。

2.0が2020年7月にリリースされてから、12月3日の2.5.1まではメンテナンス含めて毎月のようにアップデートされていたのですが、ちょっと空いてからの3.0のリリースとなりました。


3.0では大きな機能追加はなさそうですが、リリースノート には以下の新機能が追加されたようです。

  • 後続の vSphere Bitfusion サーバでの新しいインストール環境
  • 複数のネットワークにおける vSphere Bitfusion サーバのサポートの向上
  • vSphere Bitfusion クライアントでの nvidia-smi アプリケーションの透過的インストール
  • NVIDIA ドライバ 460
  • NVIDIA CUDA 11.1
  • TensorFlow 2.4 のサポート
  • PyTorch 1.6 のサポート
  • TensorRT 7.1.3 のサポート
  • PaddlePaddle 2.0 のサポート

1つ目の "後続の vSphere Bitfusion サーバでの新しいインストール環境"はBitfusionサーバのインストール要件が若干変わっていることのようです。
2.5.1まではBitufusionサーバのメモリ要件は次のように記載されています。
  • vSphere Bitfusion サーバの最小メモリ要件は、サーバにインストールされている GPU メモリの合計の 150% 以上である必要があります。

3.0からは次のように変更されています。
  • vSphere Bitfusion サーバの最小メモリ要件は、32 GB と、サーバにインストールされている GPU メモリの合計の 150% のいずれか大きい方です。

検証環境などであればT4を1枚だけということもあるかと思うので32GBでいいのでしょうが、本番環境は複数のGPUを搭載することがほとんどだと思うので、合計GPUメモリの150%を指定することになると思います。


3つ目の "vSphere Bitfusion クライアントでの nvidia-smi アプリケーションの透過的インストール"は、2.5.1まではnvidia-smiを直接実行することはできず、実行するには次のようにbitfusionコマンドを利用する必要がありました。

    $ bitfusion run -n 1 -- nvidia-smi

まだ実機では確認していませんが、透過的にということなのでbitfusion run コマンドが不要になったのだと思われます。
以前は上記のbitfusion run コマンドはGPUを明示的にアサインしてGPU情報を取得していたので、別のワークロードでGPUをアサイン&利用中の場合は、nvidia-smiコマンドがGPUが解放されるのを待ってしまっていたので実質利用できなかったので、改善されて利便性が向上しそうです。


それ以外だとTensorflowやCudaなど新しいバージョンのサポートと、新しくPaddlePaddleが追加されているようです。


もう一つリリースノートで注意すべきはこちらです。

vSphere Bitfusion サーバで使用されている GPU のメモリの合計が 128 GB より大きい場合、GPU パススルーを使用できない

デフォルトでは、GPU パススルーの高度な仮想マシン プロパティ pciPassthru.64bitMMIOSizeGB は 256 に設定されています。1 台の vSphere Bitfusion サーバ上で、128 GB よりも大きいメモリを搭載した GPU を使用している場合、この構成によってパススルーの障害が発生する可能性があります。

 

最近ではGPUのメモリサイズも大きくなり、サーバへのGPU搭載数も増えているので引っかかる場合がありそうなので注意が必要です。
回避策はリリースノートにも記載されているので確認してみてください。













2021年1月26日火曜日

TKG Demo Appliance試してみる:Part1 OVA入手

インストールして触りだけ試したりしていたけど、そろそろがっつりやってみないととずっと思いつつ、生粋のインフラエンジニアにはなんとなくハードルが高くて手がつかなかったKubernetes。

自宅で試すにはリソース足りないからなぁ。。。自分に言い訳しつつ後回しにしてたけど、試してみたいソフトがTKGで動くらしい。しかもTKGもDemoアプリ(仮想アプライアンス)が提供されているので、在宅勤務で自宅環境も触りやすいので試してみようと思います。


VMware Flings

FlingsにはESXi Arm EditionやHCI Benchなど無料で使える便利ツールが多数公開(2021年1月時点で157種類)されています。位置づけとしては製品への機能組み込み前のテストのようなのものなんでしょうかね。

このFlingsでTKGのデモ環境を構築できるDemo Appliance for Tanzu Kubernetes Gridが公開されています。Workshopガイドも併せて公開されているので導入&基本操作までであれば簡単に試すことができます。

ということで、自宅のPCに導入してみたいと思います。


OVAのダウンロード

では、さっそくTKG Demo Applianceをデプロイしていきます。
サポートする環境としてはVMC on AWS、VMC on DellEMC、オンプレのvSphereの3種類なのですが、今回は自宅のNUCにインストールしてみます。

Demo ApplianceとPhotonOSのダウンロードを行います。
URLから直接ダウンロードしてもいいのですが、コンテンツライブライを利用してダウロードします。

vCenterのメニューからコンテンツライブラリを選択します。


新規作成を選択します。


名称を入力します。


サブスクライブ済みコンテンツライブラリを選択し、URLを入力します。
URLはマニュアルに記載があるこちら( https://download3.vmware.com/software/vmw-tools/tkg-demo-appliance/cl4/lib.json )こちらを入力します。

コンテンツライブラリで利用するデータストアを選択します。


設定が完了すると自動でOVAテンプレートがダウンロードされます。
2021年1月26日時点ではこちらのバージョンがダウンロードされました。



今回はここまでで次回はDeployに入りたいとおもいます。