最近のWindows 10/Windows Serverの「累積更新」は差分ダウンロードではなくなったらしい山市良のうぃんどうず日記(182)

Windows 10のWindows Updateによる累積更新プログラムのインストールは「高速インストール」機能により、既に更新済みの内容との差分のみがダウンロードされてインストールされると理解している人は、筆者を含めて多いと思います。筆者も最近知ることになったのですが、どうやらWindows 10 バージョン1809およびWindows Server 2019から仕組みが大きく変わったようなのです。

» 2020年06月24日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「山市良のうぃんどうず日記」のインデックス

山市良のうぃんどうず日記

累積更新プログラムの配布の最適化に大きな変更が!

 「Windows 10」および「Windows Server 2016」以降(2017年4月の累積更新プログラム以降)のWindows Updateによる累積更新プログラムのダウンロードとインストールには、「高速インストール」(「Express Update」や「Express Install」とも呼ばれます)という技術が利用されています。

 Windows Updateは高速インストールが利用可能な場合、「Microsoft Updateカタログ」でダウンロード提供されているようなフルパッケージではなく、前回の累積更新プログラムまでに更新されたコンポーネントを除く、新たに更新されたコンポーネントだけをダウンロードします。これにより、Windows Updateのダウンロードで使用されるネットワーク帯域の最適化が図られています。

 「Windows Server Update Services(WSUS)」は高速インストールに対応しており、企業内ネットワークの帯域を最適化するために利用できます。ただし、WSUSで高速インストールを有効にした場合、Microsoft Updateから同期サーバへのダウンロードのサイズと時間が大きくなり、サーバ上のディスク領域を大量に消費するというデメリットもあります(画面1)。

画面1 画面1 WSUSで高速インストールをサポートするオプション(既定はオフ)。Windows 10 バージョン1809以降では、このオプションのオン/オフで挙動に違いはないらしい

 Windows 10およびWindows Server 2016以降の高速インストール技術はネットワーク帯域使用の最適化に寄与しますが、更新を必要とするコンポーネントを調査して必要なファイルをダウンロードするのに多くのプロセッサ時間とメモリ、ディスクI/Oが発生し、Windows Updateの処理全体を遅延させる原因にもなることは、特に「Windows Server 2016」についてこれまで本連載で何度も取り上げてきました。

 高速インストールの技術をはじめとするWindows Updateの最適化技術がWindows 10のその後のバージョンで改善されてきていることは、Windows Updateのエクスペリエンスの体感的な向上から感じてきました。しかし、具体的、技術的にどう改善されているのかよく分からないところもありました。

 そんな中、企業におけるリモートワークの利用拡大に合わせてMicrosoftが公開した以下の公式ブログの中に技術的解説を見つけることができました。

 具体的には、Windows 10 バージョン1809およびWindows Server 2019で行われた大きな技術的な変更点を説明する以下のホワイトペーパーです。このホワイトペーパーは、コメントのやりとりを見る限り、少なくとも2019年春頃に公開されていたようです。

 ホワイトペーパーの内容は難解ですが、筆者なりに読み解くと、新旧の高速インストールには次のような違いがあります。

旧式の高速インストール

 Windows 10 バージョン1803以前では、Microsoft Updateや高速インストールが有効なWSUSの配布ポイントには、Windows 10の機能更新プログラム(RTM)から更新されたコンポーネントについて、全ての更新バージョンがホストされます。

 Windows Updateクライアントは、その更新情報を含むカタログ的な高速インストールファイル「Windoows10.0-KBXXXXXXX-x64-EXPRESS.cab」(x64版Windowsの場合)をダウンロードし、Windows Updateクライアントはこれを使用して更新が必要なコンポーネントを判断し、更新が必要な差分を決定して、配布ポイントから必要なファイルだけをダウンロードします。

 その代償として、配布ポイントにホストされるサイズは非常に大きくなる可能性があります。


