9 ポイント 投稿者 GN⁺ 2024-02-03 | 1件のコメント | WhatsAppで共有
  • シンプルで高いスケーラビリティを備えた分散ファイルシステム
  • 目標は数十億個のファイルを保存し、高速に提供すること
  • FacebookのHaystack設計とf4: FacebookのWarm BLOBストレージシステムから着想を得て実装
  • Blobストレージは O(1) のディスク検索とクラウド階層化機能を備える
  • FilerはディレクトリとPOSIX属性をサポートし、クラウドドライブ、DC間アクティブ-アクティブレプリケーション、Kubernetes、POSIX FUSEマウント、S3 API、S3ゲートウェイ、Hadoop、WebDAV、暗号化、イレイジャーコーディング機能などを含む

機能

  • レプリケーションレベル、ラック認識、データセンター認識など、さまざまなレプリケーションオプションを提供。
  • マスターサーバーの自動フェイルオーバーにより、単一障害点がない。
  • ファイルのMIMEタイプに応じた自動Gzip圧縮をサポート。
  • データ削除または更新後のディスク領域回収のための自動圧縮。
  • サーバー追加により総ストレージ容量を拡張可能。
  • サーバーの追加・削除時にデータ再平衡は行われず、管理者コマンドによってのみトリガーされる。
  • 画像リサイズ、ETag、Accept-Range、Last-Modifiedなどをサポート。
  • メモリ/性能バランスのための in-memory/leveldb/readonly モード調整をサポート。
  • カスタマイズ可能な複数のストレージ階層と透過的なクラウド統合を提供。
  • ウォームストレージ向けのラック認識 10.4 イレイジャーコーディングにより、保存コスト削減と可用性向上を実現。

Filer の機能

  • FilerサーバーはHTTP経由で「通常の」ディレクトリとファイルを提供。
  • ファイルTTLにより、ファイルメタデータと実ファイルデータを自動期限切れにできる。
  • FUSE経由でマウントされた filer に対してファイルを直接読み書きできる。
  • Filerストレージのレプリケーションにより、メタデータストアのHAが可能。
  • Amazon S3互換APIにより、S3ツールを使ってファイルへアクセス可能。
  • Hadoop互換ファイルシステムとして、Hadoop/Spark/Flink などからファイルへアクセス可能。
  • AES256-GCM暗号化ストレージにより、データを安全に保存。
  • 数十TB級の大容量ファイル保存をサポート。
  • クラウドドライブとしてクラウドストレージをローカルクラスタにマウントし、高速な読み書きを提供。

Kubernetes

  • Kubernetes CSIドライバーとSeaweedFS Operatorをサポート。

Seaweed オブジェクトストレージの使用例

  • マスターノードとボリュームノードの基本ポートおよび実行方法を案内。
  • ファイルの書き込み、読み取り、削除方法の例を提供。
  • ラック認識およびデータセンター認識レプリケーション、特定データセンターへのファイルキー割り当て方法を説明。

アーキテクチャ

  • SeaweedFSはファイルをチャンクに分割せず、データボリュームを管理する。
  • マスターサーバーはボリュームに関するメタデータのみを管理し、実際のファイルメタデータはボリュームサーバーが管理する。
  • ファイル書き込み・読み取りプロセスの詳細な説明を提供。

他のファイルシステムとの比較

  • HDFS、GlusterFS、Ceph、MooseFS、MinIO などと比較し、SeaweedFSの利点を説明。
  • SeaweedFSは小さなファイルに最適化されており、O(1) のディスク読み取り操作により高速なファイルアクセスを提供。

開発計画

  • システム管理と拡張のための、より多くのツールとドキュメントを提供予定。
  • ストリームデータの読み書きをサポート。
  • 構造化データをサポート。

インストールガイド

  • Golangに不慣れなユーザー向けのインストールガイドを提供。

ディスク関連の話題

  • ハードドライブおよびSSDの性能について説明。
  • SeaweedFSはSSDフレンドリーな構造を持つ。

ベンチマーク

  • 個人的かつ非科学的な単一マシンベンチマーク結果を掲載。
  • WARPを使った混合ベンチマーク実行方法を案内。

ライセンス

  • Apache License, Version 2.0 のもとでライセンス提供。

