はじめに
SolrCloudにおいては、Collection API の BACKUP コマンドを使ってインデックスのバックアップを取ることができます。複数のノード、シャード、レプリカが存在する場合に具体的にどのような形でバックアップが残るのかを調べてみました。
対象のコレクション
実験用に backup_test というコレクションを作成しました。シャード2個がそれぞれレプリカを2個持つ構成です。
コレクション | シャード | レプリカ |
backup_test | shard1 | localhost:8983 |
backup_test | shard1 | localhost:7574 |
backup_test | shard2 | localhost:8983 |
backup_test | shard2 | localhost:7574 |
ここに、以前実験に利用した大阪の施設情報を投入しました。
バックアップの実行
バックアップは以下のように実行します。
$ curl 'http://localhost:8983/solr/admin/collections?action=BACKUP&name=backup1&collection=backup_test&location=/tmp/solr_backup'
パラメータ | 説明 |
action | バックアップコマンドとして”BACKUP”を指定 |
name | バックアップの名前。以前指定したものとは衝突しないようにする |
collection | バックアップ対象のコレクション |
location | バックアップ出力先ディレクトリ |
一つ注意が必要なのは、クラスタが複数のサーバから構成される場合には、バックアップの出力先は共有ドライブでなければならないということです。
バックアップの内容
出力先を調べると、以下の内容がバックアップに含まれていることが分かります。
- backup.properties
- コレクションの設定情報
- シャード毎のインデックスファイル
$ find /tmp/solr_backup/backup1 /tmp/solr_backup/backup1 /tmp/solr_backup/backup1/backup.properties /tmp/solr_backup/backup1/zk_backup /tmp/solr_backup/backup1/zk_backup/configs /tmp/solr_backup/backup1/zk_backup/configs/backup_test /tmp/solr_backup/backup1/zk_backup/configs/backup_test/solrconfig.xml /tmp/solr_backup/backup1/zk_backup/configs/backup_test/protwords.txt /tmp/solr_backup/backup1/zk_backup/configs/backup_test/stopwords.txt /tmp/solr_backup/backup1/zk_backup/configs/backup_test/params.json /tmp/solr_backup/backup1/zk_backup/configs/backup_test/synonyms.txt /tmp/solr_backup/backup1/zk_backup/configs/backup_test/lang /tmp/solr_backup/backup1/zk_backup/configs/backup_test/lang/stopwords_tr.txt (略) /tmp/solr_backup/backup1/zk_backup/configs/backup_test/lang/contractions_fr.txt /tmp/solr_backup/backup1/zk_backup/configs/backup_test/configoverlay.json /tmp/solr_backup/backup1/zk_backup/configs/backup_test/managed-schema /tmp/solr_backup/backup1/zk_backup/collection_state.json /tmp/solr_backup/backup1/snapshot.shard2 /tmp/solr_backup/backup1/snapshot.shard2/_3.fdt /tmp/solr_backup/backup1/snapshot.shard2/_1_Lucene50_0.tim /tmp/solr_backup/backup1/snapshot.shard2/segments_2 (略) /tmp/solr_backup/backup1/snapshot.shard2/_0_Lucene50_0.pos /tmp/solr_backup/backup1/snapshot.shard2/_2_Lucene80_0.dvm /tmp/solr_backup/backup1/snapshot.shard2/_1_Lucene50_0.doc /tmp/solr_backup/backup1/snapshot.shard1 /tmp/solr_backup/backup1/snapshot.shard1/_3.fdt /tmp/solr_backup/backup1/snapshot.shard1/_1_Lucene50_0.tim /tmp/solr_backup/backup1/snapshot.shard1/segments_2 (略) /tmp/solr_backup/backup1/snapshot.shard1/_0_Lucene50_0.pos /tmp/solr_backup/backup1/snapshot.shard1/_2_Lucene80_0.dvm /tmp/solr_backup/backup1/snapshot.shard1/_1_Lucene50_0.doc
backup.properties は以下のような内容のファイルです。
#Backup properties file #Sun Sep 19 14:21:47 UTC 2019 collection.configName=backup_test collectionAlias=backup_test startTime=2019-09-29T14\:21\:47.122280Z collection=backup_test backupName=backup1 index.version=8.1.0
おわりに
コレクションのバックアップを作成したときに具体的にどういうファイルが生成されるのかを調べました。次回はリストアの動作を確認してみます。