次の方法で共有


ネットワーク負荷分散クラスターでレポート サーバーを構成する方法

レポート サーバーのスケールアウトをネットワーク負荷分散 (NLB) クラスターで実行するように構成する場合は、次の操作を行う必要があります。

  • 仮想サーバーの IP アドレスにマップされる仮想サーバー名を使用して NLB クラスターにアクセスできることを確認します。仮想サーバー名は、NLB クラスターに対して単一のエントリ ポイントを構成できるようにするために必要です。各レポート サーバー インスタンスの URL を構成するときに、仮想サーバー名をホストとして指定します。

  • 対話型レポートを表示できるようにビュー ステート検証を構成します。対話型レポートは、通常、ユーザーの操作に応じて新しいデータやさまざまなデータをビジュアル化するために単一のユーザー セッション中に何回も表示されます。ビュー ステート検証を構成すると、どのレポート サーバーで実際の要求を処理するかに関係なく、ユーザー セッション中の継続性が維持されます。

Reporting Services には、スケールアウト配置の負荷分散機能や共有 URL を使用した単一のアクセス ポイントの定義機能は用意されていません。Reporting Services スケールアウト配置をサポートする別のソフトウェアまたはハードウェア NLB クラスター ソリューションを実装する必要があります。

既に NLB クラスターの一部であるノードに Reporting Services をインストールするか、まずスケールアウト配置を構成してからクラスター ソフトウェアをインストールすることができます。

NLB クラスターでのレポート サーバー配置の手順

配置をインストールして構成するには、次のガイドラインに従ってください。

手順

説明

詳細情報

1

NLB クラスター内のサーバー ノードに Reporting Services をインストールする前に、スケールアウト配置の要件を確認します。

SQL Server オンライン ブックの「スケールアウト配置の計画

2

NLB クラスターを構成し、正常に動作することを確認します。

必ずホスト ヘッダー名を NLB クラスターの仮想サーバー IP にマップしてください。ホスト ヘッダー名は、レポート サーバーの URL で使用されます。IP アドレスに比べて容易に記憶でき、入力も簡単です。

詳細については、実行する Windows オペレーティング システムのバージョンの Windows Server の製品マニュアルを参照してください。

4

既に NLB クラスターの一部であるノードにファイルのみのモードで Reporting Services をインストールし、スケールアウト配置のレポート サーバー インスタンスを構成します。

ここで構成したスケールアウトでは、仮想サーバー IP に送信される要求に応答できない場合があります。仮想サーバー IP を使用するようにスケールアウトを構成する手順は、この後でビュー ステート検証を構成してから行います。

レポート サーバーのスケールアウト配置を構成する方法 (Reporting Services 構成)

5

ビュー ステート検証を構成します。

最適な結果を得るには、この手順は、スケールアウト配置を構成した後、仮想サーバー IP を使用するようにレポート サーバー インスタンスを構成する前に行います。ビュー ステート検証を先に構成することによって、ユーザーによる対話型レポートへのアクセス時に、ステート検証の失敗に関する例外を回避できます。

このトピックの「ビュー ステート検証を構成する方法」

6

NLB クラスターの仮想サーバー IP を使用するように Hostname と UrlRoot を構成します。

このトピックの「Hostname と UrlRoot を構成する方法」

7

指定したホスト名でサーバーにアクセスできることを確認します。

このトピックの「レポート サーバーへのアクセスの確認」

ビュー ステート検証を構成する方法

NLB クラスターでスケールアウト配置を運用するには、ユーザーが対話型の HTML レポートを表示できるように、ビュー ステート検証を構成する必要があります。この構成をレポート サーバーとレポート マネージャーについて行う必要があります。

ビュー ステート検証は、ASP.NET によって制御されます。既定では、ビュー ステート検証は有効であり、Web サービスの ID を使用して検証を行います。ただし、NLB クラスターのシナリオでは、異なるコンピューターで実行される複数のサービス インスタンスと Web サービス ID が存在します。サービス ID はノードにより異なるので、単一のプロセス ID に依存して検証を行うことはできません。

この問題を回避するために、ビュー ステート検証をサポートする任意の検証キーを生成してから、同じキーを使用するように各レポート サーバー ノードを手動で構成することができます。ランダムに生成される任意の 16 進数のシーケンスを使用できます。検証アルゴリズム (SHA1 など) によって、16 進数のシーケンスの必要な長さが決まります。

  1. .NET Framework により提供される自動生成機能を使用して、検証キーと暗号化解除キーを生成します。最終的に、スケールアウト配置内の各レポート マネージャー インスタンスの Web.config ファイルに貼り付けることができる単一の <machineKey> エントリが必要です。

    次の例は、取得する必要がある値を示しています。例を構成ファイルにコピーしないでください。このキーの値は有効ではありません。

    <machineKey validationKey="123455555" decryptionKey="678999999" validation="SHA1" decryption="AES"/>
    
  2. レポート マネージャーの Web.config ファイルを開き、<system.web> セクションで、生成した <machineKey> 要素を貼り付けます。既定では、レポート マネージャーの Web.config ファイルは、\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\Web.config にあります。

  3. ファイルを保存します。

  4. スケールアウト配置内の各レポート サーバーに対し、前の手順を繰り返します。

  5. \Reporting Services\Report Manager フォルダーにあるすべての Web.Config ファイルの <system.web> セクションに同一の <machineKey> 要素が含まれていることを確認します。

