Elasticsearchスナップショットデータによる移行と災害対策


マルチクラスタのエンタープライズクラスの複雑なアーキテクチャに直面して、バックアップクラスタを準備することは非常に重要です.バックアップクラスタは通常、読み書き操作に参加しませんが、常にビジネスクラスタのすべてのデータを含んでいます.ビジネスクラスタが使用できない場合は、Elasticsearchを直接切り替えることで災害対策を完了することができます.この文章は、クラスタ間でデータの移行とデータの災害対策を実現することを書いています.
一.Snapshot And Restore説明
スナップショットは、実行中のElasticsearchクラスタから取得したバックアップです.単一のインデックスまたはクラスタ全体のスナップショットを取得し、共有ファイルシステムのリポジトリに格納できます.
スナップショットはrestore APIを介して実行中のクラスタに復元できます.
まず倉庫が必要です
vim conf/elasticsearch.yml
path.repo /data/backup
 : , Nfs,Samba 

三.Elasticsearch倉庫がどこにあるか教えてください.
PUT /_snapshot/my_backup # _snapshot API 
{
  "type": "fs",
  "settings": {
        "location": "my_backup_location" # 
        "compress": true # Mappings settings, 
  }
}
GET /_snapshot/my_backup # 

四.準備ができたらバックアップを開始する
PUT /_snapshot/my_backup/kuaizhao1?wait_for_completion=true

#wait_for_completionスナップショットが完了してから戻る
1.成功として次の文字列を返します.
{"snapshot":{"snapshot":"kuaizhao1,"uuid":"x3AXRHavTySEe2BpBhU_FQ","version_id":5060199,"version":"5.6.1","indices":["test-aop-2014.04","test-xtx-2020.05","test2-newlis-2020.05","test-xtx-2014.04"],"state":"
SUCCESS","start_time":"2020-05-28T06:58:09.818Z","start_time_in_millis":1590649089818,"end_time":"2020-05-28T06:58:10.258Z",
"end_time_in_millis":1590649090258,"duration_in_millis":440,"failures":[],"shards":{"total":8,"failed":0,"successful":8}}}

2.バックアップウェアハウス/data/backupで次のファイルを生成
-rw-rw-r-- 1 elk  elk   29 May 28 11:09 incompatible-snapshots
-rw-rw-r-- 1 elk  elk   275 May 28 11:03 index-0
-rw-rw-r-- 1 elk  elk   8 May 28 11:03 index.latest
drwxrwxr-x 6 elk  elk    4096 May 28 11:03 indices
-rw-rw-r-- 1 elk  elk   698 May 28 11:03 meta-RUiiWfeISgWFNrVfQ80sGw.dat
-rw-rw-r-- 1 elk  elk   232 May 28 11:03 snap-RUiiWfeISgWFNrVfQ80sGw.dat

五.インクリメンタルバックアップは、倉庫にスナップショットを再構築することです.
PUT /_snapshot/my_backup/kuaizhao2?wait_for_completion=true

#倉庫内の他のスナップショット情報を自動的に認識し、新規または更新されたインデックスのみをスナップショットする
六.スナップショットデータを含むネットワークディスクを別のクラスタのいずれかのノードに掛ける
スナップショットの復元を開始
1.これは新しいクラスタです.他のインデックスはありません.重複インデックスはありません.
POST _snapshot/my_backup/kuaizhao1/_restore

2.スナップショットをリカバリしたか、重複インデックスがある
POST test-xtx-2020.05/_close # 
POST _snapshot/my_backup/kuaizhao2/_restore
GET _cat/shards # 

七.エラーチェック
RepositoryVerificationException[[backup5.28] a file written by master to the store [/data/backup] cannot be accessed on the node [{test1-2}{OZKGLppLRgy1cFdhiVrVGw}{5CgnmLyaS_yGLnxFx1Wrxg}{10.1.5.13}{10.1.5.13:9300}]. This might indicate that the store [/data/backup] is not shared between this node and the master node or that permissions on the store don't allow reading files written by the master node]
スナップショット・ウェアハウスはローカル・ディレクトリではなく、ネットワーク共有ディスクのみです.
location [/data/backup] doesn't match any of the locations specified by path.repo because this setting is empty
まずelasticsearch.ymlで倉庫の再起動を構成してから続行します