Luxor運用関連

Luxor運用に関する内容を説明します。

Luxorのモジュール更新

Luxorをインストール後、Luxorモジュール更新を行う場合は、以下の手順で実施してください。バージョン番号のXは実際利用のモジュールバージョンに書き替えてください。

※Ver.2.0.3を例にしています。各リビジョンに合わせて読み替えてください。

[0] サービス停止&バックアップ

  • INSUITE®が稼働中の場合は、事前にINSUITE® APサーバ・管理サーバのhttpdを停止してください。
  • Sm@rtDBが稼働中の場合は、事前にSm@rtDB APサーバのTomcatサービスを停止してください。
  • Luxorが稼働中の場合は、事前にLuxorサーバのTomcatサービスを停止してください。

    Luxorサーバのtomcatサービスの停止方法は下記:

   # service solrTomcat stop

Luxorのバックアップ方法」を参照して、Luxorのバックアップを行ってください。

[1] luxor.2.0.3.tbzを、Luxorサーバに転送します。ここでは、/root配下に転送したこととします。

[2] 転送したluxor.2.0.3.tbzを解凍します。

# cd /root
# tar jxvf luxor.2.0.3.tbz
# cd luxor.2.0.3

[3] 前バージョンのsetup.confを最新バージョンのsetup.confに反映します。

# sh setup.sh -mergeConf /root/luxor.2.0.2/setup.conf

前バージョンのsetup.confが/root/luxor.2.0.2/以下に存在する場合の指定方法です。実際の利用バージョンに書き替えてください。
この操作により前バージョンのsetup.confの設定を取り込んだsetup.confがカレントディレクトリに作成されます。

[4] ミドルウェアの更新がある場合、下記の手順でTomcat及びJDKを更新してください。以降の説明については、Xを適用するバージョンに適宜読み替えてください。

  • tomcatMediaFileを配置します。
# cd /usr/local/luxor/
# tar zxvf /root/luxor.2.0.3/apache-tomcat-8.X.X.tar.gz
# rm -rf tomcat
# ln -s apache-tomcat-8.X.X tomcat
# chown -R webadmin.webadmin apache-tomcat-8.X.X
# chown -R webadmin.webadmin tomcat
  • javaMediaFileを配置します。
# cd /usr/local/luxor/
# tar zxvf /root/luxor.2.0.3/jre-8uXXX-linux-x64.tar.gz
# chown -R root.root jre1.8.0_XXX

[5] カレントディレクトリのsetup.confを編集します。

必要に応じて、setup.confの設定を変更してください。

# vi setup.conf

手順[4]のミドルウェア変更がある場合、下記の設定項目を必ず更新してください。

  • tomcatMediaFile
  • javaMediaFile
  • javaDir

詳細に関しては、「setup.confに関する説明」を参照してください。

[6] バージョンアップとサービスの再起動を行います。

注意
事前にINSUITE® APサーバ、管理サーバのhttpdを停止した場合は、ここで起動してください。
事前にSm@rtDB APサーバのtomcatを停止した場合は、ここで起動してください。

LuxorサーバのTomcatサービスを起動してください。起動手順は下記です。

# cd /root/luxor.2.0.3
# sh setup.sh -homeOverwrite

下記のZooKeeperに関する設定を行ってください。詳細は「Luxorのインストール作業手順」のzoo.cfgに関する説明を参照してください。

# vi /var/luxor/zoo.cfg

LuxorサーバのTomcatサービス起動:

# service solrTomcat start
# sudo sh setup.sh -upZkConfig
# sudo sh setup.sh -reloadCollections

※setup.shを実行すると以下のファイルが上書きされますので、事前にバックアップすることがお薦めします。また、チューニング等の理由により手動で修正している場合は、再度修正する必要があります。

/var/luxor/luxor.xml
/var/luxor/*/*/conf/solrconfig.xml
/usr/local/luxor/tomcat/conf/server.xml
/usr/local/luxor/tomcat/conf/tomcat-users.xml
/usr/local/luxor/tomcat/webapps/solr/WEB-INF/web.xml
/usr/local/luxor/tomcat/webapps/solr/WEB-INF/classes/junit_systemtest.properties
/etc/init.d/solrTomcat

[7] 動作コマンドによる確認方法

次のコマンドを実行してください。

※LuxorのAbout画面にて、全てのCoreが問題なくReloadされた(各Coreのサイズが平常通り表示される)ことを確認の上、installCheckを実行してください。
※データ量やサーバスペックにより、Solrの各コアを起動するには時間がかかります。

# cd /root/luxor.2.0.3
# sh setup.sh -installCheck

実行の結果

(a) 問題がない場合、以下の内容が出力されます。

 installCheck SUCCESS!

