2016-06-15 3 views
0

データセンターIIに複製されたESクラスタIIをセットアップする必要があります.ESクラスタIIはデータセンターIのESクラスタIと同期するだけです。これまでの私の考え方は、スナップショットをcusterIIに保存し、スナップショットを復元してclusterIを同期させることです。しかし、このようなやり方は遅れている。より良い方法がありますか?2つのElasticSearchクラスタを同期する方法

答えて

0

クラスタリングは、ElasticSearchに組み込まれた概念です。しかし、ネットワークレイテンシが関係するため、データセンター間で拡張するようには設計されていませんでしたが、それは可能です。

ElasticSearchの背後にあるアイデアは、シャード自体を複製する高可用性クラスター(つまり、クラスター内の2のレプリカ・レベルは、クラスター内に2つのデータ・コピーがあることを意味します)です。これは、1つのクラスタだけが独自のバックアップであることを意味します。

まず、あなたはそれがクラスタとして構成されていない場合は、お使いの/etc/elasticsearch/elasticsearch.yml(またはどこでもあなたの設定を置く)に以下を追加することによってそう:また

/etc/elasticsearch/elasticsearch.yml: 
    cluster.name: thisismycluster 
    node.name: ${HOSTNAME} 

、あなたがnode.name何をすることができますあなたは望みますが、ホスト名を入れるのが最善です。

はまた、あなたがそれらのデータセンター間でのポイントツーポイントリンクを必要とするので、あなたは、インターフェイスがおそらくあなたの最善の策である特定のアドレスおよび/またはインターフェースにバインドElasticSearchサービスを持っていることを確認したいです

/etc/elasticsearch/elasticsearch.yml: 
    network.host: [_tun1_] 

検出ホストのリストを設定する必要があります。つまり、クラスタ内のすべてのホストで、cluster.nameのパラメータ名が一致すると、そのホストが検出され、そのクラスタに割り当てられます。 ElasticSearchは残りの部分を処理します、それは魔法です! (あなたのデータセンター全体であなたの/ etc/hostsファイルまたはDNSがそれを解決できるで定義されている場合のみ)あなたは名前でホストを追加することができ

またはIP:

/etc/elasticsearch/elasticsearch.yml: 
    discovery.zen.ping.unicast.hosts: ["ip1", "ip2", "..."] 

設定を保存しElasticSearchを再起動します。

sudo systemctl restart elasticsearch 
OR 
sudo service elasticsearch restart 

あなたのOSに応じてsystemdを使用していない場合は、私はそれを使用することを強く勧めます。

ElasticSearchを使用してスナップショットを作成することはひどい考えであり、ElasticSearchは高可用性の考え方を既にアプリケーションに組み込んでいるため、すべてのコストをかけずに済みます。地域社会や企業によって広く採用されています。

関連する問題