Ceph向けcroit Rustスタックの一部

croit FlashStore OSD:
NVMe向けにRustで再構築したCeph OSD

croit FlashStore OSDは、テストと評価のためのプレビューとして提供されています。本番データでの使用はまだ推奨されません。
  • +50%* スループット レプリケーションプール、10テストの平均、30台のNVMe OSD、カーネルTCP
  • −52%* p99レイテンシ レプリケーションプール、48クライアント × QD16、30台のNVMe OSD、カーネルTCP
  • −36%* 操作あたりのCPU レプリケーションプール、20テストすべてで削減、30台のNVMe OSD、カーネルTCP

*2026年11月9日のベンチマーク(ビルド422be26)に基づく数値です。

フラッシュでは、CephはCPUを待っています

データセンター向けNVMeドライブは、4kで数十万IOPSを処理します。従来のOSDは、ドライブが上限だった時代に設計されました。現在の上限は操作あたりのCPU時間であり、ドライブを速くしてもそれ以上は伸びません。

  1. 01

    負荷の高いワークロード向け

    VMwareから移行した仮想マシン、データベース、GPUにデータを供給し続けるMLパイプライン、HPCのスクラッチ領域。こうした用途では、コアあたりの帯域幅とIOPSがCephの適否を決めます。

  2. 02

    同じドライブ、サーバー、ネットワーク

    効果はOSDのデータパスから生まれます。ハイパーコンバージドノードでは空いたCPUとメモリがVMに戻り、ストレージノードでは余力となるか、次回購入時のコア数削減につながります。

  3. 03

    オープンソース、croitの有無を問わず

    croit FlashStore OSDはLGPL-3.0、RustクライアントライブラリはMPL-2.0でライセンスされています。ライセンス料も容量課金もありません。croitを使うかどうかにかかわらず、既存のCephクラスターで動作します。

外側は同じCeph、内側は新しいデータパス

左右とも、1回の書き込みがOSDを通る経路を示しています。BlueStoreではすべての処理が共有キューとロックを通り、データはドライブへ直接、メタデータはRocksDBとBlueFSを経由します。croit FlashStore OSDでは、各CPUコアがネットワークからドライブまで専用のレーンを持ち、メタデータの経路にRocksDBはありません。

The write path through an OSD. BlueStore: one messenger, threads through shared queues and locks; data goes straight to NVMe with O_DIRECT, metadata through RocksDB and BlueFS. croit FlashStore OSD: msgr2 on every core, each core owns its PGs, keeps metadata in its own B+tree and WAL, and writes data through its own io_uring or SPDK ring.
  • 1 · msgr2 · cephx

    外側からは通常どおり

    モニター、マネージャー、変更のないクライアント、従来のOSDは、同じOSDMapとCRUSHルールのもとで、これまでどおりやり取りします。1つのプールに両方のOSDを混在させられます。内部では各コアが独自の接続を持ち、各処理をロックフリーのリングで、そのPGを担当するコアに渡します。

  • 2 · スレッド

    配置グループごとに1コア

    各PGは固定された1つのコアだけに属するため、ロックを待つことがありません。コア0は、モニター、マネージャー、ハートビート、マップといった制御処理も担当します。

  • 3 · ストレージエンジン

    コアごとのB+木とログ

    各コアがドライブの一部を担当し、専用の先行書き込みログ、コピーオンライトのB+木、アロケーター、デバイスキューを持ちます。B+木が持つのはメタデータだけです。データは新しい4Kエクステントに書き込まれ、上書きされることはなく、ログの記録と並行して書き込まれます。デフォルトでは、RocksDBもBlueFSもコンパクションもありません。

  • 4 · I/Oパス

    ストアではコピーなし

    書き込みのコピーはネットワーク受信時の1回だけで、RDMAならそれもありません。ストアは受信バッファから参照渡しで、コア専用のio_uringまたはSPDKのリングを通じて書き込みます。すべての場所でメディアに書き込まれて初めて完了が通知されます。

「BlueStoreは非常に多くの本番クラスターで稼働しており、そのすべてで安定性と互換性を保ち続ける必要があります。croit FlashStore OSDによって、NVMe向けのストレージエンジンをBlueStoreに代わるものではなく、その隣にゼロから設計する自由が得られました。得られた知見は、Cephプロジェクトに還元していきます。」