(b) 問題がある場合、以下の内容が出力されます。

 installCheck failed. See ./installCheck.log

※installCheck.logの内容を確認してください。

Luxorの設定ファイル変更

インストール後に設定変更を行う場合は、以下の手順で行います。

重要
Luxorの設定ファイルsetup.confを変更する際、INSUITE®(V3.4.1以降)とSm@rtDBのサービス停止は不要です。Luxorサービス停止していても、インデックス作成のリクエストはDBのキューテーブルに保持され、Luxorサーバを再起動後にDBサーバのキューテーブルの情報からインデックスの作成を再開します。
手順については、Ver.2.0.3を例にしています。各リビジョンに合わせて読み替えてください。

[1] 設定ファイルを開く

# cd /root/luxor.2.0.3
# vi setup.conf

[2] 設定値を変更

setup.confに関する説明」を参考に設定値を変更します。

[3] 変更したファイルを反映

# sudo sh setup.sh -reflectConf
# sudo service solrTomcat restart
# sudo sh setup.sh -upZkConfig
# sudo sh setup.sh -reloadCollections

※Luxor Ver1.1.0以降では、-reflectConf、-homeOverwriteオプションを実行した場合、その時点のsetup.confが自動的にバックアップされます。バックアップされたsetup.confは、/var/luxor/install/confディレクトリ配下において、setup.conf.[YYYYMMDD_HHMM]というファイル名で保存されます。

※設定ファイルsetup.conf変更内容の反映には、Solr用のTomcatの再起動が必須です。

Luxorのバックアップ方法

データの整合性を考慮するうえ、Luxorのインデックスをバックアップする前にSolr用のTomcatサービスを停止してください。バックアップ対象ファイル・ディレクトリについては、次の表を参照してください。
また、整合性を取るためには、INSUITE®およびSm@rtDBの関連ファイルのバックアップと一致する必要があります。リカバリの際、同期が取れているバックアップを全て戻してください。

バックアップの各種ファイル・ディレクトリ

バックアップのファイル・ディレクトリ 説明
/var/luxor Luxorに関する各種設定及びインデックスデータを保存するディレクトリ
/etc/init.d/solrTomcat LuxorサーバのサービスであるTomcatのスクリプトファイル

Luxorのサーバ増設

運用中に、検索のトラフィックが増えてQPS(Query Per Second)を増やしたい時は、Luxorサーバを増設することで対応します。Luxorサーバを増設する手順は下記の表を参照してください。

表 Luxorサーバの増設手順

※Ver.2.0.3を例にしています。各リビジョンに合わせて読み替えてください。

項目 説明 手順
各種サービスを停止 運用中のINSUITE®、Sm@rtDB、Luxorサービスを停止してください。 # service httpd stop
# service tomcat stop
# service solrTomcat stop
運用中のLuxorサーバをバックアップ 既に構築済みのLuxorサーバで必要なバックアップを行ってください。
詳細は「Luxorのバックアップ方法」を参照してください。
バックアップするためのコマンド例を略とする。
運用中のLuxorサーバをモジュール更新 既に構築済みのLuxorサーバで、最新Luxorモジュールへアップグレードしてください。
Luxorモジュールが既に最新の場合、このステップをスキップしてください。
手順は「Luxorのモジュール更新」を参照してください。Solr用Tomcatのサービス起動はこのステップで行わないでください。
Luxorサーバの増設 新たに増設するLuxorサーバを用意し、Luxorのインストールを実施してください。 手順は「Luxorのインストール作業手順」を参照してください。Solr用Tomcatのサービス起動はこのステップで行わないでください。
LuxorのSolrCloud機能に関する設定 既存構築済みのLuxorサーバと新規構築したLuxorサーバをSolrCloud構成へ設定変更してください。
・すべてのLuxorサーバを下記のように設定更新してください。
➔addAllowIps:Luxorサーバ間が識別できるように設定
➔replicas:トータルなLuxorサーバ台数に合わせて、設定してください。
➔zkMyID、zkHost、amqAddressをLuxorサーバ増設状況をもとに設定してください。
➔/var/luxor/zoo.cfgをLuxorサーバ増設後の複数台構成に設定してください。
➔上記の設定を反映するため、「sh setup.sh -reflectConf」を実行してください。
・LB(ロードバランサー)設定
INSUITE®/Sm@rtDBのAPサーバがLuxorサーバをアクセスする際のLB設定を行ってください。
詳細は「Luxorのインストール作業手順」を参照してください。
Luxorサーバのサービス起動 すべてのLuxorサーバのSolr用のTomcatサービスを起動してください。 # service solrTomcat start
増設Luxorサーバでインデックスデータをリカバリ ・増設したLuxorサーバでCollectionsを作成してください。
・Collectionsを作成した後、既存Luxorサーバから空だった増設Luxorサーバへ最新のインデックスが自動的に同期される。
増設のLuxorにて、それぞれ下記のコマンドを実行してください。
# cd /root/luxor.2.0.3/
# sh setup.sh -addReplicas
本コマンドを実行すると、レプリカが追加されるため、同じLuxorサーバで複数回の実行をしないでください。
Luxorサーバ増設結果の確認 Luxorサーバが増設成功したかどうかを確認してください。 Solrの管理画面でSolrCloud構成になったことを確認する。
http://[LuxorサーバのIP]:10080/solr/index.html#/~cloud
詳細は『Luxor_Ver.2.0_運用ガイド』の「Solr管理画面」に関する記述を参照してください。

