第3回 Hyper-Vの主要な改善点:Windows Server 2012 R2パワー(1/2 ページ)
Windows Server 2012 R2のHyper-Vでは仮想マシンのアーキテクチャが更新されたり、仮想ディスクの帯域管理や動的リサイズなどのSLA向上、拡張セッションモードによる使い勝手の向上、自動アクティベーションなど、多くの機能強化が行われている。
「Windows Server 2012 R2パワーは、2013年10月から出荷が始まったWindows Server 2012 R2の注目機能について解説するコーナーです。
※今回の記事はPreview版ベースの以前の記事をリライトしたものです。
前回はWindows Server 2012 R2の主要な改善点を紹介した。今回はHyper-Vの機能改善点について簡単に解説する。
Windows Server 2012 R2のHyper-Vの改善点
Windows Server 2012 R2のHyper-Vにおける新機能や機能強化点を次に示しておく。
機能 | 新機能/強化 | 概要 |
---|---|---|
共有ディスク | 新機能 | ・VHDXファイルを仮想マシン間の共有ストレージとして利用可能 ・VHDXファイルをクラスター共有ボリューム(CSV)として利用可能 ・VHDXファイルをスケールアウトファイルサーバーで利用可能 ・SCSI接続のVHDXファイルでのみ共有可能(OSのシステムディスクや差分ディスクでは利用不可) ・共有可能なゲストOSはWindows Server 2012かWindows Server 2012 R2のみ |
仮想ディスクの動的サイズ変更 | 強化 | ・仮想マシン実行中の動的なボリュームサイズ拡大 ・仮想マシン実行中の動的なボリュームサイズ縮小(ボリュームの末尾に空き領域がある場合のみ) ・ただし実行中の拡大/縮小はVHDXでのみサポート ・SCSI接続の仮想ディスクでのみサポート(ブートドライブの動的リサイズは「第2世代」の仮想マシンでのみサポート |
ストレージQoS | 新機能 | ・最大IOPS(1秒当たりの最大読み書き量)の制限 ・最低IOPSの予約 ・仮想マシンごとのIOPSの測定(課金などのためにIOPS値を計測可能)。平均値や遅延時間、総読み出し量、総書き込み量などを計測可能 |
仮想マシンのSLA向上 | 強化 | ・ネットワークアダプターの帯域管理 ・ディスクインターフェイスのIOPS管理 ・クラスターにおけるネットワークの接続性の監視 |
ライブマイグレーション | 強化 | ・Windows Server 2012 R2同士だけでなく、Windows Server 2012からのライブマイグレーションもサポート ・Windows Server 2012からWindows Server 2012 R2へのライブマイグレーションはダウンタイム無しで実行可能。これにより、Windows Server 2012からの移行が容易になる(逆方向のマイグレーションは不可) ・マイグレーションのパフォーマンスを制御するためのオプション設定の導入 ・マイグレーション時にデータの圧縮やSMB 3.0のSMB Direct(OSを介さずにハードウェアDMAで転送する技術)、SMBマルチチャネル転送などを利用可能 |
仮想マシンの世代サポート | 新機能 | ・オーバーヘッドを軽減させた新しい仮想マシンアーキテクチャの導入 ・従来のものは「第1世代」、新しいものは「第2世代」として区別 ・第2世代では、セキュアブート、SCSIブート、SCSI DVDブート、ネットワークPXEブート、UEFIファームウェアをサポート ・第2世代では、レガシーデバイスサポートを削除してオーバーヘッドを軽減 |
統合サービス | 強化 | ・「ゲスト サービス」という新しい統合サービス機能を追加 ・実行中の仮想マシンに対して、ネットワーク接続無しでのファイルコピーのサポート |
エクスポート機能 | 強化 | ・仮想マシン実行中のエクスポートのサポート(エクスポートのために仮想マシンをシャットダウンする必要がない) |
フェイルオーバークラスタリングとHyper-V | 強化 | ・クラスターを構成する仮想マシンの実行中に、ブートディスクやデータディスクに障害が発生したことを検出すると、自動的にクラスター内の他の場所へリロケーションして再起動する ・ハードウェアの障害などによってネットワークの接続性が途切れたときも自動的にリロケーションする |
拡張セッションモード | 新機能 | ・セッションモードの拡張(USB接続デバイスやスマートカード、オーディオ、プリンター、クリップボードなどを含む各種ローカルデバイスのサポート) ・リモートデスクトップ接続での仮想マシンへの接続のサポート |
Hyper-Vレプリカ | 強化 | ・拡張レプリカサーバーのサポート。通常のレプリカサーバーに加え、レプリカ先の障害に備えて、そこからさらにもう1台の拡張レプリカサーバーをサポート。障害発生時にはその拡張サーバーで業務を引き継ぐ ・レプリケーションの頻度が固定的な間隔でなく、変更可能になった |
Linuxサポート | 強化 | ・動的メモリのフル機能のサポート ・オンラインバックアップ ・オンラインVHDXリサイズ ・新ビデオドライバー |
自動仮想マシンアクティベーション | 新機能 | ・Hyper-V上にインストールしたWindows Server 2012 R2の仮想マシンを自動的にアクティベーションする(AVMA:Automatic Virtual Machine Activation) ・AVMAではKMSサーバーやネットワーク接続などは不要 ・ただしAVMA用の特別なキーを使用する |
Windows Server 2012 R2のHyper-Vの新機能/機能強化点 |
各Server OSのHyper-Vホストおよび仮想マシンの仕様を次に示しておく。Windows Server 2012 R2版では、これらの仕様はWindows Server 2012のHyper-Vのものと同じままのようである。
OS | Windows Server 2008 R2 | Windows Server 2012 | Windows Server 2012 R2 |
---|---|---|---|
Hyper-Vホストごとの最大論理プロセッサ数 | 64 | 320 | 320 |
Hyper-Vホストごとの最大仮想CPU数 | 512 | 2048 | 2048 |
Hyper-Vホストの最大物理メモリサイズ | 1Tbytes | 4Tbytes | 4Tbytes |
VMごとの最大CPU数 | 4 | 64 | 64 |
VMごとの最大メモリサイズ | 64Gbytes | 1Tbytes | 1Tbytes |
ホストごとの最大同時アクティブVM数 | 384 | 1024 | 1024 |
最大仮想ディスクサイズ | 2Tbytes(.vhd) | 64Tbytes(.vhdx) | 64Tbytes(.vhdx) |
ゲストNUMA | 不可 | 可 | 可 |
クラスター内の最大ノード数 | 16 | 64 | 64 |
クラスター内の最大VM数 | 1000 | 8000 | 8000 |
Windows Server 2012 R2のHyper-Vにおける最大サポートサイズなどの仕様は、Windows Server 2008よりも拡大されているが、Windows Server 2012のHyper-Vと同じである。
Hyper-V管理ツール
以下にWindows Server 2012 R2のHyper-Vマネージャーの画面を示しておく。
Hyper-Vマネージャー画面
Windows Server 2012 R2のHyper-Vマネージャーの画面例。以前のバージョンとほとんど違いはない。
(1)以前の「スナップショット」は「チェックポイント」という名称に変わったが、機能的には同じものである。
(2)詳細は後述するが、仮想マシンに「世代」という概念が導入された。以前のものは第1世代、Windows Server 2012 R2で新しく導入されたものが第2世代だ。
Hyper-Vマネージャーの画面は、以前のWindows Server 2012のHyper-Vマネージャーとあまり変わらないように見える。
Hyper-Vマネージャー画面の中央に「チェックポイント」というペインがあるが、これは以前の「スナップショット」と同じものである。この用語変更は、System Center製品に含まれている「Virtual Machine Manager(SCVMM)」での呼び方に合わせたものだろう(SCVMMについて関連リンク参照)。ただしPowerShellのコマンドレット名は(互換性を考えると当然だが)「snapshot」のままである(例:Get-VMSnapshot、Export-VMSnapshotなど)。
Hyper-VのWMI Provider名前空間の変更
主にスクリプトでHyper-Vを操作する管理者にしか関係ないが、Windows Server 2012 R2の内部では、Hyper-VのWMI Providerインターフェイスが一部変更されている。Windows Server 2012のHyper-Vでは「root\virtualization」と「root\virtualization\v2」の両方の名前空間が使えたが(後者はWindows Server 2012で新規導入されたもの)、Windows Server 2012 R2のHyper-Vでは「root\virtualization」が廃止され、「root\virtualization\v2」の方しか使えなくなっている。このため、古いHyper-V用スクリプトを使っている場合は、エラーとなって操作できないことがある。スクリプトを作り直すか、PowerShellに移行するなどの対策が必要である。
仮想マシンの「世代」サポート
Windows Server 2012 R2のHyper-Vでは、新しく仮想マシンに「世代(Generation)」という概念が導入され、仮想マシンのアーキテクチャが一新された。Windows Server 2012以前の仮想マシンアーキテクチャは「第1世代」と呼ばれ、互換性や古いOSなどのために残されているが、これとは別に新しく「第2世代」アーキテクチャも追加されている。
従来の仮想マシン(第1世代)では過去との互換性を考え、非常に古いPC/ATアーキテクチャ(15年以上前のPCシステム)をエミュレーションしていた。IDE(ディスクインターフェイス)やPS/2キーボード/マウスポート、シリアルやパラレルポートなどの「レガシーデバイス」もサポートされており、古いOSを使うには便利かもしれないが、機能やパフォーマンスは犠牲になっていた。例えば、最近のPCシステムでは当たり前の2Tbytes以上のディスクやUEFIブート(UEFIについてはコラム「第2世代でサポートされたUEFIとは?」参照)などは利用できなかった。また、古いPC/ATのデバイスなどをエミュレーションするため、いちいちデバイス固有のデータ形式に変換したり、その逆を行うなど、オーバーヘッドも少なくなかった。
新しいHyper-Vの第2世代アーキテクチャでは、互換性のために残されていたこれらのレガシーデバイスサポートを廃止し、デバイスに対する要求は全てVMBusを介してHyper-Vのハイパーバイザ(ホストのWindows OS)へパスして処理するようになっている。ゲストのWindows OSの視点から見ると、デバイスドライバーへ渡されたコマンドやデータは、そのままハイパーバイザへ渡されて処理されるので、デバイスエミュレーション処理がなくなる分、オーバーヘッドの軽減(必要なCPUパワーの削減)が期待できる。
Hyper-Vの第1世代と第2世代におけるデバイスサポートの違いを次に示しておく。
デバイス | 第1世代 | 第2世代の該当デバイスと機能拡張点 |
---|---|---|
IDEコントローラー | Intel 82371 | (無し) |
IDE CD/DVDドライブ | 仮想CD/DVD-ROM | (無し) |
物理ハードディスクのVMへのアタッチ | 可 | 不可(.VHDXファイルベースの仮想ディスクのみ利用可能。.VHDは利用不可) |
物理CD/DVD-ROMドライブのVMへのアタッチ | 可 | 不可(.ISOファイルベースの仮想DVD-ROMのみ利用可能) |
SCSIインターフェイス | あり | ディスクやDVD-ROMは全て仮想SCSIデバイスとして接続。仮想SCSIコントローラー。最大64Tbytesまでの.VHDX仮想ファイルからのブートをサポート |
ファームウェア | レガシーBIOS | UEFI(EFI)をサポート。セキュアブートや2Tbytes超のディスクの読み書き/ブート/高速ブート/休止などのサポート |
ネットワーク | 仮想マシンバスネットワークアダプタ)。1台のVMごとに最大8つまで追加可能 | Hyper-Vネットワーク。IPv4&IPv6のネットワークブート(PXE)もサポート。1台のVMごとに最大8つまで追加可能 |
ビデオ | 仮想マシンバスビデオデバイス | Hyper-Vビデオ |
フロッピー&DMAコントローラ | 仮想フロッピーディスクドライブ | サポートなし。仮想フロッピーディスクファイル(.VFDファイル)も利用不可 |
通信ポート | UART(COM:ポート) | デバッグ用途向けにオプションとしてサポート |
キーボード&マウス | i8042&PS/2ポート | Hyper-V仮想キーボードソフトウェアベースの入力デバイス(エミュレーション無し) |
ビデオ | S3ビデオ/VMバスビデオ | ソフトウェアベースのビデオ(エミュレーション無し) |
バス | PCIバス | VMBus |
セキュアブート | (無し) | ○ |
SCSI接続のディスクからのブート | (無し) | ○ |
SCSI接続のDVD-ROMからのブート | (無し) | ○ |
PXEネットワークブート | レガシーネットワークアダプターを追加した場合のみPXEブート可 | ○(通常のネットワークアダプターでPXEブート可) |
第2世代ではレガシーデバイスのサポートをなくすことにより、エミュレーションのオーバーヘッドなどを抑制している。
このようにWindows Server 2012 R2では新しい仮想マシンアーキテクチャを導入したが、互換性維持のために従来の第1世代環境もサポートされる。以前のHyper-Vシステムから移行した仮想マシンや、古いゲストOSでは第1世代を使い、新しいOSでは第2世代で仮想マシンを作成するとよいだろう。
第2世代を利用できるWindows OSは、現在のところは次のものだけである。
- 64bit版のWindows 8/Windows 8.1
- Windows Server 2012/Windows Server 2012 R2
どちらの仮想マシンを利用するかは、仮想マシンの作成時に最初に指定する。
仮想マシンの世代指定
これは仮想マシンの作成ウィザードの画面。Windows Server 2012 R2のHyper-Vでは、仮想マシンを作成するときに世代を指定する。以前のHyper-Vの仮想マシンは第1世代に相当する。新しい第2世代ではレガシーデバイスやBIOSなどを廃し、機能強化や性能向上を図っている。
(1)従来と互換性のあるモード。
(2)新しいモード。利用可能なのは64bit版のWindows 8以降か、Windows Server 2012以降のOSのみ。
作成された仮想マシンのハードウェア構成を確認すると次のようになっている。
■第1世代の仮想マシンの例
仮想マシンのデバイスマネージャ画面
※全体を見るにはクリックしてください。
これはWindows Server 2012 R2のHyper-V上にインストールした、Windows Server 2012 R2 Datacenterエディションのデバイスマネージャの画面例。上側が第1世代、下側が第2世代。第2世代の仮想マシンでは、ほとんどのデバイス(「Microsoft Hyper-V 〜」という名称のデバイス)はVMBus経由でハイパーバイザによって処理される。エミュレーションが必要なレガシーデバイスはもうサポートされない。赤線を引いた部分が、第1世代にしかないレガシーデバイス。
仮想マシンの世代の変更
仮想マシンの世代は、最初に仮想マシンを作成するときに選択すると、基本的にはその後はもう変更できない。また以前のServer OSのHype-Vから仮想マシンをインポートした場合も第1世代になり、第2世代にはならない。そのまま使い続けることも可能だが、もし第2世代で拡張された機能などを使いたければ第2世代の仮想マシンに変換するという方法もある。
第1世代の仮想マシンを第2世代にする一番簡単な方法は、元の仮想マシンからディスクだけを取り出して新規作成した第2世代仮想マシンにアタッチし直すことである。簡単な構成の仮想マシンならこれで十分だろう。ただし元の仮想ディスクが.vhdファイルの場合は、一度Hyper-Vマネージャーのディスクウィザードで.vhdxファイルに変換しておく必要がある(第2世代仮想マシンでは.vhdxしか利用できない)。
変換するファイルが多数あるなら、次のページで公開されているようなツールを使うとよいだろう。
【コラム】第2世代でサポートされたUEFIとは?
第2世代における特長の1つとして「UEFI(Unified Extensible Firmware Interface)」のサポートが挙げられる。UEFI(単に「EFI」と呼ぶこともある)は、従来のBIOSに代わる、PCシステムのための新しいシステムインターフェイス(ファームウェアアーキテクチャ)である。
従来のPCには「BIOS」と呼ばれるブートプログラムが載っており、電源投入後のシステムチェックや接続されているデバイスのチェック、ディスクの検出、OSのブートコードのロードと起動などを行っていた。BIOSはx86アーキテクチャのCPUと16bitのリアルモードのコードに大きく依存していたため、プログラムサイズや実現できる機能には大きな制約がある。その1つが、2Tbytes以上のディスクからブートできない、という制約である。
UEFIはBIOSに代わる新しいシステムであり、CPUの32bit/64bitネイティブコードを使った高機能な処理や、新しいディスク管理形式(従来のMBR形式ではなく、より拡張されたGPT形式)の採用による、2Tbytes以上のディスクサポートなどを実現している。最近ではBIOSに加えて、このUEFIをサポートしたPCシステムも増えてきているが、Windows Virtual PCやHyper-Vの仮想マシンでは今までサポートされていなかった。
Windows Server 2012 R2のHyper-Vで第2世代の仮想マシンを作成すると、BIOSではなくUEFIが有効になり、ユーザーにとっては次のようなメリットが生まれる。
- ブートの高速化――さまざまなレガシーデバイスとそのサポートコードがなくなるため、ブート処理が高速になる
- SCSIブートやPXEブートのサポート――仮想SCSIディスクからのブートや、Syntheticネットワークデバイス(Hyper-Vの統合サービスに含まれている仮想ネットワークデバイスドライバー)からのPXEブートが可能になる。従来は「レガシー ネットワーク アダプター」という特別なデバイスを導入する必要があった
- 2Tbytesディスクのサポート――BIOSではMBRという方式でディスクのパーティションを管理しているが、最大で2Tbytesまでしか扱えない。UEFIではGPTという方式で管理することにより、事実上制限がなくなった
- UEFIセキュアブートが有効に――セキュアブートとは、Windows 8やWindows Server 2012以降でサポートされているブートコードの保護機能の1つで、ブートディスクにウイルスなどが感染して、システムが乗っ取られるのを防ぐ機能である
Copyright© Digital Advantage Corp. All Rights Reserved.