2TB超のVHDでは仮想マシンのスナップショットに失敗する!

前回、Windows Server 2008 R2 SP1 の Hyper-V環境において、2TB超のVHDを仮想マシンに接続し、データディスクとして利用できたと書きました。

しかし、その状態では「スナップショット」を取ることに失敗することが分かりました。(仮想マシンはシャットダウンしています。)

この機能が使えないのでは、仮想環境の魅力は半減してしまうのではないでしょうか。

少なくとも私にとっては、半減どころか8割減です。仕事柄、検証などで多用するので。

Windows Server 2008 R2 の Hyper-VのVHDが、最大2TBまでしかサポートしていないというのはこういう意味だったんですね・・・

(Windows Server 2012 で新たに採用された.vhdx という形式は、最大16TBだそうです。)

 

 

今のところ、このVHDを物理マシンに接続した際には特に不都合なことは起きていませんが、何か分かったら都度このブログに書いていこうと思います。

 

2TB超のVHD内に2TB超のファイルを作成。

前回の続きです。 「おそらく次回はありません」なんて言ってましたが、そろそろ舌の根も乾いてきた頃なのでご容赦ください。

 

 

前回、Windows Server 2008 R2  SP1上で約2.5TB のVHDを作成し、同サーバーのHyper-V上にある仮想サーバー(Windows Server 2008 R2  SP1 )にマウントしました。

2TB超のディスクとしてちゃんと認識されるところまでは確認したのですが、一般には「VHD の最大容量は2TBまで」と言われていますので、実際には2TBの容量でしか機能していない可能性もあります。今回はそれを確かめてみました。

 

 

確かめると言っても、実際に2TB超のデータを作成したのでは時間がかかり過ぎます。そこで、こんなコマンドを使いました。

"fsutil file createnew E:¥file-1 2400000000000"

これにより、Eドライブ(仮想サーバーにマウントした2TB超のVHD)内に2.18TBの「file-1」という名前のファイルを一瞬で作成できます。

なお、コマンド末尾にある容量指定はバイト単位です。出来上がったファイルのサイズは、エクスプローラー上では2,343,750,000 KBと表示され、右クリックしてプロパティを見ると2.18TBでした。

 

 

一応、実質的にも2TB以上の容量を持ったディスクとして機能していることが分かりました。

しかし、Microsoft社が公開している「Microsoft Hyper-V 構成ガイド」には、「VHD は、最大 2,040 GB (2 TB) のサイズをサポートし・・・」という下りがあるので、こういった使い方は「可能だけどサポート外」である可能性が高いと言えます。

サポート外だと何か問題が起きても対処してもらえないので、基本的には自己責任でやることですね。

2TB超のVHD(仮想ハードディスク)を作成。

Windows 7 やWindows Server 2008 R2 では、VHD ファイルを内蔵ドライブとして直接マウント可能なのですが、その容量についてネットで検索すると「最大 2TB まで」という情報が散見されます。

ざっとみたところ、それらの情報は「Hyper-V 」「容量可変」という前提で書かれています。

ちょうどバックアップ用に3TBのHDDを買ってきたところなので、本来の目的に使う前に、「Hyper-V とは関係なく」「容量固定」だとどうなるのか?という実験をしてみました。

(Windows Server 2008 R2 SP1 を使いました。)

 

 

結論、出来ました

E:ドライブとしてマウントした3TBの物理HDDの中に 2.5TBの容量固定のVHDファイルを作成し、それをF:ドライブとしてマウントすることに成功しました。

(作成には4時間以上かかりました。。。 もう二度とやりません。)

なおフォーマットの際には、パーティションのスタイルをGPT形式にする必要があります。旧来のMBR形式を選択すると、MBR自体が2TBまでしか扱えないため、2TBを超える部分が「未割り当て」として残ってしまいます。

※表示上は2TB超だけど、実際には2TB分しか機能しない・・・ という可能性も僅かに残ってはいますが、そこまで検証するのは面倒なので今回はパス。(おそらく次回はありません。)

 

 

次に、Hyper-V 上の仮想マシンのブートディスクとして、このVHDを利用出来るか試してみました。

まずはF:ドライブとしてのマウントを解除。Hyper-Vで新規の仮想マシンを作成してこのVHDを接続し、Windows Server 2008 R2 をインストールします。ところが・・・

インストールウィザードの「Windows のインストール場所を選択してください。」画面で、「このディスクにWindowsをインストールする事はできません。選択されたディスクはGPTのパーティションの形式ではありません。」と断られてしまいました。

いや、GPTなんですけど。。。

ここでパーティションを新規に作り直すと、2TB以上の数値を入力しても2TBのパーティションが作成され、のこりは「未割り当て」となります。この2TBのパーティションを選択すれば「次へ」ボタンがアクティブになるため、おそらくインストール可能です。(実施にはそこまでやってません。)

その状態でインストールを中断し、仮想マシンをシャットダウンしてホスト側にVHDをマウントしたところ、思った通りMBR形式になっていました。

 

 

2TB超のVHDを、仮想マシンのブートディスクには出来ないことが分かったので、次に、既存の仮想マシンのデータディスクとして接続可能か否かを試しました。

まずは、MBRになってしまったVHDをGPTに戻します。それから仮想マシン(Windows Server 2008 R2 SP1)の設定画面でVHDを接続し、起動します。

仮想マシン側の「ディスクの管理」画面で確認したところ、ちゃんとGPT形式のまま、2.5TBの大きなディスクとして認識されています。そのままE:ドライブとしてフォーマットしたところ、ちゃんとエクスプローラーからも2.49TBで認識されるようになりました。

 

 

なるほど、仮想マシンのブートは無理でも、データ用ならオッケーなんですね。