ロードバランシング
Session Recordingは、Session Recordingサーバー間でのロードバランシングをサポートします。この機能を使用するには、Session Recordingサーバーがロードバランシングと自動フェールオーバーを実現できるように、Citrix ADCでロードバランシングを構成します。
一部のロードバランシング構成をすべてのSession Recordingサーバー間で同期できるという機能強化が実現されました。
注:
この機能には、セッションレコーディングサーバーおよびセッションレコーディングエージェントのバージョン7.16以降が必要です。
ロードバランシングをサポートするためのSession Recordingの変更点:
- すべてのSession Recordingサーバーは、録画ファイルを保存するために1つのフォルダーを共有します。
- すべてのセッションレコーディングサーバーは、1つのセッションレコーディングデータベースを共有します。
- (推奨)Session Recordingポリシーコンソールは1つだけインストールし、すべてのSession Recordingサーバーでこのコンソールを共有します。
ロードバランシングの構成
この機能を使用するには、Citrix ADCおよびさまざまなSession Recordingコンポーネントで次の手順を実行します。
ロードバランシングの構成(Citrix ADC部分)
ロードバランシングサーバーの構成
Citrix ADCのロードバランシングサーバーにSession Recordingサーバーを追加します。
ロードバランシングサービスの構成
- 各Session Recording Serverで、必要なプロトコルごとにロードバランシングサービスを追加します。
- (推奨) 各サービスモニターをバインドするために、関連するプロトコルモニターを選択します。
ロードバランシング仮想サーバーを構成する
- 必要なプロトコルに基づいて、同じCitrix ADC VIPアドレスを持つ仮想サーバーを作成し、その仮想サーバーを関連するロードバランシングサービスにバインドします。
- 各仮想サーバーで永続性を構成します。
- (推奨) ロードバランシング方法として、デフォルトのメソッド (LEASTCONNECTION) ではなく、LEASTBANDWITHまたはLEASTPACKETSを選択します。
- HTTPS仮想サーバーをUPにするために証明書を作成します。
ロードバランシングを構成する (Session Recording部分)
Session Recording Serverをインストールした各サーバーで、次の操作を行います
- (推奨) セッションレコーディングサーバーのインストール中に、同じセッションレコーディングデータベース名を入力します。
- 管理者ログ機能を選択した場合、Citrixは各Session Recording Serverをインストールする際に、同じ管理者ログデータベース名を入力することを推奨します。
- すべてのSession Recording Serverマシンアカウントとファイルストレージフォルダーの読み取り/書き込み権限を共有した後、Session Recording Serverのプロパティで、そのファイルストレージフォルダーを共有フォルダーとして使用するように変更します。詳細については、「録画の復元場所を指定する」を参照してください。
- HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Serverにあるセッションレコーディングサーバーのレジストリキーに、値を追加する必要があります。 値の名前: EnableLB 値のデータ: 1 (DWORD、有効を意味します)
-
Session Recording Storage ManagerメッセージキューにHTTPまたはHTTPSプロトコルを選択した場合、Citrix ADC VIPアドレスのホストレコードを作成し、C:\Windows\System32\msmq\Mapping\sample_mapにリダイレクトを追加して、メッセージキューサービスを再起動します。
リダイレクトは次のようになります。
<redirections xmlns="msmq-queue-redirections.xml"> <redirection> <from>http://<ADCHost>*/msmq/private$/CitrixSmAudData</from> <to>http://<LocalFqdn>/msmq/private$/CitrixSmAudData</to> </redirection> <redirection> <from>https://<ADCHost>*/msmq/private$/CitrixSmAudData</from> <to>https://<LocalFqdn>/msmq/private$/CitrixSmAudData</to> </redirection> </redirections> <!--NeedCopy-->ここで、<ADCHost>はCitrix ADC VIPアドレスの作成されたFQDNであり、<LocalFqdn>はローカルホストのFQDNです。
-
(推奨) 1つのSession Recording Serverレジストリを構成した後、以下のスクリプトを使用して、このサーバーレジストリから構成をエクスポートし、他のSession Recording Serverレジストリにインポートできます。このスクリプトを使用して、メッセージキューイングのリダイレクトマッピングを追加することもできます。
# Copyright (c) Citrix Systems, Inc. All rights reserved. <# .SYNOPSIS This script is used to sync configurations between Session Recording Servers for load balancing deployment. .DESCRIPTION Will do below kinds of actions: 1. Export values from the registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server to SrServerConfig.reg; 2. Import from SrServerConfig.reg and overwrite values in registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server; 3. Add redirection mapping sr_lb_map.xml in %windir%\System32\msmq\mapping\; 3.1 sr_lb_map.xml will consist redirection rule for both http and https, and not port specific. .PARAMETER Action Export - to export the registry configurations of Session Recording Server to a registry file Import - to import the registry configurations of Session Recording Server from a registry file AddRedirection - to add HTTP/HTTPS redirection for MSMQ .PARAMETER ADCHost The host name or FQDN of Citrix ADC. .OUTPUTS Exported configuration file (SrServerConfig.reg) or backup configuration file (SrServerConfig.reg.bk) .EXAMPLE SrServerConfigurationSync.ps1 -Action Export .EXAMPLE SrServerConfigurationSync.ps1 -Action Import .EXAMPLE SrServerConfigurationSync.ps1 -Action AddRedirection -ADCHost netscaler.xd.local .EXAMPLE SrServerConfigurationSync.ps1 -Action Import,AddRedirection -ADCHost netscaler.xd.local .EXAMPLE SrServerConfigurationSync.ps1 -Action Import,Export,AddRedirection -ADCHost netscaler.xd.local #> ###################### # Parameters section # ###################### Param( [Parameter(Mandatory = $true)] [ValidateSet("Export", "Import", "AddRedirection")] [string[]] $Action, [Parameter(Mandatory = $false)] [string] $ADCHost ) ############################# # Default variables section # ############################# $SR_SERVER_REG_PATH = "HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server" $REG_FILE_PATH = "SrServerConfig.reg" $REG_BACKUP_FILE_PATH = "SrServerConfig.reg.bk" $TEMP_REDIRECT_XML = "sr_lb_map.xml" $REDIRECT_XML_PATH = "$env:windir\System32\msmq\mapping" ############# MAIN ############### Try { If ($Action -Contains "export") { Write-Host "Exporting current Session Recording Server Configuration to registry file: $REG_FILE_PATH ..." -ForegroundColor Green & REG EXPORT $SR_SERVER_REG_PATH $REG_FILE_PATH /Y Write-Host "Finish exporting." -ForegroundColor Green } If ($Action -Contains "import") { If (!(Test-Path $REG_FILE_PATH)) { Write-Host "No $REG_FILE_PATH founded. Aborted." -ForegroundColor Yellow Exit 0 } # Back up previous registry key Write-Host "Backing up Session Recording Server Configuration to Registry file: $REG_BACKUP_FILE_PATH ..." -ForegroundColor Green & REG EXPORT $SR_SERVER_REG_PATH $REG_BACKUP_FILE_PATH /Y Write-Host "Importing Session Recording Server Configuration from Registry file: $REG_FILE_PATH ..." -ForegroundColor Green & REG IMPORT $REG_FILE_PATH 2>$null Write-Host "Finish importing." -ForegroundColor Green } If ($Action -Contains "addredirection") { # Check if Citrix ADC host is given; If not, exit normally with warning. If(([String]::IsNullOrEmpty($ADCHost))) { Write-Host "No Citrix ADC host name is specified. Finish adding redirection." -ForegroundColor Yellow Exit 0 } If (!(Test-Path $TEMP_REDIRECT_XML)) { New-Item $TEMP_REDIRECT_XML -Type file } $SysInfo = Get-WmiObject -Class Win32_ComputerSystem $LocalFqdn = "$($SysInfo.Name).$($SysInfo.Domain)" $RedirectXmlContent = @" <redirections xmlns="msmq-queue-redirections.xml"> <redirection> <from>http://$ADCHost*/msmq/private$/CitrixSmAudData</from> <to>http://$LocalFqdn/msmq/private$/CitrixSmAudData</to> </redirection> <redirection> <from>https://$ADCHost*/msmq/private$/CitrixSmAudData</from> <to>https://$LocalFqdn/msmq/private$/CitrixSmAudData</to> </redirection> </redirections> "@ # Don't take care of encoding $RedirectXmlContent | Out-File -FilePath $TEMP_REDIRECT_XML Write-Host "Copying $TEMP_REDIRECT_XML to $REDIRECT_XML_PATH ..." -ForegroundColor Green Copy-Item $TEMP_REDIRECT_XML -Destination $REDIRECT_XML_PATH Write-Host "Restarting MSMQ service ..." -ForegroundColor Green Restart-Service msmq -Force Write-Host "Finish adding HTTP/HTTPS Redirection for MSMQ." -ForegroundColor Green } Exit 0 } Catch { Write-Host "$_.Exception.Message" -ForegroundColor Red Exit 1 } Finally { # Nothing to do } <!--NeedCopy-->
6a. 前述のサンプルコードを、例えばSrServerConfigurationSync.ps1のようなPowerShellスクリプトとして保存します。
6b. On one Session Recording Server, after configuring the EnableLB registry value, start a command prompt as an administrator and run the powershell.exe -file SrServerConfigurationSync.ps1 –Action Export,AddRedirection –ADCHost <ADCHost> command, where <ADCHost> is the created FQDN of the Citrix ADC VIP address.
6c. スクリプトの実行後、SrServerConfig.regという名前のエクスポートされたレジストリファイルが生成され、sr_lb_map.xmlファイルがC:\Windows\System32\msmq\Mappingパスに追加されます。
6d. 他のセッションレコーディングサーバーで、前の手順で生成されたSrServerConfig.regをコピーし、管理者としてコマンドプロンプトを起動し、powershell.exe -file SrServerConfigurationSync.ps1 –Action Import,AddRedirection –ADCHost <ADCHost>コマンドを実行します。ここで、<ADCHost>はCitrix ADC VIPアドレスの作成された完全修飾ドメイン名です。
6e. スクリプトの実行後、EnableLB値が他のセッションレコーディングサーバーのレジストリキーに追加され、sr_lb_map.xmlファイルがC:\Windows\System32\msmq\Mappingパスに追加されます。
On the machine where you installed the Session Recording Agent, do the following in Session Recording Agent Properties
- セッションレコーディングストレージマネージャーのメッセージキューに HTTP または HTTPS プロトコルを選択する場合、セッションレコーディングサーバー テキストボックスに Citrix ADC VIP アドレスの FQDN を入力します。
- Session Recording Storage ManagerメッセージキューにデフォルトのTCPプロトコルを選択した場合は、Session Recording ServerテキストボックスにCitrix ADC VIPアドレスを入力します。
Session Recording Playerをインストールしたマシンで、以下を実行します
接続されたセッションレコーディングサーバーとして、Citrix ADCのVIPアドレスまたはそのFQDNを追加します。
セッションレコーディングデータベースをインストールしたSQLサーバーで、以下を実行します
Add all the Session Recording Server machine accounts to the shared Session Recording Database and assign them with the db_owner permission.