ワークロードバランスのトラブルシューティング
ここでは、ワークロードバランスの問題を解決するための手順について説明します。
メモ:
- ワークロードバランスは、XenServer Premium Editionユーザーが利用できます。XenServerライセンスについて詳しくは、「ライセンス」を参照してください。XenServerのライセンスをアップグレードまたは購入するには、「XenServer Editions」にアクセスしてください。
- ワークロードバランス8.3.0以降は、XenServer 8およびCitrix Hypervisor 8.2累積更新プログラム1と互換性があります。
ワークロードバランス仮想アプライアンスの状態の確認
systemctl status workloadbalancing
コマンドを実行します。詳しくは、「ワークロードバランスコマンド」を参照してください。
一般的なトラブルシューティングのヒント
-
まず、ワークロードバランスのログファイル(
LogFile.log
およびwlb_install_log.log
)を参照します。デフォルトでは、ワークロードバランス仮想アプライアンスの以下の場所にログファイルが作成されます。/var/log/wlb
これらのログファイルでの詳細レベルは、
wlb.conf
ファイルを使用して設定できます。詳しくは、「ワークロードバランスログの詳細度の変更」を参照してください。 -
また、XenCenterの [ログ] タブに表示される情報も参照してください。
-
ワークロードバランス仮想アプライアンスのビルド番号を確認するには、その仮想アプライアンスがモニターしているプール内のホスト上で、次のコマンドを実行します:
xe pool-retrieve-wlb-diagnostics | more <!--NeedCopy-->
出力の上部に、ワークロードバランスのバージョン番号が表示されます。
-
ワークロードバランス仮想アプライアンスでは、CentOSオペレーティングシステムが動作しています。この仮想アプライアンスでCPU、メモリ、またはディスク関連の問題が発生した場合は、
/var/log/*
にある標準Linuxログを使用して問題を分析できます。 -
Linuxの標準のデバッグコマンドおよびパフォーマンスチューニングコマンドを使用して、仮想アプライアンスの動作を理解します。たとえば、
top
、ps
、free
、sar
、およびnetstat
です。
エラーメッセージ
ワークロードバランス機能のエラーメッセージは、XenCenterのダイアログボックスや [ログ] タブに表示されます。
エラーメッセージが表示された場合は、XenCenterのイベントログを参照します。詳しくは、XenCenter製品ドキュメントを参照してください。
ワークロードバランスの資格情報入力時の問題
[WLBサーバーへの接続] ダイアログボックスで入力したワークロードバランス仮想マシンのユーザー名およびパスワードで接続できない場合は、以下の点を確認してください:
-
ワークロードバランス仮想アプライアンスがインポートされており、正しく設定されていることを確認します。また、すべてのサービスが実行されていることを確認します。
-
入力した資格情報が正しいことを確認します。[WLBサーバーへの接続] ダイアログボックスで、次の2つの資格情報が求められます:
-
WLBサーバーの資格情報:XenServerで、ワークロードバランスとの通信にこのアカウントが使用されます。(このアカウントは、ワークロードバランス仮想アプライアンスの設定時に作成します)。デフォルトのユーザー名は、
wlbuser
です。 -
Citrix Hypervisorの資格情報:このアカウントは、ワークロードバランス仮想アプライアンスでXenServerプールへの接続に使用されます。このアカウントは、XenServerのプールコーディネーター上で作成され、
pool-admin
またはpool-operator
の役割を持ちます。
-
WLBサーバーの資格情報:XenServerで、ワークロードバランスとの通信にこのアカウントが使用されます。(このアカウントは、ワークロードバランス仮想アプライアンスの設定時に作成します)。デフォルトのユーザー名は、
-
[アドレス] ボックスにはホスト名も入力できますが、ここにはワークロードバランス仮想アプライアンスの完全修飾ドメイン名を入力する必要があります。仮想アプライアンスをホストする物理サーバーのホスト名は入力しないでください。コンピューター名の入力に問題がある場合は、代わりにワークロードバランスアプライアンスのIPアドレスを使用してみてください。
-
ホストで正しいDNSサーバーが使用されていることと、XenServerホストでFQDNを使ってワークロードバランス仮想アプライアンスに接続できることを確認します。この確認を行うには、XenServerホストからFQDNを指定してpingコマンドを実行します。たとえば、次のコマンドを実行します。
ping wlb-vpx-1.mydomain.net <!--NeedCopy-->
ファイアウォールの問題
ワークロードバランス仮想アプライアンスがファイアウォールで隔たれており、ファイアウォールが正しく設定されていない場合は、次のエラーが表示されます:「ワークロードバランスサーバーへの接続中にエラーが発生しました:<プール名>。 [WLBの初期化] をクリックして接続設定を再初期化してください。」このメッセージは、ワークロードバランス仮想アプライアンスとの接続でほかの問題がある場合にも表示されます。
ワークロードバランス仮想アプライアンスとの間にあるファイアウォールで、ポート8012を開放します。
また、XenServerがワークロードバランスに接続するときのポート(デフォルトで8012)が、ワークロードバランスの設定ウィザードで指定したものと同じである必要があります。
ワークロードバランスの接続エラー
ワークロードバランスの構成および接続後に接続エラーが発生すると、資格情報が無効になることがあります。この問題を分離するには、以下の手順に従います:
-
[WLBサーバーへの接続] ダイアログボックスに入力した資格情報が正しいことを確認します:詳しくは、シナリオ1および2を参照してください。
-
[WLBサーバーへの接続] ダイアログボックスに入力した、ワークロードバランス仮想アプライアンスのIPアドレスまたは完全修飾ドメイン名を確認します。
-
ワークロードバランス構成時に作成したユーザー名が、[WLBサーバーへの接続] ダイアログボックスに入力したものと一致していることを確認します。
-
[WLB] タブの[ワークロードバランスの状態]に接続エラーが表示される場合は、そのプール上でワークロードバランスを再設定してください。これを行うには、[WLB] タブの [接続] をクリックして、サーバーの資格情報を再入力します。
XenCenterからワークロードバランス仮想アプライアンスへの接続を確立しようとすると、次のいずれかのシナリオが発生する可能性があります。
シナリオ1
これは、[WLBサーバーへの接続] ダイアログボックスの [Citrix Hypervisorの資格情報] フィールドに入力された資格情報が正しくないことを意味します。これを修正するには、資格情報を再確認するか、[現在のXenCenter資格情報を使用する] ボックスをオンにします。
シナリオ2
これは、ワークロードバランス仮想アプライアンスに接続しようとしたときに、[WLBサーバーへの接続] ダイアログ ボックスの [WLBサーバーの資格情報] フィールドに入力された資格情報に問題がある(ユーザー名またはパスワードが間違っている)ことを意味します。ただし、ワークロードバランスサービスが実行されていないこと、またはデータベース構成ファイルに問題があることを意味する場合もあります。
資格情報の問題を解決するには、正しいユーザー名とパスワードを使用していることを確認してください。[WLBサーバーの資格情報] フィールドのデフォルトのユーザー名はwlbuser
です(rootではありません)。rootはデフォルトの管理者ユーザー名です。wlbuser
はアプライアンスにログオン権限を持つ実際のユーザーではない(/etc/passwd
の下に存在しない)ため、これらの資格情報はワークロードバランス自体に接続するためにのみ使用されることに注意してください。そのため、wlbconfig
コマンドを実行することで簡単にリセットできます。資格情報を変更するには、「ワークロードバランスの資格情報の変更」を参照してください。wlbconfig
コマンドを実行するには、rootとしてアプライアンスにログインできる必要があります。rootパスワードが不明な場合は、通常のCentOS/RHELパスワード回復手順を使用してリセットできます。
資格情報をリセットしてもエラーが解決しない場合:
-
systemctl status workloadbalancing
コマンドを使用して、ワークロードバランスプロセスが実行されているかどうかを確認します。 - 次のコマンドを実行して、
wlb.conf
ファイルが存在し、正しいディレクトリにあることを確認します:cat /opt/vpx/wlb/wlb.conf
シナリオ3
これは、XenCenterからワークロードバランスに接続するときに、サーバーアドレスオプションで指定されたポートへの接続に問題があることを示します(間違ったポートが入力されたか、ポートがリッスンしていません)。トラブルシューティングするには、以下を実行します:
- ターゲットアプライアンスが稼働していることを確認してください。
- ワークロードバランスの接続の詳細ウィンドウに入力したポートを再確認します(デフォルトは8012)。
- このポートがアプライアンスで有効になっていてリスニングしていることを確認してください。
telnet <port>
やiptables -L
などのコマンドを使用すると、ポートがリッスンしているかどうか、またはこのポートでトラフィックが拒否されているかどうかを判断できます。
シナリオ4
このエラーは、stunnelに問題がある場合に発生します(stunnelが実行されていない、または証明書/キーペアが間違っている)。これをトラブルシューティングするには、まず証明書とキーを確認します:
-
次のコマンドを実行して、証明書の有効期限が切れていないことを確認します:
openssl x509 -dates -in $(grep cert\ = /etc/stunnel/stunnel.conf |cut -d '=' -f2) -noout <!--NeedCopy-->
-
次の2つのコマンドの出力の16進数値を比較します。出力が一致しない場合は、間違ったキーが使用されています。
openssl x509 -modulus -in $(grep cert\ = /etc/stunnel/stunnel.conf |cut -d '=' -f2) -noout | openssl md5 <!--NeedCopy-->
および
openssl rsa -modulus -in $(grep key\ = /etc/stunnel/stunnel.conf | cut -d '=' -f2) -noout | openssl md5 <!--NeedCopy-->
証明書とキーに問題がない場合は、stunnelが実行中であり、ポート8012(または構成されたポート)にバインドされていることを確認します:
-
WLBアプライアンスのCLIで次のコマンドを実行します:
netstat -tulpn <!--NeedCopy-->
出力では、8012(またはカスタムポート)に
status: LISTEN
が表示されます。 -
アプライアンスのスペースが不足すると、stunnelは実行されません。
df -h
やdu -hs /*
などのコマンドを使用して、アプライアンスに十分な空き領域があるかどうかを確認します。ディスクスペースを増やすには、「仮想アプライアンスのディスクを拡張」を参照してください。
シナリオ5
このエラーは、stunnelプロセスが終了したために発生する可能性があります。プロセスを再起動しても同じ結果になる場合は、ワークロードバランス仮想アプライアンスを再起動します。
その他のエラー
ワークロードバランスに接続しようとするときに他のエラーが発生した場合、または上記の手順を実行するときにサポートが必要な場合は、ワークロードバランスアプライアンスの/var/log/wlb
ディレクトリに格納されるワークロードバランスログを収集してください。
さらにサポートが必要な場合は、サポートにお問い合わせください。
ワークロードバランスが停止する場合
ワークロードバランスが機能しない場合(設定に対する変更内容が保存されないなど)、ワークロードバランスのログファイルに以下のエラーメッセージが記録されていないかどうかを確認します:
dwmdatacolsvc.exe: Don't have a valid pool. Trying again in 10 minutes.
<!--NeedCopy-->
通常、このエラーはプール内の仮想マシンに何らかの問題があると発生します。仮想マシンに問題がある場合は、以下のような現象が見られます:
- Windows:Windows仮想マシンでブルースクリーンエラーが発生している。
- Linux:Linux仮想マシンのコンソールが応答不能になり、シャットダウンなどができない。
この問題の回避方法は次のとおりです:
-
仮想マシンの強制シャットダウンを実行します。これを行うには、以下のいずれかを実行します。
- XenCenterで仮想マシンを選択して、[VM]メニューの [強制シャットダウン] を選択します。
-
forceパラメーターを
true
に設定してxeコマンドvm-shutdown
を実行します。例:xe vm-shutdown force=true uuid=vm_uuid <!--NeedCopy-->
ホストのUUIDは、XenCenterの [全般] タブ、またはxeコマンド
host-list
の実行により確認できます。仮想マシンのUUIDは、仮想マシンの [全般] タブ、またはvm-list
xeコマンドの実行により確認できます。詳しくは、「コマンドラインインターフェイス」を参照してください。
-
シャットダウンした仮想マシンのXenServerサーバーの
xsconsole
、またはXenCenterを使用して、そのホスト上のすべての仮想マシンをほかのホストに移行してから、xe-toolstack-restart
コマンドを実行します。(HAが有効になっている間はツールスタックを再起動しないでください。可能であれば、ツールスタックを再起動する前に、HAを一時的に無効にします。)
ワークロードバランスサーバーの変更時の問題
リソースプールのワークロードバランスで使用するワークロードバランス仮想アプライアンスを変更するときに、元の仮想アプライアンスから切断してから新しい仮想アプライアンスに接続する必要があります。これを行わないと、両方の仮想アプライアンスでプールのデータが収集されます。
この問題を解決するには、次のいずれかの操作を実行します:
- ワークロードバランス仮想アプライアンスをシャットダウンして削除する。
- ワークロードバランスサービスを手動で停止する(Analysis Engine、Data Collection Manager、Web Services Host)。
注:
pool-deconfigure-wlb
xeコマンドを使ってワークロードバランス仮想アプライアンスを切断したり、pool-initialize-wlb
xeコマンドを使ってほかの仮想アプライアンスを指定したりしないでください。