正式リリース日が決まったWindows 10。その仮想化機能「Hyper-V」とは?Windows 10 The Latest

正式リリース日が確定し、プレビュー版の更新頻度も高まってきたWindows 10。その仮想化機能であるクライアントHyper-Vに焦点を当て、その機能を概説する。

» 2015年06月04日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Windows 10 The Latest」のインデックス

連載目次

「Windows 10 The Latest」は、2015年7月末に正式リリースが予定されているWindows 10の最新情報をお伝えするコーナーです。


Windows 10のリリースが7月29日に決定

 Hyper-Vの解説に入る前に、Windows 10のリリース情報についてまとめておく。

 Windows 10は今夏リリース予定とされていたが、正式にリリース日が2015年7月29日と決まった。この日からWindows 7やWindows 8.1ユーザー向けの無償アップグレード(7月29日から1年間)も開始される。日本では時差のため、7月30日から始まるだろう。

 また2015年4月頃から配布が開始されたKB3035583の更新プログラムをインストールしているWindows 7 SP1/8.1ユーザーに対しては、Windows 10へのアップグレード予約の開始を通知するメッセージが通知領域に表示されるようになっている(該当するOSを持つ全てのシステムで表示されるわけではないようだ)。

新ビルド10130がリリースされる

 リリース日が正式に決まり、Windows 10の開発も大詰めを迎えているようである。正式リリース前のPreview版も頻繁に更新されており、4月30日にビルド10074、5月21日にビルド10122、5月29日にビルド10130と、立て続けにリリースされている(ISOファイルの提供はビルド10074まで。ビルド10130にするには、Windows Updateで設定を「fast」にして更新する)。

 新ブラウザーMicrosoft Edge(Project Spartan)も搭載され、大きな機能追加や改良などはすでにだいたい終わったようである。最近のリリースでは不具合の修正や、細かい仕様/GUIの変更・修正などがメインとなっている。目立つような大きな機能強化はないのでここでは詳細は取り上げない。改善点については上のブログ記事を参照していただきたい。

Windows 10 Insider Preview ビルド10130 Windows 10 Insider Preview ビルド10130
メッセージもかなり日本語化され、アイコンのデザインも以前のビルドのようなフラット感の強いものから、少し立体感のあるものに変更された。

クライアントHyper-Vとは

 さて、それではWindows 10の新しいHyper-Vについて見ていこう。

