第5回 サーバ版Hyper-Vの概要Windows Server 2012クラウドジェネレーション(2/2 ページ)

» 2013年02月14日 18時42分 公開
[打越浩幸,デジタルアドバンテージ]
前のページへ 1|2       

 以下、Windows Server 2012のHyper-Vで特徴的な機能について、簡単に紹介しておく。より詳しい機能解説や設定方法などについては、今後回を改めて解説する。

ライブ・マイグレーション関連の機能強化点

 「ライブ・マイグレーション」とは、仮想マシンを実行中の状態のまま、別の仮想ホスト上へ移動させる技術のことである。Windows Server 2008 R2のHyper-V 2.0で新たに導入された機能だ。

 ただしこのライブ・マイグレーションは、クラスタ環境でのみサポートされていた機能だった。仮想マシンのディスクをクラスタ共有ボリューム(CSV)上に保存しておき、仮想マシンをWindowsのフェイルオーバー・クラスタ(WSFC)機能を使って実行、移動させていた。Windows Server 2008のHyper-Vにあった「クイック・マイグレーション」と比較すると、実行中の仮想マシンを、ダウンタイムなしで実行状態のまま移動させることが可能になったのは大きな改良点だが、WSFCやクラスタ共有ボリュームが必要なため、導入はあまり簡単とはいえなかった。

 これに対してWindows Server 2012のHyper-Vのライブ・マイグレーションでは、次のような機能強化が図られている。

  • ストレージ・マイグレーション
  • 無共有型ライブ・マイグレーション
  • 複数セッションの同時ライブ・マイグレーション

 「ストレージ・マイグレーション」とは、仮想マシンで使用している仮想ディスク・ファイルだけを移動させる機能である。移動先はローカルのハードディスクでもよいし、(Windows Server 2012で導入されたSMB 3.0を使った)ネットワーク共有フォルダでもよい。仮想マシンを実行したまま、別の場所へ仮想ディスク・ファイルだけを移動できる。内部的には、まず仮想マシンの構成ファイルや仮想ディスク・ファイルなどを移行先へおおよそコピーしたあと、(実行中の仮想マシンによって更新されている)コピー元とコピー先の仮想ディスクをミラーリングで一致させ、最後に仮想マシンのアクセス先を移行先へ切り替えている。

 「無共有型ライブ・マイグレーション(Shared Nothing Live Migration)」とは、クラスタ共有ボリュームを使わない方式のライブ・マイグレーションである。仮想マシンを実行したまま、あるHyper-Vのサーバから別のサーバ上へ移行できる。フェイルオーバー・クラスタ環境も不要であり、ドメインに参加したWindows Server 2012のHyper-Vサーバがあれば、その上で自由に仮想マシン(の設定ファイルと仮想ディスク・ファイルなど)をまとめて移動できる。内部的にはストレージ・マイグレーションで仮想ディスクを移行した後、仮想メモリの内容を移行し、最後に移行先で仮想マシンを起動している。

ライブ・マイグレーションの実行例 ライブ・マイグレーションの実行例
Windows Server 2012のHyper-Vでは、クラスタ環境やクラスタ共有ボリュームを使わずに、仮想マシンを実行した状態のまま、ほかの仮想ホスト上へ移動できる。背面にあるHyper-Vの管理コンソールから分かるように、仮想マシンを起動したまま移動できる。

 「複数セッションの同時ライブ・マイグレーション」とは、同時に複数のセッションのマイグレーションを行う機能のことである(従来は同時は不可)。デフォルトでは2セッションのマイグレーションが許可されているが、ネットワーク帯域などに余裕があれば、もっと多くのマイグレショーンを同時に行える。

