2020年9月25日金曜日

Bitfusion Update

 7月にリリースされたBitfusionですが、毎月のようにUpdateがリリースされています。


vSphere Bitfusion 2.0.2 Updated on: 08 SEP 2020

  • Support for applications that register segmentation fault (SIGSEGV) handlers. This fixes an issue observed when using Caffee, a framework for deep learning.
     
  • Fixes health check issues when using Paravirtual RDMA (PVRDMA).
     
  • Fixes a potential freeze, or hang, when using the vSphere Bitfusion client.
     
  • Fixes a race condition that can occur when updating vSphere Bitfusion cluster statistics.

vSphere Bitfusion 2.0.1 Updated on: 04 AUG 2020

  • Fix for detecting license correctly for vSphere >= 7.0b

  • Updated NVIDIA driver to version 440.95.01

  • Support for multiple datacenters within a vCenter Server instance. (This does not mean that a Bitfusion Server can be supported by multiple vCenter Server instances.)

vSphere Bitfusion 2.0.0 Updated on: 09 JUL 2020

  • Dynamic, remote sharing. AI/ML applications do not need to be modified or recompiled. They run on client machines as-is, but their API calls to access GPUs are intercepted and sent for execution on Bitfusion server machines that house the physical GPUs. GPUs are allocated as needed and returned to the pool when a session or application completes.
     
  • Partial sharing. GPU memory can be partitioned into slices of arbitrary, different sizes, then allocated to different clients for concurrent use.
     
  • vCenter Server now hosts the vSphere Bitfusion management and analytic capabilities.

まだ、新しい製品なのでFixesがほとんどで新機能追加というわけではありませんが、
安定して動くようになるのはありがたいですね。

ドキュメントもわかりやすいですが、まだまだ情報量が少ない印象なので、そのあたりも追加されることを期待しています。


2020年7月31日金曜日

Bitfusion Server Resource & Client Resource

Bitfusionの導入について投稿しようかと思っていたのですが、こんなもんかと言うくらい簡単なのと、公式のインストールマニュアルが分かりやすいので、今回はBitfusion ServerとClientのリソースについて書いていきます。


<Bitfusion Server>

Bitfusion ServerはOVAファイルで提供されているため、展開はウィザードにしたがうだけなのですが、メモリサイズやvCPUのサイズは環境に合わせる必要があります。
ここでいう環境とは具体的にはGPUの種類と枚数になります。

公式のドキュメントには次のような記載があります。

  1. The minimum size is the aggregate total of GPU memory on all GPU cards passed through, multiplied by a factor of 1.5.
  2. Server compute – minimum cores is the number of GPU cards multiplied by 4

まず、1つ目のメモリサイズについて、Bitfusionサーバのメモリサイズは、搭載しているGPUメモリの1.5倍を割り当てる必要があります。
RecommendのGPUはNVIDIAの V100かT4と記載があるので、それらのGPUを搭載した場合のBitfusion サーバのメモリは次のようになります。

V100
GPUメモリは16 or 32GBなのですが、Bitfusionサーバで32GBメモリ版のV100*2枚を利用する場合は次の計算になります。
 
32GB*2枚*1.5=96GB

T4
T4はメモリサイズが16GBなので、同様に1台のBitfusionサーバで2枚のT4を利用する場合はこちらの計算式です。

16GB*2枚*1.5=48GB
 

2.のvCPUについてはBitfusionサーバに割り当てるGPU数*4を割り当てればOKです。



Bitfusion Clientに割り当てるメモリサイズはアプリケーションに依存してくるので個々の環境に合われる必要がありますが、アプリケーションが一度に利用するGPUメモリサイズの1.5倍ほどが目安となります。



2020年7月17日金曜日

Bitfusion requirements

前回はBitfusionのコンポーネントや基本構成について調べた内容を紹介いたしました。
今回は導入手順のまえに、Requirementを見ていきます。

<vSphere>
まずベースとなるvSphereですが、Bitfusionサーバが稼働するESXi(GPUプール)はvSphere7が必要になります。 噂ではU1からという噂もありましたが、Install GuideにはU1の文字はないので後日確認してみたいと思います。

