※本ページにはプロモーション(広告)が含まれています
Windows 11環境でSMBファイル共有を使ったフェイルオーバークラスター構成を運用していると、「クラスター認識更新(CAU:Cluster-Aware Updating)がタイムアウトで失敗する」という問題が発生することがあります。特に、SMBクラスター共有ディスクのアクセス中にCAUを実行すると、ノードの再起動やドレイン処理がタイムアウトしてしまい、更新が完了しません。
この問題は、SMBクライアントのセッション維持とCAUのノード更新シーケンスが競合することで起きます。本記事では原因を詳しく解説し、設定変更・タイムアウト値の調整・メンテナンスウィンドウの最適化など具体的な対処法を紹介します。

この記事でわかること
- CAU(クラスター認識更新)の仕組みとSMB共有との関係
- タイムアウトが発生する主な原因(4パターン)
- PowerShellコマンドによるCAUタイムアウト設定の変更方法
- SMBセッションを考慮したノードドレイン設定の最適化
- 更新前後の確認手順とトラブルシューティング
CAUとSMB共有の基礎知識
CAU(Cluster-Aware Updating)とは
CAUは、Windows Serverのフェイルオーバークラスターに対してWindowsUpdateを自動適用するための機能です。クラスターの各ノードを順番に更新対象にし、ワークロードを他のノードに移動(フェイルオーバー)させてから再起動・更新を行います。これにより、サービスを止めずにクラスター全体にパッチを適用できます。
SMBクラスター共有との組み合わせで起きる問題
フェイルオーバークラスター上でSMBファイル共有(クラスター共有ボリュームやSMB共有リソース)を公開している場合、CAUが特定ノードをドレイン(ワークロード移動)する際に、そのノードへのSMBセッションを適切に切り離す必要があります。
クライアントがSMBセッションを切断しない(ファイルを開いたまま)、またはノードのドレイン処理に時間がかかりすぎると、CAUが設定したタイムアウト時間内に処理を完了できずにエラーになります。
タイムアウトが発生する主な原因
原因1:ノードドレインのタイムアウト値が短すぎる
CAUは各ノードのドレイン完了を待つ時間(DrainTimeoutMinutes)が設定されています。デフォルト値は多くの環境で15分ですが、SMB共有を使っている場合はクライアントのセッション切断に時間がかかることがあり、この値をオーバーします。
原因2:SMBクライアントがファイルを開き続けている
クライアントPCがSMB共有上のファイルを開いたまま離席したり、アプリケーションがロックを保持していたりすると、ノードのドレインが完了しません。ノードドレイン中にSMBセッションが残留していると、CAUはタイムアウトまで待機します。
原因3:SMBのOplockまたはLeaseが開放されない
SMB 3.xのOplock(機会的ロック)またはLease機能により、クライアントがファイルキャッシュを保持している場合があります。サーバー側がOplockBreakを送信してもクライアントが応答しない(タイムアウトする)と、ドレイン処理が長引きます。
原因4:ネットワーク遅延によるCAU内部のRPCタイムアウト
CAUはRPC(リモートプロシージャコール)でクラスターノードと通信します。クラスター内のネットワーク遅延が大きい場合、このRPC通信がタイムアウトし、CAU全体が失敗することがあります。

対処法
対処法1:CAUのドレインタイムアウトを延長する
PowerShellからCAUのドレインタイムアウト値を増やすことで、SMBセッションの切断を待つ時間を確保できます。
現在の設定を確認するコマンド:
Get-CauRun
タイムアウトを30分に延長する例(CAUランの再設定):
Set-CauClusterRole -ClusterName "クラスター名" -MaxFailedNodes 1 -RequireAllNodesOnline -EnableFirewallRules -Force
CAUプラグインオプションでタイムアウトを個別に指定する:
Invoke-CauRun -ClusterName "クラスター名" -CauPluginName "Microsoft.WindowsUpdatePlugin" -MaxFailedNodes 1 -MaxRetriesPerNode 3
クラスターのノードドレインタイムアウト(秒単位)を変更する:
(Get-Cluster).DrainOnShutdown = 1
(Get-Cluster).PlumbAllCrossSubnetRoutes = 0
フェイルオーバークラスターのノードドレイン設定(ClusterNode単位):
Get-ClusterNode | Format-List Name, State, DrainStatus
対処法2:更新前にSMBセッションを確認・切断する
CAU実行前に開いているSMBセッションを確認し、手動で切断することでドレインを円滑にします。
サーバー上のSMBセッション一覧を確認:
Get-SmbSession | Select-Object ClientComputerName, ClientUserName, NumOpens
開いているファイルを確認:
Get-SmbOpenFile | Select-Object ClientComputerName, ClientUserName, Path
特定のセッションを切断:
Get-SmbSession | Where-Object {$_.ClientComputerName -eq "クライアントPC名"} | Close-SmbSession -Force
全セッションをまとめて切断(本番環境では接続中のユーザーへ事前通知を):
Get-SmbSession | Close-SmbSession -Force
対処法3:SMBのOplock設定を調整する
SMBサーバー側のOplock(機会的ロック)タイムアウトを短くすることで、クライアントが応答しない場合でも早期に解放できます。
Set-SmbServerConfiguration -OplockBreakWait 35 -Force
OplockBreakWaitのデフォルト値は35秒です。クライアントがOplock Breakに応答しない場合、この秒数経過後にサーバーが強制解放します。必要に応じて値を小さくすることで早期に解放されますが、ファイルの整合性に影響する可能性があるため慎重に設定してください。
対処法4:CAU更新のメンテナンスウィンドウをオフピーク時間帯に設定する
SMBセッションが最も少ない時間帯(深夜〜早朝)にCAUを実行するようスケジュールを設定します。
Set-CauClusterRole -ClusterName "クラスター名" -StartDate "2026/05/01" -DaysOfWeek Sunday -WeeksOfMonth 1,3 -BeginHour 2 -EndHour 5
上記は毎月第1・第3日曜日の午前2時〜5時にCAUを実行する設定例です。
対処法5:ノードドレイン前の事前スクリプトでSMBセッションをクリアする
CAUのPre-Updateスクリプトを設定し、ドレイン前に自動的にSMBセッションを切断する方法です。
Pre-Updateスクリプトの例(PreDrain.ps1):
param($ClusterName, $NodeName)
Write-Host "SMBセッション切断処理を開始: $NodeName"
$sessions = Get-SmbSession -ServerName $NodeName
$sessions | Close-SmbSession -Force
Write-Host "SMBセッション切断完了"
CAUにPre-Updateスクリプトを登録:
Invoke-CauRun -ClusterName "クラスター名" -PreUpdateScript "\\共有パス\PreDrain.ps1" -CauPluginName "Microsoft.WindowsUpdatePlugin"

