他のサーバへのROMAの移行
このページはROMAのデータの移行を説明します。
事前準備
-
この手順はROMAの構成が現在と新しいサーバとの間で同じ場合に使うことができます。
例) サーバ数とインスタンスとtcファイルの数。 - 変数
- ${APP} : アプリケーションの文字列を指定します。
- ${PORT1} : ROMAプロセスが使用するポート番号を指定します。
-
${PORT2} : ROMAプロセスが使用するポート番号を指定します。
(ROMAが1サーバあたり3つ以上のポートを持つ場合は、設定を続けます。) - ${CURRENT_HOST1} : 現在のROMAサーバのホスト名あるいはIPアドレス
- ${CURRENT_HOST2} : 現在のROMAサーバのホスト名あるいはIPアドレス
- ${NEW_HOST1} : 新しいROMAサーバのホスト名あるいはIPアドレス
-
${NEW_HOST2} : 新しいROMAサーバのホスト名あるいはIPアドレス
(ROMAが3つ以上のサーバを持つ場合、設定を続けます。) - ROMA
-
ROMAが現在および新しいサーバにインストールされていなければなりません。
Install ROMA Unit
どうやって移行するか?
現在のROMAサーバ上で
入力テストデータ(必要であれば)
$ telnet localhost ${PORT1}
> set migration_test 0 0 13
test_20141217
> get migration_test
test_20141217
> quit
ROMAの停止
この操作はROMAを停止します!!実行には気をつけてください!
$ telnet localhost ${PORT1}
> balse
$ ps -aux | grep roma ###confirmation
データの収集(全ての現在のサーバ)
tarファイルの作成(現在の各サーバ上で実行)。
$ cd ${#your roma path#}/${APP}/ds
$ tar cvfpz ${APP}.tar *
新しいROMAサーバ上で
この手順の前に新しいサーバ上でROMAが停止していることをチェックします。
移行の前の確認
- 環境変数の背手地(各サーバを変更)
-
$ export BASE_HOST=${server which you bring data(tc) file from} $ export TARGET_HOST=${server which you bring data(tc) file to}
- データ & ルーティグ & ログディレクトリが空であることを確認。
$ cd ${#your roma path#}/${APP}
$ ls -al ds/* ### No file
$ ls -al routing/* ### No file
$ ls -al logs/* ### No file
データの移行
- tcファイルをコピー
$ ssh ${NEW_HOST*}
$ cd ${#your roma path#}/${APP}/ds/
$ scp ${your account name}@${BASE_HOST}:${#your roma path#}/${APP}/ds/${APP}.tar .
$ tar xvfpz ${APP}.tar
$ for F in ./${BASE_HOST}_*; do mv $F ${F/${BASE_HOST}/${TARGET_HOST}};done
$ ssh ${NEW_HOST*}
$ cd ${#your roma path#}/${APP}/routing/
$ scp ${your account name}@${BASE_HOST}:${#your roma path#}/${APP}/routing/* .
$ tar xvfpz ${APP}.tar
$ for F in ./${BASE_HOST}_*route*; do mv $F ${F/${BASE_HOST}/${TARGET_HOST}};done
- ルーティングファイルの内容を変更(2サーバの場合)
$ cd ${#your roma path#}/${APP}/routing/
$ sed -i -e "s#${CURRENT_HOST1}#${NEW_HOST1}#g" \
-i -e "s#${CURRENT_HOST2}#${NEW_HOST2}#g" \
${TARGET_HOST}*
ROMAの起動
全てのサーバの移行が完了した後で新しいサーバでこの操作を実行します。
ROMAの起動の仕方
確認
$ telnet localhost ${PORT1}
> get migration_test
test_20141217
> stat
- statの結果の確認。 状況リスト
- 重要なチェックポイント
- routing.short_vnodes が 0。
- routing.lost_vnodes が 0。
- routing.nodes が全てのノード名を持っていること。
- routing.version_of_nodes が全てのノード名を持っていること。
- エラーメッセージが存在するかどうかログファイルを確認する。
最後に
- ROMAクライアント、あるいはROMAを参照しているもののホスト名あるいはIPアドレスの変更。
- そして、新しいサーバでテストをします。