世代2における特長の1つとして「UEFI(Unified Extensible Firmware Interface)」がサポートされたことが挙げられる。UEFI(単に「EFI」と呼ぶこともある)は、従来のBIOSに代わる、PCシステムのための新しいシステム・インターフェイス(ファームウェア・アーキテクチャ)である。
従来のPCには、「BIOS」と呼ばれるブート・プログラムが載っており、電源投入後のシステム・チェックや接続されているデバイスのチェック、ディスクの列挙、OSのブート・コードのロードと起動などを行っていた(ブート後の処理は各OSが行う)。だがこのBIOSは、x86アーキテクチャのCPUと16bitのリアル・モードのコードに大きく依存していた。しかしプログラム・サイズの制限などのため、今となってはBIOSで実現可能な機能には大きな制約がある。その1つが、2Tbytes以上のディスクからブートできない、という制約である。詳しくは以下の記事などを参照していただきたい。
UEFIはBIOSに代わる新しいシステムであり、CPUの32bitネイティブ・コードを使った高機能な処理や、新しいディスク管理形式(従来のMBR形式ではなく、より拡張されたGPT形式)の採用による、2Tbytes以上のディスク・サポートなどを実現している。最近ではBIOSに加えて、このUEFIをサポートしたPCシステムも増えてきているが、Hyper-Vなどの仮想環境では今までサポートされていなかった。
Windows Server 2012 R2のHyper-Vで世代2の仮想マシンを作成すると、BIOSではなくUEFIが有効になり、ユーザーにとっては次のようなメリットが生まれる。
世代2の仮想マシンの設定画面のうち、UEFI関連の項目を次に示す。
世代1の仮想マシンの設定画面と比較すると、「セキュア ブートを有効にする」というチェック・ボックスが増えただけで、その下にある「ブート順」を変更する画面はほぼ同じように見える。ただしこのブート・エントリの並びはUEFIによって制御されているため、例えば(複数の起動ディスクがある場合は)Windows OS上から「bcdedit /enum firmware」コマンドで変更できる(TIPS「bcdeditでUEFIのブート・エントリの名前を変更する」参照)。
UEFIを使うメリットの1つとして、2Tbytes以上のディスクを起動用ディスクにできるというのが挙げられる。Hyper-Vのような仮想マシン環境ではあまり使うことはないかもしれないが(仮想マシンごとにVHDXファイルを作成すればよいため)、例えば2Tbytes以上のディスクをパススルー・ディスク(物理ディスクを仮想マシンに直接アタッチして使う方法)として使用する場合はこのようなケースも出てくるだろう。
以前の仮想マシン(世代1の仮想マシン)では、仮想マシンをブートさせるにはIDEインターフェイスに接続した2Tbytes以下のディスクを使う必要があったが、世代2のUEFI環境ではもっと大きなVHDXファイルや物理ディスクをブート用ディスクに設定できる。次の画面は4TbytesのVHDXファイルにWindows Server 2012 R2をインストールしたところである。C:ドライブが4Tbytesになっているが、何の問題もなくインストールできている。
同じことを、世代1の仮想マシンと4TbytesのVHDXファイルの組み合わせで実行してみると、次のように、ディスクはGPT形式ではなくMBR形式でフォーマットされ、C:ドライブの容量は2Tbytesになってしまう。残りの2Tbytesは「未割り当て」領域となったまま、ユーザーが使うことはできなくなる(前掲の記事も参照)。
なおWindows OSの制約により、世代2(UEFI)を利用できるのは、Windows 8以降のOSでも64bit版だけである(今のServer OSは64bit版だけなので、Windows Server 2012以降ならどれでもよい)。32bit版のWindows 8はUEFI環境へのインストールはサポートされていないので(世代1の環境にのみインストール可能)、2Tbytes超のディスクはOSのインストール用には使えず、データ・ディスクとしてのみ使える。
ところで上の画面では4Tbytesのディスクを1つのボリュームにしているが、Windows Server 2012 R2のHyper-Vでは仮想マシンを実行させたまま、動的にボリューム・サイズを変更できるようになっている(以前は仮想マシンをいったん止める必要があった)。詳細はWindows 8.1のHyper-Vの解説記事を参照していただきたいが、ゲストOS上でパーティション・サイズを縮小してディスクの末尾に未割り当て領域を作っておけば、仮想マシンの設定画面でVHDXのサイズを縮小できる。また逆に、VHDXファイルを拡大すると、ゲストOS上ではディスクのサイズが増大したように見えるので、ディスクの管理ツールを使ってパーティション・サイズを拡大できる。
Windows Server 2012 R2のHyper-Vでは、複数の仮想マシン間で仮想ディスクを共有する機能が利用できる。クラスタの共有ボリューム(CSV)にしたり、複数のファイル・サーバからアクセスして、スケールアウト構成のファイル・サーバ・システム(複数のファイル・サーバを使ってパフォーマンスを向上させる構成)を実現したりできる。
画面の上側にある「サービスの品質の管理」とは、仮想ディスクのQoS管理を実現するための機能である。仮想ディスクごとに、IOPSを制限したり、IOPSの最低保証値を設定するために利用する。主にデータ・センターなどで顧客ごとのSLAを保証するために使われる機能だが、ほかの仮想マシンに影響を与えないように(もしくは逆に、影響を受けてサービスが止まってしまわないように)利用することもできるだろう。
今回はWindows Server 2012 R2 Preview版のHyper-V機能の概要とUEFIサポートなどについて説明した。これら以外のHyper-Vの機能については次回解説する。
Copyright© Digital Advantage Corp. All Rights Reserved.