5 ポイント 投稿者 GN⁺ 2024-11-19 | 1件のコメント | WhatsAppで共有
  • Regatta Storageは、S3互換ストレージを自動同期されるクラウドファイルシステムのように使えるようにし、ローカルディスクを増設せずに大規模データを扱うためのサービス
  • Spark、PyTorch、pandasの処理でS3上のデータセットへ直接アクセスできるようにし、ダウンロード待ちや大容量ローカルディスクを用意する負担を減らすことを目指している
  • Amazon EFSとNetflixでのストレージ運用経験が出発点であり、EFSのシンプルさとスケーラビリティにもかかわらず、ローカルディスクからNFSへ移行する際には性能問題が残っていた
  • 顧客はRegattaファイルシステムをNFSv3でマウントし、Regattaのキャッシングインスタンスが顧客のS3バケットと接続され、キャッシュ済みの読み書きでサブミリ秒の性能を提供する
  • サーバーレスJupyter Notebook、S3上の分散キャッシングレイヤー、thin-provisioned Cephブートボリュームの代替に使われており、今後はカスタムファイルプロトコルも開発中

S3上でローカルのようなファイルシステム体験を提供

  • Regatta Storageは従量課金のクラウドファイルシステムで、S3互換ストレージと自動同期される
  • Spark、PyTorch、pandasで大規模データセットをローカルディスクへダウンロードせずに直接アクセスする流れを目指している
  • サービス概要動画はYouTubeで視聴でき、アカウント登録後に無料で試せる
  • アカウントなしの体験を提供していない理由は、Hacker Newsユーザーが1つのファイルシステムとS3バケットを共有する方式は適切ではないと考えたため

EFSでの経験から生まれた設計背景

  • 創業者はAmazon Elastic File System(EFS)で8年、Netflixなどで大規模クラウドストレージを構築・運用した経験をもとにRegattaを作った
  • EFSはS3のように事前に必要容量を見積もらなくてよいシンプルさとスケーラビリティが利点だったが、Netflixでは予想ほど多くは使われなかった
    • 多くのアプリケーションがPOSIXファイルシステムを必要としており、ストレージ需要が不明確だったり急増したりする可能性があった
    • インスタンスやコンテナの寿命より長く持続するストレージが必要な場合も多かった
    • ローカルドライブは潜在的な使用量に合わせて過剰にプロビジョニングされ、空きストレージ容量にもコストがかかっていた
  • EFSがすべてのワークロードに合うわけではなかった
    • ローカルディスクからNFSへ移行するときに性能問題が生じる場合があった
    • ローカルディスクを一時ストレージのように使っていたアプリケーションでは、永続ストレージに残ったデータを手動で整理する必要があった

Regattaの動作方式とキャッシュモデル

  • Regattaは、アプリケーションとともに自動スケールする従量課金ファイルシステムとして設計されている
    • ネイティブファイル形式でS3と自動同期され、既存データセットに接続できる
    • 最近書き込んだファイルデータもS3から直接利用できる
    • アクティブに使われていないデータはRegattaキャッシュから削除され、バックエンドのS3ストレージ費用だけを負担することになる
  • 現在、顧客はRegattaファイルシステムをRegattaのキャッシングインスタンス群にNFSv3で接続してマウントしている
    • Regattaインスタンスはバックエンドで顧客のS3バケットに接続される
    • キャッシュ済みの読み取りと書き込みにはサブミリ秒の性能を提供する
    • 耐久性のあるキャッシュにより、接続されたすべてのファイルクライアントに強整合性のファイルシステムビューを提供する
    • ディレクトリ名変更のような扱いの難しい操作を高速かつ耐久的に処理したうえで、S3バケットへ非同期に伝播する

初期ユースケースと次のステップ

  • 初期ユーザーはRegattaを、AI研究者向けのサーバーレスJupyter Notebookサーバー、S3上の低レイテンシ分散キャッシングレイヤー、thin-provisioned Cephブートボリュームの代替用途に使用している
  • 開発中のカスタムファイルプロトコルは、小さなファイルのワークロードではローカルに近い性能を出し、分散データ処理ではLustreのようなスケールアウト性能を出すことを目指している

1件のコメント

 
GN⁺ 2024-11-19
Hacker Newsのコメント
  • RcloneとRegatta Storageの違いは、ファイルシステムの変更操作時にRegattaが高速キャッシュレイヤーを使って強い整合性を提供する点。Rcloneには並列クライアント間の整合性を保証するレイヤーがない

    • Regatta Storageは、ファイルシステムの変更操作時に高速キャッシュレイヤーを使って強い整合性を提供する
    • Rcloneには並列クライアント間の整合性を保証するレイヤーがない
  • YCから出た最もクールな製品の1つで、動作方法についていくつもの疑問がある

    • 10GBのローカルディスクで50GB規模のデータを扱うとき、性能低下が発生するのか気になる
    • AWS以外のクラウドでも高速な速度が得られるのか気になる
    • FUSEとNFSマウントを使う方式について知りたい
    • ClickhouseやPostgresをRegattaボリューム上で実行できるのか気になる
    • オープンソース化についてどう考えているのか気になる
    • 複数のサーバーにマウントできるのか、その制限は何かが気になる
  • GCP Filestoreを使ってDuckDBをホストしており、Regattaの価格と性能についての情報を求めている

    • 10 TiBインスタンスの価格と性能についての情報を求めている
  • SQLite/DuckDB/parquetのバックアップディスクとして関心があり、インスタンスのローカルNVMeストレージでキャッシュされた読み取りを望んでいる

    • NFSでは得られないロックと共有メモリ機能が必要
    • ユーザー空間で直接実装することもできるが、そうするくらいならS3を使うつもり
  • NFSをプロトコルとして使うのは良いアイデアだと思う

    • IBMで似た概念の暗号化ファイルシステムを書いた経験がある
    • ファイルシステムをマウントすると、すべてのデータが「そのままそこにある」ように見えるのは魔法のようだ
  • AWSがこの製品を複製し、より安い価格で提供する可能性への懸念がある

  • 2008年にAdobeのCEOの前で、iPhoneで撮った写真がMacにファイルとして自動的に現れるデモを成功させた経験がある

    • FUSEを使ってAdobeの分散オブジェクトストレージと通信するローカルFUSEを実装した
    • Dropboxの立ち上げとともに分散システムの研究開発を始めた
  • Lambda + SQLite + Regattaを使ってリアルタイムACID SQLストレージを構築できるのか気になる

  • ファイル更新の競合をどう処理するのかが明確ではない

    • たとえば、2人のユーザーが別々のコンピューターから同じファイルを更新した場合、最終的なファイルがどうなるのか気になる
  • s3fs、rclone、goofysなどの注目すべき代替手段がある