QlikView Publisher のクラスタリング

本章では、QlikView Publisher の概要と、スケーラビリティ、障害への適応力、または双方のクラスター化された構成でこれを使用する方法について説明します。また、本章ではアーキテクチャとインストール要件のほか、クラスター化された障害への適応力のある QlikView Publisher の構成を構築するオプションについても取り扱います。

はじめに

QlikView Publisher は QlikView Server のモジュール オプションで、QlikView の分析、アプリケーション、レポートの単一のコントロール ポイントを提供するスケジュール、管理、マネジメント ツールです。管理者は、企業全体で QlikView アプリケーションおよびレポートのセキュリティとアクセスをスケジュール、配信、管理することができます。

QlikView Publisher は以下の主な機能を実行します。

  • ソース .qvw ファイルの接続文字列で定義されたデータ ソースから直接データをロードします。
  • これは、さまざまなルール (ユーザー認証やデータ アクセスなど) に基づいてソース .qvw ファイルからのデータとアプリケーションを「分割」し、これらの新規作成ドキュメントを適切な QlikView Server に、またはメールを介した静的レポートとして分散するための配布サービスとして使用されます。
  • QlikView Publisher を使用する際は、Publisher のみがデータのロードと配信用のソース ドキュメント フォルダとデータ ソースにアクセスできます。QlikView ユーザーはソース ドキュメントとデータにアクセスできません。

クラスター化されたアーキテクチャを配置することにより、QlikView Publisher はウェブ サービス技術を使用してスケーラビリティや障害への適応力を達成します。管理者はサービスをクラスター化して、ロード バランスを提供することができます。SNMP のネイティブ サポートは、ツールをモニタリングするエンタープライズ システムとの統合を有効にします。外部エンタープライズ スケジューリング ツールはウェブ サービスの呼び出しを使用して Publisher のタスクをトリガーできます。タスクは、QlikView 管理者がオンデマンドでスケジュールして実行することもできます。

以下の図は、異なるタスクとロード バランスを処理するように構成された 2 サーバーのクラスター化 QlikView Publisher を示しています。また、この図にはロード バランスで QlikView AccessPoint を使用する 3 サーバーのクラスター化 QlikView Server も含まれています。QlikView Developer によって作成されたドキュメントはソース ドキュメント フォルダに保存されます。QlikView Publisher タスクはデータを取得して、その結果をユーザー ドキュメント フォルダに保存するために使用します。

負荷が不均衡なサービス クラスターを設定する方法については、「 不均衡 QlikView Publisher クラスタリング」を参照してください。

ソース ドキュメント

ソース ドキュメントには、a) さまざまなデータ ソース (データ ウェアハウス、Microsoft Excel ファイル、SAP、Salesforce.com など) からデータを抽出するための .qvw ファイル内のスクリプト、b) .qvd ファイル内の実際のバイナリ データ抽出、c) コードの 1 行でデータ モデルを継承した別の .qvw ファイルからのバイナリ データが含まれています。

QlikView Developer を使用して作成した QlikView ソース ドキュメントは以下のフォルダにあります。

  • Windows Server 2008以降: \ProgramData\QlikTech\SourceDocuments. これは Windows Server 2008 以降の QlikView のデフォルトの場所です。

ユーザー ドキュメント

ユーザー ドキュメント フォルダは、QlikView Server で使用するリポジトリです。フォルダは以下の場所にあります:

  • Windows Server 2008以降: \ProgramData\QlikTech\Documents。これは Windows Server 2008 以降の QlikView のデフォルトの場所です。

タスク

タスクは、データの配信およびデータのリロード用に管理者によって作成されます。タスクは、XML ファイルのコレクションとして QlikView Publisher リポジトリ、または SQL Server データベースに保存されます。タスクを実行すると、QlikView Publisher は QlikView Batch (QVB) を呼び出します。これはユーザー インターフェースのない QlikView Desktop に類似しています。

