VHD/VHDXのサイズを縮小するための事前準備は面倒?──その行為、無駄です!:その知識、ホントに正しい? Windowsにまつわる都市伝説(67)(2/2 ページ)
VHDやVHDXファイルが肥大化すると、物理ディスクの使用効率が低下し、他の場所へのコピーも時間がかかるようになります。そのため、容量可変タイプのVHDやVHDXは、時々「最適化」してあげる必要があるのですが……。
正解は「読み取り専用でマウントした状態で最適化」
VHD/VHDXファイルを可能な限り小さくしたければ、次の手順で操作します。
(1)仮想マシンをオフにします。
(2)「ディスクの管理ツール」などを使用して、仮想マシンのVHD/VHDXファイルを「読み取り専用」でHyper-Vホストにローカルマウントします。
(3)「Hyper-Vマネージャー」から「仮想ハードディスクの編集ウィザード」を開始し、読み取り専用でマウント中のVHD/VHDXファイルのパスを指定して、「最適化」を実行します。または、次に説明する「Optimize-VHD」コマンドレットを実行します(画面4)。
なお、Windows Server 2016 Technical Preview 5では、読み取り専用でマウントされたVHD/VHDXを「仮想ハードディスクの編集ウィザード」で最適化することはできません。これはプレビュー版の不具合なのかもしれませんが、Windows 10 バージョン1607の編集ウィザードでは読み取り専用でマウントされた仮想HDDを最適化できました。
Windows PowerShellであれば、次のように3行のコマンドラインで素早く実行できます。なお、「Optimize-VHD」コマンドレットを利用するには、コンピュータに「Hyper-Vの役割」がインストールされている必要があります。
Mount-VHD "VHD/VHDXファイルのパス" -NoDriveLetter -Readonly Optimize-VHD "VHD/VHDXファイルのパス" -Mode QuickまたはFull Dismount-VHD "VHD/VHDXファイルのパス"
読み取り専用でマウントした状態で最適化を実行することに違和感を覚える人も多いでしょう。実は、筆者もその一人です。
Optimize-VHDコマンドレットの既定は、「Quickモード」での最適化です。以下のサイトで公開されているOptimize-VHDコマンドレットの説明を見ると、QuickモードおよびFullモードは、「仮想ハードディスクが読み取り専用でマウントされている場合にのみ利用可能(Allowable only if the virtual hard disk is mounted read-only.)」とあります。つまり、これが正しい操作手順なのです。
- Optimize-VHD(マイクロソフト TechNetライブラリ)
「読み取り専用でマウント」効果と事前作業の無駄を実証
読み取り専用でマウントして最適化を実行した場合の縮小効果と、デフラグやゼロクリアが無駄な作業であることを示すために、比較実験を行いました。
Windows 7がインストールされているVHDを準備します。最適化前のVHDのサイズは8.83GBです。このVHDをローカルマウントし、OSボリュームをクイックフォーマットしてから、マウントを解除しました(画面5)。
OSボリュームのフォーマットにより、VHDの中にあったほとんどのファイルが削除されたわけですが、この時点でVHDのサイズは8.84GBです。この8.84GBのVHDのコピーを4つ作成し、次の4つのパターンで幾つかの最適化オプションを実行し、最適化後のファイルサイズ、最適化や事前準備作業の所要時間を比較してみました(画面6)。
- パターン1:事前の準備作業なし、オフラインのVHD
- パターン2:事前の準備作業なし、読み取り専用でマウントしたVHD
- パターン3:事前にデフラグを実行した、オフラインのVHD
- パターン4:事前にゼロクリアを実行した、オフラインのVHD
実験結果をまとめたものを表1に示します。読み取り専用でVHDをマウントし、Optimize-VHDコマンドレットのQuickモードで実行するのが、最も短時間で縮小効果がありました。オフラインのVHDに対する最適化は、事前準備作業のあるなしに関係なく、最適化前とほとんどサイズは変わりませんでした。
Optimize-VHDコマンドレットの「Prezeroedモード」は読み取り専用でのマウントを必要としないオプションで、最適化前にゼロクリアしてくれるものです。実行結果はsdeleteツールでゼロクリアしたものと同じですが、Prezeroedモードの方が短時間で完了するという利点があります。ただし、今回の実験では、サイズの縮小効果はどちらも全くありませんでした。
なお、今回の実験はVHDのOSボリュームのクイックフォーマット後の最適化を検証したものです。通常のファイルの追加/削除で肥大化したVHD/VHDXの最適化では、全く違った結果になるかもしれません。ですが、読み取り専用でVHDをマウントした状態で最適化するのが最も早く、効果が高いのには違いはないでしょう。
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 速報! Windows 10 Anniversary Updateがやって来た!――確実にアップグレードするための3つの方法とは?
2016年8月2日、Windows 10 Anniversary Updateがリリースされました。2015年7月にWindows 10に移行したユーザーにとっては、2015年11月のNovember Updateに続く2回目の大型アップデートです。 - マイクロソフト、「Windows 10 Anniversary Update」と「対応SDK」をリリース
マイクロソフトは「Windows 10 Anniversary Update」の提供を開始。併せて、その新機能を利用したアプリケーションを開発するための「Windows 10 Anniversary Update SDK」もリリースした。 - Windows 10、1年目の大型更新「Anniversary Update」は何が変わったか?
2016年8月3日、Windows 10の新ビルド「Anniversary Update」の提供が始まった。従来のビルドと比べて何が変わったのか? どうやってアップグレードすればいいのか? - 「Windows 10 Anniversary Update」のリリースが8月2日に決定
マイクロソフトは、Windows 10のメジャーアップデート「Windows 10 Anniversary Update」を8月2日にリリースすると発表した。 - “勝手にWindows 10にアップグレードされる”は本当か?
今回は、今、世間を騒がせている“勝手にWindows 10にアップグレードされる”という恐怖を本当に体験できるかどうか、実際に試してみました。