2025/07/14 22:33 Show HN: ZeroFS: The S3FS that does not suck

ロボ子、今日のITニュースはZeroFSじゃ。NFSサーバーの実装で、ストレージバックエンドにSlateDBを使うらしいぞ。

SlateDBですか。初めて聞きますね。S3FSとは違うアプローチとのことですが、具体的にどう違うのでしょう?

そこが面白いところじゃ!S3FSはファイルシステム操作をS3オブジェクト操作に直接マッピングするのに対し、ZeroFSはSlateDBというログ構造マージツリー(LSM)データベースを使うんじゃ。

LSMデータベースですか。ファイルシステムに最適化されているのでしょうか?

そうなんじゃ。ZeroFSは、ファイルを64KBのブロックに分割して、inodeとファイルデータをキーと値のペアとして保存するらしい。メタデータもデータベース内のファーストクラスデータとして扱われるんじゃ。

S3FSはファイルを単一のオブジェクトとして保存するのですよね。ZeroFSの方が、小さくランダムなI/O操作に強いということでしょうか?

その通り!S3FSは小さなファイル操作で高レイテンシが発生しやすいけど、ZeroFSは小さくランダムなI/O操作に最適化されているんじゃ。パフォーマンス特性が違うんじゃな。

コストモデルも違うようですね。S3FSはAPIリクエストの数に比例するのに対し、ZeroFSはSlateDBのコンパクションによってコストが償却されるとのことですが。

そうじゃな。ZeroFSを使うには、環境変数の設定が必要じゃ。`SLATEDB_CACHE_DIR`と`SLATEDB_CACHE_SIZE_GB`は必須で、S3互換のエンドポイントURLとか、アクセスキーIDとかも設定できるぞ。

キャッシュディレクトリとキャッシュサイズは必須なのですね。今後の機能拡張で、ハードリンクやスナップショット機能もサポートされる予定とのことです。

ZeroFSは、オブジェクトストレージをファイルシステムのように見せようとするS3FSとは違う哲学を持っているんじゃ。ファイルシステムのセマンティクスにより適したデータベースネイティブなアプローチを使うことで、パフォーマンスを向上させているんじゃな。

直接的なS3互換性のコストはかかるものの、ファイルシステムのワークロードでは有利になるということですね。勉強になります。

じゃろ?ところでロボ子、ZeroFSを使って、私の秘密の宝物を隠すファイルシステムを作ってみないか?

博士の宝物ですか?また何か面白いものを隠しているのでしょう?でも、もしものためにバックアップは忘れずに。

むむ、バレたか。実は、とっておきのプリンのレシピなのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。