Igor Fedotov(croitのCephエンジニア、Ceph Steering Committeeメンバー)

測定結果

同じハードウェアで、より速いストレージエンジン

30台のNVMe OSDからなる同じクラスターで、同じベンチマークテストを2回実行しました。1回は標準のCeph 21.2.0のBlueStore、もう1回はcroit FlashStore OSDで、どちらもカーネルTCP上で変更のないCephクライアントを使用しています。スループットはレプリケーションプールで平均50%、イレイジャーコーディングプールで平均54%向上し、イレイジャーコーディングプールの4Kランダム書き込みでは最大187%向上しました。レプリケーションプールでは、p99レイテンシが平均52%、操作あたりのOSD CPUが平均36%減少しました。

croit FlashStore OSD against BlueStore, averages on replicated pools with 30 NVMe OSDs: 50% more throughput, 52% lower p99 latency and 36% less CPU per operation. Preview figures.

予測しやすいメモリ、ページキャッシュなし

BlueStoreはRocksDBのメタデータをカーネルのページキャッシュ経由で読み込み、このキャッシュはデータセットとともに増大します。当社のイレイジャーコーディングの4Kテストでは、OSDあたり最大26 GiBに達しました。croit FlashStore OSDはダイレクトI/Oを使い、ページキャッシュに手を付けません。そのOSDはすべてのテストで中央値1台あたり2.2〜4.8 GiBにとどまり、プロセスメモリはBlueStoreより約13%少なくなっています。ハイパーコンバージドノードのサイジングでは、この予測しやすさがスループットの数値より重要になる場合があります。

  • クラスター:AMD EPYC 9455Pサーバー5台に30台のNVMe OSD(OSDごとに専用6コア)、2 × 200 Gbit/s、カーネルTCP、RDMAなし。
  • 比較対象:同じクラスター上の、BlueStoreを使用した標準のCeph 21.2.0。
  • クライアント:変更なし。標準のlibrados上でradosエンジンを使ったfio。すべての数値はRADOS上で測定しています。
  • テスト:サイズ3のレプリケーションプールと2+2のイレイジャーコーディングプールで、それぞれ48クライアント × QD16の10ベンチマークテスト、さらにキュー深度1のレプリケーションで8テスト。加えて、5 OSDと10 OSDでの4 MiBオブジェクト、および1 OSDと30 OSDでのキー/バリューメタデータ(OMAP)。
  • 平均:テストごとの比率の幾何平均です。「最大」は単一テストの最良値です。
  • コールドスタート:croit FlashStore OSDのテストはすべて、OSDを再起動してページキャッシュを破棄したコールド状態から開始しました。BlueStoreの比較用テストはそうしていません。どちらかといえば、BlueStoreに有利な条件です。
  • 実行回数:各テストはエンジンごとに1回実行しました。
  • 測定していない項目:RGWとCephFSのエンドツーエンド。

全テストの測定値:ベンチマークレポート(PDF、英語)。仕組みとすべての結果の解説:記事を読む(英語)。

ベンチマークレポート、ファクトシート、プレス向けQ&A

全テストを収録したベンチマークレポート、ファクトシート、報道関係者向けQ&AをPDF(英語)で提供しています。生データは、リクエストに応じてメールでお送りします。

お使いのクラスターに適していますか?

croit FlashStore OSDは、CPUがボトルネックになるNVMeプール向けに作られています。仮想マシン、データベース、AI、HPCです。高速化されるのはOSDなので、ゲートウェイやメタデータサーバーを待つS3やCephFSの処理はそのまま、ネットワークが上限となる大きな読み取りは同等のまま、HDDプールは従来のOSDのままです。プレビューのため、現時点ではテストクラスターで使うのが適切です。

従来のOSDと並べて試す