設定項目と推奨値の比較表
| 設定項目 | デフォルト値 | SMB共有環境推奨値 | 設定場所 |
|---|---|---|---|
| DrainTimeoutMinutes | 15分 | 30〜60分 | CAUクラスターロール設定 |
| OplockBreakWait | 35秒 | 10〜20秒(早期解放) | Set-SmbServerConfiguration |
| MaxRetriesPerNode | 3回 | 3〜5回 | Invoke-CauRun パラメーター |
| MaxFailedNodes | クラスター数-1 | 1 | Invoke-CauRun パラメーター |
| 更新実行時間帯 | 未設定 | 深夜2時〜5時 | Set-CauClusterRole スケジュール |
この記事に関連するおすすめ商品
Windows Server 参考書籍(フェイルオーバークラスター)
約3,500円〜
CAU・SMB・クラスター設計の理解を深めるための専門書
NAS対応 高速LANケーブル(Cat6A以上)
約1,000円〜
SMBクラスター環境のネットワーク遅延を低減。CAUのRPCタイムアウト防止にも有効
※ 価格は変動します。最新価格はリンク先でご確認ください
よくある質問(FAQ)
Q. CAUのタイムアウトエラーはどのログで確認できますか?
イベントビューアーの「アプリケーションおよびサービスログ」>「Microsoft」>「Windows」>「ClusterAwareUpdating」に詳細なCAUのログが記録されます。また、フェイルオーバークラスターマネージャーの「更新の実行結果」からも確認できます。PowerShellでは Get-CauReport コマンドでレポートを取得できます。
Q. ドレインタイムアウトを延ばしすぎると問題がありますか?
ドレインタイムアウトを極端に長くすると、実際に問題が起きているノードを更新できない状態が長時間続くリスクがあります。30〜60分程度を上限として設定し、その時間内にSMBセッションが確実にクリアできるよう運用フロー(事前通知・接続切断)を整備することが重要です。
Q. CAU実行中にクライアントはSMB共有にアクセスできますか?
CAUはフェイルオーバーの仕組みを使うため、対象ノードが更新中でもSMBリソースは別のノードに移動して継続提供されます。ただし、フェイルオーバー直後に短時間の接続断(数秒)が発生することがあります。SMB 3.xのTransparent Failoverを利用している環境では、クライアントへの影響をほぼゼロにできます。
Q. SMB Transparent Failoverとはなんですか?
SMB 3.0以降で導入された機能で、サーバーノードの障害やメンテナンスフェイルオーバー時に、クライアントが接続断を検知せずにファイルアクセスを継続できる仕組みです。Windows 11クライアントおよびWindows Server 2012以降のサーバーで利用可能です。CAUとの組み合わせで最もシームレスな更新体験が得られます。
Q. CAUが失敗した後のロールバック方法は?
CAUは各ノードの更新前にスナップショットを取る機能はありません。Windowsのシステム復元ポイントまたは仮想マシンスナップショット(Hyper-Vクラスターの場合)で対応します。物理サーバーの場合は、バックアップからの復元が必要になります。更新前に必ずバックアップを取得してください。
Q. CAUをスケジュール実行しているのにいつの間にか停止しています。
CAUのスケジュール実行(自己更新モード)が停止する主な原因は、前回の実行がタイムアウトエラーで終了し「最大失敗ノード数」を超えたことで自動的に無効化された場合です。Get-CauClusterRole でステータスを確認し、Enable-CauClusterRole で再有効化してください。
Q. SMBクラスター共有ではなく通常のSMB共有(ワークグループ)でも同様の問題が起きますか?
CAUはフェイルオーバークラスターの機能であり、ワークグループ環境やスタンドアロンのSMBサーバーには適用されません。スタンドアロンのSMBサーバーへのWindowsUpdate適用は、通常のWindowsUpdateまたはWindows Server Update Services(WSUS)で行います。
まとめ
Windows 11のSMB共有クラスター環境におけるCAUタイムアウト問題は、以下の対処で解消できます。
- CAUのドレインタイムアウト(DrainTimeoutMinutes)を30〜60分に延長する
- CAU実行前にPowerShellでSMBセッションを確認・切断する(Get-SmbSession / Close-SmbSession)
- SMBサーバーのOplockBreakWaitを短くして早期解放を促す
- CAU実行スケジュールをSMBアクセスが少ない深夜帯に設定する
- Pre-Updateスクリプトでノードドレイン前に自動セッション切断する
SMB 3.xのTransparent Failoverを活用することで、CAU実行中のクライアントへの影響を最小限に抑えることもできます。クラスター環境の安定運用のために、本記事の設定を参考にCAUのタイムアウト問題を根本的に解決してください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!