注: QlikView Batch (QVB) はグラフィカル オブジェクトやユーザー入力オブジェクトに対応していません。このため、QVB はユーザー入力の必要なスクリプトなどを含むドキュメントをリロードできません。

QVB は、ソース ドキュメント フォルダに保存されているドキュメントをリロードし、連想型 QlikView データベースを作成します。これは各ドキュメント内に保存されます。QVB はデータ ソースからロード スクリプトによって説明されているデータを取得することによりリロードを実行します。QlikView Publisher は、暗号化された QVP プロトコルを使用して QlikView Server のユーザー ドキュメント フォルダにドキュメントを配信し、メール サーバーやファイル フォルダにも配信します。QlikView Publisher は Directory Service Connector (DSC) を使用して、ドキュメントを配信する場所と宛先を判定することができます。

QlikView Publisher をクラスター化する理由

QlikView における Publisher の役割は、QlikView 管理者が設定した基準に従ってデータを配信、更新することです。これを行うため、Publisher はスケジュールどおり、またはオンデマンドで多くのタスクを実行します。Publisher のタスクは、クラスターで配信できる最小のエンティティです。単一のタスクを分割して複数のクラスター ノードで並行して実行することはできません。複数のサーバー上で Publisher サービスをクラスター化すると、管理者は Publisher ロード バランス アルゴリズムを使用して並行して作動している複数のサーバーに複数のタスクを配信できます。つまり、Publisher クラスターはデータの分散配信とリロードのスケーラビリティ、利用設定、サービス性を向上させるために使用できます。

さらに、Publisher クラスター ライセンスはクラスターにおける Publisher サービスおよび独立した Publisher サービスの構成を有効にします。たとえば、Publisher クラスターは、大量のデータおよびタスクを取り扱うために企業のオフィスで使用できます。また、単一の Publisher サービスは、Publisher が製造データ ソースを使用してドキュメントの配信のみを行う関連製造工場で使用できます。

QlikView Publisher をクラスター化すると、以下の目標を満たすことができます。

  • 水平スケーラビリティ
  • 障害への適応力

水平スケーラビリティ

ハードウェアを水平に拡張すると、QlikView の構成のリソースを増やすことができます。ハードウェア サーバーを追加すると、QlikView Publisher のワークロードを増やせます。クラスター化された Publisher サーバーはその後、QlikView タスクの負荷を分散するように構成できます。

たとえば、特定のハードウェア サーバーでは、QlikView Publisher は 8 件のタスクを同時に処理できます。リソースを増やす必要がある場合、QlikView Publisher サービスは必要に応じて拡張できます。新しいハードウェア サーバーで QlikView Publisher サービスを追加すると、Publisher クラスターの構成で追加サーバーを設定して最高 16 件のタスクを取り扱うことができます。このシナリオでは、最初の 8 件のタスクがサーバー A、次の 8 件のタスクがサーバー B に割り当てられています。また、サーバーがクラスター化されている場合は、2 つのサーバーでタスクの負荷を分散することもできます。

障害への適応力

構成に含まれているタスクの数が増えると、タスクを時間通りに完了する期間がますます重要になります。QlikView 配信サービスをクラスター化すると、構成で障害への適応力を得られます。上記の場合は、単一のサーバーが 100 件の同時タスクをサポートでき、構成に障害への適応力をつけるために追加サーバーを構成できます (サーバーは合計 3 台)。サーバーが失われた場合でも (ハードウェアの故障やネットワーク接続の問題など)、障害許容クラスターは最高 200 件のタスクをサポートします。3 台のサーバーすべてがアクティブなノードであれば、すべてのサーバーをフル稼働しなくても応答時間を短縮することができます。また、ノードが失われた場合は、タスクとタスク チェーンの数を限定します。

クラスター化された QlikView Publisher 構成の要件