インデックスの再作成

インデックス再作成のパターン

Luxorのインデックス再作成を実施するには、INSUITE®とSm@rtDBにてそれぞれ用意しているコマンドを利用します。インデックス再作成は、元データと検索インデックス間を同期させる作業となり、不整合による検索結果の不正を解消することが出来ます。インデックス再作成の実施を必要する場面として、主に下記となります。

重要
インデックス再作成は長時間を要すため、コマンド実施する前に必ず実施時間、実施手順、注意点などを確認の上、実施してください。

  • 検索エンジン切替えの場合

    INSUITE®データとSm@rtDBデータの統合検索を実現できる"Luxor"検索エンジンは、INSUITE® Ver.3.1.0以降、Sm@rtDB Ver.3.2.0以降にて利用可能となります。Luxor以外の他のエンジン(※1)からLuxorへ乗換後、他のエンジンで利用したインデックスを再作成してからLuxorにて利用可能となります。

    ※1他のエンジン

    ・INSUITE®:Namazu
    ・Sm@rtDB:Lucene

    ※ 他の検索エンジンからLuxorへ移行する際はLuxorサーバのインストールが必要となります。移行時に検索インデックスは、インデックスコピーではなく、INSUITE®とSm@rtDBにてそれぞれ用意しているインデックス再作成コマンドにてインデックス作成を行うことが必須となります。

  • 検索インデックスの不整合が発生した場合

    ネットワークの異常、ディスクの一時不況やLuxorサーバのダウンなどの原因により、INSUITE®、Sm@rtDBのリクエストが処理異常になり、検索インデックスが更新、削除されず、検索結果不正などの事象が発生します。

    注意
    検索インデックスの不整合では以下の三つのパターンがよく挙げられます。不整合が発生した場合、インデックスの再作成を行うことで、正しく同期した状態にすることが可能です。

    • 元データあり、インデックスなし
    • 元データあり、インデックスあり、ただ、内容不一致
    • 元データなし、インデックスあり(※)

    ※Luxor側にて、「元データなし、インデックスあり」の場合、元データを特定する機能はありません。インデックスのみを削除することはできません。

    ■Sm@rtDB Ver.4.0からは、検索インデックスと元データを完全一致させ、不要なインデックスを削除する「ゴミインデックス一括削除ツール」を用意しています。 ■INSUITE Ver.4.0.3からは、ゴミインデックス削除ツール(delete_luxor_dirty_index.pl)も用意しています。詳細は、INSUITE Ver.4.0.3のリリースノートより参照してください。

再作成の手順

前項に記載したパターンにて、インデックスの再作成作業が必要になる場合は、下記の手順に沿って、インデックス再作成を実施してください。INSUITE®とSm@rtDBのインデックス再作成手順を説明します。

INSUITE®のインデックス再作成手順

INSUITE®のインデックス作成は、/home/DreamArts/cmd/配下のremake_luxor_indexコマンドを利用して行います。INSUITEサーバとLuxorサーバ間が接続されている前提で、インデックス作成が可能となります。下記の二つのコマンドを別々に実施する必要があります。

INSUITE®のコンテンツデータ用コマンド:/home/DreamArts/cmd/remake_luxor_index
INSUITE®のオンラインガイド用コマンド:/home/DreamArts/bin/guide_index.pl

※ Luxor Ver.2.0.0より前のバージョンからアップグレードしてご利用する場合、全文検索で検索対象となるインデックスをLuxorサーバ上に再作成する必要があります。Luxor Ver.2.0.0から初めてご利用する場合は、Luxor用インデックス作成は必要ありません。ただし、INSUITE®オンラインガイドのLuxor用インデックス作成は必要です。

[1] 始める前に