Windows Server Insiderの関連記事 Windows OSに標準搭載された仮想化機能Hyper-V」(Windows Server 2008連載

 Hyper-Vは、もともとはサーバー系のOS(最初はWindows Server 2008)に実装された仮想化実行環境である。仮想化方式として、いわゆる「ハイパーバイザー型」の仮想化実行環境を利用しているので、Hyper-Vと呼ばれている。ハイパーバイザーと呼ばれる仮想化基盤上に、ゲストOSだけでなく、ホストとなるOSも載せ、システム全体を仮想環境上で実行している。詳細については関連記事を参照していただきたい。

Windows Server Insiderの関連記事 クライアントHyper-V」(Windows 8連載)
Windows 8.1のHyper-V」(Windows 8連載)

 クライアントOS向けの仮想化実行環境としては、Windows 7ではWindows Virtual PC(以下WVPC)が使われていた。だが、Windows 8/8.1ではWVPCの代わりに、サーバーOSと同じHyper-Vが使われるようになった(WVPCとHyper-Vの違いなどについては関連記事参照)。Windows 10のクライアントHyper-V(および次期サーバーOSのHyper-V)はこの後継となる製品であり、チェックポイント機能や構成ファイル形式などでいくらか機能が強化されている。詳細は以下のサイトを参照のこと。

Hyper-Vの管理画面と接続画面 Hyper-Vの管理画面と接続画面
Windows Virtual PCの場合と違い、Hyper-V環境では、実行中の仮想マシンに(ほぼ)リモートデスクトップのような形で接続して操作する。そのため、同一PCだけでなく、リモートからでも仮想マシンに接続して操作できる。

 Windows 8/8.1のHyper-Vと比較した場合の主な強化点は次の通りである。サポートされるOSや仮想マシンの仕様、制限などについては、正式にWindows 10がリリースされてからあらためてお伝えする。

●仮想マシンの構成ファイルの形式の変更

 Hyper-Vで管理する仮想マシンの構成ファイルは、以前はXML形式などで記述されていた。一方、Windows 10のHyper-Vでは新しくバイナリ形式になり、アクセス速度や耐障害性などが向上している。この変更に伴い、従来の形式のHyper-VはVer.5、新しい形式のHyper-VはVer.6となっている。Windows 10のHyper-Vはどちらのバージョンでも扱えるものの、Ver.6に変換するとWindows 10以降専用になり、以前のHyper-Vではもう管理できなくなる(Ver.5に戻すことも不可能)。

●動的なNICやメモリサイズの変更

 仮想マシンの実行中にネットワークアダプターを追加/削除したり、メモリサイズを変更したりできる。これらの変更のために仮想マシンをいちいち止めなくてもよい。

●統合ソフトウエアのWindows Updateによる自動更新

 従来のHyper-Vでは、「統合サービス」というHyper-V向けのドライバーコンポーネントが提供されており、各仮想マシン上のゲストOSにこれをインストールしていた。だが今後は統合サービスの機能はWindows Update経由で自動的に配布されるため(サポート対象OSの場合のみ)、ユーザーが手動でインストールする必要はなくなっている。

●Linuxでのセキュアブートサポート

Windows Server Insiderの関連記事 UEFIサポートとセキュアブート」(Windows 8.1連載)

 セキュアブートとは、ブートコードがウイルスなどによって改ざんされ、OSがブートする前にシステムを乗っ取られるのを防ぐための機能である。以前のHyper-VではゲストOSがWindows OSの場合にのみセキュアブートが可能であった。Windows 10のHyper-Vでは、いくつかのLinuxでもセキュアブートが可能になっている。

運用チェックポイントと標準チェックポイント

 Windows 10のHyper-Vでは重要な機能として、新しく「運用チェックポイント」と「標準チェックポイント」という2種類のチェックポイントがサポートされているので、これについて少し補足しておく。

●チェックポイントとは?

 チェックポイントとは、仮想化ソフトウエアにおける、「仮想マシンの設定や実行状態、ディスク内容などを保存しておく機能」のことである。チェックポイントを作成しておくと、後で簡単にその状態に戻すことが可能になる。実機(物理マシン)ではなかなかまねができない、仮想化環境特有の便利な機能だ。

 例えばシステムの設定を変更する前にチェックポイントを作成してから作業を行えば、何か問題が起こってもすぐに元に戻せる。また設定を変えながらいくつかチェックポイントを作成しておけば、どの状態でもすぐに再現して、そこから再実行できる。実行中の仮想マシンのチェックポイントを作成しておけば、実行中の状態に復帰させることすら可能である。これにより、同じ環境を再現して何度でも同じテストをしたり、条件を変えて再テストしたりできる。

●従来のチェックポイントの問題点

 このようにチェックポイントは実験用途では非常に便利な機能だ。しかし、実行中の状態まで保存するチェックポイント機能はトラブルの原因になることがあるので、注意が必要だ。例えばデータベースサーバーやExchangeメールサーバー、ドメインコントローラーなど、内部でトランザクション処理を行っているようなシステムにおいて、実行中の仮想マシンのチェックポイントを作成したとする。そして後でそれを何回も再実行したり、古いチェックポイントにさかのぼって実行したりする。すると、内部データの整合性がとれなくなって、システムが使えなくなる可能性がある。

 このようなケースでは、仮想マシンをきちんとシャットダウンして(もしくはサービスを止めて)、その状態でチェックポイントを作成したり、バックアップしたりする必要がある。だがチェックポイントを作成するためにいちいちシャットダウンしたりサービスを停止したりするのは面倒だし、一時的にでもサービスが停止するのは避けたいところだろう。

●2種類に増えたチェックポイントの方式

 こんなケースで役に立つのが、Windows 10のHyper-Vで新しく追加された「運用チェックポイント」という機能である。運用チェックポイントでは、「VSS(ボリュームシャドウコピーサービス)」の機能を使ってバックアップを取っている所が改善点である。一方、以前からあるチェックポイントは「標準チェックポイント」と呼ばれることになった。

新しいチェックポイント機能 新しいチェックポイント機能
Windows 10のHyper-Vでは運用チェックポイントと標準チェックポイントの2種類がある。運用チェックポイントはVSSの機能を使ったディスクのバックアップ機能、標準チェックポイントは従来のHyper-Vのチェックポイント機能のことである。運用チェックポイントでは、VSSによって整合性のあるディスクテータを取得する一方で、仮想マシンが実行中であってもCPUやメモリの内容は保存されない。次回は電源断の状態から起動することになる。
  (1)仮想マシンのチェックポイント機能を設定するにはこれを選択する。
  (2)チェックポイント機能を有効にするにはこれをオンにする。
  (3)デフォルトでは運用チェックポイントが選択されている。
  (4)VSSがサポートされていないなど、運用チェックポイントを作成できない場合は標準チェックポイントにフォールバックする。
  (5)これを選択すると、従来と同じチェックポイントが作成される。

 標準チェックポイントは、仮想ディスクの差分機能と、メモリやCPUの状態を保存する状態保存ファイルによって実現されている。標準チェックポイントを作成すると、元の仮想ディスクの内容はロックされ、以後の書き込みは全て別の差分ファイルに行われるようになる。仮想マシンが実行中なら、さらにメモリとCPUの内容も状態保存ファイルに保存される。そして、ある標準チェックポイントへ戻すように指示すると、差分ディスクの内容を破棄し、状態保存ファイルからCPUやメモリの内容を復旧させてから、仮想マシンを起動する。

 これに対して運用チェックポイントを作成する場合は、まず仮想マシン内でVSSの機能を使って仮想ディスクの内容を確定させ、その状態を運用チェックポイントのイメージとして保存する。ゲストOSがLinuxの場合は、ディスクの内容を強制フラッシュしてからイメージを取得する。

 このとき仮想マシンが実行中であっても、CPUやメモリの状態は保存せず、ディスクイメージのみが保存対象となる。そのため、運用チェックポイントを適用した場合は、仮想マシンは必ず停止した状態から起動されることになる。

運用チェックポイントの作成 運用チェックポイントの作成
VSSによって運用チェックポイントが作成されたときに表示されるメッセージ。

●運用チェックポイントは仮想マシンの安全なバックアップ機能

 VSSはWindows OSで標準的に使われるバックアップ時のイメージ取得機能である。そのため、VSS経由で運用チェックポイント(ボリュームのスナップショット)を作成するということは、仮想マシン内でバックアップソフトウェアを使ってディスクイメージのバックアップを取るのと同じである。そしてある運用チェックポイントの時点へ戻すということは、フルバックアップからリストアして、その後システムを起動するのと同じになる。

 VSSに対応しているアプリケーション(VSSライターという)は、VSSの要求に応じて整合性・一貫性のある手法でデータを読み書きするようになっている。これにより、運用チェックポイントを利用すれば、システムを実行したまま、安全にバックアップを取得できることになる。

 ただし互換性のために、運用チェックポイントではなく従来の標準チェックポイントを利用することもできる。またゲストOSでVSSがサポートされていない場合は、運用チェックポイントではなく標準チェックポイントが作成されることになる。

Hyper-Vを利用するためのシステム要件

 Windows 10でHyper-Vを利用するためには、CPUがHyper-Vの求める仮想化機能などを持っている必要がある。必要な要件は次の通りだ。

■64bit版のWindows 10
 Hyper-Vで仮想マシンを実行するにはホストOSとして64bit版のWindows 10が必要。32bit版Windows 10では、Hyper-Vの管理しかできない。

■64bit CPU
 64bit版のWindows 10を実行するために必要。

■仮想化支援機能
 CPUの仮想化を支援するハードウエア機能。仮想マシンごとに独立したCPU実行環境を用意し、管理する。実CPUでは、Intel-VTやAMD-Vなどという名称で提供されている。

■SLAT(Second Level Address Translation)機能
 ページングの仮想化を補助する機能。仮想マシンごとのメモリアドレス空間を、ホストCPUの実メモリアドレス空間に再マップする。実CPUでは、Intel EPTやAMD RVI/NPTなどという名称で提供されている。

■DEP(Data Execution Prevention)機能
 不正な命令コードの実行を禁止する機能。

 これらの機能があるかどうかはmsinfo32コマンドを実行すれば分かる。

msinfo32による仮想化機能のチェック msinfo32による仮想化機能のチェック
[ファイル名を指定して実行]機能で「msinfo32」を実行する。
  (1)これを選択する。
  (2)仮想化支援機能があるかどうか。「はい」になっていることを確認する。
  (3)SLAT機能があるかどうか。「はい」になっていることを確認する。
  (4)BIOSやファームウェアで仮想化支援機能やSLATが有効になっているかどうか。「はい」になっていることを確認する。
  (5)DEP機能があるかどうか。「はい」になっていることを確認する。

 コマンドプロンプト上でsysteminfoコマンドを実行してもよい。出力の最後に、CPUがHyper-V対応かどうかが表示される。

C:\>systeminfo

ホスト名:         WIN10-TP10130ZI
OS 名:            Microsoft Windows 10 Enterprise Insider Preview
OS バージョン:    10.0.10130 N/A ビルド 10130
OS 製造元:        Microsoft Corporation
OS 構成:          スタンドアロン ワークステーション
OS ビルドの種類:  Multiprocessor Free
……(中略)……
Hyper-V の要件:   VM モニター モード拡張機能: はい ……仮想化支援。これが「はい」であること
                  ファームウェアで仮想化が有効になっています: はい ……これが「はい」であること
                  第 2 レベルのアドレス変換: はい ……SLAT。これが「はい」であること
                  データ実行防止が使用できます: はい ……DEP。これが「はい」であること

C:\>



 Windows 10をインストールせずに調べたい場合は、インストール対象となるシステムのCPUの型番を調べ(現在Windows OSが入っているシステムなら「システム情報」画面などで確認できる)、以下のサイトなどでCPUの機能をチェックする。

 上のページの検索窓に例えば「i5-450M」などと入力して検索する。仮想化支援機能「インテル バーチャライゼーション・テクノロジー (VT-x)」と、SLAT「インテル VT-x 拡張ページテーブル (EPT)」、DEP「エグゼキュート・ディスエーブル・ビット」の欄をそれぞれ確認し、「Yes」となっていたらWindows 10をインストールしてHyper-Vを利用できる。

CPUのスペック情報 CPUのスペック情報
CPUの型番が分かっている場合は、IntelのサイトなどでCPUごとの機能を調べるとよい。これは「Core i5-450M」というノートPC向けのCPUの機能を調べているところ。5年くらい前のCPUだが、EPTには対応しているようである。これより古いと(Windows 7発売当初の頃のPCなど)、EPTが利用できないCPUが多くなる。
  (1)ここにCPUの型番を入力して検索する。
  (2)仮想化支援機能(VT-x)。なお未対応の場合は、「No」ではなく、この項目自体が表示されないことがある。
  (3)SLAT機能(EPT)。
  (4)64bit命令セット(x64)。
  (5)DEP機能(Nx)。

 64bit命令セットと仮想化支援機能はほとんどのCPUで利用できるだろう。だが、古い(7〜8年以上前の)CPUだとSLATが利用できないことがある。そのようなシステムではHyper-Vの利用はあきらめるか、VMwareのような、他の仮想化ソフトウエアを利用する。

Hyper-V機能のインストール Hyper-V機能のインストール
Hyper-V機能をインストールするには、「コントロール パネル」の「Windowsの機能の有効化または無効化」画面で、Hyper-Vのチェックボックスをすべてオンにする。
  (1)こちらはHyper-Vのプラットフォーム(Hyper-Vの実行基盤)。CPUの要件を満たしていなかったり、BIOSで仮想化機能が無効になっていたりすると、オンにできない。
  (2)この例では、BIOSで仮想化機能(VT-x)を無効にしていたために、オンにできなかった。
  (3)こちらはHyper-Vの管理ツール。CPUの機能や32bit/64bitの違いにかかわらず、管理機能だけならどのWindows 10でも利用できるはずである。この管理ツールを使うと、リモートのHyper-Vを管理できる。

クライアントHyper-Vの用途について

 そもそもWindows 7でWVPCがサポートされていたのは古い環境との互換性を実現する「Windows XP Mode」をサポートするためであった。Windows 7(およびWindows Vista)ではUACや新しいIEなどの影響もあって、Windows XPのアプリケーションがそのままでは使えない、という問題があった。それを解決するために用意されたのが、Windows XPを仮想マシン上で動作させるWindows XP Modeであった。これはWindows XPをそのまま実行しているので互換性の問題もほとんどなかった。その一方で、使い方にやや“癖がある”とか(関連記事参照)、仮想マシンを実行するためにハードウエアに対する要求が高くなるなど、いくらか問題もあった。

 現在ではすでにWindows XPはサポート期間が終了しているので、今となってはWindows XPをサポートする必要はないし、Windows 7向けのプログラムは意外とWindows 8/8.1やWindows 10上でもそのままで使えることが多いので、互換性を実現するためにHyper-Vを利用する必要ないだろう。Hyper-Vには無料で利用できるOSイメージは何も付属していないので、全てのユーザーがこれを利用することはないはずだ。

 Hyper-VはもともとはサーバーOS向けに提供されていた機能なので、サーバーOSと同じように、データベースやメールサービス、Webサービスなどを動かすことも不可能ではないが(WVPCと違って、ユーザーがサインアウトしていても仮想マシンは実行できる)、あまり向いていないだろう。サーバーシステムと違って、クライアントPCはずっと連続稼働させるようなものではないからだ。

 とすると、クライアントHyper-Vの使い道として一番想定されるのは、テストや開発などの用途だと思われる。アプリケーションの互換性テストなどのために、OSやService Pack、IEバージョンなどが異なる環境を複数用意して実行するという用途では役に立つだろう。またWindows Phone 8.1向けを含むユニバーサルWindowsアプリ開発では、Hyper-V上にWindows Phone 8.1エミュレータがインストールされるので、クライアントHyper-Vが必要になる。

 現在では64bit PCが一般的になり、高性能なCPUや大量のメモリを利用できるようになったこともあって、従来のWVPCのときよりも多くの仮想マシンを容易に利用できるようになっている。


 今回はクライアントHyper-Vの概要について見てきた。Windows XP Modeもなくなり、クライアントHyper-Vは多くのユーザーにとってはあまり需要がない機能かもしれない。だが仮想化の実行基盤として見ると、Windows 7のWindows Virtual PCよりも機能が豊富で動作が安定しているなど、(慣れれば)使いやすい。ぜひ活用していただきたい。

「Windows 10 The Latest」のインデックス

Windows 10 The Latest

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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