クラスター化された QlikView Publisher の構成では、以下の高レベルの要件を満たす必要があります。

  • クラスター化された QlikView Publisher のライセンス キー
  • 共有ネットワーク ストレージ
  • ロード バランス戦略

クラスター化された QlikView Publisher のライセンス キー

クラスター化された環境では、QlikView Publisher サーバーは同じライセンス キーでインストールされます。これは、ライセンス認証ファイル (LEF) で以下のエントリを調べると確認できます。

PRODUCTLEVEL;30;; (30 は QlikView Publisher のコード)

NUMBER_OF_XS;N;; (N は許可されている QlikView Distribution Services の数)

クラスター化された QlikView Publisher 構成のサーバーは、共有ストレージを介して相互に構成とライセンス情報を共有します。このため、構成およびライセンス管理は、すべてのノードについて QMC で 1 回だけ行う必要があります。

共有ネットワーク ストレージ

共有ネットワーク ストレージは、クラスターで必要な QlikView アプリケーションのストレージで必要です。Windows ベースのファイル共有でドキュメント (.qvw ファイル) と .meta データのストレージをホストするようお勧めします。QlikView Publisher は、SAN (NetApp、EMC など) をサポートします。これは Windows Server 2008 以降にマウントされており、サーバーで共有されます。SAN を介してサーバーに示されるストレージは、ローカルで接続されたストレージとして表示されます。SAN ストレージが Publisher で使用される場合、QlikView Server によってアクセスされる配信データは SAN ストレージ上にはありません。

注: QlikView では、Windows Distributed File System (DFS) をサポートしていません。

QlikView Distribution Services (QDS) には共有アプリケーション データ ディレクトリが必要で、共有ソース ドキュメントディレクトリが必要なこともあります (共有ネットワーク ストレージの要件です)。構成されている Publisher サービスはすべて、共有ストレージへの信頼できるネットワーク アクセスが必要です。

ロード バランス戦略

ロード バランス

ロード バランスはメモリ使用量と CPU 使用率に基づき、内部のランキング システムによって決定されます。Qlik では、広範にテストされているデフォルトの設定を使用するよう推奨しています。

デフォルトの設定を変更するには、QlikViewDistributionService.exe.config という構成ファイルを編集します。キーは JavaScript で記述されています。

<add key="LoadBalancingFormule" value="(AverageCPULoad*400) + ((MemoryUsage / TotalMemory) * 300) + ((NumberOfQlikViewEngines / MaxQlikViewEngines)*200) + (NumberOfRunningTasks*100)"/>

ここではそれぞれ以下に該当します。

  • AverageCPULoad: 起動しているすべての QVB の平均 CPU 負荷。
  • MemoryUsage: アプリケーション全体の合計メモリ使用量。
  • TotalMemory: サーバーのメモリ量の合計。
  • NumberOfQlikViewEngines: 現在使用されている QlikView エンジンの数。
  • MaxQlikViewEngines: QlikView エンジンの最大数として設定された値。
  • NumberOfRunningTasks: 現在実行中のタスクの数。

同時タスク

デフォルトで、4 つの QlikView タスクを単一のノード上で同時に実行できます。推奨される最大数は、ノード当たり 8 件の同時タスクです。10 件以上のタスクを単一のノードで同時に実行する必要がある場合は、Windows レジストリで修正を行い、さらに多くの同時タスクを実行できるようにデスクトップのヒープ サイズを変更する必要があります。

注: 10 件以上の同時タスクを実行するには、大規模なサーバーが必要です。また、Publisher タスク向けにサーバーをさらに追加することもできます。

