インストールと構成の自動化 (AppFabric 1.1 キャッシュ)

ここでは、Microsoft AppFabric 1.1 for Windows Server キャッシュ機能のインストールと構成を自動化するための手順について説明します。無人インストールでは、すべてのオプションがコマンド ラインから指定されるので、ユーザー インターフェイスは表示されません。キャッシュ クラスターにキャッシュ ホストを追加するには、またはキャッシュ クラスターからキャッシュ ホストを削除するには、コマンドを特定の順序で実行する必要があります。ここでは、両方のシナリオでのコマンドについて説明します。AppFabric 構成ウィザードのユーザー インターフェイスを使用して、キャッシュ機能を構成することもできます。AppFabric 構成ウィザードの詳細については、「Windows Server AppFabric の構成」を参照してください。

ここでは、自動インストールの手順を 5 つのタスクに分けています。

  • Windows Server AppFabric のキャッシュ機能をインストールする

  • 新しいキャッシュ クラスターを作成する

  • キャッシュ ホストを追加する

  • キャッシュ ホストを削除する

  • キャッシュ クラスターを削除する

これらの手順を自動化する PowerShell スクリプトについては、次の例を参照してください。

ヒント

Windows PowerShell コマンドの起動と実行に関する基本については、「Windows PowerShell を使用した Windows Server AppFabric キャッシュ機能の管理」を参照してください。コマンドを実行する前に、Import-Module を使用して、管理 (DistributedCacheAdministration) または構成 (DistributedCacheConfiguration) 用に Windows PowerShell モジュールのインポートが必要なことがあります。

ヒント

以下のコマンドの一部は対象のキャッシュ ホスト上でローカルに実行する必要がありますが、Windows PowerShell はリモート コンピューターでのコマンドの実行をサポートしています。詳細については、「リモート コマンドの実行」を参照してください。

Microsoft AppFabric 1.1 for Windows Server キャッシュ 機能のインストール

新しいキャッシュ クラスターを作成したり、キャッシュ ホストで AppFabric キャッシュを構成したりする前に、Microsoft AppFabric 1.1 for Windows Server キャッシュ機能をまずインストールする必要があります。AppFabric の自動インストールの方法については、「自動インストール」を参照してください。キャッシュ機能には、以下のものが含まれます。

  • CachingService

  • CacheClient

  • CacheAdmin

たとえば、セットアップ バイナリが Setup.exe という名前であるものとします。バイナリの実際の名前は選択したプラットフォームによって異なることに注意してください。次の例では、AppFabric キャッシュ機能をサーバーに自動的にインストールする方法を示します。

Setup.exe /install /i cachingservice,cacheclient,cacheadmin /l:c:\temp\setup.log

この例では、ログ ファイルを c:\temp\setup.log に格納しています。このログ ファイルを調べて、インストールの結果を確認できます。Microsoft AppFabric 1.1 for Windows Server では、AppFabric のインストール パスを指定する新しい p オプションが導入されています。

AppFabric キャッシュ機能をコンピューターにインストールした後は、キャッシュ機能を構成する必要があります。以下のセクションでは、このプロセスを自動化するために必要な手順について説明します。

新しいキャッシュ クラスターを作成する

新しいキャッシュ クラスターを作成する場合は、最初に New-CacheCluster Windows PowerShell コマンドを呼び出す必要があります。新しいキャッシュ クラスターを作成するときは、クラスターの構成設定を格納する場所を決める必要があります。System.Data.SqlClient プロバイダー、XML プロバイダー、またはカスタム プロバイダーを選択して使用できます。詳細については、「構成モデル」を参照してください。

以下の例では小規模なキャッシュ クラスターを作成します。構成設定は、SQLServer1 という名前の SQL Server コンピューターの CacheClusterConfigurationDB という名前の既存のデータベースに格納します。