Hostname と UrlRoot を構成する方法

NLB クラスターでレポート サーバー スケールアウト配置を構成するには、サーバー クラスターへの単一のアクセス ポイントとして 1 つの仮想サーバー名を定義する必要があります。次に、この仮想サーバー名を使用環境のドメイン ネーム サーバー (DNS) に登録します。

仮想サーバー名を定義したら、レポート サーバーの URL にその仮想サーバー名を含めるように、RSReportServer.config ファイル内の Hostname プロパティと UrlRoot プロパティを構成できます。

注記注意

UrlRoot プロパティは、Reporting Services のサブスクリプションによって送信される電子メールに表示される URL に影響します。RSReportServer.config ファイル内の UrlRoot プロパティを空のままにすると、電子メールに表示される URL には、NLB 仮想サーバーの URL ではなく物理的なコンピューター名が含まれます。悪意のあるユーザーがサブスクリプションを受け取り、物理的なコンピューター名が公開される可能性を回避するには、UrlRoot プロパティを適切な NLB 仮想サーバー名に変更してください。

レポート環境でワイルドカードの URL 予約を使用している場合は、Hostname プロパティを構成します。NLB サーバーの仮想サーバー名として使用する Hostname プロパティを指定すると、レポート環境のネットワーク トラフィックが NLB サーバーに送信されます。NLB はレポート サーバー ノード間に要求を分散します。

さらに、Excel や PDF などの形式で静的レポートにエクスポートされたレポート、または電子メール サブスクリプションなどのサブスクリプションで生成されるレポートでレポート リンクが動作するよう、UrlRoot プロパティを構成します。

Reporting Services を Windows SharePoint Services 3.0 または Office SharePoint Server 2007 と統合するか、カスタム Web アプリケーションでレポートをホストする場合、UrlRoot プロパティのみ構成が必要になることがあります。この場合、SharePoint サイトまたは Web アプリケーションの URL として使用するように UrlRoot プロパティを構成します。これにより、レポート環境のネットワーク トラフィックが、レポート サーバーまたは NLB クラスターではなく、レポートを処理するアプリケーションに送信されます。

ReportServerUrl は変更しないでください。この URL を変更すると、内部要求を処理するたびに仮想サーバーとの余分なやり取りが発生します。詳細については、「構成ファイル内の URL (Reporting Services)」を参照してください。構成ファイルの編集の詳細については、SQL Server オンライン ブックの「Reporting Services の構成ファイルを変更する方法」を参照してください。

  1. テキスト エディターで RSReportServer.config を開きます。

  2. <Service> セクションを見つけ、次の情報を構成ファイルに追加して、Hostname 値を NLB サーバーの仮想サーバー名に置き換えます。

    <Hostname>virtual_server</Hostname>
    
  3. UrlRoot を探します。構成ファイルで要素は指定されていませんが、使用される既定値は http:// または https://<computername>/<reportserver> という形式の URL です。<reportserver> はレポート サーバー Web サービスの仮想ディレクトリ名です。

  4. http:// または https://<virtual_server>/<reportserver> という形式で、クラスターの仮想名を含む UrlRoot の値を入力します。

  5. ファイルを保存します。

  6. スケールアウト配置内の各レポート サーバーの RSReportServer.config ファイルごとに、これらの手順を繰り返します。

レポート サーバーへのアクセスの確認

仮想サーバー名 (https://MyVirtualServerName/reportserver や https://MyVirtualServerName/reports など) を使用してスケールアウト配置にアクセスできることを確認します。

レポート サーバーのログ ファイルを参照するか、または RS の実行ログを確認して、どのノードが実際にレポートを処理しているのかを確認できます (実行ログ テーブルには、InstanceName という列があり、特定の要求がどのインスタンスによって処理されたのかを示しています)。詳細については、SQL Server オンライン ブックの「Reporting Services のログ ファイル」を参照してください。

レポート サーバーに接続できない場合は、NLB を調べて、要求がレポート サーバーに送信されていることを確認し、レポート サーバーの HTTP ログを表示して、サーバーが要求を受信していることを確認します。

失敗した要求のトラブルシューティング

要求がレポート サーバー インスタンスに到達しない場合は、RSReportServer.config ファイルを調べて、仮想サーバー名がレポート サーバーの URL のホスト名として指定されていることを確認します。

  1. テキスト エディターで RSReportServer.config ファイルを開きます。

  2. <Hostname>、<ReportServerUrl>、および <UrlRoot> を探して、各設定のホスト名を確認します。値が意図したホスト名でない場合は、正しいホスト名に置き換えます。

これらの変更を加えてから Reporting Services 構成ツールを起動すると、<ReportServerUrl> の設定が既定値に変更されることがあります。使用する設定を含むバージョンに置き換える必要がある場合に備えて、常にバックアップ コピーを作成しておく必要があります。