連載
» 2012年12月06日 18時54分 公開

Windows 8レボリューション:第11回 クライアントHyper-V (3/3)

[打越浩幸,デジタルアドバンテージ]
前のページへ 1|2|3       

 クライアントHyper-Vの使いこなし方などについては今後別記事で詳しく解説する。ここでは、Windows Virtual PCと比較した場合のWindows 8のHyper-Vの特長的な機能をいくつか解説しておく。

VHDX新仮想ファイル形式

 従来のWindows OSおよび仮想環境では、VHDという仮想ファイル形式をずっと利用していたが、Windows 8/Windows Server 2012のHyper-Vでは新しくVHDXという仮想ファイル形式が導入されている(VHD形式も引き続きサポートされる)。VHD形式と比較すると、最大サイズの拡大や内部ブロック・サイズの拡大、データ構造の調整によるアクセス速度の向上、耐障害性の向上などの機能強化が図られている。

ディスク・タイプ VHD形式 VHDX形式
仮想ディスクの種類 固定/動的/差分/パス・スルー 固定/動的/差分/パス・スルー
仮想ディスクのサイズ 3M〜2Tbytes 3M〜64Tbytes
内部ブロック・サイズ 2Mbytes 1M〜256Mbytes(デフォルトでは、動的ディスク=32Mbytes、差分ディスク=2Mbytes)
内部セクタ・サイズ 512bytes 512/4096bytes
パフォーマンス対策 特になし ・4Kbytesセクタ(AFT)のサポート
・内部データ構造を4Kbytes境界に配置することにより、AFT形式のディスクでのパフォーマンス低下を抑止
耐障害性 特になし メタデータのロギング
利用可能なOS/環境 Windows Virtual PC/Hyper-V Windows 8/Windows Server 2012が必要
ユーザー独自のメタデータの埋め込み ○(最大1024項目)
ストレージ・デバイスのTrim/Unmapコマンド・サポート ○(Windows 8がゲストOSの場合のみ利用される)
仮想ディスクの作成/変換 ディスクの管理ツール/diskpart/PowerShell
仮想ディスクのネイティブ・マウント/イジェクト ディスクの管理ツール/diskpart/PowerShell/エクスプローラ
仮想ディスクの仕様比較

 仮想マシンを利用する場合、通常は何Tbytesものサイズの仮想ディスクは使うことはないだろうが、例えばテストのために巨大なボリュームを作成してアプリケーションが正しく動作するかどうかをチェックするという用途に利用できる。Windows 8では最大64Tbytesまでの仮想ディスクを作成できるので、より大きなディスク環境のエミュレーションなどが可能になる(OSによってはもっと小さいサイズのディスクしか扱えない。「Windowsのディスク管理をマスターする」も参照)。

 なお仮想マシンはUEFIブートには対応していないので、MBR方式の限界である2Tbytes以上のサイズの仮想ディスクを作成しても、データ・ボリュームとしてしか利用できない。またその場合、仮想ディスクはMBR形式ではなく、GPT形式で初期化/フォーマットしてしてマウントする必要がある(MBR方式では最大2Tbytesまでしかアクセスできない)。「2Tbytesの制限」の詳細や、UEFI、MBR、GPTといった用語については、連載「PCハードウェア強化ラボ」の第3回「2Tbytes超ディスクをデータ用ストレージとして利用する」を参照していただきたい。

VHDXファイルの作成 VHDXファイルの作成
VHDX形式では、最大64Tbytesの仮想ディスクを作成できる。
  (1)最大で65,536Gbytes(64Tbytes)まで指定可能。

 VHDファイルは、仮想マシンだけでなく、物理マシン上でWindows OSをインストールしてVHDブートさせたり、データ用ディスクとしてVHDマウントさせて利用することもできたが、同様のことはVHDXファイルでも可能である。ただしブート用として利用する場合は、ブート・コードの制限により、128Gbytes以下でないと使えない。

巨大なVHDXファイルの利用例 巨大なVHDXファイルの利用例
64TbytesのVHDX仮想ディスクを作成して、実PCにマウントしたところ。64TbytesのNTFSボリュームを作成できた。このボリューム・サイズの場合、NTFSのクラスタ・サイズは16K/32K/64Kbytesのいずれかしか指定できない。4Kbytesクラスタにしたければ、最大サイズは16Tbytesにする必要がある。
  (1)実ディスク。1Gbytesのハードディスク。
  (2)80GbytesのVHD仮想ディスク。このOS(Windows 8 Pro)をインストールしてブートしている。
  (3)64TbytesのVHDX仮想ディスク。GPT形式でフォーマットして利用している。

150以上のPowerShellコマンドレット

 Windows 8/Windows Server 2012のHyper-VではPowerShellのサポートが強化され、Hyper-V用に150以上のコマンドレットが用意されている。Windows Server 2008 R2の場合とは異なり、Hyper-Vと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-VMSwitchExtensionPortFeature                   hyper-v
Cmdlet          Add-VMSwitchExtensionSwitchFeature                 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
Cmdlet          Disable-VMEventing                                 hyper-v
…(以下省略)…

※「vm*」という名前を含む仮想マシンを起動する
PS C:\> get-vm …仮想マシン一覧の取得

Name                 State   CPUUsage(%) MemoryAssigned(M) Uptime   Status
----                 -----   ----------- ----------------- ------   ------
Server 2012 Ent Eval Running 0           2048              00:48:21 正常稼働中
vm1                  Off     0           0                 00:00:00 正常稼働中
vm2                  Off     0           0                 00:00:00 正常稼働中
Windows 8 Ent Eval   Off     0           0                 00:00:00 正常稼働中
XPSP3                Running 0           1024              00:49:57 正常稼働中