New-CacheCluster -Provider System.Data.SqlClient -ConnectionString  "Data Source=SQLServer1;Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True" -Size Small

ヒント

SQL Server データベース ミラーリングを使用してキャッシュ クラスターの可用性を高める場合は、接続文字列でフェールオーバー パートナーを指定する必要があります。詳細については、「SQL Server ベースのクラスター構成」を参照してください。

以下の例では大規模なキャッシュ クラスターを作成します。構成設定は、\\Server1\CacheConfigShare という名前のネットワーク共有の XML ファイルに格納します。

New-CacheCluster -Provider XML -ConnectionString  "\\Server1\CacheConfigShare" -Size Large

どちらの例でも、呼び出し元は構成の格納場所に対して適切なアクセス許可を持っている必要があります。System.Data.SqlClient の場合、呼び出し元は、対象のデータベースの db_owner であるか、または SQL Server インスタンスの sysadmin ロールのメンバーである必要があります。XML の場合は、呼び出し元は共有フォルダーに対する所有者アクセス許可を持っている必要があります。

キャッシュ ホストを追加する

既存のキャッシュ クラスターにキャッシュ ホストを追加するには、以下の手順を順番に実行する必要があります。

コマンド/手順 説明

Register-CacheHost

キャッシュ ホストをキャッシュ クラスターに登録します。

Add-CacheHost

キャッシュ クラスターの一部としてキャッシュ ホストを構成します。

Add-CacheAdmin

必要に応じて、現在のキャッシュ ホストにキャッシュ管理を構成します。

ファイアウォールを構成する

AppFabricCachingService サービスがファイアウォールを通過できるようにします。また、リモート サービス管理を許可します。

Start-CacheHost

新しいキャッシュ ホストを起動します。

Register-CacheHost

Register-CacheHost コマンドを使用して、既存のキャッシュ クラスターにキャッシュ ホストを登録します。これには、ポート番号およびキャッシュ サービス用の Windows アカウントの指定が含まれます。新しいキャッシュ ホストの対象のキャッシュ クラスターを指定するには、Provider および ConnectionString パラメーターを使用します。

次の例では、キャッシュ ホスト コンピューター CacheServer1 を、構成ストアがファイル共有 \\Server1\CacheConfigShare の XML ファイルに存在するキャッシュ クラスターに追加します。キャッシュ サービスの ID としては、組み込みの NT Authority\Network Service アカウントが指定されています。

Register-CacheHost -Provider XML -ConnectionString "\\Server1\CacheConfigShare"  -Account "NT Authority\Network Service" -CachePort 22233 -ClusterPort 22234  -ArbitrationPort 22235 -ReplicationPort 22236 -HostName  CacheServer1

XML プロバイダーの場合、呼び出し元には対象のネットワーク共有に対するフル コントロールが必要です。System.Data.SqlClient プロバイダーの場合は、呼び出し元には、SQL ログインの読み取り、書き込み、作成のアクセス許可、および対象のデータベースに対する追加アクセス許可が必要です。

他の多くの構成コマンドとは異なり、Register-CacheHost コマンドは HostName パラメーターを受け付けるので、リモートで実行できます。

Add-CacheHost

Add-CacheHost コマンドは、キャッシュ ホストを既存のキャッシュ クラスターの一部になるように構成します。新しいキャッシュ ホストの対象のキャッシュ クラスターを指定するには、Provider および ConnectionString パラメーターを使用します。

次の例では、Add-CacheHost を呼び出す方法を示します。

Add-CacheHost -Provider XML -ConnectionString "\\Server1\CacheConfigShare" -Account "NT Authority\Network Service"

このコマンドは、構成対象のキャッシュ ホスト上でローカルに実行する必要があることに注意してください。また、このコマンドは管理者特権の Windows PowerShell セッションから実行する必要があります。

警告

