SoftLayerでNVIDIA vGPUを実装する (Implementing NVIDIA vGPU on SoftLayer)

# はじめに _Introduction_

IBM SoftLayerのベアメタルサーバー（物理サーバー貸しサービス）にはGPUボードを搭載することができます。GPUを利用すれば、高速な画像処理や、構造解析などの処理を高速化することが可能です。
今回は、Nvidia Tesla M60というGPUを搭載したベアメタルにVMwareを導入してGPUも仮想化し、VNCでリモートから3Dグラフィックスを高速描画するための手順をご紹介しましょう。
_The IBM SoftLayer bare metal server (physical server lending service) can be equipped with a GPU board. By using GPU, it is possible to speed up processing such as high-speed image processing and structural analysis.
This time, introduce VMware to the bare metal equipped with the GPU named Nvidia Tesla M60, virtualize the GPU, and introduce the procedure to remotely draw 3D graphics remotely with VNC._

使用するソフトウェアは次の通りです。
_The software to use is as follows._


|Software|用途_Purpose_|
|:-------|:----|
|VMware ESXi 6.0|言わずと知れたHypervisor|
|Nvidia GRID Driver|GPU仮想化デバイスドライバ、ESXとGuestOSに導入します_GPU virtualization device driver, ESX and guestOS_|
|VirtualGL|OpenGLのダイレクトレンダリングをリモート伝送するためのツール _A tool for remotely transmitting OpenGL direct rendering_|
|TurboVNC|デスクトップ画面をリモート伝送するためのツール _A tool for remotely transmitting the desktop screen_|

# Linuxのリモートデスクトップ転送技術あれこれ _Linux Remote Desktop Transfer Technology_ 

　VirtualGLの[サイト](http://www.virtualgl.org/About/Background)に丁寧な解説があるので、詳細を知りたい方はそちらを参照してください。サイトの画像を参照させていただきながら、簡単に説明します。
_There is a polite commentary on VirtualGL's [site] (http://www.virtualgl.org/About/Background), so if you want to know more, please refer to that. I will briefly explain while referring to the image of the site._

##　X Windowサーバを使用する _Using X Window Server
　LinuxをはじめとするUnixで昔から利用されている方法です。この方式ではサーバー側では3Dアクセラレーションは働かず、クライアント側で働きます。OpenGLコマンドはX Windowプロトコルの中を流れるので、かなり高速で遅延の少ないネットワークでないと使用に耐えないでしょう。せっかくクラウド上のサーバにGPUを搭載しても意味がありませんね。
_It is a method used long ago on Linux and other Unix. With this method, 3D acceleration does not work on the server side and works on the client side. Since the OpenGL command flows through the X Window protocol, it will not withstand use unless it is a network that is fairly fast and has little delay. Even if GPU is installed in the server on the cloud, it makes no sense._

![Indirect OpenGL Rendering Using GLX](http://www.virtualgl.org/pmwiki/uploads/About/indirectrendering.png "http://www.virtualgl.org/pmwiki/uploads/About/indirectrendering.png")

##　サーバーサイド・レンダリング _Server side rendering_

サーバー側で3Dアクセラレーションを働かせるためには次の２つの技術があります。
_There are two technologies to make 3D acceleration work on the server side._

- Scraping
- GLX Forking


![Screen Scraping with Direct Rendering](http://www.virtualgl.org/pmwiki/uploads/About/screenscraping.png "http://www.virtualgl.org/pmwiki/uploads/About/screenscraping.png")


![Out-of-Process GLX Forking](http://www.virtualgl.org/pmwiki/uploads/About/x11proxy.png "http://www.virtualgl.org/pmwiki/uploads/About/x11proxy.png")

# 導入ステップ _Instalation steps_

次の１から３の手順に沿って導入を進めます。
_Follow the steps 1 to 3 to proceed with the installation._

## 1.  Nvidia GRIDドライバインストール _Installing Nvidia GRID driver_

[NVIDIA GRIDドライバをVMware環境にインストールする](http://qiita.com/Sawahashi/items/32d29f9e24b83d7122a0 "NVIDIA GRIDドライバをVMware環境にインストールする")を参考に、NvidiaのGRIDデバイスドライバをESXとGuest OSに導入します。
_Refer to [Installing the NVIDIA GRID driver in VMware environment] (http://qiita.com/Sawahashi/items/32d29f9e24b83d7122a0 "Installing NVIDIA GRID driver in VMware environment") and connect Nvidia's GRID device driver to ESX and Guest We will introduce it to the OS._


## 2. デスクトップ画面をクライアントPCから操作する _Operating desktop screen from a client PC_

[SoftLayerにVNCで接続する](http://qiita.com/Sawahashi/items/156be0baaf6384884f3d "SoftLayerにVNCで接続する")を参考に、リモートデスクトップ環境を提供するTurboVNCをセットアップしてください。
_Please refer to [Connect to SoftLayer with VNC] (http://qiita.com/Sawahashi/items/156be0baaf6384884f3d "Connecting to SoftLayer with VNC") and set up TurboVNC to provide the remote desktop environment._


## 3. 3D画像伝送を高速化するためにVirtualGLをインストールする _Installing VirtualGL to speed 3D image transmission_

[VirtualGLをセットアップする](http://qiita.com/Sawahashi/items/b37648f55c428aa92513 "VirtualGLをセットアップする")を参考に、OpenGLをリモートでも高速表示できるVirtualGLをセットアップしてください。
_Please refer to [Set up VirtualGL] (http://qiita.com/Sawahashi/items/b37648f55c428aa92513 "Set up VirtualGL") and set up VirtualGL which can display OpenGL at high speed remotely._