[レポート] Amazon S3&FSx for Lustre:高性能ファイルストレージの詳細 #STG307 #reinvent
ラスベガスからこんにちは、岩城です。
セッション「Amazon S3 & FSx for Lustre: Deep dive on high-performance file storage」を聴講しましたのでレポートします。
概要
Amazon FSx for Lustreサービスの技術的な詳細は、機械学習、高性能コンピューティング(HPC)、ビデオ処理、財務モデリング、電子設計自動化(EDA)などのワークロードに最適化された完全に管理された高性能ファイルシステムを顧客に提供します。このセッションでは、データサイエンティスト、研究者、およびシステム管理者が、アプリケーションがミリ秒未満のレイテンシで毎秒数百ギガバイトのデータにアクセスできるようにするファイルシステムを起動する方法を学習します。 Amazon S3やオンプレミスのファイラーなどのストア。
- Session Type:Session
- Topic:Storage
- Session Level:300 - Advanced
スピーカー
- Edward Naim
- General Manager, Amazon Web Services
- Sayan Saha
- Principal Product Manager - Tech, Amazon Web Services
- Darryl Osborne
- Solutions Architect, Amazon Web Services
※敬称略
レポート
アジェンダ
- Amazon FSx for Lustreでワークロードをより速く、より安く実行する
- S3 + FSx
- データ処理のオプション
- 性能
- 総所有コスト
- FSx for Lustre in action
AWSのワークロードの計算は通常S3に保存されているデータセットを処理する
- データセットを計算に利用可能にする
- 大量の計算を含むデータセットを処理する
- S3への書き込み/チェックポイント結果
EBSまたはインスタンスストレージを使用したデータ処理
- 様々な分野から大量のデータがS3へプットされる
- アクティブなワーキングセットを計画する
- 事前にS3にどのデータを相互にやり取りするか計画する、またはアプリケーションロジックを更新して、リアルタイムで相互にやり取りできるように調整する必要がある
- データセットのシャーディング
- アクティブなデータセットをインスタンスまたはボリュームに分散する必要があり、アプリケーション側で再処理が必要になる場合がある
- データ複製
- どのインスタンスがどのデータにアクセスする必要があるかに応じて、インスタンスまたはボリューム全体に重複するデータを配置することになる
自己管理ファイルシステムによるデータ処理
- 管理と保守が複雑
- 面倒なパフォーマンスチューニング
- アクティブなワーキングセットを計画する
中間ストレージなしのデータ処理
- 次のようなアプリケーションに適している
- 高スループットが必要であり、遅延の影響を受けない
- POSIXではなく、オブジェクトストレージインターフェイスを使用する
- 同じデータに繰り返しアクセスしない
FSx for Lustreはクラウド内のデータ処理ワークフロー向けに設計されている
- まずはS3データセットをFSx for Lustreファイルシステムにリンクする
- S3に保存されたデータは処理のためにFSxにロードされる
- FSx上で処理されたデータが保持のためにS3に返される
- ワークロードが終了したら、ファイルシステムを単に削除するか、長期間有効なワークロードで実行し続ける
FSx for Lustreはオンプレ上のデータリポジトリとのクラウドバーストをサポート
FSxは計算ワークロードをより高速かつ安価にする
- 100+ GB/秒のスループットとミリ秒未満のレイテンシでの高速処理
- S3との緊密な統合
- 短期および長期の柔軟なデータ処理オプション
- 低いTCO
ワークロードの例
- 高性能コンピューティング
- 機械学習
- メディアのレンダリングとトランスコーディング
- ビッグデータ分析
- 電気設計の自動化
- フィナンシャルモデリング
- 石油およびガスの地震処理
- 自律システムのトレーニング
FSxのイノベーションペース
- re:Invent2019以降、Coming Soon!
- POSIXメタデータの保存
- セルフヒーリングファイルシステム
S3とFSx for Lustre
- ファイルシステムを作成するときにS3バケットを指定する
- ファイルシステムにアクセスすると、S3上のすべてのオブジェクトがファイル/ディレクトリとして表示される
- ファイルはアクセス時にリアルタイムでファイルシステムに移動されます
- S3に結果を書き込むためのユーザーコマンドがある
DataRepositoryTask API - Export changes to S3 (Coming Soon!)
- 新規および変更されたファイル/ディレクトリのエクスポートを簡素化
- ファイル/フォルダーのアクセス許可とその他のメタデータをS3と同期する
FSxとS3でPOSIXメタデータを保存(Coming Soon!)
- FSx for Luster上の変更をS3にエクスポート
- FSx for Luster内のファイルは、S3に保存されているPOSIXパーミッションを継承
- ファイルはFSx for LusterからPOSIXパーミッションで保存
SageMaker integration
- FSx for LustreはSageMakerのファイル入力のデータソースにすることが可能
- 最初のS3ダウンロードステップを排除し、トレーニングジョブを加速
- 同じデータセットの対話型ジョブの共通オブジェクトの繰り返しダウンロードを避ける
一般的なデプロイメントモデル
- S3は長期耐久性のあるストレージであり、FSx for Lustreはデータ処理時に使用
- S3を非常に耐久性のある長期ストアとして使用し、FSx for LustreをS3バケットにリンクされた高パフォーマンスのファイルシステムとして使用
- 1.S3にデータセットを保存する
- 2.FSxファイルシステムを作成し、S3バケットにリンク
- 3.いつでも、Lustreコマンドを使用して変更をS3に書き戻す
- 4.処理が完了後、FSxファイルシステムを削除
FSx for Lusterのデプロイメントオプション
- Scratch
- 短期、スピンアップ、プロセス、スピンダウン
- Self-healing(Coming Soon!)
- 長期処理、可用性のあるファイルサーバー、データ複製
- どちらのオプションでも、FSxコントロールプレーンは可用性が高くなるように設計されている
FSx for LustreのI/O性能の最適化
- ファイルシステムデータを取得するためのベストプラクティス
- 同時アクセスが一般的な場合、I/Oパフォーマンスを最適化するためにファイルをストライプする
- 平均I/Oサイズ
- 平均I/Oサイズが大きくなるとスループットが向上する
- クライアント選択
- 十分なメモリ、CPU、および帯域幅を持つEC2インスタンスタイプを選択する
ストライピングとは何か?なぜそれを使用するのか?
- ストライピングとは、大きなファイルをフラグメントに分割し、複数のサーバーのディスクに保存すること
- 個々のファイルへのアクセスを並列化して、より高い集約スループットを実現する
- デフォルトでは、各ファイルは1つのディスクに保存される
- ストライピングはディレクトリごとまたはファイルごとに設定可能
- ディレクトリ内のすべてのファイルは、ストライピングパラメータを継承する
FSx for Lustreのストライピングの仕組み
stripe_count
とsripe_size
を指定する- ストライピングはディレクトリごとまたはファイルごとに設定可能
- ディレクトリ内のすべてのファイルはストライピングパラメータを継承する
- CloudWatchの最大メトリックに基づいてディスク間でファイルをストライプ化する
- Set ImportFileChunkSize = (dominant file size / # of disks)
データ処理用にコスト最適化されたFSx for Lustre
- 高性能および低コストでデータセットを処理するために最適化
- 費用対効果の高い
- データセットのパーティションのみを一度に処理する
- 低コストのs3またはオンプレミスに保存された長期データ
- スピンアップ、スクラッチファイルシステムによるスピンダウン、またはセルフヒーリングによる解放
- 繰り返しアクセスされるデータにリクエスト費用なし
FSx for Lustreの性能確認のデモ
デモのため割愛
まとめ
FSx for Lustreの良さがみっちり詰まったセッションでした。カミングスーンの機能である、POSIXメタデータの保存やセルフヒーリングの登場が楽しみですね!DSx for Lustreの性能確認デモは、性能についても驚きましたが、性能確認の方法がとても勉強になりました。どこかで自分も試してみてブログ化したいと思います。
本エントリがどなたかのお役に立てれば幸いです。