Hyper-Vレプリカによるオンライン・バックアップ

 「Hyper-Vレプリカ」とは、Hyper-Vの仮想マシンの複製を作成・管理する機能である。エクスポートやインポート、仮想マシン・ファイルのバックアップなどを使った単なる仮想マシン環境のコピーではなく、WAN回線やインターネットを介して離れた場所に仮想マシンの複製を作成し、いつでも実行できるように用意しておく機能である。複製元(プライマリ・サーバ)の仮想マシンの状態は非同期で複製先(レプリカ・サーバ)へ複製され、常に最新の状態に保たれるようになっている。そして複製元の仮想マシンに障害が発生すると、直ちにクラスタ機能を使って複製した仮想マシンが起動し、サービスを継続する。

 例えば、本社にある仮想マシンを地理的に離れた別の支社にあるレプリカ・サーバに複製しておくとサービスのバックアップになる。また、複製の方向を切り替えれば、支社にあるサーバを本社でバックアップする、という用途にも利用できる。

Hyper-Vレプリカの例 Hyper-Vレプリカの例
仮想マシンのレプリカ(複製)を非同期に作成し、障害発生時には自動的に複製先の仮想マシンを起動して、サービスを提供するための機能。ディザスタ・リカバリやバックアップに利用できる。
  (1)レプリカを作成した仮想マシンでは、(デフォルトでは)5分に1回程度、複製先に変更情報を送信して、同じ状態を保つようにしている。
  (2)手動でこれを実行すると強制的にフェイル・オーバーされ(実行前に仮想マシンはシャットダウンしておくこと)、複製先の仮想マシンがプライマリとして実行されるようになる。フェイル・オーバーが完了すると複製元と複製先が入れ替わり、このHyper-Vはレプリカ・サーバとなる。

仮想スイッチの強化点

 仮想マシンで利用する仮想スイッチ(ネットワーク・インターフェイス)関連では、次のような機能が追加/強化されている。

機能 内容
ポートACL ポートごとに、インバウンド/アウトバウンドの通信の許可/禁止をするアクセス制御を設定可能
MACアドレス・スプーフィング対策 MACアドレス・スプーフィング(偽装)対策のために、ARP(IPv4)やND(IPv6)スプーフィング・パケットを禁止する
DHCPガード 承認されていないDHCPサーバ(VM)からのパケットを禁止する
ルータ・ガード 承認されていないルータ(VM)からのルータ・アドバタイズを禁止する
NICチーミング 物理NICでサポートされていない場合でも、仮想スイッチでトランク・モード(複数のNICを束ねて帯域を増やすモード)をサポートする
ポート・ミラーリング あるNICに送られたパケットを別のモニタ用ポートの仮想NICへ転送する。パケット・モニタなどに使用
SR-IOVサポート SR-IOV(Single Root I/O Virtualization)とは、物理インターフェイスで仮想化を支援する機能の1つ。ハイパーバイザを通さず、仮想マシンから直接I/Oを扱えるようにすることでオーバーヘッドを削減し、性能向上などが期待できる。ただしSR-IOVをサポートしているハードウェア・システムが必要
主な仮想スイッチ(NIC)関連の機能強化点

 仮想マシンの設定画面には次のように、ネットワーク・アダプタの拡張機能やハードウェア・アクセラレータ機能を設定する項目が追加されている。

スイッチの拡張機能 スイッチの拡張機能
MACアドレス・スプーフィングやDHCPガード、ルータ・ガード、ミラーリング、NICチーミングなどの機能が仮想マシン単位で設定できるようになっている。

