仮想ノード(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は、ランダム選択アルゴリズム法を推奨しません。代わりに、割り当てアルゴリズムを使用してください。
vnodeを有効にする
cassandra.yamlファイルで以下の手順を実行します。
- num_tokensをコメント解除し、必要なトークンの数を設定します。
- (推奨)割り当てアルゴリズムを使用するには、allocate_tokens_for_local_replication_factorをコメント解除し、データ・センター内のキースペースの目標とするレプリケーション係数に設定します。レプリケーションが変化した場合は、レプリケーション係数(RF)の設定を入れ替えます。
- initial_tokenをコメントアウトするか、設定しないままにします。
既存のクラスターをvnodeにアップグレードするには、「既存の実稼働クラスターでの仮想ノードの有効化」を参照してください。
vnodeを無効にする
重要: vnodeを使用しない場合は、各ノードがほぼ同じ量のデータを負担していることを確認する必要があります。各ノードに同じ量のデータを確実に負担させるには、各ノードに初期トークン値を割り当て、「トークンの生成」の説明に従って各データ・センターのトークンを計算します。
- cassandra.yamlファイルで以下の手順を実行します。
- num_tokensとallocate_tokens_for_local_replication_factorをコメントアウトします。
- initial_tokenをコメント解除し、1、またはマルチノード・クラスター用に生成されたトークンの値に設定します。
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストールInstaller-Servicesインストール
/etc/dse/cassandra/cassandra.yaml tarボール・インストールInstaller-No Servicesインストール
installation_location/resources/cassandra/conf/cassandra.yaml