vmware community から note に引越
去る2020年11月、主にVMware ThinApp のユーザーフォーラムで利用していた VMware Community のバージョンアップに伴い、VMware Communityサイト内の個人Blogの移行を余儀なくされてしまい、このたび、note に引越することにしました。
VMTN Community Upgradeの案内はこちら↓
https://blogs.vmware.com/vmtn/2020/10/vmtn-community-upgrade.html
これが初めてのnote記事。VMware Community に投稿していた NVIDIA vGPU の「Windows10 VDI にはNVIDIA仮想GPUソリューションが必要です!」を移行しておこうと思います。この記事は、仮想化は知ってるけどGPUとは縁が無かった(少なかった)方が多いと思いますので、主にそういった方々を対象に、VMware vSphereを含む仮想環境上で動作する仮想マシンでもGPUの機能を享受できる、NVIDIA仮想GPUソリューションに関して、このソリューションが必要される背景と、その中身について、以下の章立てで、紹介したいと思います。(vGPU入門の位置づけ)
「Windows10 VDI にはNVIDIA仮想GPUソリューションが必要です!」
◆まえがき:GPUとは(実は身近なGPU)
「GPU??なにそれ?つおい?」っていう方がいないことを期待しつつ、念のため、Wikiさんを引用させて頂くと、【Graphics Processing Unit(グラフィックス プロセッシング ユニット、略してGPU)は、コンピュータゲームに代表されるリアルタイム画像処理に特化した演算装置ないしプロセッサである。】と出ています。- Wikipedia: Graphics Processing Unit -
なんだか、とても強いそうです。いや、GPUを使ってる人は、本当に強いんです!
(分かりづらいけど、↓PC↓の中で緑に光るカッコいいパーツがGEFORCEっていうGPU!)
この紹介だけだと、「ほぅ。じゃ、おれは関係ないや」と一刀両断にされてしまいそうですね。確かに、GPUは、ゲーミングの世界だったり、CG、デザイン、CADのようなグラフィックプロフェッショナルの世界を支えている、というのは現在進行形の事実。ただ、その事実だけを見て、その世界の住人だけしか幸せになれないソリューションだと決めつけるのは大間違いだし、何より、もったいない!GPUは実は非常に身近なデバイス。今、そこらで売っているパソコンには、ほぼ全てGPUが搭載されているし、今、この記事を読んでいる、あなたのパソコンにも、相当高い確率でGPUは搭載されているはず。もう少し具体的な情報を添えさせて頂くと、インテル社のSandy Bridge世代のCore iシリーズのCPUには、画像出力専用回路としてGPUが統合されてます。つまり、GPUを選んで買ってなくても、気付かずに、GPUを使っているわけです。
仮想化界隈だと、Nehalem世代のXeonの登場により、仮想環境の集約率向上を記憶している人が多いのでは、と想像しますが、そのNehalem世代の次の世代がSandy Bridge世代ですね。(懐かしい)
と言うわけで、GPUがとても身近なもので、誰もが、GPU搭載のパソコンを使う時代になった、というのは、ご理解頂けたと思います!
ここで合わせて伝えたい情報があります。それは、「GPUがある環境を前提に、世の中のOSやアプリケーションはデザインされている(され始めている)」ということです。そして、その代表が、マイクロソフトさんのWindows10であり、皆様のビジネスを支えるOfficeアプリケーションやSkypeのようなWeb会議ソリューションです。これらのOSやアプリケーションが快適に動作し、皆様の日々のお仕事がテキパキ捗るのは、GPUのおかげでもあるのです!(もちろん、GPUだけでは何も出来ません)
◆Windows10 VDIでGPUが必要とされる理由
Windows10は、GPU標準時代のOSだという主旨の説明をしましたが、ワークスペース分析のリーディングカンパニーであるレイクサイドソフトウェア社が発行しているホワイトペーパーで、Windows 7とWindows 10におけるグラフィック性能の違いが、数値で出ていますので、ぜひ、ご一読頂きたいと思います。(レイクサイドさん、本稿執筆のご協力、ありがとうございます!)
・補足情報(レイクサイドソフトウェア社ホワイトペーパー)
ワークスペース分析のリーディングカンパニーであるレイクサイドソフトウェア社が発行しているホワイトペーパーの中で、Windows 7とWindows 10におけるグラフィック性能の違いが、数値で出ています。
▶レイクサイドソフトウェア︓ホワイトペーパー
GPU アクセラレーションを活⽤したユーザーエクスペリエンスの向上
(Windows 10 の環境と Windows 7 の環境を対象とした⽐較分析)
https://www.lakesidesoftware.com/jp/resources/white-papers/elevating-user-experience-through-gpu-acceleration
このホワイトペーパーを参考に、視覚的に分かりやすく棒グラフにすると以下のような感じになります。
(下図:Windows 7とWindows 10におけるグラフィック性能の違い)
Windows7時代に比べ、Windows10時代は、OSもアプリケーションも、GPUパワーを活用して快適に動作するようになってます。このWindows10とアプリケーションを展開する仮想デスクトップ(VDI)環境に、もしGPUを搭載しないと、PCなら当たり前の必要なピースが欠けた状態を敢えて作ってるに等しく、応答性や操作性の悪い、非常に残念な環境となってしまいます。遅くても我慢して使ればいいじゃん、という声もあるかもしれませんが、GPUの無い環境では、GPUが処理するべき処理がCPUに襲い掛かります。結果、異常とも言えるCPU超高負荷状態が発生し、仮想マシンが落ちる、ESXホストが落ちる、という悪夢が現実に起きています。それを使うユーザーの立場としては、「こんな環境で仕事しろって言うの?」という受け入れがたい環境になってしまいます。(せっかく、たくさん投資して、VDIを導入したのに…)
この問題を回避するには、【VDIでもGPUを使う】ことが有効な手段です。そして、それが、NVIDIAが提供する【仮想GPUソリューション NVIDIA GRID】です。次の章で、その中身について、説明したいと思います。
◆NVIDIA 仮想GPU ソリューション
NVIDIAが提供している仮想GPUソリューションは、ひと言(?)で書くと、【物理GPUを、仮想化技術で複数の仮想GPUリソースに分割し、VMware等の環境上で稼働する仮想マシンにGPUパワーを付加するテクノロジー】です。元々、このテクノロジーは、従来、VDI環境では利用できないとされた、3D-CAD、CAE、CG制作などのグラフィックスアプリケーションを、VDI環境で利用できるようにするために、進化したもので、今では、たくさんの企業で活用されています。
◆補足情報(NVIDIA 仮想GPUソリューション 成功事例)
たくさんの成功事例が紹介されてます。
https://www.nvidia.co.jp/object/grid-enterprise-resources-jp.html
GPUが付加されたVDIサーバーの構成は下図になります。通常のVDIには無いピースが黄緑色の部分です。VDIサーバーのハードウェアに物理GPUが搭載され、Hypervisor層で複数のvGPUに分割され、そのvGPUは、パソコンのGPUと同じように、各仮想マシンのGPUデバイスとしてアタッチされ、ネイティブなGPUのように動作します(グラフィックコマンドがそのまま届く)。
このようなGPU搭載の環境にすることで、前章で説明したWindows10であっても、GPUが処理すべきものがvGPU経由で物理GPUに流れますので、CPU負荷の低い、快適なVDI環境となります。VDIでのGPU有無の違いが、とても分かりやすい動画がYouTubeに公開されてますので、是非ご覧ください。(アプリの動作のスムーズさとタスクマネージャーのCPU負荷の違いを要チェックです)
◆Windows 10 VDI with NVIDIA GRID vPC
過去のVDIでは、1サーバーあたりのメモリ搭載量のボトルネックや、ディスクのIOPSのボトルネックにより、集約率の向上が難しかった時代がありました。ひとつのボトルネックを解消すると、新たなボトルネックを生みますが、そのたびに、その壁を破る新しいテクノロジーが登場し、よりコストパフォーマンスの良い、より快適なVDI環境が実現されてきました。現在のWindows10時代のVDIでは、グラフィックスパワー要求増大により、CPUにボトルネックが移ってきており、これがVDI集約率向上を阻む大きな要素になっています。以下の図のように、仮想GPUソリューションを活用することで、サーバーあたりの仮想マシン集約率は向上し、OSやアプリケーションのパフォーマンスまでもが向上します。
最後に、もうひとつ、NVIDIA GPUの利用が、VMware Horizon環境のCPU負荷の低減に効く仕組みを紹介したいと思います。その名も【NVENC】(えぬぶいえんくと呼ばれてます)。VDI環境のWindowsやアプリケーションが、GPUパワーにより、快適に動作するようになっても、それだけでは、実は片手落ちです。当たり前のお話ですが、VDI上で快適に動作した結果の画面が、絶え間なく、遅延が無く、リモートのユーザーに転送されて始めて、ユーザーは、快適に動作していると感じます。VMware Horizon 7では、従来からの画面転送プロトコル PCoIPの他に、H.264の映像圧縮方式に準拠したBlast Extremeという新たに開発された画面転送プロトコルが使うことができるようになりましたが、このBlast Extremeを利用する際に嬉しい機能がNVIDIAのGPUには搭載されており、それがNVENCというわけです。どう嬉しいのかを説明します。NVENCは、NVIDIAのGPU製品に内蔵された専用ハードウェアによるエンコード機能で、H.264のエンコード処理を得意としてます。つまり、CPUに負荷をかけずに、GPU(正確にはGPU製品内のNVENC)が、VMware Blast Extremeの画面転送ができるのです。NVENCがあると、画面転送を行う際の処理の少ないことも下の図でイメージできると思います。
Windows10時代は、CPUボトルネック時代でもあります。CPUに、やって欲しいことはたくさんあるので、グラフィックス処理や画面転送処理は、それを得意とするGPUに任せるのが一番。今、使っているVDI環境をWindows10に移行しようとお考えの方、あるいは、そういったご相談を受けているSI関係の方、Windows10 VDI にはGPUは必要ですので、もっと詳細な情報に触れて頂き、活用を真剣にお考えいただきたいと思います。
最後まで、お読み頂き、ありがとうございました! 今までGPUとは縁が無かった(少なかった)方に興味を持って頂けるよう、意識して書いたつもりですが、如何でしたでしょうか。NVIDIA仮想GPUソリューションの詳しい情報は、NVIDIA社員はもちろん、VDIの経験も豊富な NVIDIA認定パートナー もおられますので、ぜひ、ご相談してみてください!
vExperts Advent Calendar 2018
Kzmaybe(vEXPERT 山辺)
@virtapp_life
(免責)
本ブログは私が個人的に行っているブログであり、所属する会社とは関係ありません。本ブログ内の情報は、個人の見解、個人で調査した情報を記載していますので、間違っていることもあります。正確性を保証するものではありませんので、ご了承ください。