INSUITE®上では、スケジュール、ライブラリ、電子メールなど、数多くの機能があり、データ量が非常に膨大です。そのため、膨大なデータの検索インデックス作るには時間が掛かります。
インデックス再作成を実施するために、インデックス件数の見積もり、作成所要時間の把握は非常に重要になります。見積もりの結果によって、インデックス作成を数回に分けて実施してください。見積もりの際、remake_luxor_indexコマンドの-infoオプションを利用します。見積の手順例は下記:

 インデックス件数を計測する
 単位時間当たりの処理件数を計測する
 インデックス作成時間を見積る

[2] 手順

メンテナンスモードにする前提で、インデックス再作成の実施手順を説明します。

メンテナンスモードへの切替 「メンテナンスモード」に切り替え、一般ユーザがINSUITE®サーバへの新規・更新・削除をさせない状態にします。 ※サービスを停止しないでください。添付ファイルなどのインデックス作成時に、INSUITEやSm@rtDBサーバとの通信が必要となります。

コマンドの実施 『INSUITE®アプリケーション・アドミニストレーション・ガイド』を参照してください。

[3] 注意事項

[注意事項3-1] 「サービス運用停止する」と「サービス運用停止しない」場合の実施手順はやや異なります。詳細の流れは下記を参照してください。

  • INSUITE®の運用を一時停止して、インデックス再作成する。

    step1 メンテナンスモードへの切替え
    step2 インデックス再作成
    step3 再作成完了を確認する
    step4 通常モードへの切替え

  • INSUITE®を運用しながら、インデックス再作成する。

    step1 インデックス作成時間の見積り
    step2 インデックス再作成
    step3 最新追加、更新されたデータのインデックス作成(※注意)
    step4 再作成完了を確認する

1.サービス運用を制限せず、インデックス作成することは元データと検索インデックスの不整合を発生させるリスクがあります。特に削除操作はインデックス不整合の可能性が高いため、注意してください。
2.管理サーバにLuxorサーバをインストールしている場合、CSV連携やインデックス更新バッチが実行されない時間帯(夜間など)を選んで実施してください。バッチ処理とインデックス作成処理が重複した場合、予定時間内に処理が完了できない恐れがあります。

[注意事項3-2] ゴミインデックスに関して、次の注意事項を説明します。

インデックスの再作成は元データに基づいて再作成しています。データ不整合により、元データが存在していない場合、該当データへのインデックスは作成しません。該当データのインデックスはそのまま不要なものとして残され、ゴミインデックスになります。INSUITE®のインデックス作成の内部処理において、ゴミインデックスを個別削除する方法は現状ありません。操作上の留意点を予め確認ください。

ゴミインデックスが残っている場合、ユーザの検索キーワードによっては検索結果として表示される場合があります。ただ、実際に開こうとすると、元データが存在しないため、データが開けない事象が発生します。

Sm@rtDBのインデックス再作成手順

Sm@rtDBのインデックス再作成は、Sm@rtDB Toolのコマンドを利用します。Sm@rtDBのインデックス再作成は、検索インデックスの一括削除後に再作成する内部処理であるため、インデックス再作成完了後は不要なインデックスは残りません。Sm@rtDBのゴミインデックス問題に関しては、本章の「再作成の手順」の「注意事項3-2」の説明を参照してください。

[1] 始める前に

[1-1] Sm@rtDB Toolが利用可能なSm@rtDBのAPサーバを用意
Sm@rtDBのインデックス作成・削除は、Sm@rtDB Toolのコマンドを利用して行います。Sm@rtDB Ver.2.0.1以降、インストーラによって自動的に関連ファイルが/home/hibiki/bin配下に配置されます。Sm@rtDB Toolの運用方法に関しては、『Sm@rtDB_運用ガイド』を参照してください。

[1-2] Sm@rtDBのAPサーバにて、Luxorに関わる設定ファイルfull_text_search.xmlを記載
Sm@rtDB Toolでは、Luxorのインデックス作成、削除コマンドを用意しています。コマンドを実行するには、設定ファイル/etc/hibiki/full_text_search.xmlにてLuxorサーバへの接続情報やツールのオプションを設定する必要となります。詳細については、full_text_search.xmlの説明を参照してください。

[1-3] インデックス件数の見積もり
reindexコマンドの[-countOnly]オプションを使って、インデックス件数を見積もり、インデックス再作成の所要時間を把握することが可能です。詳細については、『Sm@rtDB_運用ガイド』の「Luxorインデックス作成・削除」を参照してください。

※ Sm@rtDBのインデックス再作成の内部処理は、INSUITEとは異なり、一般ユーザによるデータ新規登録や更新、削除操作はインデックス作成に影響を与えないため、サービス運用の停止は不要です。

[2] 手順

Sm@rtDBのインデックス作成・削除は、Sm@rtDB Toolの下記コマンドを利用して行います。使用方法の詳細に関しては、『Sm@rtDB_運用ガイド』を参照してください。