新しい高速インストール

 Windows 10 バージョン1809およびWindows Server 2019以降、Windows Server, version 1809以降では、累積更新プログラムに関しては従来の高速インストールファイルは使用されなくなります。Microsoft Updateカタログサイトでダウンロード提供されている「Microsoft Updateスタンドアロンパッケージ(.msu)」と同等のサイズのフルパッケージ「Windoows10.0-KBXXXXXXX-x64.cab」(x64版Windowsの場合)をダウンロードしてインストールします。

 新たな高速インストールに対応した累積更新プログラムは、RTMから順方向の差分とRTMへの逆方向の差分を保持しており、更新前の状態をアンインストール用に維持しながら、更新が必要なコンポーネントを最新バージョンに置き換えます。

 以前の高速インストールでは配布ポイントにコンポーネントの全ての更新バージョンがホストされていましたが、新しい高速インストールでは再配布可能な1つの更新パッケージで、全てのベースライン(更新レベル)に対応し、配布ポイントの課題を解消します。

 また、毎月の累積更新プログラムのサイズをコンパクトなサイズに維持することができます。手動ダウンロードインストールと高速インストールにほぼ同じパッケージ(.msuか.cabかの形式の違いだけ)を利用でき、これまで配布ポイントが保持していた全ての更新バージョンのファイルは不要になります。更新やロールバック、修復に必要な差分情報は、クライアント側の計算に基づいてその都度準備されるのでしょう。


 簡単に言ってしまうと、旧式の高速インストールは高速インストールファイル(-x64-EXPRESS.cab)を、更新が必要なコンポーネントを決定しながら差分を少しずつダウンロードするのに対し、新しい高速インストールはフルパッケージ(-x64.cab)を先にダウンロードして差分を取り出し、インストールするという形になります。

 なお、サービススタック更新プログラムなど、別の更新には旧式の高速インストールファイルが使用される場合があるようです。

論より証拠

 Windows 10 バージョン1803(x64)およびバージョン1809(x64)向けの2020年4月の累積更新プログラムで、新旧高速インストールの違いを確認してみましょう。どちらも2020年3月の累積更新プログラムがインストール済みの状態で、2020年4月の累積更新プログラムをインストールしてみます。

 実際には4月の累積更新プログラムをアンインストールした上で、再びインストールしたときの様子を比較しました。Microsoft Updateカタログでの累積更新プログラム(.msu)のサイズはWindows 10 バージョン1803(x64)向けが973.1MB、Windows 10 バージョン1809(x64)向けが317.0MBであることを覚えておいてください(画面2)。

画面2 画面2 Windows Updateでインストールしようとしている累積更新プログラムのMicrosoft Updateカタログ上でのダウンロードサイズ

 旧式の高速インストールを使用するWindows 10 バージョン1803(x64)は、2020年3月のOSビルド「17134.1365」から、累積更新プログラム「KB4550922」で4月のOSビルド「17134.1425」に更新されます。

 「C:\Windows\SoftwareDistribution\Download」の下にサブディレクトリに25MB程度の高速インストールファイル「Windows10.0-KB4550922-x64-EXPRESS.cab」がインストールされ、更新が必要と判断されたコンポーネントのファイルが「Package_for_Rollup-Fix~~amd64~~17134.1425.1.4」にダウンロードされます。

 ダウンロードが完了し「インストール中」となった時点で受信バイト数やファイルサイズはMicrosoft Updateカタログ上の973.1MBより圧倒的に小さいことが分かるでしょう。これは、更新を必要とするファイルだけをダウンロードしているからです(画面3)。

画面3 画面3 Windows 10 バージョン1803以前の旧式の高速インストールファイル(-x64--EXPRESS.cab)による更新は、Microsoft Updateカタログ上の973.1MBより圧倒的に小さなダウンロードで済む

 新しい高速インストールを使用するWindows 10 バージョン1809(x64)は、2020年3月のOSビルド「17763.1098」から、累積更新プログラム「KB4549949」で4月のOSビルド「17763.1158」に更新されます。

 同じように「C:\Windows\SoftwareDistribution\Download」の下にサブディレクトリを確認すると、フルパッケージである「Windows10.0-KB4549949-x64.cab」がダウンロードされています。受信バイト数を見ても、Microsoft Updateカタログ上のサイズと大差ありません(画面4)。

