SolrCloud複数台構成
Luxor Ver.2.0で対応したSolrCloud機能は、Solrの設定ファイルや分散クラスタ情報を管理するコーディネットサービスZooKeeperに基づき、分散インデックス、分散検索、レプリケーションといった分散環境の仕組みを提供しています。
SolrCloudの利点
SolrCloudを利用するメリットは下記となります。
- Solrの設定ファイルの中央集中管理が実現できる。
- マスタノードにあたるリーダーノードの自動選出仕組みで、自動フェールオーバーが実現できる。
- レプリカを増やすことで同時に処理可能な検索リクエストを増やすことができる。耐障害性の向上が期待できる。
- シャードを増やすことでインデクシングのスループット、データ量の増大に対応し、検索において応答速度の改善が期待できる。
分散検索の仕組み
分散検索は、検索リクエストを受け付けたノード(Solrサーバ)が、指定されたノードすべてに同じ検索リクエストを発行し、すべてのノードの検索結果をマージして、クライアントへ検索結果として返却する仕組みです。 複数のノードで小さなインデックスを並列で検索するため、一つの大きなインデックスに対して検索処理を行うより処理時間が短くなりますので、分散検索は検索の実行時間短縮に有効です。
下図では、分散検索の仕組みを説明します。
SolrCloudのステータス確認方法
複数台サーバ構成で運用する時、各サーバの運行ステータスを確認する方法を記載します。
- Solr管理画面による確認方法
詳細に関しては、Solr管理画面「Luxor複数台構成のステータス管理」の記載より確認してください。
- サービスPortの利用状況による確認
ZooKeeperとActiveMQサービスのPort利用状況を確認することで各サーバのステータスを確認可能です。
ZooKeeperサービスのポート番号が"11080"に設定する場合の確認例を記載します。1.確認対象のLuxorサーバにて下記コマンドを実行し、ZooKeeperサービスのポート利用状況を確認する。(ActiveMQサービスのステータスを確認する場合、ActiveMQのポート番号を入れてください。)
# netstat -an | grep 11080
2.次の様な実行結果が出力される場合、該当ポートが利用可の状態を表し、サーバ上のZooKeeperサービスが正常動作していると判断できる。
ytdeMacBook-Pro:~ yt$ netstat -an | grep 11080 tcp4 0 0 127.0.0.1.11080 127.0.0.1.50003 ESTABLISHED tcp4 0 0 127.0.0.1.50003 127.0.0.1.11080 ESTABLISHED tcp4 0 0 127.0.0.1.11080 127.0.0.1.49875 ESTABLISHED tcp4 0 0 127.0.0.1.49875 127.0.0.1.11080 ESTABLISHED tcp4 0 0 127.0.0.1.11080 127.0.0.1.49873 ESTABLISHED tcp4 0 0 127.0.0.1.49873 127.0.0.1.11080 ESTABLISHED tcp4 0 0 127.0.0.1.11080 127.0.0.1.49863 ESTABLISHED tcp4 0 0 127.0.0.1.49863 127.0.0.1.11080 ESTABLISHED tcp46 0 0 .11080 .* LISTEN
SolrCloudに関連するQ&A
- Q:複数台構成で、運用中一台のサービスが落ちた場合、影響ありますか?
A:過半数台以上のサーバが落ちていない限り、正常の運用に影響ありません。
例えば、三台構成した環境の中に一台のサービスが落ちた時、残りのサーバの管理画面よりお知らせしますので、復旧までの間、残りの二台サーバの動きに影響を与えません。落ちた一台が復旧すると、自動的に最新の情報に同期されます。
三台構成の場合、最多一台の故障がカバーできます。五台構成の場合、最多二台の故障がカバーできます。
複数台構成で、運用中一台のサービスが落ちた後の対応手順
1.落ちたサーバを起動する。
2.該当サーバのAbout画面を確認する。
"Zookeeper"、"Luxor"などの項目が正しい表示されることを確認する。確認方法の詳細に関しては、「LuxorのAbout画面」の記載を参照してください。
3.Cloudサービスを確認する。
下記のURLを利用し、Solr管理画面にてactivemq及びSolrのクラウドサービスの状態を確認してください。"leveldb-stores"、"live_nodes"の配下に三つノードが存在することを確認してください。
アクセスURL: http://<LuxorサーバのIP>:10080/solr/index.html#/~cloud?view=tree
画面例: