rustfs/rustfs

RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.

RustFS – 高性能分散オブジェクトストレージ(Rust)

概要 – RustFSは、Rustで書かれたオープンソースのApache-2.0ライセンスのオブジェクトストレージシステムです。MinIOの使いやすさと、Rustが提供するメモリ安全性と生の速度を組み合わせることを目指しています。このサービスはS3 API(コア機能、バージョニング、暗号化、ライフサイクルなど)を話し、OpenStack Swift、SFTP/FTPS/WebDAV、およびWebコンソールもサポートしています。

AI/MLにとって重要な理由 – 現代のAIパイプラインは、トレーニングデータ、モデルアーティファクト、推論結果のために、高速で信頼性の高いオブジェクトストアを必要とします。RustFSは「データレイクサポート」と「ハイスループットのビッグデータおよびAIワークロード向けに最適化」を宣伝しており、データ集約型のMLワークロードのストレージ層の候補となっています。


主な機能(READMEに記載されている通り)

  • 高性能 – 低オーバーヘッドでメモリ安全な実行のためにRustで構築。
  • 分散型でフォールトトレラントなアーキテクチャ – イレイジャーコーディングされたプールを使用して、シングルノードまたはマルチノードクラスターとして実行可能。
  • 幅広いS3互換性 – コアS3操作、バージョニング、オブジェクトロック(WORM)、サーバーサイド暗号化、ライフサイクル/ILM、バケットレプリケーション、イベント通知など。
  • OpenStack Swift APIおよびKeystone認証 – Swiftとその認証モデルのネイティブサポート。
  • 追加プロトコル – FTPS、WebDAV、SFTP(オプトインのCargoフィーチャー)。
  • KMS統合 – Vault(KV2/Transit)およびAWS KMSバックエンド。テスト用のローカル/静的バックエンド。
  • 可観測性 – 組み込みのロギング、Prometheusメトリクス、Grafanaダッシュボード、Jaegerトレーシング。
  • Webコンソール – バケットとオブジェクト管理のためのグラフィカルUI。
  • Helmチャート、Dockerイメージ、Nixフレーク、x-cmdインストーラー – 複数のデプロイオプション。
  • 寛容なApache-2.0ライセンス – 「バイラル」なAGPL制限なし。

典型的なユースケース

ユースケース RustFSの利点
AI/MLデータレイク 大規模なトレーニングデータセットとモデルチェックポイントのためのS3互換の高スループットストレージ。
エッジ/IoTゲートウェイ フットプリントが小さく、テレメトリなしのRustバイナリ。オンプレミスやエッジデプロイに適しています。
ハイブリッドクラウド オンプレミスまたはコンテナ/Kubernetesで実行可能。既存のクラウドツールと連携するプライベートS3エンドポイントを提供。
エンタープライズコンプライアンス Apache-2.0ライセンス、GDPR/CCPA/APPIフレンドリー、隠れたテレメトリなし、きめ細かなIAMのためのOIDC/SSOサポート。
バックアップ/アーカイブ バケットレプリケーション、バージョニング、オブジェクトロックによる不変ストレージをサポート。

はじめに(クイックスタートオプション)

  1. ワンクリックスクリプト – curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh
  2. Docker – 公式イメージを実行(非rootユーザー rustfs UID/GID 10001:10001)。例:
    mkdir -p data logs && chown -R 10001:10001 data logs
    docker run -d -p 9000:9000 -p 9001:9001 \
        -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest
    
    必要に応じてlatestを特定のバージョンタグに置き換えてください。
  3. Docker Compose – すぐに使えるdocker-compose-simple.ymlには、RustFSに加えてPrometheus、Grafana、Jaegerが含まれ、可観測性を提供します。
  4. Helmチャート – https://charts.rustfs.com/のチャートを介してKubernetesクラスターにインストール。
  5. ソースからビルド – 提供されているdocker-buildx.shスクリプトまたはmakeターゲットを使用してマルチアーチDockerイメージをビルドするか、Cargoでバイナリを直接コンパイルします。
  6. Nixフレーク/x-cmd – NixOSユーザーまたはx-cmdインストーラーを好むユーザー向け。

管理のハイライト

  • コンソール – http://localhost:9001でアクセス可能(デフォルト認証情報はrustfsadmin / rustfsadmin)。
  • TLS – 証明書ディレクトリをマウントし、RUSTFS_TLS_PATHを設定することで有効化。
  • 通知 – RUSTFS_NOTIFY_*環境変数を介したWebhookサポート。外部接続はRUSTFS_OUTBOUND_ALLOW_ORIGINSでホワイトリストに登録する必要があります。
  • プール拡張 – シングルノード・シングルディスクのデプロイはその場で拡張できません。マルチドライブプールでは、プールレイアウトの互換性ドキュメントを参照して、慎重なジオメトリが必要です。
  • OIDC – Microsoft Entra IDのオプションのロールクレームマッピング。RUSTFS_IDENTITY_OPENID_*環境変数で設定します。

ライセンス

  • Apache License 2.0 – 寛容で、商用利用に適しており、「バイラル」条項なし。

詳細情報


TL;DR

RustFSは、RustベースのApache-2.0ライセンスのオブジェクトストレージシステムで、完全なS3互換性、分散フォールトトレラントな運用、およびWebコンソールを提供します。ハイスループットのAI/MLデータレイクワークロードを対象とし、エッジフレンドリーなデプロイオプション(Docker、Helm、Nixなど)と強力なセキュリティ/コンプライアンス保証を提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト