マルチサイト クラスター環境で記録されるイベント ID 1135 について
こんにちは。Windows プラットフォーム サポート担当です。
本日は、弊社に比較的多くお問い合わせをいただくマルチサイト クラスター環境で記録されるイベント ID 1135 について対処策を紹介します。
- イベント ID 1135
イベント ID 1135 はクラスター ノード間のハートビート通信がすべてのネットワークで失敗し、クラスターを構成するノードがクラスターから除外されたことを示すイベントです。
ハートビート通信はクラスター ノード間で定期的 (既定で 1 秒毎) にパケットの送受信が行われ、一定の期間パケットが届かないと失敗と判断されます。
<参考> フェールオーバー クラスターのハートビートについて
https://blogs.technet.microsoft.com/askcorejp/2012/03/22/156/
通常、シングルサイト クラスター環境ではクラスターで使用されるネットワークが複数構成されているため、一つのネットワークで問題が発生した場合でも他のネットワークでノード間の通信が可能であればイベント ID 1135 は記録されません。
一方、マルチサイト クラスター環境ではノード間通信が WAN 回線を経由しておこなわれるため、WAN 回線が不安定な場合、ハートビート通信が失敗しイベント ID 1135 が記録されクラスターを構成するノードがクラスターから除外される問題が発生します。
実際にマルチサイト クラスター環境では、WAN 回線の問題によりイベント ID 1135 が記録される報告が弊社まで多く寄せられていますが、ネットワークの問題のため弊社にお問い合わせをいただいても OS 側からは調査が困難です。
クラスターでは既定で 5 秒間パケットの送受信ができないとハートビート通信の失敗が検知されますので、まずはネットワーク ベンダーへお問い合わせいただきパケットが 5 秒遅延するような状況でなかったか確認をしていただければと存じます。
- 暫定的な対処
もしイベント ID 1135 が頻発するような環境で、WAN 回線側で対処が難しい場合には、ハートビート通信の閾値を伸ばすことで暫定的な対処をとることが可能です。
ハートビートの閾値は既定で 1 秒ごとに送受信されるパケットの失敗が連続で 5 回 (5 秒間) までとなっているので、この設定を 1 秒 x 10 回 (計 10 秒間) や 2 秒 x 10 秒間 (計 20 秒間) など大きくしてください。
以下、変更手順です。
// Windows Server 2008, Windows Server 2008 R2
-------------------------
・コマンド プロンプトでの Cluster.exe コマンド
-------------------------
- 管理者権限でコマンド プロンプトを実行します。
- CrossSubnetDelay, CrossSubnetThreshold の値を確認します。
> cluster /prop:CrossSubnetDelay
> cluster /prop:CrossSubnetThreshold
- CrossSubnetDelay, CrossSubnetThreshold の値を変更します。
(以下は例として、2 秒 10 回で設定します。)
> cluster /prop CrossSubnetDelay = 2000
> cluster /prop CrossSubnetThreshold =10
- 再度 CrossSubnetDelay, CrossSubnetThreshold の値を確認し変更が反映されているか確認します。
> cluster /prop:CrossSubnetDelay
> cluster /prop:CrossSubnetThreshold
※コマンドで設定いただいた後に再起動は不要です。
// Windows Server 2012 以降
-------------------------
・PowerShell コマンドレット
-------------------------
- 管理者権限で、Powershell を実行します。
- CrossSubnetDelay, CrossSubnetThreshold の値を確認します。
PS C:\> Get-Cluster | fl CrossSubnetDelay, CrossSubnetThreshold
- CrossSubnetDelay, CrossSubnetThreshold の値を変更します。
(以下は例として、2 秒 10 回で設定します。)
PS C:\> (Get-Cluster).CrossSubnetDelay = 2000
PS C:\> (Get-Cluster).CrossSubnetThreshold = 10
- 再度 CrossSubnetDelay, CrossSubnetThreshold の値を確認し変更が反映されているか確認します。
PS C:\> Get-Cluster | fl CrossSubnetDelay, CrossSubnetThreshold
※コマンドで設定いただいた後に再起動は不要です。
<参考> ソース: FailoverClustering, イベント ID :1135, イベント ID :1177 が記録されクラスター サービスが停止してしまう
https://blogs.technet.microsoft.com/askcorejp/2015/10/22/failoverclustering-id-1135-id-1177-124/
- 最後に
クラスター環境のハートビート通信の閾値はそれぞれ下記のとおりです。
Parameter | Win2012 R2 まで (既定値) | Win2016 (既定値) | 最大値 |
SameSubnetDelay | 1 second | 1 second | 2 seconds |
SameSubnetThreshold | 5 heartbeats | 10 heartbeats | 120 heartbeats |
CrossSubnetDelay | 1 second | 1 seconds | 4 seconds |
CrossSubnetThreshold | 5 heartbeats | 20 heartbeats | 120 heartbeats |
CrossSiteDelay | NA | 1 second | 4 seconds |
CrossSiteThreshold | NA | 20 heartbeats | 120 heartbeats |
Windows Server 2016 ではハートビートの閾値が変更されています。
お客様の環境 (Windows Server 2012 R2 以前) でハートビートの閾値変更時には、Windows Server 2016 の既定値を参考値としていただければと存じます。
※ Windows Server 2012 R2 の環境で Hyper-V の役割がインストールされている場合や、KB3161606 が適用されている場合には既定値が変更され Windows Server 2016 と同じ値になっている可能性がございます。
<参考> Clustering and High-Availability
https://blogs.msdn.microsoft.com/clustering/2012/11/21/tuning-failover-cluster-network-thresholds/