GN⁺の見解:

  • SeaweedFSは小さなファイルを効率的に管理し、高速な配信を目指す分散ファイルシステムである。これは大容量データを扱う現代のWebサービスに非常に適している。
  • 多様なストレージやデータベースとの互換性により柔軟性を提供し、クラウド統合機能によってコスト効率の高いデータ管理が可能。
  • オープンソースプロジェクトとしてコミュニティの支援を受けながら継続的に発展しており、技術的観点からも興味深いプロジェクトである。

1件のコメント

 
GN⁺ 2024-02-03
Hacker Newsの意見
  • JuiceFSへの言及

    • コメントでは、Minio、Ceph、GarageFS など複数の代替案が挙げられている。
    • まだ挙がっていない別の代替案として JuiceFS がある。
    • JuiceFS と SeaweedFS を比較した資料がある。
  • SeaweedFSの使用経験

    • SeaweedFS を使って、数十億件の中規模 XML ドキュメント、画像サムネイル、PDF ファイルなどを保存している。
    • データベースとファイルシステムの間のギャップを埋めている。
    • ドキュメントと運用ツールは最初はやや扱いづらいが、機能が豊富でよく動作する。
    • 停電やハードウェア障害などからデータを復旧できた。
    • オープンソースの S3 API ブロブストアには驚くほどの空白があると感じる。
  • SeaweedFSに対する否定的な経験

    • SeaweedFS の CSI ドライバー経由でマウントした POSIX FS ボリューム上で Postgres が初期化できず、SeaweedFS の採用を見送った。
    • 完全な POSIX FS と S3 ボリュームを提供し、FOSS で、管理・監視・災害復旧などを効果的に行える SDS システムが必要だとしている。
    • Ceph のようなシステムは除外される。GarageFS は S3 のみをサポートしている。
  • SeaweedFS開発者の意見

    • SeaweedFS は Facebook の Haystack 論文をベースにしたブロブストレージの上に構築されている。
    • まだすべての機能が完全に実装されているわけではないが、クラウド時代に適した新しいプログラミング方式を提供する。
    • ストレージ容量が必要なときは空間を割り当ててファイル ID を受け取り、それをメモリブロックを指すポインタのように使う。
  • SeaweedFSの使用事例

    • 50TB を超えるマルチプレイヤー対戦の録画(リプレイ)を保存するために SeaweedFS を使っている。
    • 組み込みの有効期限機能を活用しており、利用や新機能の追加、移行にも問題はない。
  • SeaweedFSとMin.ioに関する意見

    • S3 のようなセルフホスト型ソリューションについて経験を尋ねると、SeaweedFS の利用者は Min.io を、Min.io の利用者は SeaweedFS を勧めるという。
  • SeaweedFSの長期ユーザー

    • 約25万個のオブジェクトを SeaweedFS に保存しており、その多くは Cloudflare の背後にあるコールドストレージだという。
    • SeaweedFS は Facebook の Haystack に魅了されて長年使っており、非常に安定していて効率的だとしている。
  • Microsoftのストレージ技術の歴史

    • Microsoft は過去に何度もファイルとデータベースの間のギャップを埋めようとしてきたが、その大半は失敗に終わった。
    • この種の技術に対する Bill Gates の関心と、彼の失望に触れている。
  • 分散ストレージ選定時の考慮事項

    • 本当に分散ストレージが必要なのか、自前でシャーディングできるのかを考える必要がある。
    • ブロブを更新する必要があるのか、読み取り・更新・置換で十分なのかを確認すべきである。
    • 読み取りと書き込みの比率を考慮する必要がある。
    • メタデータ変更の頻度を考慮する必要がある。
    • 同じオブジェクトへの同時書き込みをどう管理するかを考慮する必要がある。
    • 可用性・一貫性・速度のどれを重視するのかを選ぶ必要がある。
    • 分散ストレージでの同時障害からどう復旧するかを考慮する必要がある。
    • アクセス制御の方法を考慮する必要がある。
  • SeaweedFSとMin.ioの性能比較

    • 100TB を超える音声データを HDD に低コストで保存するため、SeaweedFS と Min.io をテストした。
    • そのユースケースでは SeaweedFS の方が優れた性能を示した。