GPUリソースを利用するBitfusionクライアントはvSphere6.7か7であればいいようなので、既存のvSphere環境が6.7であってもESXiのアップデートを行わずにBitfusionが利用できるようです。


<Client OS>
Bitfusionクライアントをインストールする仮想OSは、現時点ではUbuntuとCentOS、Redhatの3種類になります。 ※ベアメタルは現時点では未サポートです。
 Ubuntu16.04, 18.04
 CentOS7
 RHEL7.4以降
HorizonとかのWindowsでも利用できればCAD VDI環境などにも利用することができるのですが、BitfusionはAIやMLでの利用を想定しているので、このあたりはしょうがないですね。。。
あとはDockerコンテナにもインストールが可能です。



<GPU>
GPUはTeslaのV100かT4がサポートされるようです。ここもやはりAI/MLを想定しているからこのGPUなんだと思います。


<Network>
前回の記事にも書きましたが、Bitfusionはネットワーク経由でGPUリソースを利用するので最低でも10Gbpsで、できればそれ以上のネットワークが必要になります。
 ・10G Ethernet
 ・RoCE

Bitfusionを試した感じだと1msecだとかなり影響がでるなぁ。。。と思っていましたが、
予想以上に低遅延なネットワークが必要で、ノード間で50マイクロ秒もしくはそれ以下だそうです。

クライアントからBitfusionサーバに対して次の通信ポートを開ける必要があります。
通信ポート:56001, 55001-55100, 45201-46225



要件をまとめてみると一番のポイントは高速なネットワークですね。







2020年7月13日月曜日

Bitfusion リリース!

Bitfusionがリリースされました!! 

AIやディープラーニングが引き続き盛り上がっているので、Bitfusionに興味がある人も多いのでないでしょうか。 私もリリースされるのをずっと待ってました!


リリースされたばかりでまだまだ情報も少ないですが、Bitfusionの調べた内容を紹介していきたいと思います。


<特徴>
なんといってもBitfusionの1番の特徴は、ネットワーク経由でGPUリソースを柔軟に割り当てられることです。これまでGPUの仮想化といえば、GPUを搭載したESXiホスト上の仮想マシンにたいして、パススルーやNVIDIAのvGPUなど同一ホスト内のGPU仮想化に限られていたので、ネットワーク経由で自由に割り当てられるのはとても大きなメリットだと思います。
 ✳︎VMwareに買収される前のFlexdirectの時はFPGAなどのアクセラレータも利用できたっぽい(ロードマップ?)のですが、現時点ではGPUのみサポートされています。


<システム構成>
GPUプールのESXi上にBitfusionサーバ(アプライアンス)を展開し、ネットワーク経由でBitfusion ClientにGPUリソースを提供します。



Bitfusion Server
左側のESXiがGPUプールで、Virtual ApplianceがBitfusionサーバです。BitfusionサーバはVMwareから提供される仮想アプライアンスで、vSphere7 U1以上にデプロイします。
デプロイしたBitfusionサーバにはGPUをパススルーで設定します。

Bitfusion Client
右側のESXi上のVMはBitfusionを介してGPUリソースを利用する仮想マシンで、CentOSとUbuntuがサポートされています。このLinux仮想マシンにBitfusion Clientをインストールして、ネットワーク経由でGPUリソースを利用します。サポートされるLinuxの詳細のバージョンはドキュメントを確認してください。

Network
ネットワークは Ethernet(10Gbps)、RDMA、Infinibandをサポートしています。
GPUリソースをネットワーク経由で利用するので、広帯域、低遅延のネットワークが必要です。

Bitfusionライセンス
当初BitfusionはvSphere Enterprise Plusに内包される予定でしたが、vSphereのAdd-on として提供されることになったようです。ちょっと残念ですがBitfusionの利用状況を確認するのが目的のようなのでしょうがないですね。


今回はBitfusionの基本構成とコンポーネントを紹介しました。
次回以降は、利用方法だったり、導入手順などを投稿していきたいと思います。


2020年5月14日木曜日

vSphere with GPU