インデックスの作成:reindexコマンド
インデックスの削除:delindexコマンド
インデックスの継続作成:reindex continueコマンド

※ Sm@rtDBのインデックス再作成において、検索インデックスの事前バックアップも不要となります。

インデックス再作成の完了確認

上記INSUITEとSm@rtDBのインデックス再作成コマンドの実行が終わっても、Luxorサーバ側のインデックス作成作業が完了していない場合があります。インデックス作成作業が終わったことを確認するには、以下のURLからLuxorサーバの管理画面にアクセスし、画面の"Queue Size"が"0"になっているかを確認してください。詳細については、『Luxor_Ver.2.0_運用ガイド』の「LuxorのAbout画面」を参照してください。

http://LuxorサーバのIPアドレス:10080/solr/About

※インデックス作成を行った機能の"Size"列の値はLuxorサーバにて登録されているインデックスの数となります。Luxor全文検索では、1件のデータの中に添付ファイルが1個あれば、2件のインデックスが作成されますので、件数の一致だけでは作成完了の確認はできません。

※"Queue Size"が"0"にならなくても、続けて他の機能インデックス再作成を実行可能です。

インデックス再作成に関連するQ&A

  • Q:インデックス再作成途中にて、再作成を停止する方法はありますか?

A:製品標準機能において、インデックス再作成途中による停止方法は提供していません。途中で何等かの原因により停止する場合、最初から全てやり直しが必要となります。

  • Q:再作成の完了を確認する方法

A:Luxor管理画面にて確認出来ます。詳しくは、「インデックス再作成の完了確認」を参照してください。

  • Q:再作成が失敗した場合、全て最初からやり直しが必要ですか?

A:ご認識の通りで、最初から全てやり直しが必要となります。

  • Q:特定ファイルのインデックスが作成されたかを確認する方法

A:『Luxor_Ver.2.0_運用ガイド』の「Solr管理画面」にて、インデックス検索の関連記載を参照してください。

インデックス移行

下記では、Ver.2.0.3を例にしています。各リビジョンに合わせて読み替えてください。

インデックス移行前提

Luxorのバージョンアップやスキーマ変更によって、インデックスデータがそのまま読み込めない場合、インデックスの移行作業が必要となります。インデックス移行する必要なパターンは主に下記となります。

  • Luxor Ver.2.0より前バージョンからアップグレードする場合

Luxor Ver.2.0からインデックスのデータ構造が変更されているため、Luxor Ver.2.0より前バージョンからアップグレードする際は、古いインデックスデータがそのまま読み込めないため、インデックス移行作業が必要となります。

  • スキーマの変更

Luxor Ver.2.0から二つのスキーマを選択することが出来ます。DATモードとJPTモード(詳細は「スキーマの選定」)です。運用中にスキーマ変更をしたい場合、インデックス移行作業が必要となります。

  • サーバのリプレース

サーバリプレース時に、同一のLuxorバージョンであれば、新しいサーバにインデックスをコピーして移行が可能です。作業時間も節約でき、方法としては理論上可能となります。ただ、運用上の制限事項があるため、リプレイス後に十分な検証が必要となります。

[制限事項]
移行元、移行先のサーバのLuxorバージョンやOSのbit数を一致させる必要があります。合せてバージョンアップも行う場合は、まず古いバージョンのデータをコピーし移行してから、新しいバージョンへバージョンアップしてください。

ただ、サーバのリプレースでLuxorバージョンやスキーマモードが変更となり、インデックスデータがそのまま読み込めない場合、インデックスの移行作業が発生します。

インデックス移行ツールを利用するにあたっての必須条件を下記にまとめています。

  • 移行元と移行先のLuxorサーバがHTTP通信可能。
  • ツール実行環境のメモリスペックが4GB以上であることが推奨。
  • JVM環境が必要で、JDKは1.8.0以上が推奨。
  • 使用環境で「java -version」コマンドがあることを確認してください。
  • 移行元&移行先のLuxorサーバがサービスが起動状態であることが必須。
  • データの不整合を防ぐため、INSUITE®とSm@rtDBのサービスを利用しない期間で計画することが推奨。
  • 機能毎のデータ件数が2147483648以内であることが必要。この件数を超える場合、更新日付で分解移行が推奨。
  • 移行先のLuxorバージョンがVer.2.0以降である必要がある。移行元のLuxorバージョンは特に制限なし
  • Document-itemを移行する際、DocumentのIDをメモリに保存するため、移行対象Document数が大量にある場合、メモリリークが発生する可能性があります。Document数30000件を移行する際の目安として、所要メモリ10M。Document数が多い場合、回数分けて実施してください。

事前情報収集