ネットワークの仮想化のサポート

 Hyper-Vとネットワーク・プロトコル・スタックの改善により、Windows Server 2012ではいわゆる「マルチテナント」のサーバをサポートする「ネットワーク仮想化」機能が追加されている。これは、1台もしくは複数台のHyper-Vサーバ上に、同じネットワーク・アドレスを持つ複数のネットワークを仮想的に集約する機能である。クラウド・システムやデータ・センターなどで、同じアドレスを持つテナント(顧客)を複数収容するといった場合に利用できる機能である。

 一般に複数の仮想マシンを1台のHyper-Vサーバに集約して仮想化した場合、通常は各仮想マシンには異なるIPアドレス(PA:プロバイダ・アドレス空間)を割り当てる必要がある。さもないとアドレスが衝突してアクセスできなくなる。だがクラウドなどの用途では、顧客はオンプレミスあるいは物理マシン環境で使っている現在のIPアドレス体系(CA:カスタマー・アドレス空間)をそのまま使って、サーバを仮想化できると便利である。既存のシステムのIPアドレス割り当てを一切変更する必要がなくなるからだ。

 同一の物理ネットワーク上に論理的な境界を作る方法としてイーサネットのVLAN IDを使う方法がある(VLANとは12bitのVLAN IDを使ってイーサネットのフレームを分類する機能。同じVLAN IDを持つパケット同士のみが通信できる)。しかし、これはL2レベル(イーサネット・レベル)で分離する方法であり、L3(IP層)でのルーティングが必要なインターネットを介した通信では使えない(インターネットの先にあるVLAN IDを指定することはできない)。

 これを解決するため、Windows Server 2012ではアドレスの仮想化を行う2つの機能「NVGRE カプセル化」と「IPアドレス書き換え」を導入している。これらの機能を簡単にいえば、顧客とデータ・センターの間に仮想的なIPトンネルを作る技術である。CAのネットワークごとに異なる「仮想サブネットID(VSID)」という識別用のID番号を割り当て、常にVSIDを指定して通信を行う。VSIDの挿入や解釈、ルーティングなどを行うには、Windows Server 2012をルータとして利用するか、Windows Server 2012のHyper-V上に仮想マシンを導入する必要がある。なおアドレス仮想化を利用するためには、エッジのルータやHyper-VサーバなどにCAやPA、VSIDなどの設定を行う必要があるが、その管理にはPowerShellかSystem Center 2012が必要である。

方式 概要
NVGREカプセル化 ・NVGRE(Network Virtualization using Generic Routing Encapsulation)は、GREを使ったIPパケットのトンネリング技術。GREはPPTPで使われているプロトコル
・規格仕様は現在IETFのドラフト段階
・標準規格に基づいているため、相互運用性が高い
IPアドレス書き換え ・CAごとに異なるグローバルIPアドレスをPAに割り当て、テナントのあて先アドレスがそこを指すように書き換えて通信する方法。到着したIPパケットはVSIDのあて先に応じて元のあて先に戻し、通信する
・カプセル化の処理が不要なのでパフォーマンスが高い
Windows Server 2012におけるネットワーク仮想化の2つの手法

標準バックアップ・ツールが仮想マシンのバックアップに対応

 Hyper-Vの仮想マシンの構成や仮想ディスクをバックアップしたい場合は、従来のHyper-Vでは仮想マシン環境をエクスポートしたり、対象となる構成ファイルや仮想ディスクが含まれるフォルダをコピーするという手段が使われていた。これに対してWindows Server 2012では従来からあるバックアップ・ツールが改善され、仮想マシンを意識したバックアップが可能になっている。バックアップ対象を選択する画面に仮想マシンを選択するチェック・ボックスが追加されたので、これを使って特定の仮想マシン環境だけをバックアップしたり、定期的にバックアップするといったことが行える。また、サイズの大きな仮想マシン(仮想ディスク・ファイル)を外して仮想ホストをバックアップする、といったことも容易になった。

仮想マシン環境のバックアップ 仮想マシン環境のバックアップ
Windows Server 2012標準のバックアップ・ツールで、特定の仮想マシン環境だけを指定してバックアップできるようになった。
  (1)Hyper-Vの特定の仮想マシンだけを選んでバックアップできる。

