Hyper-V To Go(仮名) も夢じゃない!?
Windows To Goのネタ、前回が最終回と言いましたが、もう1回だけおつきあいください。Windows Developer Preview x64のWindows To Goメディアを準備したとして、Hyper-V 3.0は利用できるか否かという話です。
Windows To Goは、Windows 8(開発コード名)の特別なインストールオプションと言うわけではなく、単にUSB 3.0/2.0のUSBリムーバブルメディア(USB 3.0を推奨)にWindowsのインストールと起動環境を、アプリケーションや設定を含めて入れ込んだだけのものです。決して、機能縮小版、Windows 8のサブセットというものではありません。
簡単に言ってしまえば、Windows 8のインストール先がUSBリムーバブルメディアというだけで、機能が大きく制限されるということもありません(一部機能が制限されるかもしれませんが)。Windows 8のx64版に搭載予定のクライアントハイパーバイザー、Hyper-V 3.0も例外ではありません。Windows To Goで起動したWindows 8だからといって、Hyper-Vの機能を有効化できない、利用できないということはありません。
次の写真は、Windows Developer Preview x64のWindows To Goメディアを使用して、Panasonic Let'snote CF-R9を起動し、USBから起動したHyper-V上で仮想マシンを実行しているところです。なお、USB 2.0接続のUSBメモリだとパフォーマンスが悪すぎるので、USB 2.0の外付けハードディスクケースを使用しています。

次のスクリーンショットは、仮想ネットワークスイッチの設定画面です。このように、Hyper-V 3.0では、無線LAN接続を使用した仮想ネットワークスイッチがサポートされます。ラップトップでも、モバイルでも、ハイパーバイザーが利用できるということです。
次のスクリーンショットは、同じWindows To Goメディアを使用して、別のPCを起動したところです。Windows To Goだから、別のPCを起動しても、ホスト名(管理OSのコンピューター名)は変わりません!! USBリムーバブルメディア内に作成した仮想マシンは、別のPCでも起動できます。しかし、仮想ネットワークスイッチがエラーになります。Hyper-Vの仮想環境は、ホストOSのハードウェアに依存する部分が大きいため、こういうことになります。
この例では、仮想マシンを既定のパス、つまりWindows To GoのUSBリムーバブルメディア上のパス(Cドライブ)に配置しています。仮想マシンを起動した場合、Windows To GoのOSイメージへのI/Oと、仮想マシンのゲストOSがVHDファイルに対するI/Oが、USB接続に集中することになるため、当然ながらディスクI/Oパフォーマンスは良くありません。この点は、物理PCのローカルディスクやiSCSI SANストレージの利用で解決できるかもしれません。ハードウェア依存によるエラーの発生や、ディスクI/Oのパフォーマンス問題を許容できるのであれば、デモ環境や評価環境を持ち歩くのにWindows To GoでHyper-V環境をまるごと持ち歩けるかもしれません。言うなれば、「Hyper-V To Go」(筆者の造語)です。
Windows 8が発表されたBUILDカンファレンスの以下のプレゼンテーションによると、「Reliable: 2 year expected lifetime under typical Windows I/O load(信頼性: 標準的なWindowsのI/Oで、2年で使えなくなると想定)」だそうなので、メディアの信頼性の点でも制約があることには十分に留意しておく必要があるでしょう。
Running Windows from an external USB drive with Windows To Go (Steve Silverberg - Principal Lead Program Manager Microsoft Corporation)
[URL] http://video.ch9.ms/build/2011/slides/HW-245T_Silverberg.pptx
Windows 8の新機能、Windows To Goですが、Windows Server 8(開発コード名)でも同様にサポートされるのかどうかは、現時点では不明です。Windows 7 EnterpriseでサポートされるVHDブート機能が、Windows Server 2008 R2でも利用可能なことを考えると、技術的にはWindows Server 8でもWindows To Goからの起動は可能かもしれません。ただ、まだプレ・ベータの段階なので、試していませんし、試すつもりもありません(Windows Server Developer Previewではできそうな気はしています)。
実は、WindowsのUSBリムーバブルメディアからのブートは、現在のバージョンでも限定的ながらサポートされています。それは、無償のスタンドアロンハイパーバイザー製品「Microsoft Hyper-V Server 2008 R2」(現在のバージョンは2008 R2 SP1)です。次のスクリーンショットは、8GBのUSB 2.0メモリを使用して、Microsoft Hyper-V Server 2008 R2 SP1を起動したところです。
Microsoft Hyper-V Server 2008 R2 Service Pack 1 (SP1) のダウンロード
[URL] http://technet.microsoft.com/ja-jp/evalcenter/dd776191