インデックス移行の計画は下記の情報を収集してから、本ドキュメントで提供するインデックス移行のパフォーマンス情報を基づいて、必要な時間を概算してください。

収集情報 詳細説明
移行元 ・CPU情報/proc/cpuinfo
・メモリ情報/proc/meminfo
・インデックスサイズ
/var/solr/insuite
/var/solr/smartdb
上記フォルダのサイズを取得してください。
Luxor Ver.2.0より前のバージョンのインデックス保存場所
・各機能のデータ件数
http://luxorserver:10080/solr/About
上記URLで表示する各機能のデータ件数を取得してください。
移行先 ・CPU情報
/proc/cpuinfo
・メモリ情報
/proc/meminfo

インデックス移行時間計測

下記の実行環境・条件でインデックス移行ツールを検証したパフォーマンス結果を記載します。

表 インデックスツールの実行環境・条件

項目 詳細
移行元のLuxorサーバスペック ・構成状況:1台
・OS:RHEL6.2
・CPU:Intel® Xeon® E5645@2.40GHz×4
・メモリ:12GB
・ストレージ:250GB
移行先のLuxorサーバスペック ・構成状況:1台
・OS:RHEL6.2
・CPU:Intel® Xeon® E5645@2.40GHz×4
・メモリ:12GB
・ストレージ:250GB
移行元のデータ量 ・スケジュール:167,481件(インデックス平均サイズ:1.5KB/件)
・ライブラリ:300,000件(インデックス平均サイズ:7.9KB/件)
・文書:375,007件(部品データ:20,757,703個)(インデックス平均サイズ:15.4KB/件)

INSUITE®の場合

パターン インデックス移行速度
Luxor Ver.1.3.8→2.0(DATモード) ・ライブラリ:242件/s
・スケジュール:1073件/s
Luxor Ver.1.3.8→2.0(JPTモード) ・ライブラリ:201件/s
・スケジュール:1002件/s

Sm@rtDBの場合

パターン インデックス移行速度
Luxor Ver.1.3.8→2.0(DATモード) 文書:62.0件/s
Luxor Ver.1.3.8→2.0(JPTモード) 文書:55.8件/s

注意
インデックス移行速度は、INSUITE®/Sm@rtDBの機能やデータの内容、件数によって異なります。上表に記載している移行速度は参考値として使用してください。

本番移行する前に、移行本番環境のスペックやデータ状況に応じて、インデックス移行に必要時間の計測を実施する必要です。見積り方法は「インデックス移行ツールの利用方法」を参照してください。

移行ツール利用方法

インデックスを移行するには下記の流れで進めて下さい。

表 インデックス移行流れ

流れ 手順説明
ツール実行環境準備 インデックス移行ツールを実行するサーバを用意してください。
実行環境のスペックはメモリ4GB以上、JDK:1.8.0以降を推奨。
Luxorサーバ以外のサーバ用意が難しい場合、移行元のLuxorサーバを使ってください。
サーバ間通信設定 移行元Luxorサーバと移行先Luxorサーバのsetup.confをそれぞれ設定変更してください。
変更点:addAllowIps、addBasicIpsにツール実行環境のIPアドレスを追加する。
設定方法は「Luxorサーバの設定」を参照してください。
Luxorサーバ起動 上記ステップでの設定変更を反映してから、移行元と移行先のLuxorサーバをSolr用のTomcatサービス起動してください。
・$ sh setup.sh -reflectConf
・$ service solrTomcat start
移行ツールの設定 ・インデックス移行ツールがLuxor Ver.2.0.3をインストールする時に、下記のフォルダに配布される。このフォルダをツール実行環境へ転送してください。
/root/luxor.2.0.3/luxor-tool/
・転送後、ツール実行環境で、設定ファイルconf.xmlの必要な項目を設定してください。
・設定項目はSourceIP、TargetIP、SourceThread、TargetThreadとなる。
※設定に関する詳細説明は下記の「表 移行ツール luxortool.shの設定ファイル」を参照してください。
移行に必要な時間見積 見積用コマンドはsh luxortool.shを実行し、testコマンドを使ってください。
※コマンドに関する詳細説明は「表 インデックス移行ツールのコマンド説明」を参照してください。
本番移行計画 上記の時間見積を通して、本番移行作業の計画を立てて下さい。
本番インデックス移行 移行用コマンドはsh luxortool.shを実行し、runコマンド或いはtestrunコマンドを使ってください。
※コマンドに関する詳細説明は「表 インデックス移行ツールのコマンド説明」を参照してください。
インデックス差分更新 完全に移行先へのインデックス移行が完了するまで、移行元の環境を運用し続けるケースが想定される。
この場合、最後の移行作業を実施した後、インデックス移行期間中のインデックス差分を移行元から移行先へ移行する必要がある。
移行する手順は下記:
・設定に関する詳細説明の「表 移行ツールluxortool.shの設定ファイル」を参照し、インデックス移行期間をfrom、toに設定してください。
・sh luxortool.shを実行し、runコマンドあるいはtestrunコマンドを使ってください。
Luxorサーバの切り替え インデックス移行後、新規構築したLuxor Ver.2.0.3のサーバへ切り替える。
手順は下記:
・INSUITE®及びSm@rtDBサーバを停止。
・INSUITE®設定ファイル/home/DreamArts/data/system/domain.datのluxor_domain」とluxor_allow_ipを旧Luxorサーバから新Luxorサーバへ設定変更。
・Sm@rtDB設定ファイル/etc/hibiki/hibiki.xmlのwebServiceHostsの値を旧Luxorサーバから新Luxorサーバへ設定変更。
・Sm@rtDB設定ファイル/etc/hibiki/default.xmlのcontextUrlを旧Luxorサーバから新Luxorサーバへ設定変更。
・INSUITE®/Sm@rtDBサーバを起動し、設定を反映。
一定期間経過後、旧Luxorサーバを破棄 一定期間、新Luxorサーバを使ってから旧Luxorサーバの破棄を検討してください。
手順:特になし。