Active Directoryドメイン・コントローラ仮想化への対応

 すでに連載第3回の「強化されたActive Directory―3.Active Directoryの仮想化対応」で解説しているが、Windows Server 2012ではActive Directoryのドメイン・コントローラを仮想マシン上で動作させても問題がないように、仮想化対応が行われている。仮想マシンのスナップショットを使ってドメイン・コントローラを過去の状態へ戻した場合、その内部で保持している重要なデータ「USN(Update Sequence Number)番号」がロールバックすることがあるが、これは絶対あってはいけないことである。Windows Server 2012のHyper-Vではスナップショットの適用などが行われると、「VM-generation ID」という世代識別用の数値を変更し、仮想マシン上のドメイン・コントローラに対して、ロールバックが発生したことを通知するようになっている。VM-generation IDが変更されるのは次の場合である。

仮想マシンのイベント VM-generation IDの変更
仮想マシンの一時停止/再開 変更されない
仮想マシンのリブート 変更されない
仮想マシンのホストのリブート 変更されない
仮想マシンのスナップショットの適用 変更される
仮想マシンのライブ・マイグレーション 変更されない
仮想マシンのコピー/インポート/クローン 変更される
仮想マシンの構成の変更 (未定義)
VM-generation IDの主な変更タイミング
Windows Server 2012およびWindows 8のHyper-Vでは、各仮想マシンの世代を識別するためにVM-generation IDを導入している。VM-generation IDは128bitのランダムな数値であり、ここで示したような操作を行うと値が変更される。値の大小は関係なく、以前の値と異なるという点だけが意味を持つ。Windows Server 2012のActive Directoryドメイン・コントローラはシステム起動時にこの値をチェックし、値が変更された場合は必要な処理を行う。

新しい仮想ファイル形式「VHDX」

 Windows Server 2012では新しくVHDXという仮想ディスク・ファイルの形式が導入されている。VHD形式と比較すると、最大サイズの拡大や内部ブロック・サイズの拡大、データ構造の調整によるアクセス速度の向上、耐障害性の向上などの機能強化が図られている。

ディスク・タイプ VHD形式 VHDX形式
仮想ディスクの種類 固定/動的/差分/パス・スルー 固定/動的/差分/パス・スルー
仮想ディスクのサイズ 3M〜2Tbytes 3M〜64Tbytes
内部ブロック・サイズ 2Mbytes 1M〜256Mbytes(デフォルトでは、動的ディスク=32Mbytes、差分ディスク=2Mbytes)
内部セクタ・サイズ 512bytes 512/4096bytes
パフォーマンス対策 特になし ・4Kbytesセクタ(AFT)のサポート
・内部データ構造を4Kbytes境界に配置することにより、AFT形式のディスクでのパフォーマンス低下を抑止
耐障害性 特になし メタデータのロギング
利用可能なOS/環境 Windows 7/Windows Server 2008/Windows Server 2008 R2/Windows Virtual PC/Hyper-V Windows 8/Windows Server 2012(およびそれらの上のHyper-V)が必要
仮想マシンのブート用途 利用可能。ただし仮想IDEインターフェイスに接続する必要がある 利用可能。ただしサイズは2Tbytes以下にして、仮想IDEインターフェイスに接続する必要がある
データ用としての用途 利用可能 利用可能。ただし2Tbytes以上の場合はMBR形式ではなく、GPT形式で初期化/フォーマットする必要がある
仮想ディスクの作成/変換 ディスクの管理ツール/diskpart/PowerShell
仮想ディスクのネイティブ・マウント/イジェクト ディスクの管理ツール/diskpart/PowerShell/エクスプローラ
仮想ディスクの仕様比較

 なおVHDXファイルでは最大64Tbytesまでサポートされているが、仮想マシンの起動用ディスクとして利用する場合は、仮想IDEインターフェイスに接続し、最大サイズも2Tbytes以下にする必要がある(仮想SCSIインターフェイスからでは起動できない)。また、2Tbytes以上のVHDX仮想ディスクを使う場合は、ディスクをGPT形式で初期化/フォーマットする必要がある。よく使われるMBR形式では2Tbytes以上の領域にアクセスできないからだ。「2Tbytesの制限」の詳細やGPT、MBRといった用語については、連載「PCハードウェア強化ラボ」の第3回「2Tbytes超ディスクをデータ用ストレージとして利用する」を参照していただきたい。

