入出力が極端に多いアプリケーションでは、ハードウェアのリソースを最大限に活用するために、いくつかの点を考慮する必要があります。
この記事では、Avintonが直近のプロジェクトを通して得た知見として、NVIDIA DGX-1を使用したディープラーニング・アプリケーション設計についてご紹介します。
(Official)DGX-1 for AI Research | NVIDIA
クライアントから提示された要件は以下の通りです。
- 高速な読み込み
- 高速な書き込み
- 低コスト
近年の機械学習を活用した多くの事例と同様、今回の取り組みはR&Dプロジェクトであり、クライアントはすでに、独立したエンタープライズストレージソリューションに、完全なデータセットをバックアップしていました。
そのため、障害発生時にはいつでも元のデータをソースから引き出すことが可能で、対障害性は大きな問題ではありませんでした。
ここからは、コモディティハードウェア(後述)をベースとしたストレージクラスタの設計について考慮しつつ、詳しく見ていきます。
NVIDIA DGX-1とは?
NVIDIA DGX-1は、ディープラーニング・アプリケーションのために設計された機器です。
NVIDIA独自のNVLinkインタフェースで相互接続された、複数のTesla P100 GPUを使用し、スーパーコンピュータのような処理能力を実現します。
従来のサーバー最大250台分のパフォーマンスに相当するそうです。 テラフロップスの性能を、ラックスペースのわずか3Usに抑えることができます。
(DGX-1 vs Dual Xeon Server)
ストレージに関する考察
170テラフロップの演算能力では、ストレージソリューションがこれらのプロセッシングコアをアイドル状態のままにしないことが重要です。Avintonでは、ストレージがボトルネックにならないよう、細心の注意を払っています。
データフィードとデータシンクの要件を維持できれば、より早く成果物に到達し、機械学習システムを最大限活用できるというのが、最終的な結論です。
機械学習の結果が早く得られるということは、より多くのテストとアルゴリズム微調整が可能で、適応性と正確性の向上に繋がります。
コモディティハードウェアベースのストレージ
コモディティハードウェアベースのストレージとはどういう意味か?
コモディティハードウェアベースのストレージは、DAS (Direct-attached storage)型に接続された、HOT / WARM / COLDストレージ領域のRAIDアレイです。
Hot / Cold / Warm storageについて詳しくはこちらをご覧ください。(Avinton Storage Solutions)
通常はDellまたはHPサーバーを使用していますが、最新のDASサポートハードウェアも対応可能です。HOTストレージは、例えばSSDアレイであり、WARM / COLDストレージは通常の15k rpm SASドライブです。
マシンはカスタマイズ済みのLinuxディストリビューションを実行し、低コストでエンタープライズストレージに匹敵する機能を提供します。
メンテナンス
コモディティハードウェアでは、保守オーバーヘッドはエンタープライズストレージソリューションよりも高くなり、その結果、ソリューションにコンポーネントが増えてしまいます。
ただしこれは、定期的なハウスキーピングで適切なモニタリングを行うことによって、大幅に軽減できます。
フォールトトレランス(耐障害性)
フォールトトレランス(耐障害性)は、通常、複数レベルの組み込み冗長性を備えたエンタープライズストレージソリューションの方が優れています。
これを改善するには、RAIDアレイ内のホットスペアディスクを使用して、ディスク障害の影響を最小限に抑えるとともに、ソフトウェアベースのフェールオーバーによる専用のバックアップストレージまたはクラスタ1:1のミラーリングを最小限に抑えます。
(通常、サーバはRAID-6を使用しており、アレイごとに最大2つの障害ドライブを許容できますが、メモリ/ RAIDコントローラ/マザーボード/ CPUの障害は対象としていません)
セキュリティ
RAIDコントローラベースのフルディスク暗号化を使用すると、レイテンシーが増加してもデータのセキュリティを確保できます。
スケーラビリティ(拡張性)
スケーラビリティ(拡張性)は、クラスタ内にさらに多くのサーバを追加し、制御ソフトウェア内にサーバを設定することで実現します。これらのソリューションは数十ペタバイトで、驚くほど優れています。
エンタープライズストレージソリューション
予算に余裕があり、フォールトトレランス・セキュリティ・スピードの優先度が高い場合は、Dell / EMC・Oracleといったベンダーの専用エンタープライズストレージソリューションか、またはNutanixなどのソフトウェア定義のストレージソリューションを利用することをおすすめします。
ここではこれらのソリューションの詳細については説明しませんが、GbEから複数のインフィニバンドポートへのさまざまなインターコネクトオプションと組み合わせることで、優れた入出力速度とネイティブ暗号化を実現する、独自のドライブを使用するケースもあります。
ストレージファブリック相互接続
ストレージの相互接続は、高速データ処理の場合、ストレージソリューションの選択と同じくらい重要です。 オンボードGPUはPCIe経由でNICバッファに直接データを書き込むことができるため、DGX-1では特に重要です。
これにより、選択したストレージデザインのデータ転送速度(読み取り値)と同じくらい重要なデータシンク速度(書き込み)が発生し、どちらの速度も遅くなるとボトルネックが発生する可能性があります。
インフィニバンド vs GbE
市販ベースのハードウェアストレージソリューションの場合:
ほとんどの10 / 40GbE NICには、サポートされているドライバがあれば十分ですが、IntelとBroadcomは良い候補です。
1台のサーバでは、冗長性とマルチパスをサポートするために2つのデュアルポートNICが必要です。
インフィニバンドを導入すると、エンタープライズストレージソリューションを検討する価値があるところまでコストが上がる可能性が高くなります。 これは、一度インフィニバンドを使用すると、無限のNIC、ケーブル接続とスイッチングギアを持つクラスタ内のすべてのノードを考慮する必要があるためです。
これによりコストが大幅に上昇した場合は、安価な10GbEまたは40GbEで接続されたストレージクラスタ内の追加ノードを使用すると、比較可能な入出力を達成でき、コスト効率の高いソリューション全体を実現できます。
NVMe SSD
NVMe SSDドライブは、市場に出回っている他のSSDよりもはるかに高速ですが、エンタープライズNVMeドライブの作成時には、DIYストレージソリューションが競争力を失うほど高価になります。
Avintonの事例では、多くの小さくて安いホットストレージプールまたはキャッシュ領域と ワームとコールド用の15k rpmのスピニングディスクにアレンジされた、SAS/SATA SSDを使ったことで実感できました。
多数の小型SSDとマルチパスのコンビネーションは、MPPやGPUタイプの処理ロードにおいて、理想的なシステムです。
Software Defined Storage (SDS)
Software Defined Storageは、ストレージエコシステム界における期待の星です。
Software Defined Storageは、自動データ識別やアクセスパターンや利用に基づいた優先順位付け・自動デフラグメンテーション・最適化・圧縮・レプリケーションなどの機能を提供します。
コモディティハードウェア上で実行できるという点では、前述のソリューションと似ていますが、いくつかの重要な違いがあります。
まず、ターゲットアプリケーションからハードウェアを抽象化する、ソフトウェア抽象化レイヤを使用します。
そして、拡張機能セットを備えた、標準および独自のプロトコルをサポートしています。
コモディティハードウェアベースのストレージは、iSCSI・NFS・SMB・CIFSなどの標準プロトコルで古典的なストレージサービスを提供し、HA、ホットウォームコールドプールまたはマルチパスなどの高度な機能は、通常、オープンソースを使用して手動で設定または実装する必要があります 。
Software Defined Storageのソフトウェアレイヤーは有料で、オープンソースではありません。
すべての高度な機能は自動化され、中央インターフェースから管理できます。
すべてのストレージアクションは、RESTful APIを通して、アクセス・操作・プログラムにて自動化可能です。
典型的なSoftware Defined Storageは、Nutanixのアクロポリス分散ストレージファブリックです。
まとめ
Avintonでは機械学習アプリケーション開発をはじめビッグデータ処理を支えるインフラ基盤のコンサルティング、構築サービスをご提供しています。
まずは現在のインフラ関係のお困りごとからお気軽にご相談ください。