表 移行ツールluxortool.shの設定ファイル

/root/luxor.2.0.3/luxor-tool/conf.xml
パラメータ 初期値 必須 説明
Memory 50 サーバ全体メモリ容量より移行ツール用メモリの割合を指定するパラメータ。
25から80までの正整数を入力してください。
SourceIP 無し 移行元のLuxorサーバのIPアドレス。
例:IPアドレスは10.2.2.1、ポートは1063、入力値はhttp://10.2.2.1:1063
http:// が必要。
TargetIP 無し 移行先のLuxorサーバのIPアドレス。
例:IPアドレスは10.2.2.1、ポートは1063、入力値はhttp://10.2.2.1:1063
http:// が必要。
SourceThread 15 移行元サーバーからデータを取るスレッド数(グローバル変数)。
正整数を入力してください。
TargetThread 20 移行先サーバーにデータを入れるスレッド数(グローバル変数)。
正整数を入力してください。
SourceDocument 100 1つのスレッドは移行元サーバーから取るドキュメント数(グローバル変数)。
正整数を入力してください。
TargetDocument 1000 1つのスレッドは移行先サーバーに入れるドキュメント数(グローバル変数)。
正整数を入力してください。
from 無し yyyy-MM-ddThh:mm:ssZ
更新対象インデックスの開始時間を指定する。(※インデックスの最終更新時間を参照する。)
to 無し yyyy-MM-ddThh:mm:ssZ
更新対象インデックスの終了時間を指定する。(※インデックスの最終更新時間を参照する。)
PoolSize 無し 移行ツール用メモリに保存するインデックス件数の上限を指定するパラメータ。メモリの容量不足が考えられる場合、本パラメータの指定を推奨。
設定する場合、正整数を入力してください。
設定しない場合、TargetDocumentとTargetThreadの設定値により自動計算される。
Collection 無し 移行対象の属性を指定するパラメータ。Collectionにてname,from, toが指定可能。
パラメータ:name
初期値:無し
必須:〇
説明:移行コレクションの名前、入力の値は"all"の時、すべてのコレクションを移行することできる。"document_item"以外の個別機能のCollectionも指定できるので、下記のマッピング表を元に設定する。
パラメータ:from
初期値:無し
必須:×
説明:yyyy-MM-ddThh:mm:ssZ
更新対象インデックスの開始時間を指定してください。(※インデックスの最終更新時間を参照する。)
パラメータ:to
初期値:無し
必須:×
説明:yyyy-MM-ddThh:mm:ssZ
更新対象インデックスの終了時間を指定してください。(※インデックスの最終更新時間を参照する。)

注意
上表のSourceThread、TargetThread、SourceDocument、TargetDocument数の設定はお使いの環境によって異なるため、推奨値の提示はできませんが、下記の「表 弊社の検証環境で確認した値」を参考値として記載します。

表 弊社の検証環境で確認した値

パラメータ CPU:2コア
メモリ:4GB
CPU:4コア
メモリ:8GB
CPU:8コア
メモリ:8GB
SourceThread 1 2 4
TargetThread 2 4 8
SourceDocument 100 100 100
TargetDocument 200 250 300
---- ---- ---- ----
移行スピード(スケジュール機能) 571件/s 1050件/s 1350件/s

注意
本試験では移行元及び移行先のLuxorサーバが同じスペック(CPU、メモリ、JVM)であることを前提にしています。
上表の値は弊社にて検証を行った際の結果です。実際の速度とは誤差があることを予めご了承ください。

