2019年6月13日木曜日

ネットワーク負荷分散について


ネットワーク負荷分散とは

ネットワーク負荷分散(ネットワーク・ロードバランシング)は、特定のサービスに対する着信トラフィックを複数のバックエンド・サーバに分散する機能です。
一般的な例として、これはユーザがWebサイトに接続し、そのリクエストはすべて同じWebアドレスにホストされている
複数のサーバに分散されるWebサーバ・ファームです。


ネットワーク負荷分散を使用する理由

このソリューションにより、顧客は自社のニーズと要求に基づいて拡張可能な環境を構築することができます。
1台のサーバがオフラインになった場合、他のサーバが負荷を負担し、関連サービスをエンドユーザに提供します。
現在の性能を超えるデマンドがある場合、サーバ管理者は新しいサーバを素早く起動することが容易になります。
またサーバが単一の障害ポイントとなることを防ぐため、システムにある程度の冗長化を提供します。

ネットワーク負荷分散は、ネットワーク間のブリッジとしても使用できます。これにより、クライアントとサーバを分離して、
このデバイスを経由したユーザのバックエンドへのアクセスを制限することができます。


ネットワーク負荷分散は印刷に役立つか?

Webサーバ・ファームが複数のリクエストを複数のWebサーバへ分散することができるように、プリント・ジョブも分散が実現できます。
F5 や Netscalerデバイスなどの負荷分散デバイスを設定し、着信した印刷要求受け入れ、
それら着信要求を複数のプリント・サーバへ分散することができます。

ネットワーク負荷分散は、多数のユーザが絶え間なく印刷している、もしくは大量のプリント・ジョブが高頻度で生成されているような環境に便利です。
負荷分散の実装により、システム管理者はより簡単な印刷管理方法と印刷環境への柔軟なアプローチを実現できます。
PaperCutでこれらのデバイスを操作する方法が幾通りかあります。

PaperCutはプリント・サーバにプライマリ・サーバ/セカンダリ・サーバ/サイト・サーバをインストールすることができます。
プライマリ・サーバはソフトウェアの管理元となるメインのPaperCutアプリケーションです。

負荷分散の基本設定は次の通りです。




上記図は、PaperCut アプリケーション・サーバはネットワーク・ロードバランサの背後に複数のセカンダリ・サーバと一緒にインストールされています。
各PaperCutセカンダリ・サーバはアプリケーション・サーバに接続されていて利用可能なすべてのキューが構成されています。

例えば、ネットワーク内に5台のプリンタ(Printer1, Printer2, Printer3, Printer4, Printer5) がある場合、
各PaperCutセカンダリ・サーバはこれら5台のプリンタ毎にプリント・キューがあります。

ネットワーク・ロードバランサはクライアント・マシンからの印刷トラフィックを受け入れて、
それらを任意のバックエンドのPaperCutセカンダリ・サーバへリダイレクトするように設定できます。

ほとんどの場合、ロードバランサのフロントエンドIPアドレスを参照するDNS名を設定します。

クライアントはDNS名を使用してプリンタを参照します。例: NLBのネットワーク・ロードバランサ用にDNS名を作成した場合、
クライアントは次のプリント・キューへ接続します。

NLB\Printer1
NLB\Printer2


その後、ユーザはこれらのプリント・キューの1つ(NLB\Printer1) から印刷することを選択した場合、
ジョブはロードバランサによりいずれかのPaperCut セカンダリ・サーバへリダイレクトされます。
つまり、ジョブは4台のPaperCut セカンダリ・サーバのいずれかで完了します。(ロードバランサの設定方法により異なります。)

アプリケーション・サーバは、各PaperCutセカンダリ・サーバと関連するプリント・キューを個別に確認し、
必要に応じて適切なプリンタからジョブをリリースします。

セキュア・プリントを使用している場合、ユーザがデバイスへログインすると、
ジョブはアプリケーション・サーバにより正しいプリンタへリダイレクトされます。
そうでない場合、ジョブはサーバへ保留されずプリンタへ直接印刷されます。