同時に実行できるタスクの数を変更するには、以下の手順を実行してください。

  1. Windows Server レジストリをバックアップします。
  2. 以下の Windows Server レジストリ設定を見つけます。
  3. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session\Manager\SubSystems\Windows

    %SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows

    SharedSection=1024,3072,512 Windows=On SubSystemType=Windows

    ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3

    ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off

    MaxRequestThreads=16

    SharedSection の既定値は 64 ビット (x64) では 1024,20480,768 です。

  4. SharedSection を 1024,20480,2048 に設定し、デスクトップのヒープ サイズを変更します。
  5. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session\Manager\SubSystems\Windows

    %SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows

    SharedSection=1024,20480,2048 Windows=On SubSystemType=Windows

    ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3

    ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off

    MaxRequestThreads=16

  6. レジストリの変更を保存し、コンピュータを再起動します。
  7. QMC の [配信用同時 QlikView エンジンの最大数 (Max number of simultaneous QlikView engines for distribution)] 設定を必要なエンジン数に変更します。

セキュリティ

QlikView Publisher は QlikView アプリケーションおよびデータへのアクセスを提供します。このため、QlikView Server の標準的なセキュリティ機能に加えて、QlikView Publisher をエンタープライズ セキュリティ ソリューションに統合することが重要になります。

QlikView Publisher は QlikView ソリューション内でバックエンド プロセスとして表示されます。セキュリティの観点から、フロントエンドにバックエンドへのオープン ポートがないことを理解しなくてはなりません。フロントエンドはバックエンドのデータ ソースにクエリを送信せず、ユーザー ドキュメント (.qvw ファイル) にはバックエンドにあるデータ ソースへの接続文字列は含まれていません。エンドユーザーはフロントエンドにある QlikView ドキュメントにのみアクセスできます。バック エンド内では、Windows ファイル システムが常に許可を行っています。QlikView はアクセス権限を管理しません。

以下の図は、QlikView 製品とデータおよびアプリケーションを含む標準的な QlikView の構成を簡素化したものです。

ディレクトリ サービス

QlikView ドキュメント向けのセキュリティを提供するために、QlikView Publisher を外部ディレクトリ サービス (Active Directory、LDAP、データベース、その他のサインオン ソリューションなど) に接続することができます。外部ディレクトリ サービスは、QlikView が信頼関係を築いている認証ソースです。

QlikView は内蔵ディレクトリ サービス プロバイダ (DSP) を備えており、QlikView 管理者は Active Directory のユーザー権限を QlikView ドキュメントやその一部に割り当てることができます。QlikView Publisher はこの内蔵プロバイダを活用して、Active Directory との直接的な統合を提供するとともに、これをサポートしています。

QlikView は他のディレクトリ サービス向けに構成可能な LDAP を作成する手段も提供しています。構成可能な LDAP を使用すると、QlikView 管理者は Active Directory 以外の認証システムによって認証されているユーザーに権限を授与できます。

QlikView Server の許可モード

QlikView Server は、QlikView ドキュメントへのアクセスを許可するための相互に排他的な 2 つのオプションを提供します。QlikView Server (NTFS または DMS) の許可モードに応じて、Publisher はドキュメントへの権限を割り当てる際、適切な Access Control List (ACL) に表示します。NTFS 許可の場合、Publisher はドキュメントを QlikView Server に送信する際、標準的な NTFS ACL を表示します。DMS 許可では、Publisher はアプリケーションに関連する .meta ファイル内に含まれている ACL を表示します。

静的データ削除

データ分割は、行レベルのセキュリティ設定に基づいて QlikView アプリケーションからアプリケーション データを削除できるセキュリティのメカニズムです。QlikView Publisher は該当するセキュリティのシナリオとは関係なくデータ分割を自動化できます。ただし、Publisher では、管理者はカスタムまたは Active Directory DSP を介して利用できる外部認証ソース内で定義されたユーザーあるいはグループに基づいてデータ分割を構成できます。Publisher は、QlikView で「ループと分割(Loop&Reduce)」機能を使用してデータ分割を行います。Publisher データ分割は、Section Access に関連している動的データ分割と混同しないでください。

QlikView Publisher クラスター化の構成

注: このセクションの手順は、Windows Server 2008 R2以降で有効です。

