クラスターへのデータ・センターの追加
データ・センターを既存のクラスターに追加する手順。
データ・センターを既存のクラスターに追加する手順。
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/cassandra/cassandra.yaml |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/cassandra/conf/cassandra.yaml |
始める前に
新しいデータ・センターが別のデータ・センターまたはクラスターの既存のノードを使用する場合、古いデータが新しいクラスターに干渉しないことを確認してください。
- 新しいデータ・センターに追加する各ノードを使用廃止にします。「ノードの除去」を参照してください。
- アプリケーションのディレクトリーを完全に削除します。「DataStax Enterpriseからのデータの消去」を参照してください。
- 削除したら、最初からDataStax Enterprise(DSE)をインストールします。
手順
-
クライアントが新しいデータ・センターに先に接続しないようにし、読み取りまたは書き込みの整合性レベルによって新しいデータ・センターに対してクエリーが実行されないようにするには、以下の手順を実行します。
-
クライアントが
DCAwareRoundRobinPolicy
を使用するように構成されていることを確認します。 - クライアントが既存のデータ・センターを参照し、まったくデータが存在しない可能性がある新しいデータ・センターにアクセスを試行しないことを確認します。
-
QUORUM
整合性レベルを使用する場合は、LOCAL_QUORUM
に変更します。 -
ONE
整合性レベルを使用する場合は、LOCAL_ONE
に変更します。
ドライバーのプログラミング手順を参照します。
警告: DSE SearchやDSE Analyticsなどのクライアント・アプリケーションが適切に構成されていない場合、新しいデータベースの準備が整う前にこのデータベースに接続する可能性があります。その結果、接続例外、タイムアウト、または不整合データが生じる可能性があります。 -
クライアントが
-
キースペースを構成して、新しいデータ・センターを作成します。
-
新しいデータ・センターで、新しい各ノードにDataStax Enterpriseをインストールします。サービスを開始したり、ノードを再起動しないでください。
クラスターのすべてのノードに同じバージョンのDataStax Enterpriseがインストールされていることを確認してください。「DataStax Enterprise 5.1.xパッチ・リリースのインストール」を参照してください。
-
クラスター内の他のノードの構成に従って、新しい各ノードでcassandra.yamlを構成します。
-
新しいノードごとに、クラスターで使用されるスニッチの種類について、新しいデータ・センターの定義をプロパティ・ファイルに追加します。
注: DseSimpleSnitchは使用しないでください。DseSimpleSnitch(デフォルト)(デフォルト)は、単一データ・センターのデプロイにのみ使用されます。このスニッチは、データ・センターやラック情報を認識せず、単一のデータ・センターでのデプロイや、公開クラウドの単一ゾーンでのデプロイの場合にのみ使用できます。
表 1. スニッチごとの構成ファイル スニッチ 構成ファイル GossipingPropertyFileSnitch cassandra-rackdc.propertiesファイル Ec2Snitch Ec2MultiRegionSnitch GoogleCloudSnitch PropertyFileSnitch cassandra-topology.propertiesファイル -
既存のデータ・センターの場合:
- いくつかのノードでは、cassandra.yamlファイルのシード・プロパティを更新して、新しいデータ・センターにシード・ノードを含め、これらのノードを再起動します(cassandra.yamlファイルの変更を有効にするには、再起動が必要です)。
- クラスターで使用されるスニッチの種類について、新しいデータ・センターの定義をプロパティ・ファイルに追加します(5)。スニッチを変更する場合は、「スニッチの切り替え」を参照してください。
- ラックごとに1つのノードでDataStax Enterpriseを起動します。
- すべてのノードが起動するまでラックからのDSEの起動をローテーションします。
-
クラスターですべてのノードが実行中になり、クライアント・アプリケーションがデータ・センターで認識されたら(1)、cqlshを使用してキースペースを変更します。
ALTER KEYSPACE "sample_ks" WITH REPLICATION = {'class’: 'NetworkTopologyStrategy', 'ExistingDC':3, 'NewDC':3};
警告: DSE SearchやDSE Analyticsなどのクライアント・アプリケーションが適切に構成されていない場合、新しいデータベースの準備が整う前にこのデータベースに接続する可能性があります。その結果、接続例外、タイムアウト、または不整合データが生じる可能性があります。 -
新しいデータ・センターの各ノードでnodetool rebuildを実行します。
nodetool rebuild -- datacenter_name
注意: コマンドラインに既存のデータ・センターを指定しないと、新しいノードはあたかもリビルドが成功したかのように見えますが、データは含まれていません。この手順を実行しないと、新しいデータ・センターへ整合性レベルLOCAL_ONEまたはONEを指定して要求を発行した場合は、既存のデータ・センターが完全に同期していないと失敗する可能性があります。
この手順によって、新しいノードがクラスター内の既存のデータ・センターを認識していることが確認されます。
nodetool rebuildは、複数のノードで同時に実行できます。ノードごとにnodetool rebuildを実行すると、既存のクラスターに与える影響は減少します。クラスターが余分なI/Oとネットワーク負荷を処理可能な場合は、複数のノードで実行してください。
タスクの結果
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/cassandra/cassandra.yaml |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/cassandra/conf/cassandra.yaml |