仮想ノード(vnode)の構成

仮想ノード(vnode)と、仮想ノードを異なる種類のデータ・センターで使用する方法についての説明。vnodeを無効にする手順も説明します。

仮想ノードを使用すると、パーティション範囲(トークンの計算と割り当て)を決定する必要がなく、ノードを追加または削除するときにクラスターのバランスを調整する、デッド・ノードを置き換えるなど、DataStax Enterpriseで行う多くのタスクが簡略化されます。仮想ノードとその仕組みの詳細な説明については、仮想ノードを参照してください。

DataStax Enterpriseでは、データ・センター内のすべてのノードで同じトークン・アーキテクチャーを使用する必要があります。ノードはすべてvnode対応アーキテクチャーであるか、またはすべて単一トークン・アーキテクチャーでなければなりません。クラスター全体でデータ・センターのアーキテクチャーは異なっても構いません。たとえば、以下のような単一のクラスターが可能です。
  • OLTPを実行するトランザクション専用のデータ・センターを1つ含む。
  • 単一トークン・アーキテクチャーの分析データ・センターを1つ含む(vnodeなし)。
  • vnodeを含む検索データ・センターを1つ含む。

仮想ノードを使用する際のガイドライン

仮想ノード(vnode)が有効かどうかは、最初のcassandra.yaml設定に従います。トークン範囲を分散する方法は2つあります。DataStaxは、割り当てアルゴリズムの使用を推奨しています。データ・センター内のすべてのシステムで同じ方法を使用します。
割り当てアルゴリズム
データ・センターのキースペース・レプリケーション係数(allocate_tokens_for_local_replication_factor)に基づいて、データ・センター内のノードとラック間のトークン範囲分散を最適化します。num_tokens設定を使用して、割合に応じてトークン範囲を分散します。システム間でシステムのパフォーマンスが異なる場合を除いて、データ・センター内のすべてのシステムのnum_token設定を同じにする必要があります。高性能のハードウェアに多くのワークロードを分散するには、それらのシステムのトークン数を増やします。

割り当てアルゴリズムは、少ないトークンを使用して効率的にワークロードのバランスを調整します。システムがデータ・センターに追加されると、アルゴリズムはそのバランスを維持します。使用するトークン数を増やすと、ワークロードがより均等に分散されますが、トークン管理のオーバーヘッドも大幅に増加します。

DataStaxは、8つのvnode(トークン)の使用を推奨しています。これにより、約10%の差異でシステム間にワークロードが分散され、パフォーマンスへの影響は最小限に抑えられます。データ・センターのワークロード分散要件に基づいて、vnodeトークン(num_tokens)の数を設定します。
表 1. 割り当てアルゴリズムのワークロード分散の差異
レプリケーション係数 4 vnode(トークン) 8 vnode(トークン) 64 vnode(トークン) 128 vnode(トークン)
2 約17.5% 約12.5% 約3% 約1%
3 約14% 約10% 約2% 約1%
5 約11% 約7% 約1% 約1%
ランダム選択アルゴリズム
DataStaxは、ランダム選択アルゴリズム法を推奨しません。代わりに、割り当てアルゴリズムを使用してください。
トークン範囲をデータ・センター内のノードにランダムに分散します。num_tokens設定が指定され、allocate_tokens_for_local_replication_factorがコメントアウトされている場合にのみ、有効になります。分散は、データ・センターの他のノードに割り当てられたトークンの数に比例します。システムのタイプに基づいて、トークンの数を以下のように割り当てます。
データ・センターのタイプ vnode(トークン)の数
トランザクションのみ 128
DSE Analyticsのみ 128

SearchAnalyticsワークロードでは、DSE Searchで推奨される8個のvnodeを使用します。

DSE Searchのみ 8

allocate_tokens_for_local_replication_factorをデータ・センターのキースペースのレプリケーション係数に設定します。

DSE Graph 128
DSE Graph(DSE Searchと併用する場合) 8
注: ランダム割り当てアルゴリズムでは、データ・センターは最初に作成されるときに均等に分散されます。ノードが追加または削除されると、データ・センターのトポロジーが変化するため、ワークロードが不均衡になる可能性があります。トークン範囲の分散を最適化するには、DataStaxの推奨事項に従ってください。

vnodeを有効にする

cassandra.yamlファイルで以下の手順を実行します。

  1. num_tokensをコメント解除し、必要なトークンの数を設定します。
  2. (推奨)割り当てアルゴリズムを使用するには、allocate_tokens_for_local_replication_factorをコメント解除し、データ・センター内のキースペースの目標とするレプリケーション係数に設定します。レプリケーションが変化した場合は、レプリケーション係数(RF)の設定を入れ替えます。
  3. initial_tokenをコメントアウトするか、設定しないままにします。

既存のクラスターをvnodeにアップグレードするには、「既存の実稼働クラスターでの仮想ノードの有効化」を参照してください。

vnodeを無効にする

重要: vnodeを使用しない場合は、各ノードがほぼ同じ量のデータを負担していることを確認する必要があります。各ノードに同じ量のデータを確実に負担させるには、各ノードに初期トークン値を割り当て、「トークンの生成」の説明に従って各データ・センターのトークンを計算します。
  1. cassandra.yamlファイルで以下の手順を実行します。
    1. num_tokensallocate_tokens_for_local_replication_factorをコメントアウトします。
    2. initial_tokenをコメント解除し、1、またはマルチノード・クラスター用に生成されたトークンの値に設定します。
    cassandra.yamlファイルの場所は、インストールのタイプによって異なります。

    パッケージ・インストールInstaller-Servicesインストール

    /etc/dse/cassandra/cassandra.yaml

    tarボール・インストールInstaller-No Servicesインストール

    installation_location/resources/cassandra/conf/cassandra.yaml