Add-CacheHost コマンドの Account パラメーターに値を指定する必要があります。アカウントを指定しないと、キャッシュ サービスに対してアクセス許可が正しく構成されません。セキュリティが有効になっているドメイン環境では、NT Autority\Network Service アカウントを使用する必要があります。

Add-CacheAdmin

必要に応じて、Add-CacheAdmin コマンドを使用してキャッシュ ホストにキャッシュ管理機能を構成できます。このようにすると、Windows PowerShell コマンドを使用してこのコンピューターからキャッシュ クラスターを管理できます。キャッシュ管理機能をコンピューターにインストールする必要があります。

次の例では、Add-CacheAdmin を呼び出す方法を示します。

Add-CacheAdmin -Provider XML -ConnectionString  "\\Server1\CacheConfigShare"

このコマンドは、構成対象のキャッシュ ホスト上でローカルに実行する必要があることに注意してください。また、このコマンドは管理者特権の Windows PowerShell セッションから実行する必要があります。

ファイアウォールを構成する

AppFabric キャッシュ機能を問題なく使用するには、DistributedCacheService.exe サービスを構成する必要があります。既定では、このサービスは "C:\Program Files\Windows Server AppFabric" ディレクトリにインストールされます。

Windows ファイアウォールを使用している場合は、AppFabric と共に自動的にインストールされるファイアウォール ポリシー グループを有効にできます。次の Windows PowerShell コマンドは、"Microsoft AppFabric 1.1 for Windows Server:AppFabric キャッシュ サービス" というファイアウォール ポリシー グループを有効にします。また、"リモート サービス管理" ファイアウォール規則を有効にして、AppFabric キャッシュ サービスをリモート制御できるようにする必要があります。

netsh advfirewall firewall set rule group="Windows Server AppFabric: AppFabric Caching Service" new enable=Yes
netsh advfirewall firewall set rule name="Remote Service Management (RPC)" profile=domain new enable=Yes
netsh advfirewall firewall set rule name="Remote Service Management (RPC-EPMAP)" profile=domain new enable=Yes
netsh advfirewall firewall set rule name="Remote Service Management (NP-In)" profile=domain new enable=Yes

Start-CacheHost

新しいキャッシュ ホストがキャッシュ クラスターに参加できるようにする場合は、キャッシュ ホストを起動する必要があります。キャッシュ クラスターがダウン状態の場合は、キャッシュ クラスター全体を起動する必要があります。すべてのホストがダウンしている場合、キャッシュ クラスターはダウン状態になります。このことは、パラメーターを指定しないで Get-CacheHost を呼び出すことにより評価できます。

Get-CacheHost

すべてのホストのサービス状態が DOWN の場合は、Start-CacheCluster コマンドでキャッシュ クラスターを起動します。

Start-CacheCluster

一方、サービスの状態が UP であるホストが 1 つでもある場合は、キャッシュ クラスターは動作しています。この場合は、Start-CacheHost コマンドを使用します。

Start-CacheHost -Hostname CacheServer2 -CachePort 22233

キャッシュ ホスト コンピューターを再起動した後、キャッシュ サービスは自動的に開始しないことに注意してください。キャッシュ クラスターの状態に応じて、Start-CacheHost または Start-CacheCluster を使用する必要があります。

また、このコマンドは管理者特権の Windows PowerShell セッションから実行する必要があります。

警告

キャッシュ サービスの開始と停止には常に、Windows PowerShell コマンドを使用します。管理ツールのサービス プログラムから AppFabricCachingService サービスを直接開始または停止しないでください。

キャッシュ ホストを削除する

キャッシュ クラスターからキャッシュ ホストを削除するには、以下の手順を順番に実行する必要があります。

コマンド/手順 説明

Stop-CacheHost

キャッシュ ホストが実行中の場合は停止します。

Unregister-CacheHost

キャッシュ ホストをキャッシュ クラスターから登録解除します。

Remove-CacheHost

キャッシュ ホストの構成をコンピューターから削除します。