先日、vSphere7がリリースされブログなどでもTKGなど新機能の情報が多くなってきました。DockerやKubernetesはこれまでのインフラSEにはちょっと難しいですが、これからのSEには必要な知識だと思います。


さて、本題のvSphereでのGPU利用に次いてです。
最近はAIやDeep Learningということで毎日のように実証実験や導入事例のニュースが発表されています。コロナ関連でもAIを活用といったニュースがありますが、AI / Deep Learningで欠かせないのがGPUです。 

今現在、vSphereでGPUを利用するとなると2つの構成をとることができます。

 1. GPU パススルー
 2. NVIDIA GRID


1のGPUパススルーはvSpherにGPUを搭載し、仮想サーバへGPUを占有で割り当てて利用する方法です。このメリットは仮想サーバでGPUを占有できることです。その一方でデメリットはvMotionができないことです。vMotionやDRSが利用できないことでメンテナンスタイムやノード障害で仮想サーバが長時間停止する可能性があります。 Deep Learningで学習処理を行っているときにあと数十分で終わるところで障害でも発生したら目も当てられないですね。。。


2つ目のNVIDIA GRIDは、vMotionができますが、追加のライセンスが必要なことや、仮想サーバに割り当てられるGPUが4枚まで。また、構成が複雑になるなどのデメリットがあります。


そして私がかなり期待しているのが今後リリースされてくる予定のBitfusionです。
GPU Poolからネットワーク経由で仮想サーバにGPUを提供するのでネットワークがかなり重要になってくると想像できますが、仮想サーバへのGPU割り当て数は特に制限ないし、vMotionも可能と、上記2つのデメリットを補うことができると想像します。
GPUも複数割り当てや、メモリ分割しての割り当てなどかなり柔軟に対応できるようなのと、Dockerなどのコンテナ環境でも利用できそうです。

今後のAIインフラも変わってくるのではないかと思います。

2020年4月8日水曜日

NSX-T 3.0 GA

NSX-Tの3.0がリリースされました。先日リリースされたvSphere7に続いての楽しみな製品のリリースです。


リリースノートには新機能として次のような記載があります。
  • Cloud-scale Networking: NSX Federation
  • Intrinsic Security: Distributed IDS, Micro-Segmentation for Windows Physical Servers, Time-based Firewall Rules, and a feature preview of URL Analysis
  • Modern Apps Networking: NSX-T for vSphere with Kubernetes, container networking and security enhancements
  • Next-Gen Telco Cloud: L3 EVPN for VM mobility, accelerated data plane performance, NAT64, IPv6 support for containers, E-W service chaining for NFV

フェデレーション、セキュリティ、コンテナ、Telcoとキーワードだけでもホットなエリアの機能追加に注力されているのがわかります。

Modern Apps NetworkingではvSphere7で提供されたKubernetesと連携するコンテナネットワークを提供できるようになり、IDSでアプリケーションのセキュリティ対策も強化とアプリケーションのためのネットワーク機能強化がされています。


Release NoteのL2ネットワーキング項目でちょっと気になるのはこの部分です。

The N-VDS NSX-T host switch will be deprecated in a future release. 

N-VDSとNSX-Tホストスイッチは将来のリリースで廃止されるようなので、vDSベースでの導入が推奨されるようです。これまでNSX-Tで導入されている環境は将来のアップデートで注意が必要かもしれないです。

まだまだコロナの影響で外出自粛が続きそうなので、これからNSX-T導入して試していきたいと思います。

2020年3月27日金曜日

Kubeflow on Tanzu

vSphere7がリリースされました。注目はなんといってもvSphereでのKubernetesです。

Tanzu PortfolioとしてPKSやPAS(pivotal app service)などなど、昨年のVMworldでTanzuが発表された内容よりもコンポーネントが追加されています。

そんななか色々とTanzu関連の情報を調べていたら、KBにTanzuのロードマップが記載されていて、その中に Kubeflow の文字が!

 Tanzu Kubernetes Grid Plus Support Matrix (78173)


Kubeflowは簡単にいうとkubenetes上にMachine Learning環境が簡単にできるようになります。
Kubeflowの詳細は こちら です。


ロードマップなので延期も、場合によってはリリースされない可能性もありますが、楽しみです。