ネットワーク負荷分散環境でFind Me プリントは動作するか?

Find Meプリントを使用している場合、PaperCutセカンダリ・サーバに追加のキューを設定する必要があります。
このキューは仮想の「Find Me」キューになります。各PaperCutセカンダリ・サーバがこのキューを利用可能なプリント・キューとして持つように、
すべてのセカンダリ・サーバに複製します。

エンドユーザにマッピングされたプリント・キューは、各プリンタを個別にマッピングするのではなく、NLB\Find Me になります。
これで、ネットワーク・ロードバランサは受信した「Find Me」キューの背後にある4つのサーバのうちの1つにリダイレクトするように構成できます。

アプリケーション・サーバ・レベルでは、4つの異なるFind Meキューを見ることができます。PaperCutソフトウェアはそれぞれを個別に報告します。

各キューは別々のインスタンスとみなされるため、ソリューションをさらに1歩進めてプリント・キューに対するサーバ・アフィニティを構成できます。
これによりプリント・ジョブを受信したサーバが、ジョブをプリンタへ送信したサーバと同じサーバになります。

サーバ・アフィニティを構成すると、ネットワーク・トラフィックは確実に減少します。
これは1つのサーバ(例: server1)のみでジョブを受信しないようにし、
別のサーバ(例: server4)に転送されてプリンタでリリースするようにすることで実現することができます。

■サーバ・アフィニティがない場合
























--------------------------------------------------------------------------------------------------------------------------------------------------------------

■サーバ・アフィニティがある場合
























サーバ・アフィニティを構成するためには、PaperCut管理画面でいくつか設定を行う必要があります。

1. PaperCut管理者画面にログインします。
2. <プリンタ>セクションを表示し「プリンタ・リスト」からFind Meプリント・キュー (例: Server1\Find Me)を選択
3. キューはバーチャル・キューとして設定されているはずです。「ジョブのリダイレクト設定」からFind Meプリント・キューから
        ジョブがリリースできる物理キューを選択します。
この例では次のプリント・キューを選択します:
   server1\printer1, server1\printer2, server1\printer3, server1\printer4 and server1\printer5
4. 設定を保存します。
5. 上記設定により、プリント・ジョブがserver1上のFind Meキューに入った場合、
        ジョブはこのサーバ上のプリント・キューからのみリリースできるようになります。
6. 他のFind Meキューに関しても上記の手順を繰り返し、関連付けした各サーバの出力キューのみ選択してください。
7. ジョブを受け付けたサーバ上のキューへのプリント・ジョブのリリースのみ許可するようにシステム設定されました。
4つのFind Meキューからジョブを検索するように各デバイスの設定をチェックする必要があります。
8. <デバイス> セクションからFind Meプリントを設定しているデバイスを選択
9. 「デバイスの詳細」画面からプリント・リリースを表示し、このオプションが選択されているかを確認してください。
10. キュー・リストから、4つのバーチャルFind Me ホールド/リリース・キューを選択します。
11. 設定を保存してください。そして残りのデバイスも繰り返し設定を行ってください。

これにより、各デバイスは4つのサーバすべてのFind Meキューをチェックし、各ユーザの保留中のプリント・ジョブを検索することができます。

エンドユーザの観点からは、印刷時に1つのプリント・キューのみが見えています。
ユーザが保留中のプリント・ジョブをリリースする際、すべて単一のプリント・キューのように見えます。
しかし、それらプリント・ジョブはすべて1台のサーバ上に配置することも複数のサーバに分散させることもできます。

これは単一のプリント・サーバの障害に対してある程度の冗長性を提供するのに最適なソリューションです。
また、スケーラブルで管理しやすいソリューションが可能となります。

【注記】PaperCut Application Server は負荷分散できません。PaperCut Secondary Server間のジョブのみ負荷分散できます。

https://www.papercut.com/kb/Main/NetworkLoadBalancing

0 件のコメント :

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。