トップ回答者
BranchCache が正常に動作しない

質問
-
いつもお世話になっております。
質問場所が間違えてたら申し訳ございません。
(Windows 10カテゴリかもです)
公開されているbranch cache による 更新プログラムの展開 評価ガイドを使用し、WSUSでwindows 10及び、windows 7へBranch Cacheの機能を使用し更新プログラムを配信しようとしています。
パフォーマンスモニターを起動しながら、Windows Updateを実行したのですが、想定の結果と違っていて困ったため、質問させてください。
想定では以下の通りになるはずでした。
・windows 7 及びWindows 10
1台目→byte from server が増加しbyte from Cacheは増えない
2台目→byte from Cacheが増加する
実際に実行すると以下の通りです。
・windows 7
1台目及び2台目→byte from server が増加しbyte from Cacheは増えない
・windows 10
1台目及び2台目→byte from server 及びbyte from Cacheが増えない
※なお、GPOが適用していることを確認し再起動も実施しています
以上、よろしくお願いいたします。
- 編集済み S.シュンペイ 2017年12月8日 9:01
回答
-
なるほど、若干ですがキャッシュしていますね。
参考までに 2 台目で netsh branchcache show status all した結果もお教え頂けないでしょうか。
また、もし可能であれば 3 台目を用意して検証する事は可能でしょうか?
BranchCache を利用する場合、サーバー側で発行したハッシュをクライアントが取得する必要が有りますが、既定の動作だとクライアントがハッシュを取得するのは 2 台目からであり、更にハッシュを用いてキャッシュからダウンロードする動作になるのは 3 台目からです。(HTTP/HTTPS の場合)
【1 台目】
クライアントはコンテンツをサーバーからダウンロードし、サーバーはハッシュを発行しますがサーバーのローカルのみに保存する為、クライアントはハッシュを取得しません。
【2 台目】
クライアントはサーバーからハッシュを取得しますが、同じネットワーク内にハッシュを持つクライアントが居ない為、サーバーからコンテンツをダウンロードします。
【3 台目】
クライアントはサーバーからハッシュを取得し、同じネットワーク内のハッシュ (キャッシュ) を持つクライアントからコンテンツをダウンロードします。
BranchCache の評価ガイドでは、これら 3 台が必要な BranchCache の既定の動作を変更し、2 台で評価を行う為に WSUS サーバーに以下のポリシーを設定しています。(以下の設定が WSUS に適用されていれば、 2 台目から同じネットワーク内のクライアントキャッシュからダウンロードする)
[コンピューターの構成] - [ポリシー] - [管理用テンプレート] - [ネットワーク] - [LAN Manager サーバー] - [BranchCache のハッシュの発行]
また、最初に確認すべきでしたが、以下の基本的な点については問題無いでしょうか。
・クライアントは同じネットワーク (サブネット) に接続している
・ディスクの空き容量が十分ある
・電源に接続されている (バッテリ駆動ではない)
==========内容に誤りが有った為、以下の通り修正==========
誤:BranchCache を利用する場合、サーバー側で発行したキャッシュをクライアントが取得する必要が有りますが
正:BranchCache を利用する場合、サーバー側で発行したハッシュをクライアントが取得する必要が有りますが
======================================
すべての返信
-
以下のコマンドを 1 台目のPCで実行し、キャッシュが作成されているか確認して下さい。
キャッシュが無いのであれば、BranchCache が分散モードとして正常に動作していませんので、設定を再確認して下さい。
netsh branchcache show status all
また、Windows 10 ではサーバーからもキャッシュからも転送されている形跡がないとの事ですが、 BranchCache が動作しておらず配信の最適化でダウンロードが行われているのではないでしょうか?
以下の通り Windows 10 v1607 以降は、グループポリシーの [コンピューターの構成] - [管理用テンプレート] - [Windows コンポーネント] - [配信の最適化] - [ダウンロード モード] を有効にしてオプションで [バイパス] を選択しないと BranchCache が利用されません。(設定が無い場合は配信の最適化が優先される)
Windows 10 バージョン 1607 以降の環境にて BranchCache を利用する際の条件
https://blogs.technet.microsoft.com/jpwsus/2017/03/15/win10-1607-branchcache/
-
いつもお世話になっております。
[配信の最適化]のバイパス設定のについては、設定済みです。
また、netsh branchcache show status allで分散キャッシュになっていることも合わせて確認済みです。
netsh branchcache show status allの実行結果についても合わせて記載します
<========================================================>
C:\Users\administrator>netsh branchcache show status all
BranchCache サービスの状態:
-------------------------------------------------------------------------------
サービス モード = 分散キャッシュ (グループ ポリシーにより設定)
バッテリ使用中のピアをサポート = 無効
現在の状態 = 実行中
サービス開始の種類 = 手動
このコンピューターは、ホスト型キャッシュ クライアントとして構成されていません。
ローカル キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 5% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 0 バイト
ローカル キャッシュの場所 = C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistRepub (既定値)
発行キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 1% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 0 バイト
発行キャッシュの場所 = C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistPub (既定値)
ネットワークの状態:
-------------------------------------------------------------------------------
コンテンツ取得の URL 予約 = 構成済み (必要)
ホスト型キャッシュの URL 予約 = 構成済み (必要なし)
ホスト型キャッシュの HTTP URL 予約 = 構成済み (必要なし)
ホスト型キャッシュ ポートに結合された SSL 証明書 = 未構成 (必要なし)
コンテンツ取得のファイアウォール規則 = 有効 (必要)
ピア検出のファイアウォール規則 = 有効 (必要)
ホスト型キャッシュ サーバーのファイアウォール規則 = 有効 (必要なし)
ホスト型キャッシュ クライアントのファイアウォール規則 = 有効 (必要なし)
<========================================================>
以上、よろしくお願いいたします。
-
Lapivy様
いつもお世話になっております。
以下のGPOに関してですが、以下のように設定しております
・[BranchCache のハッシュの発行]
⇒[有効] 、[ハッシュの発行をすべての共有フォルダーで許可する]
・[BranchCache のハッシュバージョン サポート]
⇒[有効] 、 [V1 バージョンと V2 バージョンをサポートする]
作成したwindows 10端末へパッチを手動で適用し、再度実行するとWindows 10端末でも以下のようになりました。
・windows 10
1台目及び2台目→byte from server が増加しbyte from Cacheは増えない
BranchCache自体は動くようになったみたいなのですが、相変わらずbyte from Cacheが動作しません、、、
追加情報ですが、クライアント端末はすべて同じネットワーク内になります。
以上、よろしくお願いいたします。
-
Lapivy様
いつもお世話になっております。
失礼いたしました。
Lapivy様のアドバイス通り、WSUSサーバーには該当のGPOを適用できていませんでした。
実際に適用し、再度検証を行ったのですが、不思議な動作に変更したのでご報告いたします。
・windows 10
パターン1
1台目にて更新プログラムをインストール完了し2台目にてWindows Updateを実行
→両端末ともbyte from server が増加しbyte from Cacheは増えない
パターン2
1台目にて更新プログラムをインストール中に2台目にてWindows Updateを実行
→1台目はbyte from server が増加しbyte from Cacheは増えない
→2台目はbyte from Cache が増加しする
ほぼ同時だと想定する動きになりました。
windows 10にてインストール完了後にCache破棄するGPOとかってあったりするのでしょうか
以上、よろしくお願いいたします。
- 編集済み S.シュンペイ 2017年12月15日 6:03
-
キャッシュを破棄する GPO だと「データ キャッシュ内のセグメントの有効期間を設定する」ですが、特に設定していなければ既定は 28 日ですので無関係の様に思います。
パターン 2 の際に、1 台目の PC で netsh branchcache show status all を実行して、ローカルキャッシュが作成されているか確認してみて下さい。(ダウンロードと完了後の両方)
可能性として考えられるのは、パターン 1 の際は WSUS 側でポリシーを更新しておらず、パターン 2 の際はポリシーが更新されていた可能性が考えられます。(グループポリシーは既定では 90分~120分の間で更新されます)
-
Lapivy様
いつもお世話になっております。
度々ご確認、ありがとうございます。
1台目にてコマンドを実行いたしましたのでご報告いたします。
===============================================
・作業前
C:\Users\admin01>netsh branchcache show status all
BranchCache サービスの状態:
-------------------------------------------------------------------------------
サービス モード = 分散キャッシュ (グループ ポリシーにより設定)
バッテリ使用中のピアをサポート = 無効
現在の状態 = 実行中
サービス開始の種類 = 手動
このコンピューターは、ホスト型キャッシュ クライアントとして構成されていません。
ローカル キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 5% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 0 バイト
ローカル キャッシュの場所 = 既定
発行キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 1% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 0 バイト
発行キャッシュの場所 = 既定
ネットワークの状態:
-------------------------------------------------------------------------------
コンテンツ取得の URL 予約 = 構成済み (必要)
ホスト型キャッシュの URL 予約 = 構成済み (必要なし)
ホスト型キャッシュの HTTP URL 予約 = 構成済み (必要なし)
ホスト型キャッシュ ポートに結合された SSL 証明書 = 未構成 (必要なし)
コンテンツ取得のファイアウォール規則 = 有効 (必要)
ピア検出のファイアウォール規則 = 有効 (必要)
ホスト型キャッシュ サーバーのファイアウォール規則 = 有効 (必要なし)
ホスト型キャッシュ クライアントのファイアウォール規則 = 有効 (必要なし)
===============================================
・ダウンロード中
C:\Users\admin01>netsh branchcache show status all
BranchCache サービスの状態:
-------------------------------------------------------------------------------
サービス モード = 分散キャッシュ (グループ ポリシーにより設定)
バッテリ使用中のピアをサポート = 無効
現在の状態 = 実行中
サービス開始の種類 = 手動
このコンピューターは、ホスト型キャッシュ クライアントとして構成されていません。
ローカル キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 5% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 281061 バイト
ローカル キャッシュの場所 = 既定
発行キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 1% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 0 バイト
発行キャッシュの場所 = 既定
ネットワークの状態:
-------------------------------------------------------------------------------
コンテンツ取得の URL 予約 = 構成済み (必要)
ホスト型キャッシュの URL 予約 = 構成済み (必要なし)
ホスト型キャッシュの HTTP URL 予約 = 構成済み (必要なし)
ホスト型キャッシュ ポートに結合された SSL 証明書 = 未構成 (必要なし)
コンテンツ取得のファイアウォール規則 = 有効 (必要)
ピア検出のファイアウォール規則 = 有効 (必要)
ホスト型キャッシュ サーバーのファイアウォール規則 = 有効 (必要なし)
ホスト型キャッシュ クライアントのファイアウォール規則 = 有効 (必要なし)
===============================================
ダウンロード後も[ダウンロード中]と同様でした。
以上、よろしくお願いいたします。
-
なるほど、若干ですがキャッシュしていますね。
参考までに 2 台目で netsh branchcache show status all した結果もお教え頂けないでしょうか。
また、もし可能であれば 3 台目を用意して検証する事は可能でしょうか?
BranchCache を利用する場合、サーバー側で発行したハッシュをクライアントが取得する必要が有りますが、既定の動作だとクライアントがハッシュを取得するのは 2 台目からであり、更にハッシュを用いてキャッシュからダウンロードする動作になるのは 3 台目からです。(HTTP/HTTPS の場合)
【1 台目】
クライアントはコンテンツをサーバーからダウンロードし、サーバーはハッシュを発行しますがサーバーのローカルのみに保存する為、クライアントはハッシュを取得しません。
【2 台目】
クライアントはサーバーからハッシュを取得しますが、同じネットワーク内にハッシュを持つクライアントが居ない為、サーバーからコンテンツをダウンロードします。
【3 台目】
クライアントはサーバーからハッシュを取得し、同じネットワーク内のハッシュ (キャッシュ) を持つクライアントからコンテンツをダウンロードします。
BranchCache の評価ガイドでは、これら 3 台が必要な BranchCache の既定の動作を変更し、2 台で評価を行う為に WSUS サーバーに以下のポリシーを設定しています。(以下の設定が WSUS に適用されていれば、 2 台目から同じネットワーク内のクライアントキャッシュからダウンロードする)
[コンピューターの構成] - [ポリシー] - [管理用テンプレート] - [ネットワーク] - [LAN Manager サーバー] - [BranchCache のハッシュの発行]
また、最初に確認すべきでしたが、以下の基本的な点については問題無いでしょうか。
・クライアントは同じネットワーク (サブネット) に接続している
・ディスクの空き容量が十分ある
・電源に接続されている (バッテリ駆動ではない)
==========内容に誤りが有った為、以下の通り修正==========
誤:BranchCache を利用する場合、サーバー側で発行したキャッシュをクライアントが取得する必要が有りますが
正:BranchCache を利用する場合、サーバー側で発行したハッシュをクライアントが取得する必要が有りますが
======================================
-
Lapivy様
いつもお世話になっております。
お時間いただきまして、申し訳ございません。
2台目の実行結果記載いたしましたので、ご確認ください。
※なお1台目と同様でした
=============================================
・作業前
C:\Windows\system32>netsh branchcache show status all
BranchCache サービスの状態:
-------------------------------------------------------------------------------
サービス モード = 分散キャッシュ (グループ ポリシーにより設定)
バッテリ使用中のピアをサポート = 無効
現在の状態 = 実行中
サービス開始の種類 = 手動
このコンピューターは、ホスト型キャッシュ クライアントとして構成されていません。
ローカル キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 5% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 0 バイト
ローカル キャッシュの場所 = C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistRepub (既定値)
発行キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 1% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 0 バイト
発行キャッシュの場所 = C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistPub (既定値)
ネットワークの状態:
-------------------------------------------------------------------------------
コンテンツ取得の URL 予約 = 構成済み (必要)
ホスト型キャッシュの URL 予約 = 構成済み (必要なし)
ホスト型キャッシュの HTTP URL 予約 = 構成済み (必要なし)
ホスト型キャッシュ ポートに結合された SSL 証明書 = 未構成 (必要なし)
コンテンツ取得のファイアウォール規則 = 有効 (必要)
ピア検出のファイアウォール規則 = 有効 (必要)
ホスト型キャッシュ サーバーのファイアウォール規則 = 有効 (必要なし)
ホスト型キャッシュ クライアントのファイアウォール規則 = 有効 (必要なし)
=============================================
・ダウンロード後
C:\Windows\system32>netsh branchcache show status all
BranchCache サービスの状態:
-------------------------------------------------------------------------------
サービス モード = 分散キャッシュ (グループ ポリシーにより設定)
バッテリ使用中のピアをサポート = 無効
現在の状態 = 実行中
サービス開始の種類 = 手動
このコンピューターは、ホスト型キャッシュ クライアントとして構成されていません。
ローカル キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 5% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 281061 バイト
ローカル キャッシュの場所 = C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistRepub (既定値)
発行キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 1% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 0 バイト
発行キャッシュの場所 = C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistPub (既定値)
ネットワークの状態:
-------------------------------------------------------------------------------
コンテンツ取得の URL 予約 = 構成済み (必要)
ホスト型キャッシュの URL 予約 = 構成済み (必要なし)
ホスト型キャッシュの HTTP URL 予約 = 構成済み (必要なし)
ホスト型キャッシュ ポートに結合された SSL 証明書 = 未構成 (必要なし)
コンテンツ取得のファイアウォール規則 = 有効 (必要)
ピア検出のファイアウォール規則 = 有効 (必要)
ホスト型キャッシュ サーバーのファイアウォール規則 = 有効 (必要なし)
ホスト型キャッシュ クライアントのファイアウォール規則 = 有効 (必要なし)
C:\Windows\system32>netsh branchcache show status all
BranchCache サービスの状態:
-------------------------------------------------------------------------------
サービス モード = 分散キャッシュ (グループ ポリシーにより設定)
バッテリ使用中のピアをサポート = 無効
現在の状態 = 実行中
サービス開始の種類 = 手動
このコンピューターは、ホスト型キャッシュ クライアントとして構成されていません。
ローカル キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 5% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 281061 バイト
ローカル キャッシュの場所 = C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistRepub (既定値)
発行キャッシュの状態:
-------------------------------------------------------------------------------
最大キャッシュ サイズ = 1% (ハード ディスク)
現在のアクティブ キャッシュ サイズ = 0 バイト
発行キャッシュの場所 = C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistPub (既定値)
ネットワークの状態:
-------------------------------------------------------------------------------
コンテンツ取得の URL 予約 = 構成済み (必要)
ホスト型キャッシュの URL 予約 = 構成済み (必要なし)
ホスト型キャッシュの HTTP URL 予約 = 構成済み (必要なし)
ホスト型キャッシュ ポートに結合された SSL 証明書 = 未構成 (必要なし)
コンテンツ取得のファイアウォール規則 = 有効 (必要)
ピア検出のファイアウォール規則 = 有効 (必要)
ホスト型キャッシュ サーバーのファイアウォール規則 = 有効 (必要なし)
ホスト型キャッシュ クライアントのファイアウォール規則 = 有効 (必要なし)
C:\Windows\system32>
=============================================
3台目については、用意可能です。
用意後、再度検証いたしますので、今しばらくお待ちください。
>BranchCache を利用する場合、サーバー側で発行したキャッシュをクライアントが取得する必要が有りますが、
>既定の動作だとクライアントがハッシュを取得するのは 2 台目からであり、更にハッシュを用いてキャッシュからダウンロー
>ドする動作になるのは 3 台目からです。(HTTP/HTTPS の場合)
こちらについては驚きました、、、。
尚、説明もれでしたが、検証用のクライアント端末 はWindows 10 Proになるため、有効なプロトコルはBITSのみと認識しています。
BITSでも同様の動きだったりするのでしょうか。
>[コンピューターの構成] - [ポリシー] - [管理用テンプレート] - [ネットワーク] - [LAN Manager サーバー] -[BranchCache のハッシュの発行]
⇒こちらにつきましては、
有効、[ハッシュの発行をすべての共有フォルダで許可する]に設定済みです。
・クライアントは同じネットワーク (サブネット) に接続している
⇒クライアントは同じネットワークアドレス内に存在しています。
また、ネットワークを制限する様なファイヤーウォール機器等はございません。
・ディスクの空き容量が十分ある
⇒あります。
クライアントの状況は、windows 10インストール直後に、パッチを適用してGPOを適用しただけですので、十分な余裕があります。
・電源に接続されている (バッテリ駆動ではない)
⇒接続されています。
検証用の端末はHyper-v上に存在し、バッテリー稼働ではございません。
以上、よろしくお願いいたします。
- 編集済み S.シュンペイ 2017年12月25日 23:51
-
Lapivy様
いつもお世話になっております。
ご返事遅れました。
3台目を追加して実施したところbranchcacheが動作致しました。
>【1 台目】
>クライアントはコンテンツをサーバーからダウンロードし、サーバーはハッシュを発行しますがサーバーのローカルのみに保存する為、クライアントはハッシュを取得しません。
>【2 台目】
>クライアントはサーバーからハッシュを取得しますが、同じネットワーク内にハッシュを持つクライアントが居ない為、サーバーからコンテンツをダウンロードします。
>【3 台目】
>クライアントはサーバーからハッシュを取得し、同じネットワーク内のハッシュ (キャッシュ) を持つクライアントからコンテンツをダウンロードします。
こちらの動作はHTTP/HTTPSだけではなかったのですね、、、、
度々お手間をおかけしました
ありがとうございます。
以上、よろしくお願いいたします。