PS C:\> get-vm vm* | start-vm …仮想マシンを起動する
PS C:\>
Name                 State   CPUUsage(%) MemoryAssigned(M) Uptime   Status
----                 -----   ----------- ----------------- ------   ------
Server 2012 Ent Eval Running 0           2048              00:41:18 正常稼働中
Windows 8 Ent Eval   Off     0           0                 00:00:00 正常稼働中
XPSP3                Running 0           1024              00:42:54 正常稼働中

PS C:\>


リモート管理

 Windows 7のWindows Virtual PCと違い、Hyper-Vでは管理ツールやPowerShellなどを使って、リモートからも管理できる。また、Hyper-Vではユーザーがログオフしても仮想マシンの実行は継続されるため、実験的な用途だけでなく、サーバ上のサービスのように、常にバックグラウンドで動作させるような用途でも活用できる。

Hyper-Vの管理ツール Hyper-Vの管理ツール
これはHyper-Vの仮想マシンを管理するHyper-Vマネージャ。リモートのHyper-Vのサービスも管理できる。32bit版のWindows 8では、Hyper-Vのサービスは利用できないが、このツールを使ってリモートのHyper-Vを管理することは可能である。見た目は以前のHyper-V 2.0とあまり違いはないが、Windows 8/Windows Server 2012のHyper-Vでは仮想ディスクの更新の仕組みなどが改良されたため、例えばスナップショットの作成や削除といった操作は以前よりも素早くなっており、仮想マシンを停止しなくてもマージや削除ができる(連載「仮想PCで学ぶWindowsシステム管理」の第6回「Hyper-Vのスナップショット機能を使う」参照)。
  (1)仮想マシンの一覧。Windows Virtual PCよりも仮想マシン全体の様子が分かりやすい。
  (2)実行中の仮想マシンの画面は、リモートからでも「Hyper-V仮想マシン接続」ツールを使って操作/確認できる。

動的メモリ管理

Windows Server Insiderの関連記事 Windows Server 2008 R2の真価第11回「メモリ管理機能が強化されたHyper-VのDynamic Memory

 動的メモリ(またはダイナミック・メモリ)は、Hyper-V 2.0(厳密にはWindows Server 2008 R2 Service Pack 1)で導入されたメモリ管理に関する新機能である。最初から固定的に各仮想マシンにメモリを割り当てるのではなく、需要に応じて必要なメモリだけを仮想マシンに与えたり、不要になった領域があれば回収してほかの仮想マシンに割り当てるといったことができる。サーバに比べて搭載メモリ量が少なかったり、ほかのアプリケーションとの関係でメモリの需要が大きく変動するクライアントPCでは、この動的なメモリ割り当ては重宝するだろう。

 Hyper-V 2.0の動的メモリと比較すると、「スタートアップ RAM」の項目が追加されている点が異なる。通常は、スタートアップ時には多めにメモリを割り当てておき、定常運用時には必要最低限になるように設定しておく。以前のHyper-Vでは初期値と最大値だけを設定していたが、これだと仮想マシン起動時に徐々にメモリ使用量が増加するようなケースではページフォルトの発生数が多くなり、パフォーマンスが悪くなっていた。これに対してWindows 8/Windows Server 2012のHyper-Vでは、最初にまとまった量のメモリを割り当てることができるので無用なページフォルトを避けることができる。そして初期タスクがすべて終了して安定稼働する状態になったら、必要最低限のメモリだけを割り当てるようにして、メモリを有効活用できる。

仮想マシンに対するメモリ割り当ての設定 仮想マシンに対するメモリ割り当ての設定
動的メモリとは、仮想マシンに割り当てるメモリを実行時に動的に変更する機能。これがないと、同時に実行する予定の仮想マシン数と物理的な空きメモリ容量に応じて、事前にメモリ割り当てを慎重に計画しなければならない。Windows 8/Windows Server 2012のHyper-Vでは、初期値とは別に上限と下限値を設定できるようになっている。これにより、例えば最初に1Gbytes割り当てて仮想マシンを起動するが、メモリの需要が少なければ512Mbytesまで減少させるといった使い方ができる。起動時だけ多くのメモリを要求するような仮想マシンの実行に向いている。なお動的メモリが有効なゲストOSは限られている。この例ではWindows XP SP3で動的メモリを有効にしているが、Windows XPでは動的メモリがサポートされないため、実際にはスタートアップのサイズのまま固定的に割り当てられることになる。
  (1)起動時に割り当てるメモリ・サイズ。
  (2)最小メモリ・サイズ。初期値と同じかそれ以下に設定できる。初期値より大きくはできない。
  (3)最大メモリ・サイズ。デフォルトでは1Tbytesになっているが、実際には物理空きメモリ・サイズによって制限される。
  (4)空きメモリ・サイズがここで指定した割合を下回ると、仮想マシンに対してメモリが追加で割り当てられ、上回ると不要な分が解放される。


 以上、簡単にクライアントHyper-Vの機能について見てきた。Hyper-Vの各機能の使い方や活用方法などについては、今後別記事で詳しく解説する予定である。


「Windows 8レボリューション」のインデックス

Windows 8レボリューション

前のページへ 1|2|3       

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

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

メールマガジン登録

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