画面4 画面4 Windows 10 バージョン1809以降の新しい高速インストールでは、Microsoft Updateカタログと同程度のサイズのフルパッケージ(-x64.cab)がダウンロードされている。受信バイト数が大きくなっているのは、同時期にダウンロードされた別の複数の更新プログラム(.NET FrameworkやAdobe Flash)の影響

 なお、累積更新プログラムがダウンロードされる前に、その累積更新プログラムの前提となるサービススタックの更新プログラム「Windows10.0-KB4549947-x64-EXPRESS.cab」が先にダウンロードされてインストールされます。ファイル名から分かるように、こちらのダウンロードには旧式の高速インストールが使用されるようです。

 Windows 10 バージョン1809(x64)からさらに以前のOSビルドの更新についても確認してみましょう。1年以上前のOSビルド「17763.348」から2020年4月のOSビルド「17763.1158」への更新になります。「C:\Windows\SoftwareDistribution\Download」の下にサブディレクトリを確認すると、先ほどと全く同じフルパッケージ「Windows10.0-KB4549949-x64.cab」がダウンロードされています(画面5)。

画面5 画面5 1年以上更新されていないWindows 10 バージョン1809(x64)についても、同じフルパッケージ「Windows10.0-KB4549949-x64.cab」で更新される

フルパッケージのダウンロードだと毎月のサイズ増が気になるところ

 新旧高速インストールを比較すると、旧式の方が配布ポイントからのダウンロードサイズが小さくて済むような印象を受けるでしょう。毎月リリースされる累積更新プログラムのサイズが大きくなってくると、新しい高速インストールのメリットが失われてしまうような気がします。

 そこで、Windows 10 バージョン1803、バージョン1809、バージョン1903/1909(1909リリース以降の累積更新プログラムは共通)、および先月リリースされたバージョン2004の毎月のセキュリティ更新を含むx64向け累積更新プログラムについて、Microsoft Updateカタログ上のサイズをグラフ化してみました(グラフ1)。

画面1 グラフ1 Microsoft Updateカタログにおける累積更新プログラムのフルパッケージ(.msu)のサイズ

 問題があってMicrosoft Updateカタログでの配布が停止されているものは、前後のオプションや定例外の累積更新プログラムのサイズで比較しています。さらに比較対象として同期間のWindows 10 バージョン1607/Windows Server 2016のサイズも掲載しました。

 Microsoft Updateカタログにおける累積更新プログラムのサイズの拡大の傾向は、Windows 10 バージョン1803以前とバージョン1809以降で明らかに違います。Windows 10 バージョン1803以前の累積更新プログラムのサイズは1GBを超える勢いで拡大し続けています。

 Windows 10 バージョン1607/Windows Server 2016はリリース後1年もたたずに累積更新プログラムのフルパッケージサイズが1GBを超え、2020年6月時点で1.5GB以上にまで巨大化しています。

 Windows 10 バージョン1703は2020年6月時点で約1.4GB(バージョン1703は2019年10月にサポートが終了していますが、まだサポート期間中のSurface Hubデバイスに対してバージョン1703の更新プログラムが提供されています)、バージョン1709は約1.1GBです。

 一方、Windows 10 バージョン1809以降は1年以上経過しても300MB前後に抑えられており、毎月のサイズにあまり変化がありません。Windows 10 バージョン1809以降の新しい高速インストールでは、このMicrosoft Updateカタログのフルパッケージと同程度のサイズが毎月ダウンロードされることになり、かつ現在の更新レベルに関係なく同じパッケージが使用されます。そのため、毎月のネットワーク使用帯域が更新間隔によって増減するということはないでしょう。

Microsoftサポート情報との矛盾

 今回実験して確かめたように、Windows 10 バージョン1809以降の高速インストールでは、累積更新プログラムについては差分のダウンロードではなく、フルパッケージがダウンロードされていることが分かりました。

 しかしながら、Windows 10 バージョン1803以前とバージョン1809以降の累積更新プログラムに関するMicrosoftサポート情報には、どちらも「以前の更新プログラムをインストールした場合は、このパッケージに含まれている新しい修正のみがダウンロードされ、デバイスにインストールされます(If you installed earlier updates, only the new fixes contained in this package will be downloaded and installed on your device.)」と説明されています。

 この説明には、実際の技術や挙動の変更が反映されていません。単にコピー&ペーストで残っているものなのか、文書のテンプレートの問題なのか、新しい技術についてMicrosoft社内で認知されていないのか、説明するのが面倒なのか、理由は分かりません。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2019-2020)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。