Remove-CacheAdmin

必要に応じて、キャッシュ管理機能の構成を削除します。

ファイアウォールを構成する

キャッシュ サービスに対するすべてのファイアウォール例外を削除します。

Stop-CacheHost

キャッシュ ホストを既存のクラスターから削除する場合は、最初にキャッシュ ホストを停止する必要があります。キャッシュ ホストが実行しているかどうかは、Get-CacheHost コマンドを呼び出すことで判定できます。次の例では、ローカル キャッシュ ホストのキャッシュ ホスト情報を表示する方法を示します。

Get-CacheHost -HostName localhost -CachePort 22233

このコマンドを使用すると特定のキャッシュ ホストについての情報がわかりますが、キャッシュ ホストを停止するときは、その前にキャッシュ クラスター全体の状態を常に確認する必要があります。これは、パラメーターを指定しないで Get-CacheHost を呼び出すことにより行うことができます。

Get-CacheHost

次に示す例は、2 台のサーバーで構成されるキャッシュ クラスターに対するこのコマンドの出力です。

HostName : CachePort      Service Name            Service Status Version Info
--------------------      ------------            -------------- ------------
CacheServer1:22233        AppFabricCachingService UP             1 [1,1][1,1]
CacheServer2:22233        AppFabricCachingService UP             1 [1,1][1,1]

この例では、CacheServer1CacheServer2 はどちらも実行されています。一方のキャッシュ ホストを停止し、他のキャッシュ ホストによってキャッシュ クラスターの動作を維持することができます。次に示すのは、CacheServer2Stop-CacheHost コマンドで停止する方法の例です。

Stop-CacheHost -HostName CacheServer2 -CachePort 22233 -Graceful

Graceful スイッチの使用に注意してください。このスイッチは v1.1 リリースで追加されました。シャットダウンの前にキャッシュ サーバーから他のキャッシュ ホストにデータを移動させます。Graceful スイッチを使用しないと、停止したキャッシュ ホストにキャッシュされているデータはすべて失われます。また、キャッシュ ホストを停止することでリード ホストまたはセカンダリのクォーラムが失われる場合は、キャッシュ ホストの停止は失敗します。リード ホストの詳細については、「リード ホストとクラスター管理」を参照してください。セカンダリの詳細については、「高可用性」を参照してください。これらの場合は、Stop-CacheCluster コマンドでクラスター全体を停止する必要があります。

キャッシュ ホストを停止することでキャッシュ クラスターを停止する場合は、代わりに Stop-CacheCluster コマンドを使用します。たとえば、Get-CacheHost コマンドからの次のようなサンプル出力について考えます。

HostName : CachePort      Service Name            Service Status Version Info
--------------------      ------------            -------------- ------------
CacheServer1:22233        AppFabricCachingService DOWN           1 [1,1][1,1]
CacheServer2:22233        AppFabricCachingService UP             1 [1,1][1,1]

この例では、CacheServer1 は停止しており、CacheServer2 は実行されています。CacheServer2 を停止するとクラスターはダウンします。このような場合は、Stop-CacheHost コマンドを使用して CacheServer2 を停止する代わりに、Stop-CacheCluster コマンドを使用します。

Stop-CacheCluster

このコマンドは管理者特権の Windows PowerShell セッションから実行する必要があります。

Unregister-CacheHost

Unregister-CacheHost コマンドは、キャッシュ クラスターからキャッシュ ホストを削除します。

警告

キャッシュ ホストを登録解除する前には、Stop-CacheHost を呼び出してキャッシュ ホストを停止する必要があります。この操作が行われていないと、サービスがクラッシュする可能性があります。

このコマンドを Remove-CacheHost の前に実行する場合は、Provider または ConnectionString パラメーターの値を指定する必要はありません。このコマンドをローカルに実行する場合は、HostName パラメーターの値も指定する必要がありません。

Unregister-CacheHost -RemoveServicePermissions

