ようへいの日々精進XP

よかろうもん

Elasticsearch 0.9 系で index をサーバー間で移行してみたのでメモ

はじめに

お試しで立ちあげた Elasticsearch サーバーが予想に反して需要があってアップアップしてきたので一部のインデックスを別のサーバーに移してみたのでメモ。尚、下記の方法が全ての環境に適用出来るかは個別に検証する必要があると思われる。

尚、Elasticsearch のバージョン 1.0 からは SnapShotRestore 機能が標準搭載になってお手軽にバックアップ、レストアを計画出来ると思われるが、それよりも前のバージョンについてあまり移行やバックアップ、レストアの情報を探すことが出来なかったので試行錯誤、ダメだったらどうしよう位の勢いでやってみた。


メモ

イメージ

f:id:inokara:20140411063423p:plain


事前準備

  • 移行先の Elasticsearch のバージョンは移行元と合わせたバージョンにする
  • 特に理由は無い

インデックスの移行

  • 移行先の Elasticsearch は停止しておく
  • rsync を利用して対象となる idenx のディレクトリごと rsync をかける
  • 移行元と移行先の idenx ディレクトリの権限等は合わせておく
  • データ移行完了後に移行先の Elasticsearch の再起動を行う
  • 正常に Elasticsearch が起動したら elasticserch-head 等で確認する

上記の方法で移行してどうだったか?

  • とりあえず Elasticsearch は起動した(良かった...)
  • elasticserch-head 等で確認してもデータが確認出来た
  • 複数のインデックスをバックアップしたインデックスと件数比較して差異が無いことを確認出来た

Elasticsearch のバージョンアップ

  • 最新の kibana だと Elasticsearch0.90.9 以上が必要なようでエラーが出た
  • 移行先の Elasticsearch サーバーを 0.90.12 にバージョンアップした

バージョンアップしてみてどうだったか?

  • kibana でのアクセスを確認出来た
  • 1 系へのバージョンアップはまたの機会に...

インデックスやクラスタ管理に kopf を使い始めた

f:id:inokara:20140411091343p:plain

indexクラスタを管理するプラグインkopf というツールを紹介頂いたのでそちらを elasticsearch-head の代わりに利用するようにした。elasticsearch-head との使い勝手等を比較出来たらと考えている。


メモ(tips)

  • サーバーを切り替える際には手際よく行う必要があるが fluentd のバッファ機能を上手く使うことでログが途切れることなく移行出来るかもしれない

まとめ

  • もっと大変になるかと思ったが助かった
  • インデックスは rsync での移行は可能かと思われる
  • 1 系へのバージョンアップも検証してみたい
  • そもそもクラスタ化していないのでクラスタ化を検討する