見出し画像

全文検索システムの本番環境について考える


背景

オープンソースの全文検索システムFESSを触ってみたところ思いのほか簡単かつ、高機能だと思ったので、本番環境への導入を考えていきます。
以前はWindows Search Server Expressを使っていましたが、サーバ更新のタイミングで使えなくなることが課題でした。
エクスプローラーのファイル検索機能だけにすると利便性が下がるため、代替のシステムを探していたところ、ちょうど面白そうなものが見つかったというわけです。

FESS導入のポイント

・何よりも導入費用。オープンソースでフリーに使えるのはありがたい。
・Docker、Linux、Windowsいずれの環境でも動作可能
・ラベル付け、フィールド指定検索など柔軟な検索機能
・ファイル検索、データソース検索、WEBクロールなどいろいろできるらしい
・Active Directory連携可能でユーザ管理が簡単
・どうしても自分で運用できなかったら商用サポートも安価である。
こんなところ。

導入環境について

ハードウェアとOSの構成

Windows2012のサポート終了もあり、ちょうどファイルサーバを更新するタイミングだったので、この機に乗じて予算を計上。
ファイルサーバをHyper-Vで仮想化、もう1台検索専用サーバを動かすためのリソースを確保していました。OSはいずれもWindows2022。
FESSはOS依存ではありませんが、Linux環境ではoffice文書のサムネイルに対応しているとか使い勝手は良さそうなので、使える方はLinuxのほうがいいかもしれません。
私はLinuxに詳しくないのでWindowsにしましたが、WindowsサーバはOSライセンス1本で、仮想サーバを2台動かせる体系になっているので、費用的にはCPU、メモリ、ストレージのリソース追加だけでサーバを2台持てるのはお得感があると思います。

仮想環境の構成

今回の構成は下記のとおり、hostはバックアップソフトだけ動かしてHyper-Vのプラットフォームとしての役割です。
fileSVがファイルサーバ本体。
searchSVが今回導入する検索サーバ。インデックスのサイズが想像できないので、FESS用に512Gbだけ割り当てて、仮想HDDのVHDXは可変容量の設定としています。

これまでは仮想スイッチは外部向けしか使ったことがなかったのですが、
今回はクロール専用の帯域として、プライベートスイッチを設定してみました。
プライベートスイッチはなんのためにあるのか知りませんでしたが、こんな時のためだったのね。hostからも見えないのでアドレスは自由に設定可能。今回は192.168.xxx.xxxと適当な固定IPを設定。
searchSVではhostsファイルでIPアドレスを指定することで、fileSVへの接続時にはプライベートスイッチ経由でつながるように設定します。

プライベートスイッチ経由としたのは、うちのネットワークは遅い(1Gb)ので、仮想スイッチで10Gbとなっているのが魅力だったことと、同一ホスト内とはいえ、1Gbの帯域をクロールで専有したくないという思いからです。
※詳しい方、同一ホスト内での仮想OS同士の通信が外部スイッチの帯域を食うのか教えてください。

本体の構成は以上で完了。
いよいよFESSを本番環境用に導入していきます。



いいなと思ったら応援しよう!