このプロジェクトについて

RustFSは、Rustで実装されたオープンソースの分散オブジェクトストレージシステムです。S3互換APIを提供し、データレイク、AI、ビッグデータワークロード向けに位置付けられており、MinIOスタイルのシンプルさとRustのメモリ安全性を組み合わせることを目標として掲げています。Apache 2.0ライセンスの下でリリースされています。 READMEに記載されている主な機能: - S3互換性: アップロード/ダウンロード、バージョニング、オブジェクトロック(WORM)、サーバーサイド暗号化、S3 Select、バケットクォータ、イベント通知、IAM/ポリシー、監査ログ、可観測性。個々のS3機能の対応状況は、リポジトリのドキュメントにある互換性マトリクスで追跡されています。 - 分散運用: 分散モードとシングルノードモード、ビットロット保護、ヒーリングとスキャナー、プール拡張/廃止、バケットレプリケーションとサイトレプリケーション、リモートS3への階層化を含むライフサイクル管理(ILM)。 - セキュリティとアイデンティティ: 本番環境向けのVault(KV2/Transit)およびAWS KMSバックエンドを備えたRustFS KMS(LocalおよびStaticバックエンドは開発/テスト専用と記載)、OIDC/SSO、OpenStack Keystone認証、マルチテナンシー。 - プロトコルとインターフェース: ネイティブのOpenStack Swift APIとKeystone統合、FTPS、WebDAV、SFTP。SwiftとSFTPはオプトインのcargoフィーチャーで、FTPSとWebDAVはデフォルトビルドに含まれます。 - 運用: Webコンソール、Kubernetes Helmチャート、ログと可観測性、さらにスキャナーのランタイム制御、ドライブタイムアウトのチューニング、アウトバウンド接続ポリシーに関するドキュメント。 プレビューまたは制限付きの項目: S3 Tables(PyIcebergとDuckDBをカバーするIceberg REST Catalog)はプレビューとされており、MinIOのオンディスク互換性はフィーチャーフラグの背後に制限され、デフォルトビルドには含まれません。MinIOで暗号化されたオブジェクトはRustFSでは読み取れないと記載されています。 記載されているデプロイオプションには、ワンラインインストールスクリプト、DockerおよびPodmanイメージ(コンテナは非rootのUID/GID 10001:10001で実行されるため、バインドマウントされたデータ、ログ、TLSディレクトリはそのユーザーが書き込み可能である必要があります)、Docker Compose、docker-buildx.shまたはMakeターゲットによるソースからのマルチアーキテクチャイメージのビルド、Kubernetes用Helmチャート、NixOSモジュールを備えたNix flakeとrcという名前のS3互換クライアント、x-cmdが含まれます。 READMEにはプール拡張のルールも記載されています。シングルノード・シングルドライブのデプロイはスタンドアロンのみで、インプレースで拡張したりプールとして追加したりすることはできません。既存のマルチドライブプールはエンドポイントとイレージャーセット幅を変更せずに維持し、新しいプールを追加して拡張する必要があります。トポロジーのルールはMinIOに従いますが、自動パリティ選択はプロジェクト間で異なると述べられています。 起動後のアクセスは、ポート9001のWebコンソール(デフォルト認証情報はrustfsadmin/rustfsadmin)とポート9000のS3 APIを通じて行います。READMEには、環境変数を用いたWebhook通知の例、プライベート/コンテナネットワークエンドポイント向けのアウトバウンド接続許可リストに関する注記、Microsoft Entra IDのアロール用のOIDCロールクレームの例が含まれています。 サポートのために、ドキュメント、変更履歴、GitHub Discussions、Discord、イシュートラッカーへのリンクが提供されています。このプロジェクトはコミュニティ主導でApache 2.0の下でライセンスされており、RustFSはRustFS, Inc.の商標です。