表 コレクション名のマッピング表

コンポネント Collectionのname 機能名
insuite admin_guide 管理画面のオンラインガイド
insuite guide オンラインガイド
insuite board 連絡掲示板
insuite ns_board 連絡通知
insuite library ライブラリ
insuite history-library 履歴-ライブラリ
insuite share ファイル共有
insuite history-share 履歴-ファイル共有
insuite schedule スケジュール
insuite fa_schedule 施設予約
insuite ml メーリングリスト
insuite reminder リマインダ
insuite report レポート
insuite smart スマートページ
insuite todo タスクTODO
insuite wflow ワークフロー
smartdb imp アプリ
smartdb binder バインダ
smartdb document 文書+文書部品
smartdb process 業務プロセス

設定例1:すべての「Collection」のインデックスデータを移行する

<?xml version="1.0" encoding="UTF-8"?>
<config>
<Memory>50</Memory>
<SourceIP>移行元のLuxorサーバのIPアドレス</SourceIP>
<TargetIP>移行先のLuxorサーバのIPアドレス</TargetIP>
<SourceThread>2</SourceThread>
<TargetThread>4</TargetThread>
<SourceDocument>100</SourceDocument>
<TargetDocument>250</TargetDocument>
<Collection>
<name>all</name>    
</Collection>
</config>

設定例2:すべてのCollectionのドキュメント(インデックス)から、更新期間が「2012-12-26T19:50:53Z」から「2013-12-26T19:50:53Z」までのドキュメントを移行する

<?xml version="1.0" encoding="UTF-8"?>
<config>
<Memory>50</Memory>
<SourceIP>移行元のLuxorサーバのIPアドレス</SourceIP>
<TargetIP>移行先のLuxorサーバのIPアドレス</TargetIP>
<SourceThread>2</SourceThread>
<TargetThread>4</TargetThread>
<SourceDocument>100</SourceDocument>
<TargetDocument>250</TargetDocument>
<from>2012-12-26T19:50:53Z</from>
<to>2013-12-26T19:50:53Z</to>
<Collection>
<name>all</name>
</Collection>
</config>

設定例3:更新時間が「2012-12-26T19:50:53Z」から「2013-12-26T19:50:53Z」までのschedule機能のインデックスとlibrary機能のインデックスをすべて移行する

<?xml version="1.0" encoding="UTF-8"?>
<config>
<Memory>50</Memory>
<SourceIP>移行元のLuxorサーバのIPアドレス</SourceIP>
<TargetIP>移行先のLuxorサーバのIPアドレス</TargetIP>
<SourceThread>2</SourceThread>
<TargetThread>4</TargetThread>
<SourceDocument>100</SourceDocument>
<TargetDocument>250</TargetDocument>
<Collection>
<name>schedule</name>
<from>2012-12-26T19:50:53Z</from>
<to>2013-12-26T19:50:53Z</to>
</Collection>
<Collection>
<name>library</name>
</Collection>
</config>

設定例4:すべてのSm@rtDBのdocument機能のインデックスデータを移行する

注意
文書のインデックスデータ移行はCollectionのnameを"document"に指定することで文書にある部品データ"document_item"も移行されます。Collectionのnameに部品"document_item"のみの指定はできません。

<?xml version="1.0" encoding="UTF-8"?>
<config>
<Memory>50</Memory>
<SourceIP>移行元のLuxorサーバのIPアドレス</SourceIP>
<TargetIP>移行先のLuxorサーバのIPアドレス</TargetIP>
<SourceThread>2</SourceThread>
<TargetThread>4</TargetThread>
<SourceDocument>100</SourceDocument>
<TargetDocument>250</TargetDocument>
<Collection>
<name>document</name>
</Collection>
</config>

表 インデックス移行ツールのコマンド説明

/root/luxor.2.0.3/luxor-tool/luxortool.sh
コマンド例 コマンド概要
$ sh luxortool.sh
show
インデックス移行ツールの設定を表示する
$ sh luxortool.sh
test
インデックス移行時間の見積り
$ sh luxortool.sh
run
インデックス移行の実行、実行完了までの所要時間を表示しない
$ sh luxortool.sh
testrun
インデックス移行の実行、実行完了までの所要時間を表示する

移行完了後の確認方法

About画面にて各コレクションの"Size"欄で、移行前・移行後のサイズが一致しているかを確認することで、すべてのデータを移行成功したかを判断できます。
移行前と移行後のサイズが一致する場合、移行成功となります。一致していない場合、移行完了していないデータが発生している可能性があります。
一致していないコレクションが存在する場合、該当コレクションを再移行してください。