elasticsearch データディレクトリを変更する
elasticsearchをローカル内で、別のマウントポイントに移動したいというシーンがあり、すごく簡単にデータ移動が行えたので一応メモとして備忘録
基本的には、elasticsearchのサービスを停止し、データを旧dirから新dirにコピーし、/etc/sysconfig/elasticsearchのDATA_DIRを新dirに向けてサービス再開するだけ。
感覚的には、上記方法でいけると思ったけど不安だったので、@johtaniに質問させていただいて多分いけるとの回答を得たのでいざGO!
@shnagai クラスタ名とか変更してなければ、それで行けると思います。(手元で動作させずに回答してます)
— Jun Ohtani (@johtani) 2014, 7月 29
ざっくり手順↓
サービス停止
$ sudo /etc/init.d/elasticsearch stop
コピー
$ pwd
新dir /opt/xxx
$ sudo cp -r /var/lib/elasticsearch/elasticsearch ./elasticsearch
所有者変更
$ sudo chown -R elasticsearch:elasticsearch elasticsearch/
データファイル変更
sudo vim /etc/sysconfig/elasticsearch
#変更部分
#DATA_DIR=/var/lib/elasticsearch
DATA_DIR=/opt/xxx/elasticsearch
サービス再開
$ sudo /etc/init.d/elasticsearch stop
正常開始のログ確認
$ sudo tail -f /var/log/elasticsearch/elasticsearch.log
[2014-07-29 21:30:48,449][INFO ][node ] [LOG] version[1.1.1], pid[29011], build[f158
5f0/2014-04-16T14:27:12Z]
[2014-07-29 21:30:48,449][INFO ][node ] [LOG] initializing ...
[2014-07-29 21:30:48,464][INFO ][plugins ] [LOG] loaded [], sites [bigdesk, head]
[2014-07-29 21:30:52,950][INFO ][node ] [LOG] initialized
[2014-07-29 21:30:52,950][INFO ][node ] [LOG] starting ...
[2014-07-29 21:30:53,048][INFO ][transport ] [LOG] bound_address {inet[/0.0.0.0:9300]}, p
ublish_address {inet[/192.168.1.4:9300]}
[2014-07-29 21:30:56,181][INFO ][cluster.service ] [LOG] new_master [LOG][PtxePQVyShGyNz0W0XW3F
A][inet[/192.168.1.4:9300]], reason: zen-disco-join (elected_as_master)
[2014-07-29 21:30:56,217][INFO ][discovery ] [LOG] elasticsearch/PtxePQVyShGyNz0W0XW3FA
[2014-07-29 21:30:56,247][INFO ][http ] [LOG] bound_address {inet[/0.0.0.0:9200]}, publish_address {inet[/192.168.1.4:9200]}
[2014-07-29 21:30:57,465][INFO ][gateway ] [LOG] recovered [9] indices into cluster_sta
te
[2014-07-29 21:30:57,478][INFO ][node ] [LOG] started
【その他確認事項】
・elastic-search-headでindexが表示されていて検索出来る
・BigDeskでFile systemが新dirに変更している事
・kibanaでグラフの更新が走っている=fluentdからデータの更新が出来ている
※旧dirは1週間問題なければ削除する
簡単ですが。。