2.2.5. バケットアルゴリズム

Ceph CLI を使用してバケットを作成する場合、Ceph はデフォルトでアルゴリズムを straw に設定します。Ceph は 4 つのバケットアルゴリズムをサポートします。各アルゴリズムは、パフォーマンスと組織の効率間のトレードオフを示しています。使用するバケットタイプが不明な場合は、straw バケットを使用することが推奨されます。バケットアルゴリズムは次のとおりです。

  1. Uniform: Uniform バケットは、完全に 同一の重みを持つデバイスを集約します。たとえば、ハードウェアが送信または廃止されたハードウェアの場合、通常は、同じ物理構成 (一括購入など) を持つ多数のマシンを使用します。ストレージデバイスの重みが完全に一致する場合は、uniform されたバケットタイプを使用できます。これにより、CRUSH が一定の時間内にレプリカを統一されたバケットにマップできます。一方向以外の重みでは、別のバケットアルゴリズムを使用する必要があります。
  2. List: List バケットは、コンテンツをリンクリストとして集約します。RUSH(Replication Under Scalable Hashing) P アルゴリズムに基づいて、クラスターの拡張に自然的に選択され、クラスターの拡張 先として、オブジェクトが適切な確率で最新のデバイスに移動されたり、以前と同じように古いデバイス上に留まります。アイテムがバケットに追加されると、結果は最適なデータ移行になります。ただし、一覧の途中または末尾から削除された項目は、大量の不要な移動が大量に実行され、リストバケットが 縮小されない (またはほとんどない) 状況に最適です。
  3. Tree: Tree バケットはバイナリー検索ツリーを使用します。バケットのより大きな項目のセットが含まれる場合、バケットを一覧表示する方が効率的です。RUSH(Replication Under Scalable Hashing) R アルゴリズムに基づいて、ツリーバケットは、多くのデバイスセットやネストされたバケットの管理 に適します。
  4. Straw (デフォルト): List および Tree バケットは、特定の項目に優先順位を指定するか (たとえば、リストの最初の項目を優先するなど)、または項目のサブツリー全体を考慮する必要をなくす方法で分割統治ストラテジーを使用します。レプリカ配置プロセスのパフォーマンスを向上しますが、項目の追加、削除、または再度の重み計算によりバケットの内容が変更される場合に、準最適な再調整的な動作が発生することもあります。straw バケットタイプにより、わらのくじを引くような仕方で、すべての項目はレプリカの配置について相互に対してほぼ「完了」した状態になります。