以下、Windows Virtual PCと比較した場合のHyper-V 3.0の特徴的な機能についていくつか解説しておく。
従来のWindows OSおよび仮想環境では、.VHDという仮想ファイル形式をずっと利用していたが、Windows 8/Hyper-V 3.0では新しく.VHDXという仮想ファイル形式が導入されている(.VHDも引き続きサポートされる)。.VHDと比較すると、最大サイズの拡大や内部ブロック・サイズの拡大、データ構造の調整によるアクセス速度の向上、耐障害性の向上などの機能強化が図られている。
ディスク・タイプ | .VHD | .VHDX | |
---|---|---|---|
仕様 | |||
仮想ディスクの種類 | 固定/動的/差分/パス・スルー | 固定/動的/差分/パス・スルー | |
仮想ディスクのサイズ | 3M〜2Tbytes | 3M〜16Tbytes(※これは現在の仕様上の制限値。Windows 8のディスク管理ツールでは最大1016Tbytesまで作成できた) | |
内部ブロック・サイズ | 2Mbytes | 1M〜256Mbytes(デフォルトでは、動的ディスク=32Mbytes、差分ディスク=2Mbytes) | |
内部セクタ・サイズ | 512bytes | 512/4096bytes | |
パフォーマンス対策 | 特になし | ・4Kbytesセクタ(AFT)のサポート ・内部データ構造を4Kbytes境界に配置することにより、AFT形式のディスクでのパフォーマンス低下を抑止 |
|
耐障害性 | 特になし | メタデータのロギング | |
利用可能なOS/環境 | Windows Virtual PC/Hyper-V | Windows 8+Hyper-V 3.0以上が必要 | |
ユーザー独自のメタデータの埋め込み | − | ○(最大1024項目) | |
ストレージ・デバイスのTrim/Unmapコマンド・サポート | − | ○(Windows 8がゲストOSの場合のみ利用される) | |
仮想ディスクの作成/変換 | ディスクの管理ツール/diskpart/PowerShell | ||
仮想ディスクのネイティブ・マウント/イジェクト | ディスクの管理ツール/diskpart/PowerShell/エクスプローラ | ||
ブート・サポート | |||
Hyper-V上の仮想マシンにおけるブート | .VHDでも.VHDXのいずれでもよいが、2Tbytes以下のMBR形式のディスクからのブートのみサポート | ||
ネイティブVHD/VHDXブート(実PC上でのブート) | .VHDでも.VHDXのいずれでもよいが、137Gbytes以下のMBR形式のディスクからのブートのみサポート | ||
データ・ディスクとしての利用 | 2Tbytes以上の仮想ディスクではGPT形式でフォーマットしないと全領域へアクセスできない。 | ||
そのほか | |||
相互運用 | .VHDと.VHDXが混在した差分ディスクは不可(例:親が.VHDで子が.VHDXの差分ディスクは不可)。.VHDと.VHDXの相互変換は可能なので、最初にどちらかに変換してから差分ディスクを作成すること | ||
仕様 | オープン | オープン(予定) | |
Windows 8における仮想ディスクの仕様比較 |
仮想マシンを利用する場合、通常は2Tbytesものサイズの仮想ディスクは使うことは少ないだろうが、例えばテストのために巨大なボリュームを作成してアプリケーションが正しく動作するかどうかをチェックするという用途に利用できる。(現在の)仕様上では最大16Tbytesまでの仮想ディスクを作成できるので、より大きなディスク環境のエミュレーションなどが可能になる。
また、仮想ディスクは仮想環境でのみ利用されるわけではなく、VHDブートやVHDマウント、Windowsバックアップといった機能でも利用されている。仮想ディスク関連の新機能としては次のようなものがある。
■仮想ディスクや.ISOファイルのエクスプローラによる自動マウント/アンマウント
Windows 7では、.VHDファイルをマウントするにはディスク管理ツールを使う必要があったが、Windows 8ではエクスプローラで.VHDや.VHDXファイルをダブルクリックするだけで自動マウントされるようになった。同様に、CD/DVDイメージである.ISOファイルもダブルクリックするだけで自動的にマウントされるので、便利である。アンマウントするには、マウントされたドライブ名を右クリックして、ポップアップ・メニューから[Eject]を選択すればよい。
■.VHDX仮想ファイルからのWindows OSのブート
Windows Vista/Windows Server 2008以降のOSでは、実際のハードディスクではなく、仮想ディスク・ファイル上にWindows OSをインストールしてブートする機能(ネイティブ・ブート機能)を持っているが、Windows 8では.VHDXファイルを使ったブートも可能である。もっとも、2Tbytesを超えるサイズのディスクからブートするには、システムがUEFIブートをサポートしている必要があるが(関連記事参照)、Windows OSのブート・ローダも、Hyper-Vの仮想マシン(のBIOS)も、UEFIブート機能をサポートしていないので、これはできない。さらに言えば、ネイティブVHD/VHDXブートするためには、仮想ディスクのサイズは128Gbytes以下でなければならない(これは仮想ディスク用のブート・コードがオーバー128Gbytesのディスクに対応していないからだと思われる)。これでは.VHDXのメリットがあまりないが、パフォーマンスと信頼性は.VHDより.VHDXの方が高いので、.VHDXを利用する価値はある。データ用ボリュームとして利用するなら、任意の種類/サイズの仮想ディスクが利用できる。2Tbytes以上の.VHDX仮想ディスクを使う場合は、MBR形式ではなくGPT形式にしてフォーマットしないと、2Tbytes以上の領域にアクセスできないので注意する。
■バックアップにおけるVHDX形式サポート
Windows 7では、システム全体をバックアップする場合、1つのボリュームを.VHDファイルに保存していた関係上、最大2Tbytesのボリュームまでしかバックアップできなかった。Windows 8 DPでは.VHDXファイルに保存するようになったため、より大きなボリュームのバックアップが可能となっている。
Hyper-V 3.0ではPowerShellのサポートが強化され、Hyper-V用に150以上のコマンドレットが用意されている。Hyper-V管理ツールで可能な作業はほぼすべてPowerShellを使って自動化できる。
※Hyper-V関連のコマンドレットの表示
PS C:\> get-command -module hyper-v
CommandType Name ModuleName
----------- ---- ----------
Cmdlet Add-VMDvdDrive Hyper-V
Cmdlet Add-VMFibreChannelHba Hyper-V
Cmdlet Add-VMHardDiskDrive Hyper-V
Cmdlet Add-VMMigrationNetwork Hyper-V
Cmdlet Add-VMNetworkAdapter Hyper-V
Cmdlet Add-VMNetworkAdapterAcl Hyper-V
Cmdlet Add-VMRemoteFx3dVideoAdapter Hyper-V
Cmdlet Add-VMScsiController Hyper-V
Cmdlet Add-VMStoragePath Hyper-V
Cmdlet Add-VMSwitch Hyper-V
Cmdlet Add-VMSwitchExtensionFeature Hyper-V
Cmdlet Checkpoint-VM Hyper-V
Cmdlet Compare-VM Hyper-V
Cmdlet Complete-VMFailover Hyper-V
Cmdlet Connect-VMNetworkAdapter Hyper-V
Cmdlet Connect-VMSan Hyper-V
Cmdlet Convert-VHD Hyper-V
…(以下省略)…
※「vm*」という名前を含む仮想マシンを起動する
PS C:\> get-vm …仮想マシン一覧の取得
Name State CPU(%) AssignedMemory(M) MemoryDemand(M)
---- ----- ------ ----------------- ---------------
vm1 Off 0 0
vm2 Off 0 0
Win 8 x64 DP 0 Running 0 695835033
Win 8 x86 PC1 Running 0 559750840
Win 8 x86 PC2 Running 0 516759224
PS C:\> get-vm vm* | start-vm …仮想マシンを起動する
PS C:\>
Windows Virtual PCと違い、Hyper-V 3.0は管理ツールやPowerShellなどを使って、リモートからも管理できる。また、ユーザーがログオフしても仮想マシンは実行が継続されるため、実験的な用途だけでなく、サーバ上のサービスのように、常にバックグラウンドで動作させるような用途でも活用できる。
Hyper-V 3.0では仮想マシンの「ライブ・ストレージ・マイグレーション(仮想マシンを起動したままの移動)」機能がサポートされている。仮想マシンの設定ファイルやスナップショット、関連付けられている仮想ディスク・ファイルなどをまとめて別の場所へ移動させる機能である。Hyper-Vマネージャで仮想マシンを右クリックし、ポップアップ・メニューから[Move]を実行するだけで、停止中の仮想マシンだけでなく、たとえ実行中の仮想マシンであっても別の場所(フォルダ)へ移動できるようになっている。
Windows Virtual PCでは仮想マシンを移動する手段は用意されておらず、手動でVHDファイルをコピー後、仮想マシンの設定も手動で移行するといった操作が必要であった(もちろん仮想マシンはあらかじめ停止させなければならなかった)。これに対してHyper-V 2.0では、いったんエクスポートしてからインポートすれば仮想ディスクだけでなく、仮想マシンの設定やスナップショットなども含めて移動できたが、この方法では実行中の仮想マシンは移動できない(クラスタを組んで利用する、マシン間でのライブ・マイグレーションについては次回解説。ライブ・ストレージ・マイグレーションは、あくまでも単一のマシン内での移動である)。
ダイナミック・メモリは、Hyper-V 2.0(厳密にはWindows Server 2008 R2 Service Pack 1)で導入されたメモリ管理に関する新機能である。最初から固定的に各仮想マシンにメモリを割り当てるのではなく、需要に応じて必要なメモリだけを仮想マシンに与えたり、不要になった領域があれば回収してほかの仮想マシンに割り当てるといったことができる。サーバに比べて搭載メモリ量が少なかったり、ほかのアプリケーションとの関係でメモリの需要が大きく変動するクライアントPCでは、この動的なメモリ割り当ては重宝するだろう。
今回は、Windows 8で導入されるHyper-V 3.0の機能のうち、クライアント向けの主要な機能について主にWindows Virtual PCと比較して解説してきた。次回は、ライブ・マイグレーションやネットワーク、ストレージ、クラスタ機能など、サーバ向けのHyper-V 3.0の主要機能についてみていく。
#column_refs#
Windows 8 DP版にはまだ実装されていないが、Windows 8では新しく「ReFS(Resilient File System。復元性のあるファイル・システム)」というファイル・システムが導入されることが発表されている。
ReFSは、信頼性と耐障害性に重点を置いて設計された新しいファイル・システムだ。NTFSとはAPIレベルで高い互換性を保ちながらも、特に信頼性とスケーラビリティを最大限重視して再設計されている。ファイル・システムが壊れてデータがアクセスできなくなるという事態を最も避けなければならないものと考え、ディスクの更新は効率よりも信頼性を重視する方法(コピー・オン・ライト方式)を採用している(NTFSのログ方式では電源断などの障害に弱いため利用しない)。たとえ障害が発生してもその影響を局所的な部分にとどめたり、可能な限り破損したデータを救出(サルベージ)したりできるようにし、修復中でもファイル・システム全体をオフラインにしない(NTFSにchkdskをかけると、ボリューム全体がアクセス禁止になるが、ディスクが巨大になればなるほど、これは問題となる)、ファイルのメタデータにはチェックサムを付け(ユーザー・データに付けることも可能)、常にファイル・システム・データの正当性をチェックする、構造をシンプルにする、などの特徴を持つ。
ReFSは、最初にサーバ版のWindows 8で導入されるが、クライアント版では導入されないようである。十分に実績を積んでからクライアントOSへも導入され、NTFSに取って代わる予定となっている。
【※2012/03/07追記】ReFSファイル・システムは、2012年2月末に公開されたWindows Server "8" Beta版のDatacenter Editionで実装されています。連載第4回の記事も参照してください。
「[Windows 8プレビュー] Windows 8 Developer Preview ―― 再構築された次世代Windows ―― 」
Copyright© Digital Advantage Corp. All Rights Reserved.