次の例では、プロバイダー、接続文字列、およびホスト名を指定して、キャッシュ ホストの登録を解除しています。これにより、CacheServer2 という名前のキャッシュ ホストがキャッシュ クラスターから削除されます。このキャッシュ クラスターは System.Data.SqlClient プロバイダーを使用しているので、接続文字列は、SQLServer1 という名前のデータベース サーバーおよび CacheClusterConfigurationDB という名前の構成データベースに対する SQL Server 接続文字列です。

Unregister-CacheHost -Provider System.Data.SqlClient -ConnectionString "Data Source=SQLServer1;Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True"  + -HostName CacheServer2 -RemoveServicePermissions

XML プロバイダーの場合、呼び出し元には対象のネットワーク共有に対するフル コントロールが必要です。System.Data.SqlClient プロバイダーの場合は、呼び出し元には、SQL ログインの読み取り、書き込み、削除のアクセス許可、および対象のデータベースに対する削除アクセス許可が必要です。

他の多くの構成コマンドとは異なり、Unregister-CacheHost コマンドは HostName パラメーターを受け付けるので、リモートで実行できます。

Remove-CacheHost

Remove-CacheHost コマンドは、サーバーからキャッシュ ホストの構成を削除します。

Remove-CacheHost

このコマンドは、構成対象のキャッシュ ホスト上でローカルに実行する必要があることに注意してください。また、このコマンドは管理者資格情報のある Windows PowerShell セッションから実行する必要があります。

Remove-CacheAdmin

キャッシュ ホストにキャッシュ管理機能を構成してある場合は、Remove-CacheAdmin コマンドを使用して削除できます。

Remove-CacheAdmin

このコマンドは、構成対象のキャッシュ ホスト上でローカルに実行する必要があることに注意してください。また、このコマンドは管理者資格情報のある Windows PowerShell セッションから実行する必要があります。

ファイアウォールを構成する

キャッシュ サービス DistributedCacheService.exe に対するファイアウォールでのすべての例外を削除するか無効にする必要があります。Windows ファイアウォールを使用している場合は、インストールされているファイアウォール グループ "Microsoft AppFabric 1.1 for Windows Server:AppFabric キャッシュ サービス" というインストール済みファイアウォールを事前に有効にしておいてください。その場合は、次の PowerShell コマンドを使用してこのポリシー グループを無効にできます。"リモート サービス管理" 規則も有効にしてある場合は、それらの規則も無効にできます。ただし、他のサービスまたはアプリケーションが "リモート サービス管理" 規則を有効にしている場合があります。その場合は、"リモート サービス管理" 規則を無効にしません。

netsh advfirewall firewall set rule group="Windows Server AppFabric: AppFabric Caching Service" new enable=No
netsh advfirewall firewall set rule name="Remote Service Management (RPC)" profile=domain new enable=No
netsh advfirewall firewall set rule name="Remote Service Management (RPC-EPMAP)" profile=domain new enable=No
netsh advfirewall firewall set rule name="Remote Service Management (NP-In)" profile=domain new enable=No

キャッシュ クラスターを削除する

クラスターから最後のキャッシュ ホストを削除した場合は、キャッシュ クラスターの構成ストアを削除してもかまいません。それには、Remove-CacheCluster コマンドを使用します。キャッシュ クラスターが XML プロバイダーを使用している場合は、このコマンドは構成設定が格納されている XML ファイルを削除します。キャッシュ クラスターが System.Data.SqlClient プロバイダーを使用している場合は、このコマンドは指定したデータベースのテーブルを削除します。ファイル共有とデータベースは削除されないことに注意してください。

Remove_CacheCluster -Provider System.Data.SqlClient -ConnectionString  "Data Source=SQLServer1;Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True"

関連項目

概念

AppFabric キャッシュ機能の展開と構成 (AppFabric 1.1 キャッシュ)

  2012-03-05