Hyper-Vで仮想ハードディスクを作成する場合、3つのタイプの仮想ハードディスクを作成でき、選択するタイプによってその特徴が異なります。
- 容量可変の仮想ハードディスク
- 容量固定の仮想ハードディスク
- 差分の仮想ハードディスク
そこでここではWindows 10のHyper-Vを例に、仮想ハードディスクのタイプごとの特徴や、仮想ハードディスクの作成方法を紹介します。
目次
仮想ハードディスクのタイプ
容量可変
容量可変の仮想ハードディスクは、仮想マシンが実際に使用する分だけディスク量を確保していき、作成時に指定したディスクサイズまで容量が変化するため、ディスクスペースを効率よく使用できる反面、使用量が増えるにしたがってパフォーマンスが低下します。
なお、クイック作成や仮想マシンの作成ウィザードから仮想ハードディスクを作成すると、仮想ハードディスクは自動的に「容量可変」で作成されます。
容量固定
容量固定の仮想ハードディスクは、ディスク作成時に指定したディスクサイズが固定的に確保されるため、ディスクスペースの効率的な利用はできませんが、容量可変の仮想ハードディスクのように容量拡張に伴うパフォーマンス低下が起こらないため、パフォーマンス重視の仮想マシンではこのディスクタイプが利用されます。
差分
差分の仮想ハードディスクは、親として指定した仮想ハードディスクとの差分のみを記録する仮想ハードディスクで、他の仮想ハードディスクタイプに比べてパフォーマンスは劣ります。
差分の仮想ハードディスクは、一般的な仮想マシンで利用することはほとんどなく、検証や開発の現場で、ベースとなるOS環境から、複数の環境を用意したい場合などで用いられることがあります。
仮想ハードディスクの作成方法
仮想ハードディスクを作成する方法は、Hyper-Vマネージャーから作成する方法と、PowerShellコマンドレットを使って作成する方法があります。
容量可変の仮想ハードディスクのみ、仮想マシンの作成時に同時に作成することもできます。
Hyper-Vマネージャーから作成
一般的な仮想ハードディスクの作成方法は、Hyper-Vマネージャーから作成する方法で、手順は次のとおりです。
まず、Hyper-Vマネージャーの操作メニューから「新規」>「仮想ハードディスク」をクリックします。
仮想ハードディスクの新規作成ウィザード画面が起動するので「次へ」をクリックします。
次の画面では、特別な理由がない限りは「VHDX」を選択して「次へ」をクリックします。
次の画面では、どのタイプの仮想ハードディスクを作成するかを選択して「次へ」をクリックします。
次の画面では仮想ハードディスクの名前を指定して「次へ」をクリックします。
分かりやすいように接続予定の仮想マシンの名前などにしておくのがおススメです。
差分の仮想ハードディスクを選択した場合は、次画面で親仮想ハードディスクを指定する画面が表示されます。なお、親として指定した仮想ハードディスクは読み取り専用になります。
次の画面では、仮想ハードディスクのサイズを指定します。
最後に設定内容を確認して「完了」をクリックすると、仮想ハードディスクの作成が開始されるので、完了するまで待ちます。
なお、容量固定の仮想ハードディスクを作成する際は、サイズに比例して時間が掛かり、40GBだとおよそ10分かかります。
作成した仮想ハードディスクは、仮想マシン作成ウィザードの途中で指定したり、仮想マシン作成後であれば、仮想マシンの設定画面から指定することができます。
PowerShellコマンドレットで作成
PowerShellコマンドレットで仮想ハードディスクを作成するときは、管理者権限でPowerShellを起動して「New-VHD」コマンドレットを利用して作成します。
仮想ハードディスクの作成場所はフルパスで指定しないと、カレントディレクトリに作成されてしまうので注意しましょう。
容量可変の仮想ハードディスクを作成
容量可変の仮想ハードディスクを作成するときは、次のようにコマンドを実行します。
PS C:\> New-VHD -Path "F:\Hyper-V\Virtual Hard Disks\Win10VM1_dynamic.vhdx" -SizeBytes 50GB
容量固定の仮想ハードディスクを作成
容量固定の仮想ハードディスクを作成するときは、次のようにコマンドを実行します。
PS C:\> New-VHD -Path "F:\Hyper-V\Virtual Hard Disks\Win10VM1_fixed.vhdx" -SizeBytes 50GB -Fixed
差分の仮想ハードディスクを作成
差分の仮想ハードディスクを作成するときは、次のようにコマンドを実行します。
PS C:\> New-VHD -Path "F:\Hyper-V\Virtual Hard Disks\Win10VM1_differ.vhdx" -ParentPath "<親となる仮想ハードディスクファイルのフルパス>" -SizeBytes 50GB -Differencing
仮想ハードディスクを仮想マシンに接続
作成した仮想ハードディスクを、仮想マシン作成時に指定するときは「New-VM」コマンドレットの「-VHDPath」オプションで指定します。
PS> New-VM -Name "Win10VM3" -MemoryStartupBytes 4GB -VHDPath "F:\Hyper-V\Virtual Hard Disks\Win10VM3.vhdx" -Generation 2 -Switch "Default Switch"
既存の仮想マシンに、作成した仮想ハードディスクを接続するときは「Set-VMHardDiskDrive」コマンドレットを利用して接続します。
PS> Set-VMHardDiskDrive -VMName Win10VM3 -ControllerType SCSI -Path "F:\Hyper-V\Virtual Hard Disks\Win10VM3.vhdx"
なお、仮想マシンに複数のSCSIコントローラーや仮想ハードディスクが接続されている場合は、「Set-VMHardDiskDrive」コマンドレットを実行するときに、仮想ハードディスクをどのSCSIコントローラーの何番に接続するかを「-ControllerNumber」や「-ControllerLocation」オプションで指定する必要があります。
SCSIコントローラーの番号「ControllerNumber」や、使用中の「ControllerLocation」番号は「Get-VMHardDiskDrive」コマンドレットで確認できます。
参考URL
あとがき
仮想ハードディスクファイルの保存先に余裕があり、仮想マシンのパフォーマンスを重視するなら、容量固定の仮想ハードディスクを作成し、それ以外のケースでは容量可変の仮想ハードディスクを作成すると覚えておけば、ほとんどの場合に対応できるでしょう。