Regatta Storage(YC F24):S3をローカルのようなPOSIXクラウドファイルシステムに変換
(news.ycombinator.com)- 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件のコメント
Hacker Newsのコメント
RcloneとRegatta Storageの違いは、ファイルシステムの変更操作時にRegattaが高速キャッシュレイヤーを使って強い整合性を提供する点。Rcloneには並列クライアント間の整合性を保証するレイヤーがない
YCから出た最もクールな製品の1つで、動作方法についていくつもの疑問がある
GCP Filestoreを使ってDuckDBをホストしており、Regattaの価格と性能についての情報を求めている
SQLite/DuckDB/parquetのバックアップディスクとして関心があり、インスタンスのローカルNVMeストレージでキャッシュされた読み取りを望んでいる
NFSをプロトコルとして使うのは良いアイデアだと思う
AWSがこの製品を複製し、より安い価格で提供する可能性への懸念がある
2008年にAdobeのCEOの前で、iPhoneで撮った写真がMacにファイルとして自動的に現れるデモを成功させた経験がある
Lambda + SQLite + Regattaを使ってリアルタイムACID SQLストレージを構築できるのか気になる
ファイル更新の競合をどう処理するのかが明確ではない
s3fs、rclone、goofysなどの注目すべき代替手段がある