オフラインのVHD/VHDXファイルに対するサーバ役割/機能の追加

 Windows Server 2012のサーバ管理ツールでは、Windows Server 2012をインストールした仮想マシン(の仮想ディスク・ファイル)に対して、オフラインで直接役割や機能を追加できる(もちろん仮想マシンは実行中でないこと)。

仮想ファイルに対する役割や機能の追加 仮想ファイルに対する役割や機能の追加
Windows Server 2012のサーバ管理ツールでは、動作中のWindows Server 2012システムだけでなく、Windows Server 2012をインストールした仮想マシン(の仮想ディスク・ファイル)に対して、オフラインで直接役割や機能を追加できる(もちろん仮想マシンは実行中でないこと)。
  (1)仮想ハードディスクを選択できる。
  (2)機能を追加する仮想ディスク・ファイル。Windows Server 2012がインストールされている仮想ディスク・ファイルに役割や機能を追加できる。

改善された動的メモリの起動時設定とスマート・ページング

 Windows Server 2012のHyper-Vでは仮想マシンのメモリ管理が少し改善され、「スタートアップRAM」の設定とスマート・ページング機能が追加された。

仮想マシンに対するメモリ割り当ての設定 仮想マシンに対するメモリ割り当ての設定
Windows Server 2008 R2までのHyper-Vと比べると、スタートアップのメモリ・サイズを独立して調整できるようになった点が異なる。このダイアログの見方についてはWindows 8レボリューション連載 第11回の「クライアントHyper-V」も参照していただきたい。

 一般にWindows OSは起動時には多数のタスクが実行されるので(例えばサービスの起動やシステムのスキャンなど)、多くのメモリを必要とするが、初期タスクの実行が完了すると利用するメモリ量は減少し、ある一定の値に落ち着く(特にサーバの場合)。そこでWindows Server 2012のHyper-Vでは、スタートアップ時だけに多くのメモリを割り当てられるように、新たに「スタートアップRAM」という設定項目を導入している。これをうまく使うことにより、起動時の無用なページングを抑えたり、無駄に割り当てすぎたりすることを抑止できる。

 ただしスタートアップRAMを多く設定しすぎると、システム全体でのメモリが不足して、ほかの仮想マシンの再起動に失敗する(メモリ不足で再起動できない)可能性がある。これを避けるために、場合によっては一時的にページングを行って(不足するメモリをディスク上のファイルで代用する)、再起動時のメモリ不足を避けることがある。これを「スマート・ページング」という。

 もう1つ細かい改良だが、Windows Server 2012のHyper-Vでは仮想マシンの実行中にメモリ・サイズの設定を変更できるようになっている。以前はメモリ・サイズを変更しようとすると、いちいち仮想マシンをシャットダウンする必要があったので、メモリ・サイズを調整しやすくなった。ただし仮想マシンの実行中に可能な操作は、「最小RAMの値をさらに減らすこと」「最大RAMの値を大きくすること」だけである。


 今回はWindows Server 2012のHyper-Vの機能について簡単に見てきた。数多くの機能強化により、ハイパーバイザとしては、すでに十分な機能を持つようになったといえる。ただ、(特に多数の)仮想マシンやネットワークなどを展開したり、監視したりする機能はあまり備えていないが(GUIでは操作できず、PowerShellが必要な場面も少なくない)、そのような用途ではSystem Center 2012を併用することになるだろう。System Center 2012を使った仮想マシンの管理については、以下の記事も参照していだきたい。

 今回扱えなかった項目や、より詳しい機能解説や設定方法などについては、今後解説する。


「Windows Server 2012クラウドジェネレーション」のインデックス

Windows Server 2012クラウドジェネレーション

前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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