メインコンテンツまでスキップ
バージョン: 3.2

Plan StarRocks cluster

このトピックでは、ノード数、CPUコア数、メモリサイズ、ストレージサイズの観点から、プロダクション環境での StarRocks クラスターのリソース計画について説明します。

ノード数

StarRocks は主に 2 種類のコンポーネントで構成されています: FE ノードと BE ノード。各ノードは物理または仮想マシン上に個別にデプロイする必要があります。

FE ノード数

FE ノードは主にメタデータ管理、クライアント接続管理、クエリプランニング、クエリスケジューリングを担当します。

プロダクション環境では、単一障害点 (SPOF) を防ぐために、StarRocks クラスターに少なくとも 3 つ の Follower FE ノードをデプロイすることをお勧めします。Leader FE はこれらの 3 つのフォロワーから自動的に選出されます。

StarRocks は Raft プロトコルを使用して FE ノード間のメタデータを管理します。StarRocks はすべての Follower FE ノードから Leader FE ノードを選出します。メタデータを書き込めるのは Leader FE ノードのみです。他の Follower FE ノードは、Leader FE ノードからのログに基づいてメタデータを更新するだけです。Leader FE ノードが失敗するたびに、StarRocks は Follower FE ノードの半数以上が生きている限り、新しい Leader FE ノードを再選出します。

アプリケーションが高い並行性のクエリリクエストを生成する場合、Observer FE ノードをクラスターに追加することができます。Observer FE ノードはクエリリクエストのみを処理し、Leader FE ノードの選出には参加しません。

BE ノード数

BE ノードはデータストレージと SQL 実行を担当します。

プロダクション環境では、データの高い信頼性とサービスの可用性を確保するために、StarRocks クラスターに少なくとも 3 つ の BE ノードをデプロイすることをお勧めします。少なくとも 3 つの BE ノードがデプロイされ、StarRocks クラスターに追加されると、BEs の高可用性クラスターが自動的に形成されます。1 つの BE ノードが失敗しても、BE サービス全体の可用性には影響しません。

StarRocks クラスターが高い並行性のクエリを処理できるようにするために、BE ノードの数を増やすことができます。

CN ノード数

CN ノードは StarRocks のオプションコンポーネントであり、SQL 実行のみを担当します。

StarRocks クラスター内のデータ分布を変更せずに、計算リソースを弾力的にスケールするために CN ノードの数を増やすことができます。

CPU とメモリ

通常、FE サービスは多くの CPU とメモリリソースを消費しません。各 FE ノードに 8 CPU コアと 16 GB の RAM を割り当てることをお勧めします。

FE サービスとは異なり、BE サービスは、大規模なデータセットで高い並行性または複雑なクエリを処理する場合、CPU とメモリを大幅に消費する可能性があります。したがって、各 BE ノードに 16 CPU コアと 64 GB の RAM を割り当てることをお勧めします。

ストレージ容量

FE ストレージ

FE ノードは StarRocks のメタデータのみをストレージに保持するため、ほとんどのシナリオでは各 FE ノードに 100 GB の HDD ストレージで十分です。

BE ストレージ

BE の初期ストレージスペースの見積もり

StarRocks クラスターが必要とする総ストレージスペースは、元のデータサイズ、データレプリカ数、および使用するデータ圧縮アルゴリズムの圧縮率によって同時に影響を受けます。

次の式を使用して、すべての BE ノードに必要な総ストレージスペースを見積もることができます。

Total BE storage space = Raw data size * Replica count/Compression ratio

Raw data size = Sum of the space taken up by all fields in a row * Row count

StarRocks では、テーブル内のデータは最初に複数のパーティションに分割され、その後複数のタブレットに分割されます。タブレットは StarRocks におけるデータ管理の基本的な論理単位です。データの高い信頼性を確保するために、各タブレットの複数のレプリカを維持し、異なる BEs に分散して保存することができます。デフォルトでは、StarRocks は 3 つのレプリカを維持します。

現在、StarRocks は 4 つのデータ圧縮アルゴリズムをサポートしており、圧縮率が高い順に次のように並んでいます: zlib、Zstandard (または zstd)、LZ4、Snappy。これらは 3:1 から 5:1 の圧縮率を提供できます。

総ストレージスペースを決定した後、クラスター内の BE ノードの数で単純に割ることで、各 BE ノードの平均ストレージスペースを見積もることができます。

必要に応じて追加ストレージを追加

元のデータが増加するにつれて BE ストレージスペースが不足した場合、クラスターを垂直または水平にスケールするか、クラウドストレージを単純にスケールアップすることで補うことができます。

  • 新しい BE ノードを StarRocks クラスターに追加

    新しい BE ノードを StarRocks クラスターに追加することで、データをより多くのノードに均等に再分配することができます。詳細な手順については、 Scale your StarRocks cluster - Scale BE out を参照してください。

    新しい BE ノードが追加されると、StarRocks はすべての BE ノード間でデータを自動的に再バランスします。この自動バランスはすべてのテーブルタイプでサポートされています。

  • 既存の BE ノードに追加のストレージボリュームを追加

    既存の BE ノードに追加のストレージボリュームを追加することもできます。詳細な手順については、 Scale your StarRocks cluster - Scale BE up を参照してください。

    追加のストレージボリュームが追加されると、StarRocks はすべてのテーブル内のデータを自動的に再バランスします。

  • クラウドストレージを追加

    StarRocks クラスターがクラウドにデプロイされている場合、必要に応じてクラウドストレージをスケールアップすることができます。詳細な手順については、クラウドプロバイダーにお問い合わせください。