限定的と言ったのは、「相手先ブランド供給メーカー(OEM)に対してのみサポート」「対象となるデバイスは、Universal Serial Bus (USB) 2.0 互換の標準の大容量記憶装置 (クラス 08h) であることが必要」「UFD は、サーバー システムに組み込まれた非リムーバブルの内蔵コンポーネントであることが必要(Removable Media Bit が 0)」「16 GBの容量 (最低でも 8 GB)」などなどの要件をクリアする必要があるということです。一般向けにはサポートされない機能ですが、評価目的であればだれでも試してみることができます。作成ツールとして、Windows OPK(OEM Preinstall Kit)のツール(ImgaeX.exeやBootsect.exe)を利用していますが、一般ユーザーはWindows OPKの代わりに、Windows自動インストールキット(AIK)のものを利用できます。
TechNet Library > Microsoft Hyper-V Server 2008 R2 を USB フラッシュ ドライブに展開する
[URL] http://technet.microsoft.com/ja-jp/library/ee731893(WS.10).aspx
Windows 7 用の Windows 自動インストール キット (AIK)
[URL] http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=696DD665-9F76-4177-A811-39C26D3B3B34
Windows Developer PreviewにおけるWindows To Goメディアの作成方法と、Hyper-V Server 2008 R2(SP1)メディアの作成方法は、非常によく似ています。使うツールも同じ(ImageX.exeとBcdboot.exe)です。実は、Windowsのインストール イメージ(.wim)をUSBメディア上に作成したNTFSボリュームに展開するか、USBメディア内に作成したVHDファイル内に展開するかの違いしかありません。なお、Windows To Goメディアの作成方法については、プレ・ベータ段階なので説明することはしません。将来、作成ツールが提供されるかもしれませんし、この機能自身がなかったことになるかもしれないので。作成方法は、先ほどのBUIDカンファレンスのプレゼンテーションの17ページ「Deployed and managed Like Windows」をご覧ください。
次のスクリーンショットは、Microsoft Hyper-V Server 2008 R2 SP1が入っているUSBメディアをWindows 7 PCに接続して、中身を参照したところです。USBメモリには、VHDファイルとブート環境(bootmgrおよびBOOTフォルダー)が入っているだけで、Microsoft Hyper-V Server 2008 R2 SP1のインストールイメージは、VHDファイルの中にあります。このブログでも何度か取り上げたVHDブート環境を、USBメモリに詰め込んだものです。
VHDブートに関しては、このブログの過去の投稿をご覧ください(COMPUTERWORLDサイトのリニューアルにより、リンクが切れているところがあるので、ご了承ください)。
VHD ブート再考 (その1) (2010/11/08)
VHD ブート再考 (その2) (2010/11/15)
VHD ブート再考 (その3) (2010/11/22)
VHD ブート再考 (その4) (2010/11/29)
VHD ブート再考 (おまけ) (2010/12/13)
一方、次のスクリーンショットは、Windows To Goのメディア(1パーティションで構成)をWindows 7 PCに接続して中身を参照したところです。USBメディア上のNTFSファイルシステムに、直接、Windowsのイメージとブート環境(bootmgrおよびBOOTフォルダー)が展開されているのがわかります。
USB 2.0を前提とするMicrosoft Hyper-V Server 2008 R2のUSBブートは、ディスクI/Oのパフォーマンスが出ないため、セットアップやOS設定の変更に時間がかかります。これは私の勝手な想像ですが、もしHyper-V 3.0ベースのMicrosoft Hyper-V Serverが出たら、USBメモリからのブートサポートは、現在のVHDブート方式から、Windows To Go方式になるのではないでしょうかまた、OEMベンダーに対して、Windows Server 8のHyper-Vを、Windows To Goで実装するというオプションも提供されるかもしれません。
ちなみに、Microsoft Hyper-V Server 2008 R2は、USBブートを標準でサポートするために、あらかじめUSBブートのためのカスタマイズがされているそうです。例えば、ブートデバイスのタイムアウトを延長する「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP\PollBootPartitionTimeout」の既定値が「30000(30秒?)」に設定されているなどです。Windows 7やWindows Server 2008 R2では、この値の既定値は「0」。Windows Developer PreviewおよびWindows Server Developer Previewでは「30000」でした。どうです、Windows Server Developer PreviewでもWindows To Goできそうでしょう。