要件:Ceph 21.2.0、20.2.5または20.2.4、電源喪失保護付きで4 KiBセクター形式のNVMeドライブ(512 Bのネームスペースは再フォーマットが必要)、io_uringを有効にしたLinux 5.14以降(RHELまたはAlma 9)。
  1. 1

    入手する

    コードとデプロイガイドはGitHubにあります。croit frontier releaseでは、croit管理ソフトウェアで有効にします。croitのお客様には立ち会い型のテストを提供します。テストしたい内容を伝えていただければ、当社のエンジニアが目の前でライブ実行します。

  2. 2

    ドライブを再デプロイ

    オンディスクフォーマットが異なるため、インプレース変換はありません。ドライブを消去し、croit FlashStore OSDとして戻します。障害ドメインに応じて、ドライブ1台ずつ、またはサーバー1台分ずつ進めます。croitではドライブごとに選択できます。

  3. 3

    バックフィルを待つ

    ディスク交換時と同じように、クラスターが他のコピーからデータを書き戻します。

  4. 4

    比較する

    従来のOSDとcroit FlashStore OSDは常に同じプールを提供するため、両方を並べて測定でき、どのステップの後でも止められます。

Ceph向けcroit Rustスタックの一部

croitはCephの性能上重要な部分をRustで作り直しており、croit FlashStore OSDはその最初の部分です。Cephのモニターとマネージャーは変更なしで動作し続けます。発表を読む(英語)。

  1. 現在

    パブリックプレビュー

    croit FlashStore OSD。librustyrados:ネイティブRust APIを備え、libradosとそのまま置き換えられるライブラリ。librustyrbd:QEMU/KVM向けに、librbdとそのまま置き換えられるライブラリ。クライアントとOSD間のRDMAトランスポート(RoCEv2)。

  2. 2026 Q4

    次のプレビュー

    レプリケーションプールとイレイジャーコーディングプール向けの重複排除。

  3. 2027 Q1

    一般提供と新しいプレビュー

    croit FlashStore OSD、Rustクライアントライブラリ、RDMAトランスポート、重複排除の一般提供。GPUメモリへのGPUDirect RDMAを実現するKVBM/NIXLプラグイン、libcephfs互換の新しいトランザクションベースのファイルシステムとそのRustクライアントライブラリ、Rust製RADOS Gateway(S3)のプレビュー。

  4. 2027 Q2

    一般提供

    KVBM/NIXLプラグイン、新しいファイルシステム、Rust製RADOS Gatewayの一般提供。

日程はすべて目安であり、croitのお客様の需要に応じて変更される場合があります。

croitのCephエンジニアが開発

croit FlashStore OSDは、croitのCEOであるMartin Vergesの支援のもと、Igor FedotovとMd Mahamudur Rahaman Sajibが開発しています。croitのお客様には、croit frontier releaseに追加費用なしで含まれ、croit管理ソフトウェアで有効にできます。

よくある質問

まだです。croit FlashStore OSDは、テストと評価のためのプレビューとして提供されています。本番データでの使用はまだ推奨されません。

一般提供は2027年第1四半期に予定しています。croitは固定の日付ではなく、Cephエンジニアが本番データに使える状態だと確信した時点でリリースします。

無料です。LGPL-3.0のオープンソースで、ライセンス料も容量課金もありません。croitのお客様には、croit frontier releaseに追加費用なしで含まれます。

いいえ。コードとデプロイガイドはGitHubで公開されており、croitを使うかどうかにかかわらず既存のCephクラスターで動作します。croit frontier releaseでは、croit管理ソフトウェアで有効にし、ドライブごとに選択します。

いいえ。このページの結果はすべて、標準のlibrados上の変更のないCephクライアントで測定しました。モニター、マネージャー、従来のOSDも、変更なしで動作し続けます。

いいえ。RDMAトランスポート(RoCEv2)はプレビューに含まれていますが、オプションです。このページの数値はすべてカーネルTCP上で測定しました。

いいえ。電源喪失保護付きのNVMeドライブのみです。回転ディスクではドライブが依然として上限であり、従来のOSDが適しています。

何も変わりません。ワークロードを提供するプールのディスクをcroit FlashStore OSDとして再デプロイするまで、性能はそのままです。

当社のベンチマークでは、croit FlashStore OSDは28テストのうち27でBlueStore以上のスループットに達しました。例外のレプリケーションプールへの64Kランダム読み取りも0.99xで同等です。p99レイテンシは28テストのうち25で低く、一部のキー/バリューメタデータ(OMAP)テストは遅くなり、最も低いものは0.70xでした。

croit FlashStore OSDはLGPL-3.0、RustクライアントライブラリはMPL-2.0でライセンスされています。

croit FlashStore OSDのニュース

新しいビルド、ベンチマークの更新、一般提供の開始など、試せる新しい情報があればメールでお知らせします。