SecurityGatewayのクラスタリング機能は、ネットワークにある2台以上のSecurityGatewayサーバー間で設定を共有する目的で開発されました。これにより、複数のSecurityGatewayサーバー間で、メールの処理に対するソフトウェア・ハードウェアとしてのロードバランシングを行い、処理速度の向上や効率化を図る事ができるようになります。また、サーバーのハードウェア、ソフトウェアとしての冗長化も行えるため、メールシステムの可用性を向上される事ができます。
自社環境でSecurityGatewayクラスタを使用するかどうかを決定するためのポイントをご紹介します。
ノード
SecurityGatewayクラスタではプライマリノードとセカンダリノードを使用します。1台のSecurityGatewayサーバーがプライマリとなり、それ以外のサーバーは全てセカンダリとなります。
•クラスターの各ノードのSecurityGatewayは同一バージョンである必要があります。
•クラスターの各ノードではそれぞれのSecurityGatewayレジストレーションキーを保持する必要があります。複数ノード間で同じキーを使用する事はできません。
•クラスタの各ノードは同一ネットワーク内に配置している必要があります。物理的に離れた場所にあるノード間でのクラスタリングシステムには対応していません。
•クラスタの全ノードは同じタイムゾーン、同じ時間である必要があります。システム時間のずれにより問題が発生する場合があります。
•クラスタ内の全てのノードで設定変更が行えます。設定変更があった場合は全てのノードへ変更が通知されます。 ただし、注意が必要な点として、HELO ドメイン名 はサーバー毎の設定で、クラスタ内のノード毎に個々の値を使う必要があります。
•ベイジアンなどのメンテナンス処理はプライマリノードで行う必要があります。
ルーティング
SecurityGatewayは特定のノードからのトラフィックのルーティング処理は行いません。第3者の提供するロードバランサーでトラフィックのルーティングを行う事をお勧めします。
ロードバランサーのスティッキーセッションは同一IPからの通信を同じホストへルーティングするのに必要です。スティッキーセッションはSecurityGatewayのウェブ管理画面へサインインするのに大変重要で、誰かがサーバーの中の1つへサインインすると、全てのセッションが同じサーバーに対しルーティングするようになります。
共有データベースとフォルダの格納先
SecurityGatewayクラスタでは、全てのサーバーが同じデータベースと特定のフォルダのセットを共有します。そのため、全てのノードは同じネットワークにいて、共有フォルダは全てのノードからアクセスできる必要があります。SecurityGatewayサービスは、デフォルトではローカルシステムアカウントとして稼働するため、サービス設定でネットワークの場所へアクセス権を持つユーザーでサービスを実行するよう設定変更が必要となります。メールボックス、パブリックフォルダ、その他のフォルダはクラスタの各ノードがアクセスできる共有フォルダへ配置する必要があります。UNCパスを使う場合は、ネットワークロケーションへアクセス権を持つユーザーでMDaemonサービスを実行する必要がある点に注意してください。下記を参照してください: "SecurityGatewayがネットワークからアクセスできるデータフォルダを利用するための設定"
アーカイブ
クラスタリングで アーカイブ を使用するには、アーカイブ設定でネットワークパスを使ったFirebirdデータベースサーバーを使用するよう指定する必要があり、そうする事で全てのノードがアーカイブストアに接続できます。
証明書
•(証明書を含む)HTTPS設定はノード毎であり、クラスターへ追加したノード全てに設定する必要があります。証明書はデータベースではなく、各ノードへ格納されます。そのため、各ノードで同じ証明書を使用するには、証明書を各ノードへ手動でインポートし、それぞれのSecurityGatewayで証明書を使用するよう設定が必要です。
•STARTTLSホワイトリストとSTARTTLS要求リスト 設定は共有されます。
•SecurityGatewayのLetsEncryptオプションは現時点でセカンダリノードへは対応していません。
クラスタリングを使用するため、SecurityGatewayを従来バージョンから7.0以降のバージョンへアップデートした場合、同梱されているSGDBTool.exeを、SecurityGatewayデータベースファイルをFirebird 2.xからFirebird 3.xへの変換用に使用する必要があります。SecurityGateway 7.0以降を新規にインストールする場合、既にFirebird 3.x データベースは使用しているため、この手順はスキップできます。
データベースのアップグレードは次の手順で行います:
1.SecurityGatewayサービスを停止します。 (SecurityGatewayスタートメニューからSecurityGatewayを停止を選択するか、サービスコンソールを使用します。)
2.Windowsの コマンドプロンプトを起動します。
3.\SecurityGateway\app\フォルダへ移動します。
4.sgdbtool.exe -convertfb3 と入力し、Enterを押します。
この手順でFirebird 2.xデータベースファイルのバックアップコピーが"SecurityGateway.fb2"として保存されます。その後、Firebird 3.x runtimeを使ってリストアされたデータベースは"SECURITYGATEWAY.FBD"として保存されます。 アーカイブ を使用している場合、この手順は全てのアーカイブデータベースをアップグレードします。
SecurityGatewayクラスターの全てのノードは同じデータベースと複数フォルダのセットを共有します。そのため、全てのノードは同じネットワークに配置する必要があり、各ノードの Windowsサービス で共有フォルダへアクセス権のあるアカウントを設定しておく必要があります。共有フォルダの内容を全てのノード間で共有するため新しい場所へコピーするには、手動で行う必要があります。SecurityGatewayは既存のファイルの移行は行いません。次の共有フォルダはディレクトリ ページと(クラスタリングで唯一設定されるベイジアンレプリケーションを除く)クラスタリングページの両方から設定されます。
•Message Data (例. \\Share01\SecurityGateway\Messages\)
•Message Logs/SMTP Transcripts (例 \\Share01\SecurityGateway\Transcripts\)
•Attachments (例. \\Share01\SecurityGateway\Attachments\)
•Bayesian Learning Non-spam (例. \\Share01\SecurityGateway\BayesHam\)
•Bayesian Learning Spam (例. \\Share01\SecurityGateway\BayesSpam\)
•Bayesian Replication (例. \\Share01\SecurityGateway\BayesReplication) 注意点: フォルダはクラスタリング内で重複できません。プライマリノードがベイジアンデータベースや他のノードでコピーされたデータの場所になります。
注意点: データベースの場所と認証情報はインストール中か、SGDBTool.exeを使用して設定します。 (後述の"外部データベースサーバーを使用するようSecurityGatewayを設定" を参照してください。)
アーカイブストア
If you are using the アーカイブ を使用している場合はネットワークからアクセスできる場所へアーカイブストアを再配置し各アーカイブデータベースをFirebirdデータベースサーバーへ移動する必要があります。下記のクラスターでアーカイブを使用 を参照してください。
クラスターを使用するためには、クラスター内の各ノードがネットワークからアクセスできる場所にFirebird 3データベースサーバーをインストールする必要があります。
Firebird 3 サーバーは次のように使用します:
1.Firebird 3 Database Serverをダウンロードします。
2.全てのノードからアクセスできる端末でインストーラーを実行します。
3.License Agreementで承認を押し、次へをクリックします。
4.情報を読み、次へをクリックします。
5.フォルダを選択し、次へをクリックします。
6.コンポネントの選択で、次へをクリックします。
7.スタートメニューフォルダを選択し(またはスタートメニューフォルダを作成しないクリックし)、次へをクリックします。
8.追加タスクを選択をデフォルト値(例. SuperServerモード、サービスとして実行、クライアントライブラリをコピー)へ設定し、次へをクリックします。
9.SYSDBAパスワード ("SYSDBA"ユーザー名でパスワードは後に必要)を入力し、次へをクリックします。
10.インストールをクリックします。
11.次へをクリックします。
12.終了をクリックします。
SecurityGatewayクラスタで、各ノードは前述のセクションで設定したFirebird 3 データベースサーバーを使った、同じデータベースへ接続するよう設定する必要があります。SecurityGatewayで外部データベースサーバーを使用するよう設定するには:
1.Firebirdサーバー上でデータベース用フォルダ (例 C:\Databases)を作成します。
2.プライマリSecurityGateway データベースファイル (例. \SecurityGateway\App\SECURITYGATEWAY.FBD) を作成したフォルダへ移動します。
3.SecurityGatewayサーバーで、Windowsのコマンドプロンプトを起動します。
4.\SecurityGateway\app\フォルダへ移動します。
5.sgdbtool.exe -setdbconnect, と入力し、Enterを押します。
6."組み込みFirebirdデータベースを使用しますか Y/N?" でNを押し、Enterを押します。
7."FirebirdサーバーIPを入力"でFirebirdサーバーのIPアドレス (例. 10.10.0.1)を入力し、 Enterを押します。
8."Firebirdサーバーポート (デフォルトは 3050)"でEnterを押します。
9."Firebirdデータベースパスかエイリアス"でデータベースサーバーをコピーしたFirebirdサーバー(例. C:\Databases\SECURITYGATEWAY.FBD)のフルパスを入力し、 Enterを押します。
10."Firebirdデータベースン¥ユーザー名 (デフォルトはSYSDBA)を入力"でEnterを押します。
11."Firebirdデータベースパスワード (デフォルトはmasterkey)を入力"でFirebird 3 サーバーを作成した際のパスワードを入力し、Enterを押します。
プライマリSecurityGatewayノードが外部のデータベースサーバーへ接続できるようになります。
クラスタリングで アーカイブ を使用するには:
1.Firebirdサーバーのアーカイブデータベースファイル(例. "c:\databases\Archives\Example.com," "..\Archives\company.com," 等)を作成します。
2.各アーカイブストアのストレージロケーションとしてアクセスできるネットワークフォルダを作成します。
3.アーカイブストアの編集 にあるストレージローケーションで、新しいロケーションをUNCパスで指定します。
4.各アーカイブストアを Firebirdデータベースサーバーインスタンスへ接続 と設定し、各データベースファイルをデータベースパス/エイリアス名 で入力します。
5.アーカイブストアの自動生成 設定を必要に応じて編集し、UNCパスとクラスタリングに対応したマクロの編集を行います。
新しい SecurityGatewayインストールをクラスタへ追加するには:
1.SecurityGatewayインストーラーを新しいノードとして使用する端末上で実行します。
2.インストール中に、"外部データベースサーバーへ接続"を選択し、前述のセクションで入力した情報を使用します。
3.インストール処理を通常通り行います。
4.Windowsサービス セクションで認証情報と共有データフォルダへ接続するためのUNCファイルパスが正しいかどうかを確認します。
5.新しい端末へ必要なSSL証明書をコピーします。
アクティブ/アクティブでのデータベースレプリケーションを使用するには、SecurityGatewayは対応しているものの、サードパーティーのレプリケーション製品を使用する必要があり、設定方法はこのヘルプの範囲外です。クラスタでアクティブ/アクティブでのデータベースレプリケーションを行う要件や手順については、次のPDF文書を参照してください。: SecurityGateway: アクティブ-アクティブデータベースレプリケーションの設定