要件

QDS クラスター構成を開始する前に以下の要件を満たす必要があります。

  • 複数の QDS をサポートする QlikView Publisher ライセンス。Publisher LEF には NUMBER_OF_XS;N;; のエントリを含める。ここで N は 2 以上。
  • QlikView AccessPoint (QlikView Web Server または Microsoft IIS ベース)、QlikView Management Service (QMS)、QlikView Server (QVS)、DSC がすでにネットワーク内の QlikView システムにインストールされている。
  • 各コンピュータで QlikView サービスを実行するドメイン・ユーザーを使用できる。
  • 共有ストレージ デバイスとして、Qlik では Windows ベースのファイル共有としてマウントされた共有デバイスを推奨。
  • すべての QDS クラスター ノードでは、以下の中央に保存されたデータへの読み取り・書き込みアクセスが必要。

    • QlikView Publisher ステータス、構成、ログ ファイル
    • QlikView ソース ドキュメント

段階的な手順

共有ストレージ デバイスの準備

各 Publisher クラスター ノードでアクセスされるファイル用のフォルダを作成します。

  • \\<server1>\ProgramData\QlikTech\DistributionService (application folder)
  • \\<server1>\ProgramData\QlikTech\SourceDocuments (source documents folder)

クラスター化 ノードの準備

予定されている各 QDS クラスター ノードで以下の手順に従います。

  1. 管理者としてログインします。
  2. QlikView ソリューションを保護するためにファイアウォールを構成します。QlikView サービスでは、以下のテーブルに含まれているポートを開いておく必要があります。
  3. サービス ポート
    QDS (Publisher) (Publisher で必要) 4720/TCP
    DSC (Publisher で必要) 4730/TCP
    QMS (Publisher で必要) 4780/TCP
    QlikView Web Server/Microsoft IIS 構成 4750/TCP
    QVS 構成 4749/TCP
    QVP 通信 4747/TCP
    QMS (EDX 呼び出し) (Publisher で必要) 4799/TCP
  4. 管理者用の Internet Explorer Enhanced Security Configuration を非アクティブにします。デフォルトで、Windows Server 2008以降はこの構成が有効にされた状態で発送されます。これは基本的にロックダウンされたバージョンで、ウェブ参照用にサーバーにわずかながらセキュリティを追加します。構成を有効にすると、QMC とサービス コンテンツの表示で問題が発生する可能性があります。Internet Explorer Enhanced Security Configuration はオンのままにしておけますが、問題が発生した場合は Administrators グループでこの機能をオフにしてください。
  5. QlikView サービスの実行に使われるドメイン ユーザーを Local Administrators Group に追加します。
  6. QlikView 64-bit (x64) サーバー設定を起動し、[カスタム インストール (Custom installation)] を選択してからプロファイルを選びます。その後、[リロード/配信エンジン (Reload/Distribution Engine)] 機能を選択し、Publisher がある各ノードでこれをインストールします。
  7. QlikView サービス アカウントの資格情報を入力します。
  8. 設定を終了してシステムをすぐに再起動します。

QMC での QDS クラスターの構成

QMC で QDS クラスターを構成するには以下の手順に従ってください。

  1. QMC を開き、アクティブにしたクラスター モデルを使って QlikView Publisher ライセンスを登録します。
  2. [システム (System)] > [設定 (Setup)] タブで [配信サービス (Distribution Services)] に最初の QDS クラスター ノードを追加します。
  3. UNC 構文を使い、[アプリケーション データ フォルダ (Application Data Folder)][ソース フォルダ (Source Folders)] を共有デバイス フォルダ パスに切り替えます。
  4. [適用 (Apply)] をクリックして、QDS を手動で再起動します。
  5. 各追加 QDS クラスター ノードを URL 形式で追加します。
  6. [適用 (Apply)] をクリックして、あらゆるノードで QDS を手動で再起動します。